Add eclipse nemo plugin source codes in nemo-tools. 88/31888/1
authorJieHou <houjie1@huawei.com>
Sat, 26 Dec 2015 06:26:51 +0000 (14:26 +0800)
committerJieHou <houjie1@huawei.com>
Sat, 26 Dec 2015 06:28:46 +0000 (14:28 +0800)
Change-Id: I15991317f87494cd0e22f8fdec330274d572b1aa
Signed-off-by: JieHou <houjie1@huawei.com>
290 files changed:
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.sdk/build.properties [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.sdk/feature.xml [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/META-INF/MANIFEST.MF [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorInjectorProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorUiInjectorProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/build.properties [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests.launch [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/EditorInjectorProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/EditorUiInjectorProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/META-INF/MANIFEST.MF [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/AbstractEditorUiModule.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorExecutableExtensionFactory.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorUiModule.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/AbstractEditorProposalProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser$1.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/PartialEditorContentAssistParser.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.tokens [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer$DFA1.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer$DFA14.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser$DFA2.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/internal/EditorActivator.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/build.properties [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/plugin.xml [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/AbstractEditorUiModule.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorExecutableExtensionFactory.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/AbstractEditorProposalProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/PartialEditorContentAssistParser.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.tokens [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/internal/EditorActivator.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorUiModule.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/.launch/Generate Language Infrastructure (org.opendaylight.nemo.tool.eclipse.plugin.editor).launch [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/META-INF/MANIFEST.MF [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/AbstractEditorRuntimeModule.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtext [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtextbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorRuntimeModule.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetup.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetupGenerated.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/GenerateEditor.mwe2 [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Connection.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/ConnectionUpdate.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorFactory.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage$Literals.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Flow.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/FlowUpdate.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Model.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Node.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeModel.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeOperating.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Operation.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Sentence.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionUpdateImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorFactoryImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorPackageImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowUpdateImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ModelImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeModelImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeOperatingImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/OperationImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/SentenceImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory$1.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorSwitch.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorAntlrTokenFileProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorParser.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.tokens [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer$DFA1.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer$DFA14.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser$DFA2.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSemanticSequencer.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSyntacticSequencer.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConditionElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConnectionElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConnectionUpdateElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$FlowElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$FlowUpdateElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$Ipv4Elements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$MatchElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$MatchesElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ModelElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ModelPropertyElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NewObjElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeModelElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeOperatingElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OneModelPropertyElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OnePropertyElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OperationElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$PropertyElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$SenEnginesElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$SentenceElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$UserElements.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/AbstractEditorValidator.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/build.properties [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/model/generated/Editor.ecore [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/model/generated/Editor.genmodel [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/plugin.xml [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/AbstractEditorRuntimeModule.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtextbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetupGenerated.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Connection.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/ConnectionUpdate.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorFactory.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Flow.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/FlowUpdate.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Model.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Node.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeModel.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeOperating.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Operation.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Sentence.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionUpdateImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorFactoryImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorPackageImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowUpdateImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ModelImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeModelImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeOperatingImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/OperationImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/SentenceImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorSwitch.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorAntlrTokenFileProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorParser.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.tokens [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSemanticSequencer.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSyntacticSequencer.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/AbstractEditorValidator.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtext [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/EditorRuntimeModule.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetup.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/GenerateEditor.mwe2 [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.xtend [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.java._trace [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.xtendbin [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/Grammer.text [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/META-INF/MANIFEST.MF [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/Activator.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/INemoParser.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoAction.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoClient.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl2.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserUtils.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoType.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/PostType.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/UUIDUtils.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Action.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/ActionValue.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Connection.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Flow.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoInput.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoItem.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Match.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/MatchValue.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput2.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Node.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Operation.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Property.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/User.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/collectinfo/GetContent.class [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/build.properties [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/icons/nemo.gif [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/commons-codec-1.6.jar [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/commons-logging-1.1.3.jar [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpclient-4.3.5.jar [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpclient-cache-4.3.5.jar [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpcore-4.3.2.jar [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpmime-4.3.5.jar [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/json-20140107.jar [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/plugin.xml [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/Activator.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/INemoParser.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoAction.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoClient.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl2.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserUtils.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoType.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/PostType.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/UUIDUtils.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Action.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/ActionValue.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Connection.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Flow.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoInput.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoItem.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Match.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/MatchValue.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput2.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Node.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Operation.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Property.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/User.java [new file with mode: 0644]
nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/collectinfo/GetContent.java [new file with mode: 0644]

diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.sdk/build.properties b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.sdk/build.properties
new file mode 100644 (file)
index 0000000..442bd78
--- /dev/null
@@ -0,0 +1 @@
+bin.includes =feature.xml
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.sdk/feature.xml b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.sdk/feature.xml
new file mode 100644 (file)
index 0000000..e722be3
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature id="org.opendaylight.nemo.tool.eclipse.plugin.editor.sdk"
+       label="Editor SDK Feature "
+       version="1.0.0.qualifier">
+       <plugin
+                       id="org.opendaylight.nemo.tool.eclipse.plugin.editor"
+                       download-size="0"
+                       install-size="0"
+                       version="0.0.0"
+                       unpack="false"/>
+       <plugin
+                       id="org.opendaylight.nemo.tool.eclipse.plugin.editor.ui"
+                       download-size="0"
+                       install-size="0"
+                       version="0.0.0"
+                       unpack="false"/>
+</feature>
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/META-INF/MANIFEST.MF b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..db0e759
--- /dev/null
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0\r
+Bundle-ManifestVersion: 2\r
+Bundle-Name: org.opendaylight.nemo.tool.eclipse.plugin.editor.tests\r
+Bundle-Vendor: My Company\r
+Bundle-Version: 1.0.0.qualifier\r
+Bundle-SymbolicName: org.opendaylight.nemo.tool.eclipse.plugin.editor.tests; singleton:=true\r
+Bundle-ActivationPolicy: lazy\r
+Require-Bundle: org.opendaylight.nemo.tool.eclipse.plugin.editor,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.editor.ui,\r
+ org.eclipse.core.runtime,\r
+ org.eclipse.xtext.junit4,\r
+ org.eclipse.xtext.xbase.lib,\r
+ org.eclipse.ui.workbench;resolution:=optional,\r
+ org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional\r
+Import-Package: org.apache.log4j,\r
+ org.junit;version="4.5.0",\r
+ org.junit.runner;version="4.5.0",\r
+ org.junit.runner.manipulation;version="4.5.0",\r
+ org.junit.runner.notification;version="4.5.0",\r
+ org.junit.runners;version="4.5.0",\r
+ org.junit.runners.model;version="4.5.0",\r
+ org.hamcrest.core\r
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8\r
+Export-Package: org.opendaylight.nemo.tool.eclipse.plugin\r
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorInjectorProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorInjectorProvider.class
new file mode 100644 (file)
index 0000000..a0cc3d9
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorInjectorProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorUiInjectorProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorUiInjectorProvider.class
new file mode 100644 (file)
index 0000000..b8b4e0b
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorUiInjectorProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/build.properties b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/build.properties
new file mode 100644 (file)
index 0000000..c22eebe
--- /dev/null
@@ -0,0 +1,5 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = META-INF/,\
+       .
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests.launch b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests.launch
new file mode 100644 (file)
index 0000000..060535d
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.opendaylight.nemo.tool.eclipse.plugin.editor.tests"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.opendaylight.nemo.tool.eclipse.plugin.editor.tests"/>
+</launchConfiguration>
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/EditorInjectorProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/EditorInjectorProvider.java
new file mode 100644 (file)
index 0000000..9f25cec
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin;
+
+import org.eclipse.xtext.junit4.GlobalRegistries;
+import org.eclipse.xtext.junit4.GlobalRegistries.GlobalStateMemento;
+import org.eclipse.xtext.junit4.IInjectorProvider;
+import org.eclipse.xtext.junit4.IRegistryConfigurator;
+
+import com.google.inject.Injector;
+
+public class EditorInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
+       
+    protected GlobalStateMemento stateBeforeInjectorCreation;
+       protected GlobalStateMemento stateAfterInjectorCreation;
+       protected Injector injector;
+
+       static {
+               GlobalRegistries.initializeDefaults();
+       }
+
+       @Override
+       public Injector getInjector()
+       {
+               if (injector == null) {
+                       stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+                       this.injector = internalCreateInjector();
+                       stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+               }
+               return injector;
+       }
+       
+       protected Injector internalCreateInjector() {
+           return new EditorStandaloneSetup().createInjectorAndDoEMFRegistration();
+       }
+
+       @Override
+       public void restoreRegistry() {
+               stateBeforeInjectorCreation.restoreGlobalState();
+       }
+
+       @Override
+       public void setupRegistry() {
+               getInjector();
+               stateAfterInjectorCreation.restoreGlobalState();
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/EditorUiInjectorProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/EditorUiInjectorProvider.java
new file mode 100644 (file)
index 0000000..1c6afa5
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class EditorUiInjectorProvider implements IInjectorProvider {
+       
+       @Override
+       public Injector getInjector() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.ui.internal.EditorActivator.getInstance().getInjector("org.opendaylight.nemo.tool.eclipse.plugin.Editor");
+       }
+       
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/META-INF/MANIFEST.MF b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..05b3774
--- /dev/null
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0\r
+Bundle-ManifestVersion: 2\r
+Bundle-Name: org.opendaylight.nemo.tool.eclipse.plugin.editor.ui\r
+Bundle-Vendor: My Company\r
+Bundle-Version: 1.0.0.qualifier\r
+Bundle-SymbolicName: org.opendaylight.nemo.tool.eclipse.plugin.editor.ui; singleton:=true\r
+Bundle-ActivationPolicy: lazy\r
+Require-Bundle: org.opendaylight.nemo.tool.eclipse.plugin.editor;visibility:=reexport,\r
+ org.eclipse.xtext.ui,\r
+ org.eclipse.ui.editors;bundle-version="3.5.0",\r
+ org.eclipse.ui.ide;bundle-version="3.5.0",\r
+ org.eclipse.xtext.ui.shared,\r
+ org.eclipse.ui,\r
+ org.eclipse.xtext.builder,\r
+ org.eclipse.xtext.xbase.lib,\r
+ org.eclipse.xtext.common.types.ui,\r
+ org.eclipse.xtext.ui.codetemplates.ui,\r
+ org.eclipse.compare\r
+Import-Package: org.apache.log4j\r
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8\r
+Export-Package: org.opendaylight.nemo.tool.eclipse.plugin.ui.quickfix,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.ui.internal,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr\r
+Bundle-Activator: org.opendaylight.nemo.tool.eclipse.plugin.ui.internal.EditorActivator\r
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/AbstractEditorUiModule.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/AbstractEditorUiModule.class
new file mode 100644 (file)
index 0000000..8303e78
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/AbstractEditorUiModule.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorExecutableExtensionFactory.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorExecutableExtensionFactory.class
new file mode 100644 (file)
index 0000000..518efa2
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorExecutableExtensionFactory.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorUiModule.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorUiModule.class
new file mode 100644 (file)
index 0000000..a91b0fc
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorUiModule.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.java._trace
new file mode 100644 (file)
index 0000000..6c5eee4
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.xtendbin
new file mode 100644 (file)
index 0000000..63ea98e
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/AbstractEditorProposalProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/AbstractEditorProposalProvider.class
new file mode 100644 (file)
index 0000000..def28bd
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/AbstractEditorProposalProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.class
new file mode 100644 (file)
index 0000000..35be1c0
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.xtend
new file mode 100644 (file)
index 0000000..444c759
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist
+
+import org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.AbstractEditorProposalProvider
+
+/**
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist
+ * on how to customize the content assistant.
+ */
+class EditorProposalProvider extends AbstractEditorProposalProvider {
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser$1.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser$1.class
new file mode 100644 (file)
index 0000000..af24dec
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser$1.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser.class
new file mode 100644 (file)
index 0000000..e8a6ebd
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/PartialEditorContentAssistParser.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/PartialEditorContentAssistParser.class
new file mode 100644 (file)
index 0000000..12221d8
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/PartialEditorContentAssistParser.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g
new file mode 100644 (file)
index 0000000..a1fd830
--- /dev/null
@@ -0,0 +1,5223 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalEditor;
+
+options {
+       superClass=AbstractInternalContentAssistParser;
+       
+}
+
+@lexer::header {
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.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.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.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.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+}
+
+@parser::members {
+       private EditorGrammarAccess grammarAccess;
+       
+    public void setGrammarAccess(EditorGrammarAccess 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().getSentencesAssignment()); }
+(rule__Model__SentencesAssignment)*
+{ after(grammarAccess.getModelAccess().getSentencesAssignment()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSentence
+entryRuleSentence 
+:
+{ before(grammarAccess.getSentenceRule()); }
+        ruleSentence
+{ after(grammarAccess.getSentenceRule()); } 
+        EOF 
+;
+
+// Rule Sentence
+ruleSentence
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getSentenceAccess().getAlternatives()); }
+(rule__Sentence__Alternatives)
+{ after(grammarAccess.getSentenceAccess().getAlternatives()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSenEngines
+entryRuleSenEngines 
+:
+{ before(grammarAccess.getSenEnginesRule()); }
+        ruleSenEngines
+{ after(grammarAccess.getSenEnginesRule()); } 
+        EOF 
+;
+
+// Rule SenEngines
+ruleSenEngines
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getSenEnginesAccess().getGroup()); }
+(rule__SenEngines__Group__0)
+{ after(grammarAccess.getSenEnginesAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleIpv4
+entryRuleIpv4 
+:
+{ before(grammarAccess.getIpv4Rule()); }
+        ruleIpv4
+{ after(grammarAccess.getIpv4Rule()); } 
+        EOF 
+;
+
+// Rule Ipv4
+ruleIpv4
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getIpv4Access().getGroup()); }
+(rule__Ipv4__Group__0)
+{ after(grammarAccess.getIpv4Access().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleUser
+entryRuleUser 
+:
+{ before(grammarAccess.getUserRule()); }
+        ruleUser
+{ after(grammarAccess.getUserRule()); } 
+        EOF 
+;
+
+// Rule User
+ruleUser
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getUserAccess().getGroup()); }
+(rule__User__Group__0)
+{ after(grammarAccess.getUserAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNode
+entryRuleNode 
+:
+{ before(grammarAccess.getNodeRule()); }
+        ruleNode
+{ after(grammarAccess.getNodeRule()); } 
+        EOF 
+;
+
+// Rule Node
+ruleNode
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getNodeAccess().getGroup()); }
+(rule__Node__Group__0)
+{ after(grammarAccess.getNodeAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleNodeOperating
+entryRuleNodeOperating 
+:
+{ before(grammarAccess.getNodeOperatingRule()); }
+        ruleNodeOperating
+{ after(grammarAccess.getNodeOperatingRule()); } 
+        EOF 
+;
+
+// Rule NodeOperating
+ruleNodeOperating
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getNodeOperatingAccess().getGroup()); }
+(rule__NodeOperating__Group__0)
+{ after(grammarAccess.getNodeOperatingAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleConnection
+entryRuleConnection 
+:
+{ before(grammarAccess.getConnectionRule()); }
+        ruleConnection
+{ after(grammarAccess.getConnectionRule()); } 
+        EOF 
+;
+
+// Rule Connection
+ruleConnection
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getConnectionAccess().getGroup()); }
+(rule__Connection__Group__0)
+{ after(grammarAccess.getConnectionAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleConnectionUpdate
+entryRuleConnectionUpdate 
+:
+{ before(grammarAccess.getConnectionUpdateRule()); }
+        ruleConnectionUpdate
+{ after(grammarAccess.getConnectionUpdateRule()); } 
+        EOF 
+;
+
+// Rule ConnectionUpdate
+ruleConnectionUpdate
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getGroup()); }
+(rule__ConnectionUpdate__Group__0)
+{ after(grammarAccess.getConnectionUpdateAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFlow
+entryRuleFlow 
+:
+{ before(grammarAccess.getFlowRule()); }
+        ruleFlow
+{ after(grammarAccess.getFlowRule()); } 
+        EOF 
+;
+
+// Rule Flow
+ruleFlow
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getFlowAccess().getGroup()); }
+(rule__Flow__Group__0)
+{ after(grammarAccess.getFlowAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFlowUpdate
+entryRuleFlowUpdate 
+:
+{ before(grammarAccess.getFlowUpdateRule()); }
+        ruleFlowUpdate
+{ after(grammarAccess.getFlowUpdateRule()); } 
+        EOF 
+;
+
+// Rule FlowUpdate
+ruleFlowUpdate
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getFlowUpdateAccess().getGroup()); }
+(rule__FlowUpdate__Group__0)
+{ after(grammarAccess.getFlowUpdateAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleMatches
+entryRuleMatches 
+:
+{ before(grammarAccess.getMatchesRule()); }
+        ruleMatches
+{ after(grammarAccess.getMatchesRule()); } 
+        EOF 
+;
+
+// Rule Matches
+ruleMatches
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getMatchesAccess().getGroup()); }
+(rule__Matches__Group__0)
+{ after(grammarAccess.getMatchesAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleMatch
+entryRuleMatch 
+:
+{ before(grammarAccess.getMatchRule()); }
+        ruleMatch
+{ after(grammarAccess.getMatchRule()); } 
+        EOF 
+;
+
+// Rule Match
+ruleMatch
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getMatchAccess().getGroup()); }
+(rule__Match__Group__0)
+{ after(grammarAccess.getMatchAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOperation
+entryRuleOperation 
+:
+{ before(grammarAccess.getOperationRule()); }
+        ruleOperation
+{ after(grammarAccess.getOperationRule()); } 
+        EOF 
+;
+
+// Rule Operation
+ruleOperation
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getOperationAccess().getGroup()); }
+(rule__Operation__Group__0)
+{ after(grammarAccess.getOperationAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleCondition
+entryRuleCondition 
+:
+{ before(grammarAccess.getConditionRule()); }
+        ruleCondition
+{ after(grammarAccess.getConditionRule()); } 
+        EOF 
+;
+
+// Rule Condition
+ruleCondition
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getConditionAccess().getGroup()); }
+(rule__Condition__Group__0)
+{ after(grammarAccess.getConditionAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProperty
+entryRuleProperty 
+:
+{ before(grammarAccess.getPropertyRule()); }
+        ruleProperty
+{ after(grammarAccess.getPropertyRule()); } 
+        EOF 
+;
+
+// Rule Property
+ruleProperty
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getPropertyAccess().getGroup()); }
+(rule__Property__Group__0)
+{ after(grammarAccess.getPropertyAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOneProperty
+entryRuleOneProperty 
+:
+{ before(grammarAccess.getOnePropertyRule()); }
+        ruleOneProperty
+{ after(grammarAccess.getOnePropertyRule()); } 
+        EOF 
+;
+
+// Rule OneProperty
+ruleOneProperty
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getOnePropertyAccess().getGroup()); }
+(rule__OneProperty__Group__0)
+{ after(grammarAccess.getOnePropertyAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleModelProperty
+entryRuleModelProperty 
+:
+{ before(grammarAccess.getModelPropertyRule()); }
+        ruleModelProperty
+{ after(grammarAccess.getModelPropertyRule()); } 
+        EOF 
+;
+
+// Rule ModelProperty
+ruleModelProperty
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getModelPropertyAccess().getGroup()); }
+(rule__ModelProperty__Group__0)
+{ after(grammarAccess.getModelPropertyAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOneModelProperty
+entryRuleOneModelProperty 
+:
+{ before(grammarAccess.getOneModelPropertyRule()); }
+        ruleOneModelProperty
+{ after(grammarAccess.getOneModelPropertyRule()); } 
+        EOF 
+;
+
+// Rule OneModelProperty
+ruleOneModelProperty
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getGroup()); }
+(rule__OneModelProperty__Group__0)
+{ after(grammarAccess.getOneModelPropertyAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNewObj
+entryRuleNewObj 
+:
+{ before(grammarAccess.getNewObjRule()); }
+        ruleNewObj
+{ after(grammarAccess.getNewObjRule()); } 
+        EOF 
+;
+
+// Rule NewObj
+ruleNewObj
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getNewObjAccess().getAlternatives()); }
+(rule__NewObj__Alternatives)
+{ after(grammarAccess.getNewObjAccess().getAlternatives()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+rule__Sentence__Alternatives
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()); }
+       ruleSenEngines
+{ after(grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getUserParserRuleCall_1()); }
+       ruleUser
+{ after(grammarAccess.getSentenceAccess().getUserParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getNodeParserRuleCall_2()); }
+       ruleNode
+{ after(grammarAccess.getSentenceAccess().getNodeParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getNodeOperatingParserRuleCall_3()); }
+       ruleNodeOperating
+{ after(grammarAccess.getSentenceAccess().getNodeOperatingParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getConnectionParserRuleCall_4()); }
+       ruleConnection
+{ after(grammarAccess.getSentenceAccess().getConnectionParserRuleCall_4()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getConnectionUpdateParserRuleCall_5()); }
+       ruleConnectionUpdate
+{ after(grammarAccess.getSentenceAccess().getConnectionUpdateParserRuleCall_5()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getFlowParserRuleCall_6()); }
+       ruleFlow
+{ after(grammarAccess.getSentenceAccess().getFlowParserRuleCall_6()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getFlowUpdateParserRuleCall_7()); }
+       ruleFlowUpdate
+{ after(grammarAccess.getSentenceAccess().getFlowUpdateParserRuleCall_7()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getOperationParserRuleCall_8()); }
+       ruleOperation
+{ after(grammarAccess.getSentenceAccess().getOperationParserRuleCall_8()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Alternatives_0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0()); }
+
+       'UPDATE' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1()); }
+
+       'DELETE' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Alternatives_0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0()); }
+
+       'UPDATE' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1()); }
+
+       'DELETE' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Alternatives_0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0()); }
+
+       'UPDATE' 
+
+{ after(grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1()); }
+
+       'DELETE' 
+
+{ after(grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Alternatives_8
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_0()); }
+       RULE_NEMOID
+{ after(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOperationAccess().getGroup_8_1()); }
+(rule__Operation__Group_8_1__0)
+{ after(grammarAccess.getOperationAccess().getGroup_8_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneProperty__Alternatives_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOnePropertyAccess().getSTRINGTerminalRuleCall_2_0()); }
+       RULE_STRING
+{ after(grammarAccess.getOnePropertyAccess().getSTRINGTerminalRuleCall_2_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOnePropertyAccess().getINTTerminalRuleCall_2_1()); }
+       RULE_INT
+{ after(grammarAccess.getOnePropertyAccess().getINTTerminalRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneModelProperty__Alternatives_0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getSTRINGTerminalRuleCall_0_0()); }
+       RULE_STRING
+{ after(grammarAccess.getOneModelPropertyAccess().getSTRINGTerminalRuleCall_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOneModelPropertyAccess().getINTTerminalRuleCall_0_1()); }
+       RULE_INT
+{ after(grammarAccess.getOneModelPropertyAccess().getINTTerminalRuleCall_0_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NewObj__Alternatives
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNewObjAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getNewObjAccess().getCREATEKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNewObjAccess().getIMPORTKeyword_1()); }
+
+       'IMPORT' 
+
+{ after(grammarAccess.getNewObjAccess().getIMPORTKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+rule__SenEngines__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group__0__Impl
+       rule__SenEngines__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getEnginesKeyword_0()); }
+
+       'Engines:' 
+
+{ after(grammarAccess.getSenEnginesAccess().getEnginesKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__SenEngines__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group__1__Impl
+       rule__SenEngines__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_1()); }
+       ruleIpv4
+{ after(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__SenEngines__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group__2__Impl
+       rule__SenEngines__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getGroup_2()); }
+(rule__SenEngines__Group_2__0)*
+{ after(grammarAccess.getSenEnginesAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__SenEngines__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group__3__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getSemicolonKeyword_3()); }
+
+       ';' 
+
+{ after(grammarAccess.getSenEnginesAccess().getSemicolonKeyword_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__SenEngines__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group_2__0__Impl
+       rule__SenEngines__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getSenEnginesAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__SenEngines__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_2_1()); }
+       ruleIpv4
+{ after(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Ipv4__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__0__Impl
+       rule__Ipv4__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_0()); }
+       RULE_IPV4_SUB
+{ after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__1__Impl
+       rule__Ipv4__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getFullStopKeyword_1()); }
+
+       '.' 
+
+{ after(grammarAccess.getIpv4Access().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__2__Impl
+       rule__Ipv4__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_2()); }
+       RULE_IPV4_SUB
+{ after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__3__Impl
+       rule__Ipv4__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getFullStopKeyword_3()); }
+
+       '.' 
+
+{ after(grammarAccess.getIpv4Access().getFullStopKeyword_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__4__Impl
+       rule__Ipv4__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_4()); }
+       RULE_IPV4_SUB
+{ after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__5__Impl
+       rule__Ipv4__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getFullStopKeyword_5()); }
+
+       '.' 
+
+{ after(grammarAccess.getIpv4Access().getFullStopKeyword_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__6__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_6()); }
+       RULE_IPV4_SUB
+{ after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__User__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__0__Impl
+       rule__User__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getUserAccess().getCREATEKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__User__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__1__Impl
+       rule__User__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_1()); }
+       RULE_STRING
+{ after(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__User__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__2__Impl
+       rule__User__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_2()); }
+       RULE_STRING
+{ after(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__User__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__3__Impl
+       rule__User__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_3()); }
+       RULE_STRING
+{ after(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__User__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__4__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getSemicolonKeyword_4()); }
+
+       ';' 
+
+{ after(grammarAccess.getUserAccess().getSemicolonKeyword_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Node__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__0__Impl
+       rule__Node__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNewObjParserRuleCall_0()); }
+       ruleNewObj
+{ after(grammarAccess.getNodeAccess().getNewObjParserRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__1__Impl
+       rule__Node__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodeKeyword_1()); }
+
+       'Node' 
+
+{ after(grammarAccess.getNodeAccess().getNodeKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__2__Impl
+       rule__Node__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNameAssignment_2()); }
+(rule__Node__NameAssignment_2)
+{ after(grammarAccess.getNodeAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__3__Impl
+       rule__Node__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getGroup_3()); }
+(rule__Node__Group_3__0)
+{ after(grammarAccess.getNodeAccess().getGroup_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__4__Impl
+       rule__Node__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getGroup_4()); }
+(rule__Node__Group_4__0)?
+{ after(grammarAccess.getNodeAccess().getGroup_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__5__Impl
+       rule__Node__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getPropertyParserRuleCall_5()); }
+(      ruleProperty)?
+{ after(grammarAccess.getNodeAccess().getPropertyParserRuleCall_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__6__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getSemicolonKeyword_6()); }
+
+       ';' 
+
+{ after(grammarAccess.getNodeAccess().getSemicolonKeyword_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Node__Group_3__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_3__0__Impl
+       rule__Node__Group_3__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_3__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getTypeKeyword_3_0()); }
+
+       'Type' 
+
+{ after(grammarAccess.getNodeAccess().getTypeKeyword_3_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group_3__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_3__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_3__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNemoIdTerminalRuleCall_3_1()); }
+       RULE_NEMOID
+{ after(grammarAccess.getNodeAccess().getNemoIdTerminalRuleCall_3_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Node__Group_4__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4__0__Impl
+       rule__Node__Group_4__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getContainKeyword_4_0()); }
+
+       'Contain' 
+
+{ after(grammarAccess.getNodeAccess().getContainKeyword_4_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group_4__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4__1__Impl
+       rule__Node__Group_4__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodesAssignment_4_1()); }
+(rule__Node__NodesAssignment_4_1)
+{ after(grammarAccess.getNodeAccess().getNodesAssignment_4_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group_4__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getGroup_4_2()); }
+(rule__Node__Group_4_2__0)*
+{ after(grammarAccess.getNodeAccess().getGroup_4_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Node__Group_4_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4_2__0__Impl
+       rule__Node__Group_4_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getCommaKeyword_4_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getNodeAccess().getCommaKeyword_4_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group_4_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodesAssignment_4_2_1()); }
+(rule__Node__NodesAssignment_4_2_1)
+{ after(grammarAccess.getNodeAccess().getNodesAssignment_4_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__NodeOperating__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__0__Impl
+       rule__NodeOperating__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getAlternatives_0()); }
+(rule__NodeOperating__Alternatives_0)
+{ after(grammarAccess.getNodeOperatingAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__1__Impl
+       rule__NodeOperating__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodeKeyword_1()); }
+
+       'Node' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getNodeKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__2__Impl
+       rule__NodeOperating__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodenameAssignment_2()); }
+(rule__NodeOperating__NodenameAssignment_2)
+{ after(grammarAccess.getNodeOperatingAccess().getNodenameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__3__Impl
+       rule__NodeOperating__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getGroup_3()); }
+(rule__NodeOperating__Group_3__0)?
+{ after(grammarAccess.getNodeOperatingAccess().getGroup_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__4__Impl
+       rule__NodeOperating__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getGroup_4()); }
+(rule__NodeOperating__Group_4__0)?
+{ after(grammarAccess.getNodeOperatingAccess().getGroup_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__5__Impl
+       rule__NodeOperating__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5()); }
+(      ruleProperty)?
+{ after(grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__6__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getSemicolonKeyword_6()); }
+
+       ';' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getSemicolonKeyword_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NodeOperating__Group_3__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_3__0__Impl
+       rule__NodeOperating__Group_3__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_3__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0()); }
+
+       'Type' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group_3__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_3__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_3__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()); }
+       RULE_NEMOID
+{ after(grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NodeOperating__Group_4__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4__0__Impl
+       rule__NodeOperating__Group_4__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getContainKeyword_4_0()); }
+
+       'Contain' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getContainKeyword_4_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group_4__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4__1__Impl
+       rule__NodeOperating__Group_4__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_1()); }
+(rule__NodeOperating__NodesAssignment_4_1)
+{ after(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group_4__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getGroup_4_2()); }
+(rule__NodeOperating__Group_4_2__0)*
+{ after(grammarAccess.getNodeOperatingAccess().getGroup_4_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__NodeOperating__Group_4_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4_2__0__Impl
+       rule__NodeOperating__Group_4_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getCommaKeyword_4_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getCommaKeyword_4_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group_4_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_2_1()); }
+(rule__NodeOperating__NodesAssignment_4_2_1)
+{ after(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Connection__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__0__Impl
+       rule__Connection__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getConnectionAccess().getCREATEKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__1__Impl
+       rule__Connection__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getConnectionKeyword_1()); }
+
+       'Connection' 
+
+{ after(grammarAccess.getConnectionAccess().getConnectionKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__2__Impl
+       rule__Connection__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getNameAssignment_2()); }
+(rule__Connection__NameAssignment_2)
+{ after(grammarAccess.getConnectionAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__3__Impl
+       rule__Connection__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getTypeKeyword_3()); }
+
+       'Type' 
+
+{ after(grammarAccess.getConnectionAccess().getTypeKeyword_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__4__Impl
+       rule__Connection__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getNemoIdTerminalRuleCall_4()); }
+       RULE_NEMOID
+{ after(grammarAccess.getConnectionAccess().getNemoIdTerminalRuleCall_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__5__Impl
+       rule__Connection__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getGroup_5()); }
+(rule__Connection__Group_5__0)
+{ after(grammarAccess.getConnectionAccess().getGroup_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__6__Impl
+       rule__Connection__Group__7
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6()); }
+(      ruleProperty)?
+{ after(grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__7
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__7__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__7__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getSemicolonKeyword_7()); }
+
+       ';' 
+
+{ after(grammarAccess.getConnectionAccess().getSemicolonKeyword_7()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Connection__Group_5__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5__0__Impl
+       rule__Connection__Group_5__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodesKeyword_5_0()); }
+
+       'Endnodes' 
+
+{ after(grammarAccess.getConnectionAccess().getEndnodesKeyword_5_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group_5__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5__1__Impl
+       rule__Connection__Group_5__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_1()); }
+(rule__Connection__EndnodeAssignment_5_1)
+{ after(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group_5__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getGroup_5_2()); }
+(rule__Connection__Group_5_2__0)*
+{ after(grammarAccess.getConnectionAccess().getGroup_5_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Connection__Group_5_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5_2__0__Impl
+       rule__Connection__Group_5_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getCommaKeyword_5_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getConnectionAccess().getCommaKeyword_5_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group_5_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_2_1()); }
+(rule__Connection__EndnodeAssignment_5_2_1)
+{ after(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConnectionUpdate__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__0__Impl
+       rule__ConnectionUpdate__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getAlternatives_0()); }
+(rule__ConnectionUpdate__Alternatives_0)
+{ after(grammarAccess.getConnectionUpdateAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__1__Impl
+       rule__ConnectionUpdate__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getConnectionKeyword_1()); }
+
+       'Connection' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getConnectionKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__2__Impl
+       rule__ConnectionUpdate__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getConnectionnameAssignment_2()); }
+(rule__ConnectionUpdate__ConnectionnameAssignment_2)
+{ after(grammarAccess.getConnectionUpdateAccess().getConnectionnameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__3__Impl
+       rule__ConnectionUpdate__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getGroup_3()); }
+(rule__ConnectionUpdate__Group_3__0)?
+{ after(grammarAccess.getConnectionUpdateAccess().getGroup_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__4__Impl
+       rule__ConnectionUpdate__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getGroup_4()); }
+(rule__ConnectionUpdate__Group_4__0)?
+{ after(grammarAccess.getConnectionUpdateAccess().getGroup_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__5__Impl
+       rule__ConnectionUpdate__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5()); }
+(      ruleProperty)?
+{ after(grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__6__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getSemicolonKeyword_6()); }
+
+       ';' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getSemicolonKeyword_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ConnectionUpdate__Group_3__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_3__0__Impl
+       rule__ConnectionUpdate__Group_3__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_3__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0()); }
+
+       'Type' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group_3__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_3__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_3__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()); }
+       RULE_NEMOID
+{ after(grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConnectionUpdate__Group_4__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4__0__Impl
+       rule__ConnectionUpdate__Group_4__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodesKeyword_4_0()); }
+
+       'Endnodes' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodesKeyword_4_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group_4__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4__1__Impl
+       rule__ConnectionUpdate__Group_4__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_1()); }
+(rule__ConnectionUpdate__EndnodeAssignment_4_1)
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group_4__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getGroup_4_2()); }
+(rule__ConnectionUpdate__Group_4_2__0)*
+{ after(grammarAccess.getConnectionUpdateAccess().getGroup_4_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ConnectionUpdate__Group_4_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4_2__0__Impl
+       rule__ConnectionUpdate__Group_4_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getCommaKeyword_4_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getCommaKeyword_4_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group_4_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_2_1()); }
+(rule__ConnectionUpdate__EndnodeAssignment_4_2_1)
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Flow__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__0__Impl
+       rule__Flow__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getFlowAccess().getCREATEKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__1__Impl
+       rule__Flow__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getFlowKeyword_1()); }
+
+       'Flow' 
+
+{ after(grammarAccess.getFlowAccess().getFlowKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__2__Impl
+       rule__Flow__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getNameAssignment_2()); }
+(rule__Flow__NameAssignment_2)
+{ after(grammarAccess.getFlowAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__3__Impl
+       rule__Flow__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getMatchesParserRuleCall_3()); }
+(      ruleMatches)?
+{ after(grammarAccess.getFlowAccess().getMatchesParserRuleCall_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__4__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getSemicolonKeyword_4()); }
+
+       ';' 
+
+{ after(grammarAccess.getFlowAccess().getSemicolonKeyword_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FlowUpdate__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__0__Impl
+       rule__FlowUpdate__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getAlternatives_0()); }
+(rule__FlowUpdate__Alternatives_0)
+{ after(grammarAccess.getFlowUpdateAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__FlowUpdate__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__1__Impl
+       rule__FlowUpdate__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getFlowKeyword_1()); }
+
+       'Flow' 
+
+{ after(grammarAccess.getFlowUpdateAccess().getFlowKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__FlowUpdate__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__2__Impl
+       rule__FlowUpdate__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getFlowIdAssignment_2()); }
+(rule__FlowUpdate__FlowIdAssignment_2)
+{ after(grammarAccess.getFlowUpdateAccess().getFlowIdAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__FlowUpdate__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__3__Impl
+       rule__FlowUpdate__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3()); }
+(      ruleMatches)?
+{ after(grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__FlowUpdate__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__4__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getSemicolonKeyword_4()); }
+
+       ';' 
+
+{ after(grammarAccess.getFlowUpdateAccess().getSemicolonKeyword_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Matches__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group__0__Impl
+       rule__Matches__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getMatchKeyword_0()); }
+
+       'Match' 
+
+{ after(grammarAccess.getMatchesAccess().getMatchKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Matches__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group__1__Impl
+       rule__Matches__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getMatchParserRuleCall_1()); }
+       ruleMatch
+{ after(grammarAccess.getMatchesAccess().getMatchParserRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Matches__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getGroup_2()); }
+(rule__Matches__Group_2__0)*
+{ after(grammarAccess.getMatchesAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Matches__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group_2__0__Impl
+       rule__Matches__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getMatchesAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Matches__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getMatchParserRuleCall_2_1()); }
+       ruleMatch
+{ after(grammarAccess.getMatchesAccess().getMatchParserRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Match__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Match__Group__0__Impl
+       rule__Match__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Match__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchAccess().getNemoIdTerminalRuleCall_0()); }
+       RULE_NEMOID
+{ after(grammarAccess.getMatchAccess().getNemoIdTerminalRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Match__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Match__Group__1__Impl
+       rule__Match__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Match__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchAccess().getColonKeyword_1()); }
+
+       ':' 
+
+{ after(grammarAccess.getMatchAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Match__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Match__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Match__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchAccess().getSTRINGTerminalRuleCall_2()); }
+       RULE_STRING
+{ after(grammarAccess.getMatchAccess().getSTRINGTerminalRuleCall_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Operation__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__0__Impl
+       rule__Operation__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getOperationAccess().getCREATEKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__1__Impl
+       rule__Operation__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getOperationKeyword_1()); }
+
+       'Operation' 
+
+{ after(grammarAccess.getOperationAccess().getOperationKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__2__Impl
+       rule__Operation__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getNameAssignment_2()); }
+(rule__Operation__NameAssignment_2)
+{ after(grammarAccess.getOperationAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__3__Impl
+       rule__Operation__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getGroup_3()); }
+(rule__Operation__Group_3__0)?
+{ after(grammarAccess.getOperationAccess().getGroup_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__4__Impl
+       rule__Operation__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetKeyword_4()); }
+
+       'Target' 
+
+{ after(grammarAccess.getOperationAccess().getTargetKeyword_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__5__Impl
+       rule__Operation__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetIdAssignment_5()); }
+(rule__Operation__TargetIdAssignment_5)
+{ after(grammarAccess.getOperationAccess().getTargetIdAssignment_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__6__Impl
+       rule__Operation__Group__7
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getConditionParserRuleCall_6()); }
+(      ruleCondition)?
+{ after(grammarAccess.getOperationAccess().getConditionParserRuleCall_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__7
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__7__Impl
+       rule__Operation__Group__8
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__7__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getActionKeyword_7()); }
+
+       'Action' 
+
+{ after(grammarAccess.getOperationAccess().getActionKeyword_7()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__8
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__8__Impl
+       rule__Operation__Group__9
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__8__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getAlternatives_8()); }
+(rule__Operation__Alternatives_8)
+{ after(grammarAccess.getOperationAccess().getAlternatives_8()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__9
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__9__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__9__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getSemicolonKeyword_9()); }
+
+       ';' 
+
+{ after(grammarAccess.getOperationAccess().getSemicolonKeyword_9()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Operation__Group_3__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_3__0__Impl
+       rule__Operation__Group_3__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_3__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getPriorityKeyword_3_0()); }
+
+       'Priority' 
+
+{ after(grammarAccess.getOperationAccess().getPriorityKeyword_3_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group_3__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_3__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_3__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getValueAssignment_3_1()); }
+(rule__Operation__ValueAssignment_3_1)
+{ after(grammarAccess.getOperationAccess().getValueAssignment_3_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Operation__Group_8_1__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_8_1__0__Impl
+       rule__Operation__Group_8_1__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_8_1__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_1_0()); }
+       RULE_NEMOID
+{ after(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group_8_1__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_8_1__1__Impl
+       rule__Operation__Group_8_1__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_8_1__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getColonKeyword_8_1_1()); }
+
+       ':' 
+
+{ after(grammarAccess.getOperationAccess().getColonKeyword_8_1_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group_8_1__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_8_1__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_8_1__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetNodeAssignment_8_1_2()); }
+(rule__Operation__TargetNodeAssignment_8_1_2)
+{ after(grammarAccess.getOperationAccess().getTargetNodeAssignment_8_1_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Condition__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group__0__Impl
+       rule__Condition__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getConditionKeyword_0()); }
+
+       'Condition' 
+
+{ after(grammarAccess.getConditionAccess().getConditionKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Condition__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group__1__Impl
+       rule__Condition__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_1()); }
+       RULE_STRING
+{ after(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Condition__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getGroup_2()); }
+(rule__Condition__Group_2__0)*
+{ after(grammarAccess.getConditionAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Condition__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group_2__0__Impl
+       rule__Condition__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getConditionAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Condition__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_2_1()); }
+       RULE_STRING
+{ after(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Property__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group__0__Impl
+       rule__Property__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getPropertyKeyword_0()); }
+
+       'Property ' 
+
+{ after(grammarAccess.getPropertyAccess().getPropertyKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Property__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group__1__Impl
+       rule__Property__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_1()); }
+       ruleOneProperty
+{ after(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Property__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getGroup_2()); }
+(rule__Property__Group_2__0)*
+{ after(grammarAccess.getPropertyAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Property__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group_2__0__Impl
+       rule__Property__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getPropertyAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Property__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_2_1()); }
+       ruleOneProperty
+{ after(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OneProperty__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneProperty__Group__0__Impl
+       rule__OneProperty__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneProperty__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOnePropertyAccess().getNemoIdTerminalRuleCall_0()); }
+       RULE_NEMOID
+{ after(grammarAccess.getOnePropertyAccess().getNemoIdTerminalRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__OneProperty__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneProperty__Group__1__Impl
+       rule__OneProperty__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneProperty__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOnePropertyAccess().getColonKeyword_1()); }
+
+       ':' 
+
+{ after(grammarAccess.getOnePropertyAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__OneProperty__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneProperty__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneProperty__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOnePropertyAccess().getAlternatives_2()); }
+(rule__OneProperty__Alternatives_2)
+{ after(grammarAccess.getOnePropertyAccess().getAlternatives_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ModelProperty__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group__0__Impl
+       rule__ModelProperty__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getPropertyKeyword_0()); }
+
+       'Property' 
+
+{ after(grammarAccess.getModelPropertyAccess().getPropertyKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ModelProperty__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group__1__Impl
+       rule__ModelProperty__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_1()); }
+       ruleOneModelProperty
+{ after(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ModelProperty__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getGroup_2()); }
+(rule__ModelProperty__Group_2__0)*
+{ after(grammarAccess.getModelPropertyAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ModelProperty__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group_2__0__Impl
+       rule__ModelProperty__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getModelPropertyAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ModelProperty__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_2_1()); }
+       ruleOneModelProperty
+{ after(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OneModelProperty__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneModelProperty__Group__0__Impl
+       rule__OneModelProperty__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneModelProperty__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getAlternatives_0()); }
+(rule__OneModelProperty__Alternatives_0)
+{ after(grammarAccess.getOneModelPropertyAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__OneModelProperty__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneModelProperty__Group__1__Impl
+       rule__OneModelProperty__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneModelProperty__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getColonKeyword_1()); }
+
+       ':' 
+
+{ after(grammarAccess.getOneModelPropertyAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__OneModelProperty__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneModelProperty__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneModelProperty__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getNemoIdTerminalRuleCall_2()); }
+       RULE_NEMOID
+{ after(grammarAccess.getOneModelPropertyAccess().getNemoIdTerminalRuleCall_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+rule__Model__SentencesAssignment
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelAccess().getSentencesSentenceParserRuleCall_0()); }
+       ruleSentence{ after(grammarAccess.getModelAccess().getSentencesSentenceParserRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__NameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__NodesAssignment_4_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__NodesAssignment_4_2_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_2_1_0()); }
+(
+{ before(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+)
+{ after(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_2_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__NodenameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodenameNodeCrossReference_2_0()); }
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodenameNodeNemoIdTerminalRuleCall_2_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeOperatingAccess().getNodenameNodeNemoIdTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getNodeOperatingAccess().getNodenameNodeCrossReference_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__NodesAssignment_4_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__NodesAssignment_4_2_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_2_1_0()); }
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+)
+{ after(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_2_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__NameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__EndnodeAssignment_5_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_1_0()); }
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_1_0_1()); }
+)
+{ after(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__EndnodeAssignment_5_2_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_2_1_0()); }
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_2_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_2_1_0_1()); }
+)
+{ after(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_2_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__ConnectionnameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionCrossReference_2_0()); }
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionNemoIdTerminalRuleCall_2_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionNemoIdTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionCrossReference_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__EndnodeAssignment_4_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__EndnodeAssignment_4_2_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_2_1_0()); }
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+)
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_2_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__NameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+       RULE_NEMOID{ after(grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__FlowIdAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getFlowIdFlowCrossReference_2_0()); }
+(
+{ before(grammarAccess.getFlowUpdateAccess().getFlowIdFlowNemoIdTerminalRuleCall_2_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getFlowUpdateAccess().getFlowIdFlowNemoIdTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getFlowUpdateAccess().getFlowIdFlowCrossReference_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__NameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+       RULE_NEMOID{ after(grammarAccess.getOperationAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__ValueAssignment_3_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getValueINTTerminalRuleCall_3_1_0()); }
+       RULE_INT{ after(grammarAccess.getOperationAccess().getValueINTTerminalRuleCall_3_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__TargetIdAssignment_5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetIdFlowCrossReference_5_0()); }
+(
+{ before(grammarAccess.getOperationAccess().getTargetIdFlowNemoIdTerminalRuleCall_5_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getOperationAccess().getTargetIdFlowNemoIdTerminalRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getOperationAccess().getTargetIdFlowCrossReference_5_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__TargetNodeAssignment_8_1_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetNodeNodeCrossReference_8_1_2_0()); }
+(
+{ before(grammarAccess.getOperationAccess().getTargetNodeNodeNemoIdTerminalRuleCall_8_1_2_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getOperationAccess().getTargetNodeNodeNemoIdTerminalRuleCall_8_1_2_0_1()); }
+)
+{ after(grammarAccess.getOperationAccess().getTargetNodeNodeCrossReference_8_1_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+RULE_IPV4_SUB : ('0'..'9'|'1'..'9' '0'..'9'|'1' '0'..'9' '0'..'9'|'2' '0'..'4' '0'..'9'|'25' '0'..'5');
+
+RULE_NEMOID : ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'-'|'0'..'9')*;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.tokens b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.tokens
new file mode 100644 (file)
index 0000000..92b438d
--- /dev/null
@@ -0,0 +1,55 @@
+','=19
+'.'=20
+':'=28
+';'=18
+'Action'=31
+'CREATE'=15
+'Condition'=33
+'Connection'=24
+'Contain'=23
+'DELETE'=14
+'Endnodes'=25
+'Engines:'=17
+'Flow'=26
+'IMPORT'=16
+'Match'=27
+'Node'=21
+'Operation'=29
+'Priority'=32
+'Property '=34
+'Property'=35
+'Target'=30
+'Type'=22
+'UPDATE'=13
+RULE_ANY_OTHER=12
+RULE_ID=8
+RULE_INT=6
+RULE_IPV4_SUB=7
+RULE_ML_COMMENT=9
+RULE_NEMOID=4
+RULE_SL_COMMENT=10
+RULE_STRING=5
+RULE_WS=11
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer$DFA1.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer$DFA1.class
new file mode 100644 (file)
index 0000000..3dcbdd5
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer$DFA1.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer$DFA14.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer$DFA14.class
new file mode 100644 (file)
index 0000000..0d1b127
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer$DFA14.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer.class
new file mode 100644 (file)
index 0000000..79f202b
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser$DFA2.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser$DFA2.class
new file mode 100644 (file)
index 0000000..0793d78
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser$DFA2.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser.class
new file mode 100644 (file)
index 0000000..bd36493
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/internal/EditorActivator.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/internal/EditorActivator.class
new file mode 100644 (file)
index 0000000..26018f0
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/internal/EditorActivator.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.java._trace
new file mode 100644 (file)
index 0000000..9ba4bbc
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.xtendbin
new file mode 100644 (file)
index 0000000..287c97e
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.java._trace
new file mode 100644 (file)
index 0000000..ac55a23
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.xtendbin
new file mode 100644 (file)
index 0000000..64c78a3
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.class
new file mode 100644 (file)
index 0000000..9580f6d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.xtend
new file mode 100644 (file)
index 0000000..1139f52
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.labeling
+
+//import org.eclipse.xtext.resource.IEObjectDescription
+
+/**
+ * Provides labels for IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class EditorDescriptionLabelProvider extends org.eclipse.xtext.ui.label.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/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.class
new file mode 100644 (file)
index 0000000..27e010f
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.xtend
new file mode 100644 (file)
index 0000000..41c4b6a
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.labeling
+
+import com.google.inject.Inject
+
+/**
+ * Provides labels for EObjects.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class EditorLabelProvider extends org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider {
+
+       @Inject
+       new(org.eclipse.emf.edit.ui.provider.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/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.java._trace
new file mode 100644 (file)
index 0000000..ceb929d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.xtendbin
new file mode 100644 (file)
index 0000000..a3d038c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.class
new file mode 100644 (file)
index 0000000..66b9d90
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.xtend
new file mode 100644 (file)
index 0000000..455fda8
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.outline
+
+/**
+ * Customization of the default outline structure.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#outline
+ */
+class EditorOutlineTreeProvider extends org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider {
+       
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.java._trace
new file mode 100644 (file)
index 0000000..e500d2d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.xtendbin
new file mode 100644 (file)
index 0000000..51e7022
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.class
new file mode 100644 (file)
index 0000000..f20d998
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/bin/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.xtend
new file mode 100644 (file)
index 0000000..ac3123f
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.quickfix
+
+//import org.eclipse.xtext.ui.editor.quickfix.Fix
+//import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor
+//import org.eclipse.xtext.validation.Issue
+
+/**
+ * Custom quickfixes.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#quick-fixes
+ */
+class EditorQuickfixProvider extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider {
+
+//     @Fix(MyDslValidator::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/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/build.properties b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/build.properties
new file mode 100644 (file)
index 0000000..dfd4ed5
--- /dev/null
@@ -0,0 +1,6 @@
+source.. = src/,\
+           src-gen/,\
+           xtend-gen/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/plugin.xml b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/plugin.xml
new file mode 100644 (file)
index 0000000..817415b
--- /dev/null
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="nemo"
+            id="org.opendaylight.nemo.tool.eclipse.plugin.Editor"
+            name="Editor Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.validate">
+         <activeWhen>
+            <reference
+                    definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened">
+            </reference>
+         </activeWhen>
+       </handler>
+       <!-- copy qualified name -->
+        <handler
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+                               <reference definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+               <and>
+                       <reference definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.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.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.opendaylight.nemo.tool.eclipse.plugin.Editor" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.opendaylight.nemo.tool.eclipse.plugin.Editor" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.opendaylight.nemo.tool.eclipse.plugin.Editor"
+            name="Editor">
+            <keywordReference id="org.opendaylight.nemo.tool.eclipse.plugin.ui.keyword_Editor"/>
+        </page>
+        <page
+            category="org.opendaylight.nemo.tool.eclipse.plugin.Editor"
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="org.opendaylight.nemo.tool.eclipse.plugin.ui.keyword_Editor"/>
+        </page>
+        <page
+            category="org.opendaylight.nemo.tool.eclipse.plugin.Editor"
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.templates"
+            name="Templates">
+            <keywordReference id="org.opendaylight.nemo.tool.eclipse.plugin.ui.keyword_Editor"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.opendaylight.nemo.tool.eclipse.plugin.Editor"
+            name="Editor">
+            <keywordReference id="org.opendaylight.nemo.tool.eclipse.plugin.ui.keyword_Editor"/>
+            <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.opendaylight.nemo.tool.eclipse.plugin.ui.keyword_Editor"
+            label="Editor"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.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.opendaylight.nemo.tool.eclipse.plugin.Editor.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.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.opendaylight.nemo.tool.eclipse.plugin.Editor.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.opendaylight.nemo.tool.eclipse.plugin.Editor.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.opendaylight.nemo.tool.eclipse.plugin.Editor.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.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened">
+                       </reference>
+               </visibleWhen>
+                       </command>
+               </menuContribution>
+       </extension>
+       <extension point="org.eclipse.ui.handlers">
+           <handler
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+       <extension
+               point="org.eclipse.emf.ecore.extension_parser">
+               <parser
+                       class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+                       type="nemo">
+               </parser>
+       </extension>
+       <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="nemo">
+        </resourceServiceProvider>
+    </extension>
+
+
+       <!-- marker definitions for org.opendaylight.nemo.tool.eclipse.plugin.Editor -->
+       <extension
+               id="editor.check.fast"
+               name="Editor Problem"
+               point="org.eclipse.core.resources.markers">
+           <super type="org.eclipse.xtext.ui.check.fast"/>
+           <persistent value="true"/>
+       </extension>
+       <extension
+               id="editor.check.normal"
+               name="Editor Problem"
+               point="org.eclipse.core.resources.markers">
+           <super type="org.eclipse.xtext.ui.check.normal"/>
+           <persistent value="true"/>
+       </extension>
+       <extension
+               id="editor.check.expensive"
+               name="Editor 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.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+            fileExtensions="nemo"
+            >
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="org.opendaylight.nemo.tool.eclipse.plugin.Editor"
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="org.opendaylight.nemo.tool.eclipse.plugin.ui.keyword_Editor"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            category="org.opendaylight.nemo.tool.eclipse.plugin.Editor"
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.compiler.propertyPage"
+            name="Compiler">
+            <keywordReference id="org.opendaylight.nemo.tool.eclipse.plugin.ui.keyword_Editor"/>
+            <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.opendaylight.nemo.tool.eclipse.plugin.Editor.OpenGeneratedCode"
+                               style="push">
+                                       <visibleWhen checkEnabled="false">
+                                               <reference definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened" />
+                                       </visibleWhen>
+                       </command>
+               </menuContribution>
+       </extension>
+       <extension point="org.eclipse.ui.handlers">
+               <handler
+                       class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+                       commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+                               <activeWhen>
+                                       <reference definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened" />
+                               </activeWhen>
+               </handler>
+       </extension>
+
+       <!-- Quick Outline -->
+       <extension
+               point="org.eclipse.ui.handlers">
+               <handler 
+                       class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+                       commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+                       <activeWhen>
+                               <reference
+                                       definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.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.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened"/>
+                               </visibleWhen>
+                       </command>
+               </menuContribution>
+       </extension>
+    <!-- quickfix marker resolution generator for org.opendaylight.nemo.tool.eclipse.plugin.Editor -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.opendaylight.nemo.tool.eclipse.plugin.ui.editor.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.opendaylight.nemo.tool.eclipse.plugin.ui.editor.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.opendaylight.nemo.tool.eclipse.plugin.ui.editor.check.expensive">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+    </extension>
+       <!-- Rename Refactoring -->
+       <extension point="org.eclipse.ui.handlers">
+               <handler 
+                       class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+                       commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+                       <activeWhen>
+                               <reference
+                                       definitionId="org.opendaylight.nemo.tool.eclipse.plugin.Editor.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.opendaylight.nemo.tool.eclipse.plugin.Editor.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+           <page
+               category="org.opendaylight.nemo.tool.eclipse.plugin.Editor"
+               class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+               id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.refactoring"
+               name="Refactoring">
+               <keywordReference id="org.opendaylight.nemo.tool.eclipse.plugin.ui.keyword_Editor"/>
+           </page>
+       </extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.compare.contentViewers"
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="nemo">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.compare.contentMergeViewers"
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="nemo" label="Editor Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="org.opendaylight.nemo.tool.eclipse.plugin.Editor.editors.documentProviders"
+            class="org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="nemo">
+    </provider>
+  </extension>
+  <extension point="org.eclipse.team.core.fileTypes">
+    <fileTypes
+            extension="nemo"
+            type="text">
+    </fileTypes>
+  </extension>
+
+</plugin>
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/AbstractEditorUiModule.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/AbstractEditorUiModule.java
new file mode 100644 (file)
index 0000000..eae9963
--- /dev/null
@@ -0,0 +1,196 @@
+
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractEditorUiModule extends org.eclipse.xtext.common.types.ui.DefaultCommonTypesUiModule {
+       
+       public AbstractEditorUiModule(AbstractUIPlugin plugin) {
+               super(plugin);
+       }
+       
+       
+       // contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+       public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
+               return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState();
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() {
+               return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public void configureHighlightingLexer(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.internal.InternalEditorLexer.class);
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class);
+       }
+
+       // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+       public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+               return org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+       public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+       }
+
+       // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
+               return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+       public Class<? extends org.eclipse.xtext.generator.IContextualOutputConfigurationProvider> bindIContextualOutputConfigurationProvider() {
+               return org.eclipse.xtext.builder.EclipseOutputConfigurationProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+       public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+       }
+
+       // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+               return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+       public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+               return org.eclipse.xtext.builder.BuilderParticipant.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+       public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
+               return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+       }
+
+       // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+       public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class);
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+       public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.ui.labeling.EditorLabelProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+       public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(org.opendaylight.nemo.tool.eclipse.plugin.ui.labeling.EditorDescriptionLabelProvider.class);
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.ui.outline.EditorOutlineTreeProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.ui.outline.EditorOutlineTreeProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.ui.quickfix.EditorQuickfixProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.contentAssist.ContentAssistFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.EditorProposalProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+               return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.EditorParser.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+       public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+               binder.bind(org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.internal.InternalEditorLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.internal.InternalEditorLexer.class));
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+       public void configureContentAssistLexer(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.internal.InternalEditorLexer.class);
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+       public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() {
+               return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+       public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() {
+               return org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+       public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class);
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+       public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+               return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+       public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() {
+               return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport.Factory.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() {
+               return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+       public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+               return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+       public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() {
+               return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry();
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+       @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() {
+               return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+       public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+               return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+       public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.PartialEditorContentAssistParser.class;
+       }
+
+       // contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+       public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() {
+               return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class;
+       }
+
+
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorExecutableExtensionFactory.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorExecutableExtensionFactory.java
new file mode 100644 (file)
index 0000000..9fce941
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.ui.internal.EditorActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class EditorExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+       @Override
+       protected Bundle getBundle() {
+               return EditorActivator.getInstance().getBundle();
+       }
+       
+       @Override
+       protected Injector getInjector() {
+               return EditorActivator.getInstance().getInjector(EditorActivator.ORG_OPENDAYLIGHT_NEMO_TOOL_ECLIPSE_PLUGIN_EDITOR);
+       }
+       
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/AbstractEditorProposalProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/AbstractEditorProposalProvider.java
new file mode 100644 (file)
index 0000000..1226768
--- /dev/null
@@ -0,0 +1,137 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
+ * with a more concrete subtype. 
+ */
+@SuppressWarnings("all")
+public class AbstractEditorProposalProvider extends org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider {
+               
+       public void completeModel_Sentences(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeNode_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeNode_Nodes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeNodeModel_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeNodeOperating_Nodename(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeNodeOperating_Nodes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeConnection_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeConnection_Endnode(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeConnectionUpdate_Connectionname(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeConnectionUpdate_Endnode(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeFlow_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeFlowUpdate_FlowId(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeOperation_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeOperation_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeOperation_TargetId(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+       }
+       public void completeOperation_TargetNode(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+       }
+    
+       public void complete_Model(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Sentence(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_SenEngines(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Ipv4(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_IPV4_SUB(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_NemoId(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_User(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Node(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_NodeModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_NodeOperating(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Connection(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_ConnectionUpdate(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Flow(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_FlowUpdate(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Matches(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Match(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Operation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Condition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_Property(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_OneProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_ModelProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_OneModelProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+       public void complete_NewObj(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+               // subclasses may override
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/EditorParser.java
new file mode 100644 (file)
index 0000000..a96800a
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.RecognitionException;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+
+import com.google.inject.Inject;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+public class EditorParser extends AbstractContentAssistParser {
+       
+       @Inject
+       private EditorGrammarAccess grammarAccess;
+       
+       private Map<AbstractElement, String> nameMappings;
+       
+       @Override
+       protected org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.internal.InternalEditorParser createParser() {
+               org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.internal.InternalEditorParser result = new org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.internal.InternalEditorParser(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.getSentenceAccess().getAlternatives(), "rule__Sentence__Alternatives");
+                                       put(grammarAccess.getNodeOperatingAccess().getAlternatives_0(), "rule__NodeOperating__Alternatives_0");
+                                       put(grammarAccess.getConnectionUpdateAccess().getAlternatives_0(), "rule__ConnectionUpdate__Alternatives_0");
+                                       put(grammarAccess.getFlowUpdateAccess().getAlternatives_0(), "rule__FlowUpdate__Alternatives_0");
+                                       put(grammarAccess.getOperationAccess().getAlternatives_8(), "rule__Operation__Alternatives_8");
+                                       put(grammarAccess.getOnePropertyAccess().getAlternatives_2(), "rule__OneProperty__Alternatives_2");
+                                       put(grammarAccess.getOneModelPropertyAccess().getAlternatives_0(), "rule__OneModelProperty__Alternatives_0");
+                                       put(grammarAccess.getNewObjAccess().getAlternatives(), "rule__NewObj__Alternatives");
+                                       put(grammarAccess.getSenEnginesAccess().getGroup(), "rule__SenEngines__Group__0");
+                                       put(grammarAccess.getSenEnginesAccess().getGroup_2(), "rule__SenEngines__Group_2__0");
+                                       put(grammarAccess.getIpv4Access().getGroup(), "rule__Ipv4__Group__0");
+                                       put(grammarAccess.getUserAccess().getGroup(), "rule__User__Group__0");
+                                       put(grammarAccess.getNodeAccess().getGroup(), "rule__Node__Group__0");
+                                       put(grammarAccess.getNodeAccess().getGroup_3(), "rule__Node__Group_3__0");
+                                       put(grammarAccess.getNodeAccess().getGroup_4(), "rule__Node__Group_4__0");
+                                       put(grammarAccess.getNodeAccess().getGroup_4_2(), "rule__Node__Group_4_2__0");
+                                       put(grammarAccess.getNodeModelAccess().getGroup(), "rule__NodeModel__Group__0");
+                                       put(grammarAccess.getNodeOperatingAccess().getGroup(), "rule__NodeOperating__Group__0");
+                                       put(grammarAccess.getNodeOperatingAccess().getGroup_3(), "rule__NodeOperating__Group_3__0");
+                                       put(grammarAccess.getNodeOperatingAccess().getGroup_4(), "rule__NodeOperating__Group_4__0");
+                                       put(grammarAccess.getNodeOperatingAccess().getGroup_4_2(), "rule__NodeOperating__Group_4_2__0");
+                                       put(grammarAccess.getConnectionAccess().getGroup(), "rule__Connection__Group__0");
+                                       put(grammarAccess.getConnectionAccess().getGroup_5(), "rule__Connection__Group_5__0");
+                                       put(grammarAccess.getConnectionAccess().getGroup_5_2(), "rule__Connection__Group_5_2__0");
+                                       put(grammarAccess.getConnectionUpdateAccess().getGroup(), "rule__ConnectionUpdate__Group__0");
+                                       put(grammarAccess.getConnectionUpdateAccess().getGroup_3(), "rule__ConnectionUpdate__Group_3__0");
+                                       put(grammarAccess.getConnectionUpdateAccess().getGroup_4(), "rule__ConnectionUpdate__Group_4__0");
+                                       put(grammarAccess.getConnectionUpdateAccess().getGroup_4_2(), "rule__ConnectionUpdate__Group_4_2__0");
+                                       put(grammarAccess.getFlowAccess().getGroup(), "rule__Flow__Group__0");
+                                       put(grammarAccess.getFlowUpdateAccess().getGroup(), "rule__FlowUpdate__Group__0");
+                                       put(grammarAccess.getMatchesAccess().getGroup(), "rule__Matches__Group__0");
+                                       put(grammarAccess.getMatchesAccess().getGroup_2(), "rule__Matches__Group_2__0");
+                                       put(grammarAccess.getMatchAccess().getGroup(), "rule__Match__Group__0");
+                                       put(grammarAccess.getOperationAccess().getGroup(), "rule__Operation__Group__0");
+                                       put(grammarAccess.getOperationAccess().getGroup_3(), "rule__Operation__Group_3__0");
+                                       put(grammarAccess.getOperationAccess().getGroup_8_1(), "rule__Operation__Group_8_1__0");
+                                       put(grammarAccess.getConditionAccess().getGroup(), "rule__Condition__Group__0");
+                                       put(grammarAccess.getConditionAccess().getGroup_2(), "rule__Condition__Group_2__0");
+                                       put(grammarAccess.getPropertyAccess().getGroup(), "rule__Property__Group__0");
+                                       put(grammarAccess.getPropertyAccess().getGroup_2(), "rule__Property__Group_2__0");
+                                       put(grammarAccess.getOnePropertyAccess().getGroup(), "rule__OneProperty__Group__0");
+                                       put(grammarAccess.getModelPropertyAccess().getGroup(), "rule__ModelProperty__Group__0");
+                                       put(grammarAccess.getModelPropertyAccess().getGroup_2(), "rule__ModelProperty__Group_2__0");
+                                       put(grammarAccess.getOneModelPropertyAccess().getGroup(), "rule__OneModelProperty__Group__0");
+                                       put(grammarAccess.getModelAccess().getSentencesAssignment(), "rule__Model__SentencesAssignment");
+                                       put(grammarAccess.getNodeAccess().getNameAssignment_2(), "rule__Node__NameAssignment_2");
+                                       put(grammarAccess.getNodeAccess().getNodesAssignment_4_1(), "rule__Node__NodesAssignment_4_1");
+                                       put(grammarAccess.getNodeAccess().getNodesAssignment_4_2_1(), "rule__Node__NodesAssignment_4_2_1");
+                                       put(grammarAccess.getNodeModelAccess().getNameAssignment_1(), "rule__NodeModel__NameAssignment_1");
+                                       put(grammarAccess.getNodeOperatingAccess().getNodenameAssignment_2(), "rule__NodeOperating__NodenameAssignment_2");
+                                       put(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_1(), "rule__NodeOperating__NodesAssignment_4_1");
+                                       put(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_2_1(), "rule__NodeOperating__NodesAssignment_4_2_1");
+                                       put(grammarAccess.getConnectionAccess().getNameAssignment_2(), "rule__Connection__NameAssignment_2");
+                                       put(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_1(), "rule__Connection__EndnodeAssignment_5_1");
+                                       put(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_2_1(), "rule__Connection__EndnodeAssignment_5_2_1");
+                                       put(grammarAccess.getConnectionUpdateAccess().getConnectionnameAssignment_2(), "rule__ConnectionUpdate__ConnectionnameAssignment_2");
+                                       put(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_1(), "rule__ConnectionUpdate__EndnodeAssignment_4_1");
+                                       put(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_2_1(), "rule__ConnectionUpdate__EndnodeAssignment_4_2_1");
+                                       put(grammarAccess.getFlowAccess().getNameAssignment_2(), "rule__Flow__NameAssignment_2");
+                                       put(grammarAccess.getFlowUpdateAccess().getFlowIdAssignment_2(), "rule__FlowUpdate__FlowIdAssignment_2");
+                                       put(grammarAccess.getOperationAccess().getNameAssignment_2(), "rule__Operation__NameAssignment_2");
+                                       put(grammarAccess.getOperationAccess().getValueAssignment_3_1(), "rule__Operation__ValueAssignment_3_1");
+                                       put(grammarAccess.getOperationAccess().getTargetIdAssignment_5(), "rule__Operation__TargetIdAssignment_5");
+                                       put(grammarAccess.getOperationAccess().getTargetNodeAssignment_8_1_2(), "rule__Operation__TargetNodeAssignment_8_1_2");
+                               }
+                       };
+               }
+               return nameMappings.get(element);
+       }
+       
+       @Override
+       protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+               try {
+                       org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.internal.InternalEditorParser typedParser = (org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr.internal.InternalEditorParser) parser;
+                       typedParser.entryRuleModel();
+                       return typedParser.getFollowElements();
+               } catch(RecognitionException ex) {
+                       throw new RuntimeException(ex);
+               }               
+       }
+       
+       @Override
+       protected String[] getInitialHiddenTokens() {
+               return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+       }
+       
+       public EditorGrammarAccess getGrammarAccess() {
+               return this.grammarAccess;
+       }
+       
+       public void setGrammarAccess(EditorGrammarAccess grammarAccess) {
+               this.grammarAccess = grammarAccess;
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/PartialEditorContentAssistParser.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/PartialEditorContentAssistParser.java
new file mode 100644 (file)
index 0000000..2ce8700
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+/*
+ * Template CodetemplatesGeneratorFragment.xpt
+ */
+public class PartialEditorContentAssistParser extends EditorParser implements IPartialContentAssistParser {
+
+       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/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g
new file mode 100644 (file)
index 0000000..a1fd830
--- /dev/null
@@ -0,0 +1,5223 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalEditor;
+
+options {
+       superClass=AbstractInternalContentAssistParser;
+       
+}
+
+@lexer::header {
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.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.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.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.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+}
+
+@parser::members {
+       private EditorGrammarAccess grammarAccess;
+       
+    public void setGrammarAccess(EditorGrammarAccess 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().getSentencesAssignment()); }
+(rule__Model__SentencesAssignment)*
+{ after(grammarAccess.getModelAccess().getSentencesAssignment()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSentence
+entryRuleSentence 
+:
+{ before(grammarAccess.getSentenceRule()); }
+        ruleSentence
+{ after(grammarAccess.getSentenceRule()); } 
+        EOF 
+;
+
+// Rule Sentence
+ruleSentence
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getSentenceAccess().getAlternatives()); }
+(rule__Sentence__Alternatives)
+{ after(grammarAccess.getSentenceAccess().getAlternatives()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSenEngines
+entryRuleSenEngines 
+:
+{ before(grammarAccess.getSenEnginesRule()); }
+        ruleSenEngines
+{ after(grammarAccess.getSenEnginesRule()); } 
+        EOF 
+;
+
+// Rule SenEngines
+ruleSenEngines
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getSenEnginesAccess().getGroup()); }
+(rule__SenEngines__Group__0)
+{ after(grammarAccess.getSenEnginesAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleIpv4
+entryRuleIpv4 
+:
+{ before(grammarAccess.getIpv4Rule()); }
+        ruleIpv4
+{ after(grammarAccess.getIpv4Rule()); } 
+        EOF 
+;
+
+// Rule Ipv4
+ruleIpv4
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getIpv4Access().getGroup()); }
+(rule__Ipv4__Group__0)
+{ after(grammarAccess.getIpv4Access().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleUser
+entryRuleUser 
+:
+{ before(grammarAccess.getUserRule()); }
+        ruleUser
+{ after(grammarAccess.getUserRule()); } 
+        EOF 
+;
+
+// Rule User
+ruleUser
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getUserAccess().getGroup()); }
+(rule__User__Group__0)
+{ after(grammarAccess.getUserAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNode
+entryRuleNode 
+:
+{ before(grammarAccess.getNodeRule()); }
+        ruleNode
+{ after(grammarAccess.getNodeRule()); } 
+        EOF 
+;
+
+// Rule Node
+ruleNode
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getNodeAccess().getGroup()); }
+(rule__Node__Group__0)
+{ after(grammarAccess.getNodeAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleNodeOperating
+entryRuleNodeOperating 
+:
+{ before(grammarAccess.getNodeOperatingRule()); }
+        ruleNodeOperating
+{ after(grammarAccess.getNodeOperatingRule()); } 
+        EOF 
+;
+
+// Rule NodeOperating
+ruleNodeOperating
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getNodeOperatingAccess().getGroup()); }
+(rule__NodeOperating__Group__0)
+{ after(grammarAccess.getNodeOperatingAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleConnection
+entryRuleConnection 
+:
+{ before(grammarAccess.getConnectionRule()); }
+        ruleConnection
+{ after(grammarAccess.getConnectionRule()); } 
+        EOF 
+;
+
+// Rule Connection
+ruleConnection
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getConnectionAccess().getGroup()); }
+(rule__Connection__Group__0)
+{ after(grammarAccess.getConnectionAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleConnectionUpdate
+entryRuleConnectionUpdate 
+:
+{ before(grammarAccess.getConnectionUpdateRule()); }
+        ruleConnectionUpdate
+{ after(grammarAccess.getConnectionUpdateRule()); } 
+        EOF 
+;
+
+// Rule ConnectionUpdate
+ruleConnectionUpdate
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getGroup()); }
+(rule__ConnectionUpdate__Group__0)
+{ after(grammarAccess.getConnectionUpdateAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFlow
+entryRuleFlow 
+:
+{ before(grammarAccess.getFlowRule()); }
+        ruleFlow
+{ after(grammarAccess.getFlowRule()); } 
+        EOF 
+;
+
+// Rule Flow
+ruleFlow
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getFlowAccess().getGroup()); }
+(rule__Flow__Group__0)
+{ after(grammarAccess.getFlowAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFlowUpdate
+entryRuleFlowUpdate 
+:
+{ before(grammarAccess.getFlowUpdateRule()); }
+        ruleFlowUpdate
+{ after(grammarAccess.getFlowUpdateRule()); } 
+        EOF 
+;
+
+// Rule FlowUpdate
+ruleFlowUpdate
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getFlowUpdateAccess().getGroup()); }
+(rule__FlowUpdate__Group__0)
+{ after(grammarAccess.getFlowUpdateAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleMatches
+entryRuleMatches 
+:
+{ before(grammarAccess.getMatchesRule()); }
+        ruleMatches
+{ after(grammarAccess.getMatchesRule()); } 
+        EOF 
+;
+
+// Rule Matches
+ruleMatches
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getMatchesAccess().getGroup()); }
+(rule__Matches__Group__0)
+{ after(grammarAccess.getMatchesAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleMatch
+entryRuleMatch 
+:
+{ before(grammarAccess.getMatchRule()); }
+        ruleMatch
+{ after(grammarAccess.getMatchRule()); } 
+        EOF 
+;
+
+// Rule Match
+ruleMatch
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getMatchAccess().getGroup()); }
+(rule__Match__Group__0)
+{ after(grammarAccess.getMatchAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOperation
+entryRuleOperation 
+:
+{ before(grammarAccess.getOperationRule()); }
+        ruleOperation
+{ after(grammarAccess.getOperationRule()); } 
+        EOF 
+;
+
+// Rule Operation
+ruleOperation
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getOperationAccess().getGroup()); }
+(rule__Operation__Group__0)
+{ after(grammarAccess.getOperationAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleCondition
+entryRuleCondition 
+:
+{ before(grammarAccess.getConditionRule()); }
+        ruleCondition
+{ after(grammarAccess.getConditionRule()); } 
+        EOF 
+;
+
+// Rule Condition
+ruleCondition
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getConditionAccess().getGroup()); }
+(rule__Condition__Group__0)
+{ after(grammarAccess.getConditionAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProperty
+entryRuleProperty 
+:
+{ before(grammarAccess.getPropertyRule()); }
+        ruleProperty
+{ after(grammarAccess.getPropertyRule()); } 
+        EOF 
+;
+
+// Rule Property
+ruleProperty
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getPropertyAccess().getGroup()); }
+(rule__Property__Group__0)
+{ after(grammarAccess.getPropertyAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOneProperty
+entryRuleOneProperty 
+:
+{ before(grammarAccess.getOnePropertyRule()); }
+        ruleOneProperty
+{ after(grammarAccess.getOnePropertyRule()); } 
+        EOF 
+;
+
+// Rule OneProperty
+ruleOneProperty
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getOnePropertyAccess().getGroup()); }
+(rule__OneProperty__Group__0)
+{ after(grammarAccess.getOnePropertyAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleModelProperty
+entryRuleModelProperty 
+:
+{ before(grammarAccess.getModelPropertyRule()); }
+        ruleModelProperty
+{ after(grammarAccess.getModelPropertyRule()); } 
+        EOF 
+;
+
+// Rule ModelProperty
+ruleModelProperty
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getModelPropertyAccess().getGroup()); }
+(rule__ModelProperty__Group__0)
+{ after(grammarAccess.getModelPropertyAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOneModelProperty
+entryRuleOneModelProperty 
+:
+{ before(grammarAccess.getOneModelPropertyRule()); }
+        ruleOneModelProperty
+{ after(grammarAccess.getOneModelPropertyRule()); } 
+        EOF 
+;
+
+// Rule OneModelProperty
+ruleOneModelProperty
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getGroup()); }
+(rule__OneModelProperty__Group__0)
+{ after(grammarAccess.getOneModelPropertyAccess().getGroup()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNewObj
+entryRuleNewObj 
+:
+{ before(grammarAccess.getNewObjRule()); }
+        ruleNewObj
+{ after(grammarAccess.getNewObjRule()); } 
+        EOF 
+;
+
+// Rule NewObj
+ruleNewObj
+    @init {
+               int stackSize = keepStackSize();
+    }
+       :
+(
+{ before(grammarAccess.getNewObjAccess().getAlternatives()); }
+(rule__NewObj__Alternatives)
+{ after(grammarAccess.getNewObjAccess().getAlternatives()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+rule__Sentence__Alternatives
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()); }
+       ruleSenEngines
+{ after(grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getUserParserRuleCall_1()); }
+       ruleUser
+{ after(grammarAccess.getSentenceAccess().getUserParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getNodeParserRuleCall_2()); }
+       ruleNode
+{ after(grammarAccess.getSentenceAccess().getNodeParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getNodeOperatingParserRuleCall_3()); }
+       ruleNodeOperating
+{ after(grammarAccess.getSentenceAccess().getNodeOperatingParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getConnectionParserRuleCall_4()); }
+       ruleConnection
+{ after(grammarAccess.getSentenceAccess().getConnectionParserRuleCall_4()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getConnectionUpdateParserRuleCall_5()); }
+       ruleConnectionUpdate
+{ after(grammarAccess.getSentenceAccess().getConnectionUpdateParserRuleCall_5()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getFlowParserRuleCall_6()); }
+       ruleFlow
+{ after(grammarAccess.getSentenceAccess().getFlowParserRuleCall_6()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getFlowUpdateParserRuleCall_7()); }
+       ruleFlowUpdate
+{ after(grammarAccess.getSentenceAccess().getFlowUpdateParserRuleCall_7()); }
+)
+
+    |(
+{ before(grammarAccess.getSentenceAccess().getOperationParserRuleCall_8()); }
+       ruleOperation
+{ after(grammarAccess.getSentenceAccess().getOperationParserRuleCall_8()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Alternatives_0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0()); }
+
+       'UPDATE' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1()); }
+
+       'DELETE' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Alternatives_0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0()); }
+
+       'UPDATE' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1()); }
+
+       'DELETE' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Alternatives_0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0()); }
+
+       'UPDATE' 
+
+{ after(grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1()); }
+
+       'DELETE' 
+
+{ after(grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Alternatives_8
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_0()); }
+       RULE_NEMOID
+{ after(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOperationAccess().getGroup_8_1()); }
+(rule__Operation__Group_8_1__0)
+{ after(grammarAccess.getOperationAccess().getGroup_8_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneProperty__Alternatives_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOnePropertyAccess().getSTRINGTerminalRuleCall_2_0()); }
+       RULE_STRING
+{ after(grammarAccess.getOnePropertyAccess().getSTRINGTerminalRuleCall_2_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOnePropertyAccess().getINTTerminalRuleCall_2_1()); }
+       RULE_INT
+{ after(grammarAccess.getOnePropertyAccess().getINTTerminalRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneModelProperty__Alternatives_0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getSTRINGTerminalRuleCall_0_0()); }
+       RULE_STRING
+{ after(grammarAccess.getOneModelPropertyAccess().getSTRINGTerminalRuleCall_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOneModelPropertyAccess().getINTTerminalRuleCall_0_1()); }
+       RULE_INT
+{ after(grammarAccess.getOneModelPropertyAccess().getINTTerminalRuleCall_0_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NewObj__Alternatives
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNewObjAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getNewObjAccess().getCREATEKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNewObjAccess().getIMPORTKeyword_1()); }
+
+       'IMPORT' 
+
+{ after(grammarAccess.getNewObjAccess().getIMPORTKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+rule__SenEngines__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group__0__Impl
+       rule__SenEngines__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getEnginesKeyword_0()); }
+
+       'Engines:' 
+
+{ after(grammarAccess.getSenEnginesAccess().getEnginesKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__SenEngines__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group__1__Impl
+       rule__SenEngines__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_1()); }
+       ruleIpv4
+{ after(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__SenEngines__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group__2__Impl
+       rule__SenEngines__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getGroup_2()); }
+(rule__SenEngines__Group_2__0)*
+{ after(grammarAccess.getSenEnginesAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__SenEngines__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group__3__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getSemicolonKeyword_3()); }
+
+       ';' 
+
+{ after(grammarAccess.getSenEnginesAccess().getSemicolonKeyword_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__SenEngines__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group_2__0__Impl
+       rule__SenEngines__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getSenEnginesAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__SenEngines__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__SenEngines__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__SenEngines__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_2_1()); }
+       ruleIpv4
+{ after(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Ipv4__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__0__Impl
+       rule__Ipv4__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_0()); }
+       RULE_IPV4_SUB
+{ after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__1__Impl
+       rule__Ipv4__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getFullStopKeyword_1()); }
+
+       '.' 
+
+{ after(grammarAccess.getIpv4Access().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__2__Impl
+       rule__Ipv4__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_2()); }
+       RULE_IPV4_SUB
+{ after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__3__Impl
+       rule__Ipv4__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getFullStopKeyword_3()); }
+
+       '.' 
+
+{ after(grammarAccess.getIpv4Access().getFullStopKeyword_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__4__Impl
+       rule__Ipv4__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_4()); }
+       RULE_IPV4_SUB
+{ after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__5__Impl
+       rule__Ipv4__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getFullStopKeyword_5()); }
+
+       '.' 
+
+{ after(grammarAccess.getIpv4Access().getFullStopKeyword_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Ipv4__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Ipv4__Group__6__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Ipv4__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_6()); }
+       RULE_IPV4_SUB
+{ after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__User__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__0__Impl
+       rule__User__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getUserAccess().getCREATEKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__User__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__1__Impl
+       rule__User__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_1()); }
+       RULE_STRING
+{ after(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__User__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__2__Impl
+       rule__User__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_2()); }
+       RULE_STRING
+{ after(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__User__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__3__Impl
+       rule__User__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_3()); }
+       RULE_STRING
+{ after(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__User__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__User__Group__4__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__User__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUserAccess().getSemicolonKeyword_4()); }
+
+       ';' 
+
+{ after(grammarAccess.getUserAccess().getSemicolonKeyword_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Node__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__0__Impl
+       rule__Node__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNewObjParserRuleCall_0()); }
+       ruleNewObj
+{ after(grammarAccess.getNodeAccess().getNewObjParserRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__1__Impl
+       rule__Node__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodeKeyword_1()); }
+
+       'Node' 
+
+{ after(grammarAccess.getNodeAccess().getNodeKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__2__Impl
+       rule__Node__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNameAssignment_2()); }
+(rule__Node__NameAssignment_2)
+{ after(grammarAccess.getNodeAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__3__Impl
+       rule__Node__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getGroup_3()); }
+(rule__Node__Group_3__0)
+{ after(grammarAccess.getNodeAccess().getGroup_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__4__Impl
+       rule__Node__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getGroup_4()); }
+(rule__Node__Group_4__0)?
+{ after(grammarAccess.getNodeAccess().getGroup_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__5__Impl
+       rule__Node__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getPropertyParserRuleCall_5()); }
+(      ruleProperty)?
+{ after(grammarAccess.getNodeAccess().getPropertyParserRuleCall_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group__6__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getSemicolonKeyword_6()); }
+
+       ';' 
+
+{ after(grammarAccess.getNodeAccess().getSemicolonKeyword_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Node__Group_3__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_3__0__Impl
+       rule__Node__Group_3__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_3__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getTypeKeyword_3_0()); }
+
+       'Type' 
+
+{ after(grammarAccess.getNodeAccess().getTypeKeyword_3_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group_3__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_3__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_3__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNemoIdTerminalRuleCall_3_1()); }
+       RULE_NEMOID
+{ after(grammarAccess.getNodeAccess().getNemoIdTerminalRuleCall_3_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Node__Group_4__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4__0__Impl
+       rule__Node__Group_4__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getContainKeyword_4_0()); }
+
+       'Contain' 
+
+{ after(grammarAccess.getNodeAccess().getContainKeyword_4_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group_4__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4__1__Impl
+       rule__Node__Group_4__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodesAssignment_4_1()); }
+(rule__Node__NodesAssignment_4_1)
+{ after(grammarAccess.getNodeAccess().getNodesAssignment_4_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group_4__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getGroup_4_2()); }
+(rule__Node__Group_4_2__0)*
+{ after(grammarAccess.getNodeAccess().getGroup_4_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Node__Group_4_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4_2__0__Impl
+       rule__Node__Group_4_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getCommaKeyword_4_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getNodeAccess().getCommaKeyword_4_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Node__Group_4_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Node__Group_4_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__Group_4_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodesAssignment_4_2_1()); }
+(rule__Node__NodesAssignment_4_2_1)
+{ after(grammarAccess.getNodeAccess().getNodesAssignment_4_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__NodeOperating__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__0__Impl
+       rule__NodeOperating__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getAlternatives_0()); }
+(rule__NodeOperating__Alternatives_0)
+{ after(grammarAccess.getNodeOperatingAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__1__Impl
+       rule__NodeOperating__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodeKeyword_1()); }
+
+       'Node' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getNodeKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__2__Impl
+       rule__NodeOperating__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodenameAssignment_2()); }
+(rule__NodeOperating__NodenameAssignment_2)
+{ after(grammarAccess.getNodeOperatingAccess().getNodenameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__3__Impl
+       rule__NodeOperating__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getGroup_3()); }
+(rule__NodeOperating__Group_3__0)?
+{ after(grammarAccess.getNodeOperatingAccess().getGroup_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__4__Impl
+       rule__NodeOperating__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getGroup_4()); }
+(rule__NodeOperating__Group_4__0)?
+{ after(grammarAccess.getNodeOperatingAccess().getGroup_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__5__Impl
+       rule__NodeOperating__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5()); }
+(      ruleProperty)?
+{ after(grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group__6__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getSemicolonKeyword_6()); }
+
+       ';' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getSemicolonKeyword_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NodeOperating__Group_3__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_3__0__Impl
+       rule__NodeOperating__Group_3__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_3__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0()); }
+
+       'Type' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group_3__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_3__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_3__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()); }
+       RULE_NEMOID
+{ after(grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NodeOperating__Group_4__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4__0__Impl
+       rule__NodeOperating__Group_4__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getContainKeyword_4_0()); }
+
+       'Contain' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getContainKeyword_4_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group_4__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4__1__Impl
+       rule__NodeOperating__Group_4__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_1()); }
+(rule__NodeOperating__NodesAssignment_4_1)
+{ after(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group_4__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getGroup_4_2()); }
+(rule__NodeOperating__Group_4_2__0)*
+{ after(grammarAccess.getNodeOperatingAccess().getGroup_4_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__NodeOperating__Group_4_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4_2__0__Impl
+       rule__NodeOperating__Group_4_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getCommaKeyword_4_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getNodeOperatingAccess().getCommaKeyword_4_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__Group_4_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__NodeOperating__Group_4_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__Group_4_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_2_1()); }
+(rule__NodeOperating__NodesAssignment_4_2_1)
+{ after(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Connection__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__0__Impl
+       rule__Connection__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getConnectionAccess().getCREATEKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__1__Impl
+       rule__Connection__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getConnectionKeyword_1()); }
+
+       'Connection' 
+
+{ after(grammarAccess.getConnectionAccess().getConnectionKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__2__Impl
+       rule__Connection__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getNameAssignment_2()); }
+(rule__Connection__NameAssignment_2)
+{ after(grammarAccess.getConnectionAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__3__Impl
+       rule__Connection__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getTypeKeyword_3()); }
+
+       'Type' 
+
+{ after(grammarAccess.getConnectionAccess().getTypeKeyword_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__4__Impl
+       rule__Connection__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getNemoIdTerminalRuleCall_4()); }
+       RULE_NEMOID
+{ after(grammarAccess.getConnectionAccess().getNemoIdTerminalRuleCall_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__5__Impl
+       rule__Connection__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getGroup_5()); }
+(rule__Connection__Group_5__0)
+{ after(grammarAccess.getConnectionAccess().getGroup_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__6__Impl
+       rule__Connection__Group__7
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6()); }
+(      ruleProperty)?
+{ after(grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group__7
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group__7__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group__7__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getSemicolonKeyword_7()); }
+
+       ';' 
+
+{ after(grammarAccess.getConnectionAccess().getSemicolonKeyword_7()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Connection__Group_5__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5__0__Impl
+       rule__Connection__Group_5__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodesKeyword_5_0()); }
+
+       'Endnodes' 
+
+{ after(grammarAccess.getConnectionAccess().getEndnodesKeyword_5_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group_5__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5__1__Impl
+       rule__Connection__Group_5__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_1()); }
+(rule__Connection__EndnodeAssignment_5_1)
+{ after(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group_5__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getGroup_5_2()); }
+(rule__Connection__Group_5_2__0)*
+{ after(grammarAccess.getConnectionAccess().getGroup_5_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Connection__Group_5_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5_2__0__Impl
+       rule__Connection__Group_5_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getCommaKeyword_5_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getConnectionAccess().getCommaKeyword_5_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Connection__Group_5_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Connection__Group_5_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__Group_5_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_2_1()); }
+(rule__Connection__EndnodeAssignment_5_2_1)
+{ after(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConnectionUpdate__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__0__Impl
+       rule__ConnectionUpdate__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getAlternatives_0()); }
+(rule__ConnectionUpdate__Alternatives_0)
+{ after(grammarAccess.getConnectionUpdateAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__1__Impl
+       rule__ConnectionUpdate__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getConnectionKeyword_1()); }
+
+       'Connection' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getConnectionKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__2__Impl
+       rule__ConnectionUpdate__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getConnectionnameAssignment_2()); }
+(rule__ConnectionUpdate__ConnectionnameAssignment_2)
+{ after(grammarAccess.getConnectionUpdateAccess().getConnectionnameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__3__Impl
+       rule__ConnectionUpdate__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getGroup_3()); }
+(rule__ConnectionUpdate__Group_3__0)?
+{ after(grammarAccess.getConnectionUpdateAccess().getGroup_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__4__Impl
+       rule__ConnectionUpdate__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getGroup_4()); }
+(rule__ConnectionUpdate__Group_4__0)?
+{ after(grammarAccess.getConnectionUpdateAccess().getGroup_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__5__Impl
+       rule__ConnectionUpdate__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5()); }
+(      ruleProperty)?
+{ after(grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group__6__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getSemicolonKeyword_6()); }
+
+       ';' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getSemicolonKeyword_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ConnectionUpdate__Group_3__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_3__0__Impl
+       rule__ConnectionUpdate__Group_3__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_3__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0()); }
+
+       'Type' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group_3__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_3__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_3__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()); }
+       RULE_NEMOID
+{ after(grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConnectionUpdate__Group_4__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4__0__Impl
+       rule__ConnectionUpdate__Group_4__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodesKeyword_4_0()); }
+
+       'Endnodes' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodesKeyword_4_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group_4__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4__1__Impl
+       rule__ConnectionUpdate__Group_4__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_1()); }
+(rule__ConnectionUpdate__EndnodeAssignment_4_1)
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group_4__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getGroup_4_2()); }
+(rule__ConnectionUpdate__Group_4_2__0)*
+{ after(grammarAccess.getConnectionUpdateAccess().getGroup_4_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ConnectionUpdate__Group_4_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4_2__0__Impl
+       rule__ConnectionUpdate__Group_4_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getCommaKeyword_4_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getConnectionUpdateAccess().getCommaKeyword_4_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ConnectionUpdate__Group_4_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ConnectionUpdate__Group_4_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__Group_4_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_2_1()); }
+(rule__ConnectionUpdate__EndnodeAssignment_4_2_1)
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Flow__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__0__Impl
+       rule__Flow__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getFlowAccess().getCREATEKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__1__Impl
+       rule__Flow__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getFlowKeyword_1()); }
+
+       'Flow' 
+
+{ after(grammarAccess.getFlowAccess().getFlowKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__2__Impl
+       rule__Flow__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getNameAssignment_2()); }
+(rule__Flow__NameAssignment_2)
+{ after(grammarAccess.getFlowAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__3__Impl
+       rule__Flow__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getMatchesParserRuleCall_3()); }
+(      ruleMatches)?
+{ after(grammarAccess.getFlowAccess().getMatchesParserRuleCall_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Flow__Group__4__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getSemicolonKeyword_4()); }
+
+       ';' 
+
+{ after(grammarAccess.getFlowAccess().getSemicolonKeyword_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FlowUpdate__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__0__Impl
+       rule__FlowUpdate__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getAlternatives_0()); }
+(rule__FlowUpdate__Alternatives_0)
+{ after(grammarAccess.getFlowUpdateAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__FlowUpdate__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__1__Impl
+       rule__FlowUpdate__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getFlowKeyword_1()); }
+
+       'Flow' 
+
+{ after(grammarAccess.getFlowUpdateAccess().getFlowKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__FlowUpdate__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__2__Impl
+       rule__FlowUpdate__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getFlowIdAssignment_2()); }
+(rule__FlowUpdate__FlowIdAssignment_2)
+{ after(grammarAccess.getFlowUpdateAccess().getFlowIdAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__FlowUpdate__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__3__Impl
+       rule__FlowUpdate__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3()); }
+(      ruleMatches)?
+{ after(grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__FlowUpdate__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__FlowUpdate__Group__4__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getSemicolonKeyword_4()); }
+
+       ';' 
+
+{ after(grammarAccess.getFlowUpdateAccess().getSemicolonKeyword_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Matches__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group__0__Impl
+       rule__Matches__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getMatchKeyword_0()); }
+
+       'Match' 
+
+{ after(grammarAccess.getMatchesAccess().getMatchKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Matches__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group__1__Impl
+       rule__Matches__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getMatchParserRuleCall_1()); }
+       ruleMatch
+{ after(grammarAccess.getMatchesAccess().getMatchParserRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Matches__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getGroup_2()); }
+(rule__Matches__Group_2__0)*
+{ after(grammarAccess.getMatchesAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Matches__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group_2__0__Impl
+       rule__Matches__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getMatchesAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Matches__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Matches__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Matches__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchesAccess().getMatchParserRuleCall_2_1()); }
+       ruleMatch
+{ after(grammarAccess.getMatchesAccess().getMatchParserRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Match__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Match__Group__0__Impl
+       rule__Match__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Match__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchAccess().getNemoIdTerminalRuleCall_0()); }
+       RULE_NEMOID
+{ after(grammarAccess.getMatchAccess().getNemoIdTerminalRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Match__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Match__Group__1__Impl
+       rule__Match__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Match__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchAccess().getColonKeyword_1()); }
+
+       ':' 
+
+{ after(grammarAccess.getMatchAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Match__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Match__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Match__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMatchAccess().getSTRINGTerminalRuleCall_2()); }
+       RULE_STRING
+{ after(grammarAccess.getMatchAccess().getSTRINGTerminalRuleCall_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Operation__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__0__Impl
+       rule__Operation__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getCREATEKeyword_0()); }
+
+       'CREATE' 
+
+{ after(grammarAccess.getOperationAccess().getCREATEKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__1__Impl
+       rule__Operation__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getOperationKeyword_1()); }
+
+       'Operation' 
+
+{ after(grammarAccess.getOperationAccess().getOperationKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__2__Impl
+       rule__Operation__Group__3
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getNameAssignment_2()); }
+(rule__Operation__NameAssignment_2)
+{ after(grammarAccess.getOperationAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__3
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__3__Impl
+       rule__Operation__Group__4
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__3__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getGroup_3()); }
+(rule__Operation__Group_3__0)?
+{ after(grammarAccess.getOperationAccess().getGroup_3()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__4
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__4__Impl
+       rule__Operation__Group__5
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__4__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetKeyword_4()); }
+
+       'Target' 
+
+{ after(grammarAccess.getOperationAccess().getTargetKeyword_4()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__5__Impl
+       rule__Operation__Group__6
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__5__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetIdAssignment_5()); }
+(rule__Operation__TargetIdAssignment_5)
+{ after(grammarAccess.getOperationAccess().getTargetIdAssignment_5()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__6
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__6__Impl
+       rule__Operation__Group__7
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__6__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getConditionParserRuleCall_6()); }
+(      ruleCondition)?
+{ after(grammarAccess.getOperationAccess().getConditionParserRuleCall_6()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__7
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__7__Impl
+       rule__Operation__Group__8
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__7__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getActionKeyword_7()); }
+
+       'Action' 
+
+{ after(grammarAccess.getOperationAccess().getActionKeyword_7()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__8
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__8__Impl
+       rule__Operation__Group__9
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__8__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getAlternatives_8()); }
+(rule__Operation__Alternatives_8)
+{ after(grammarAccess.getOperationAccess().getAlternatives_8()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group__9
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group__9__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group__9__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getSemicolonKeyword_9()); }
+
+       ';' 
+
+{ after(grammarAccess.getOperationAccess().getSemicolonKeyword_9()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Operation__Group_3__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_3__0__Impl
+       rule__Operation__Group_3__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_3__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getPriorityKeyword_3_0()); }
+
+       'Priority' 
+
+{ after(grammarAccess.getOperationAccess().getPriorityKeyword_3_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group_3__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_3__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_3__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getValueAssignment_3_1()); }
+(rule__Operation__ValueAssignment_3_1)
+{ after(grammarAccess.getOperationAccess().getValueAssignment_3_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Operation__Group_8_1__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_8_1__0__Impl
+       rule__Operation__Group_8_1__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_8_1__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_1_0()); }
+       RULE_NEMOID
+{ after(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group_8_1__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_8_1__1__Impl
+       rule__Operation__Group_8_1__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_8_1__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getColonKeyword_8_1_1()); }
+
+       ':' 
+
+{ after(grammarAccess.getOperationAccess().getColonKeyword_8_1_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Operation__Group_8_1__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Operation__Group_8_1__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__Group_8_1__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetNodeAssignment_8_1_2()); }
+(rule__Operation__TargetNodeAssignment_8_1_2)
+{ after(grammarAccess.getOperationAccess().getTargetNodeAssignment_8_1_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Condition__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group__0__Impl
+       rule__Condition__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getConditionKeyword_0()); }
+
+       'Condition' 
+
+{ after(grammarAccess.getConditionAccess().getConditionKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Condition__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group__1__Impl
+       rule__Condition__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_1()); }
+       RULE_STRING
+{ after(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Condition__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getGroup_2()); }
+(rule__Condition__Group_2__0)*
+{ after(grammarAccess.getConditionAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Condition__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group_2__0__Impl
+       rule__Condition__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getConditionAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Condition__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Condition__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Condition__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_2_1()); }
+       RULE_STRING
+{ after(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Property__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group__0__Impl
+       rule__Property__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getPropertyKeyword_0()); }
+
+       'Property ' 
+
+{ after(grammarAccess.getPropertyAccess().getPropertyKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Property__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group__1__Impl
+       rule__Property__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_1()); }
+       ruleOneProperty
+{ after(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Property__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getGroup_2()); }
+(rule__Property__Group_2__0)*
+{ after(grammarAccess.getPropertyAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Property__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group_2__0__Impl
+       rule__Property__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getPropertyAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__Property__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__Property__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Property__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_2_1()); }
+       ruleOneProperty
+{ after(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OneProperty__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneProperty__Group__0__Impl
+       rule__OneProperty__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneProperty__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOnePropertyAccess().getNemoIdTerminalRuleCall_0()); }
+       RULE_NEMOID
+{ after(grammarAccess.getOnePropertyAccess().getNemoIdTerminalRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__OneProperty__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneProperty__Group__1__Impl
+       rule__OneProperty__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneProperty__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOnePropertyAccess().getColonKeyword_1()); }
+
+       ':' 
+
+{ after(grammarAccess.getOnePropertyAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__OneProperty__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneProperty__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneProperty__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOnePropertyAccess().getAlternatives_2()); }
+(rule__OneProperty__Alternatives_2)
+{ after(grammarAccess.getOnePropertyAccess().getAlternatives_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ModelProperty__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group__0__Impl
+       rule__ModelProperty__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getPropertyKeyword_0()); }
+
+       'Property' 
+
+{ after(grammarAccess.getModelPropertyAccess().getPropertyKeyword_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ModelProperty__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group__1__Impl
+       rule__ModelProperty__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_1()); }
+       ruleOneModelProperty
+{ after(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ModelProperty__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getGroup_2()); }
+(rule__ModelProperty__Group_2__0)*
+{ after(grammarAccess.getModelPropertyAccess().getGroup_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ModelProperty__Group_2__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group_2__0__Impl
+       rule__ModelProperty__Group_2__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group_2__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getCommaKeyword_2_0()); }
+
+       ',' 
+
+{ after(grammarAccess.getModelPropertyAccess().getCommaKeyword_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__ModelProperty__Group_2__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__ModelProperty__Group_2__1__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ModelProperty__Group_2__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_2_1()); }
+       ruleOneModelProperty
+{ after(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_2_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OneModelProperty__Group__0
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneModelProperty__Group__0__Impl
+       rule__OneModelProperty__Group__1
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneModelProperty__Group__0__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getAlternatives_0()); }
+(rule__OneModelProperty__Alternatives_0)
+{ after(grammarAccess.getOneModelPropertyAccess().getAlternatives_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__OneModelProperty__Group__1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneModelProperty__Group__1__Impl
+       rule__OneModelProperty__Group__2
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneModelProperty__Group__1__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getColonKeyword_1()); }
+
+       ':' 
+
+{ after(grammarAccess.getOneModelPropertyAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__OneModelProperty__Group__2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+       rule__OneModelProperty__Group__2__Impl
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__OneModelProperty__Group__2__Impl
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOneModelPropertyAccess().getNemoIdTerminalRuleCall_2()); }
+       RULE_NEMOID
+{ after(grammarAccess.getOneModelPropertyAccess().getNemoIdTerminalRuleCall_2()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+rule__Model__SentencesAssignment
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelAccess().getSentencesSentenceParserRuleCall_0()); }
+       ruleSentence{ after(grammarAccess.getModelAccess().getSentencesSentenceParserRuleCall_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__NameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__NodesAssignment_4_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Node__NodesAssignment_4_2_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_2_1_0()); }
+(
+{ before(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+)
+{ after(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_2_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+rule__NodeOperating__NodenameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodenameNodeCrossReference_2_0()); }
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodenameNodeNemoIdTerminalRuleCall_2_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeOperatingAccess().getNodenameNodeNemoIdTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getNodeOperatingAccess().getNodenameNodeCrossReference_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__NodesAssignment_4_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__NodeOperating__NodesAssignment_4_2_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_2_1_0()); }
+(
+{ before(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+)
+{ after(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_2_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__NameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__EndnodeAssignment_5_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_1_0()); }
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_1_0_1()); }
+)
+{ after(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Connection__EndnodeAssignment_5_2_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_2_1_0()); }
+(
+{ before(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_2_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_2_1_0_1()); }
+)
+{ after(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_2_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__ConnectionnameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionCrossReference_2_0()); }
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionNemoIdTerminalRuleCall_2_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionNemoIdTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionCrossReference_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__EndnodeAssignment_4_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__ConnectionUpdate__EndnodeAssignment_4_2_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_2_1_0()); }
+(
+{ before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_2_1_0_1()); }
+)
+{ after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_2_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Flow__NameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+       RULE_NEMOID{ after(grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__FlowUpdate__FlowIdAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowUpdateAccess().getFlowIdFlowCrossReference_2_0()); }
+(
+{ before(grammarAccess.getFlowUpdateAccess().getFlowIdFlowNemoIdTerminalRuleCall_2_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getFlowUpdateAccess().getFlowIdFlowNemoIdTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getFlowUpdateAccess().getFlowIdFlowCrossReference_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__NameAssignment_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+       RULE_NEMOID{ after(grammarAccess.getOperationAccess().getNameNemoIdTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__ValueAssignment_3_1
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getValueINTTerminalRuleCall_3_1_0()); }
+       RULE_INT{ after(grammarAccess.getOperationAccess().getValueINTTerminalRuleCall_3_1_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__TargetIdAssignment_5
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetIdFlowCrossReference_5_0()); }
+(
+{ before(grammarAccess.getOperationAccess().getTargetIdFlowNemoIdTerminalRuleCall_5_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getOperationAccess().getTargetIdFlowNemoIdTerminalRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getOperationAccess().getTargetIdFlowCrossReference_5_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+rule__Operation__TargetNodeAssignment_8_1_2
+    @init {
+               int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationAccess().getTargetNodeNodeCrossReference_8_1_2_0()); }
+(
+{ before(grammarAccess.getOperationAccess().getTargetNodeNodeNemoIdTerminalRuleCall_8_1_2_0_1()); }
+       RULE_NEMOID{ after(grammarAccess.getOperationAccess().getTargetNodeNodeNemoIdTerminalRuleCall_8_1_2_0_1()); }
+)
+{ after(grammarAccess.getOperationAccess().getTargetNodeNodeCrossReference_8_1_2_0()); }
+)
+
+;
+finally {
+       restoreStackSize(stackSize);
+}
+
+
+RULE_IPV4_SUB : ('0'..'9'|'1'..'9' '0'..'9'|'1' '0'..'9' '0'..'9'|'2' '0'..'4' '0'..'9'|'25' '0'..'5');
+
+RULE_NEMOID : ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'-'|'0'..'9')*;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.tokens b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.tokens
new file mode 100644 (file)
index 0000000..92b438d
--- /dev/null
@@ -0,0 +1,55 @@
+','=19
+'.'=20
+':'=28
+';'=18
+'Action'=31
+'CREATE'=15
+'Condition'=33
+'Connection'=24
+'Contain'=23
+'DELETE'=14
+'Endnodes'=25
+'Engines:'=17
+'Flow'=26
+'IMPORT'=16
+'Match'=27
+'Node'=21
+'Operation'=29
+'Priority'=32
+'Property '=34
+'Property'=35
+'Target'=30
+'Type'=22
+'UPDATE'=13
+RULE_ANY_OTHER=12
+RULE_ID=8
+RULE_INT=6
+RULE_IPV4_SUB=7
+RULE_ML_COMMENT=9
+RULE_NEMOID=4
+RULE_SL_COMMENT=10
+RULE_STRING=5
+RULE_WS=11
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorLexer.java
new file mode 100644 (file)
index 0000000..8f247d6
--- /dev/null
@@ -0,0 +1,1770 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.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.ui.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 InternalEditorLexer extends Lexer {
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    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__33=33;
+    public static final int T__34=34;
+    public static final int T__13=13;
+    public static final int T__35=35;
+    public static final int T__14=14;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_ID=8;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int RULE_IPV4_SUB=7;
+    public static final int T__28=28;
+    public static final int RULE_INT=6;
+    public static final int T__29=29;
+    public static final int RULE_NEMOID=4;
+    public static final int T__22=22;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+
+    // delegates
+    // delegators
+
+    public InternalEditorLexer() {;} 
+    public InternalEditorLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalEditorLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g"; }
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:11:7: ( 'UPDATE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:11:9: 'UPDATE'
+            {
+            match("UPDATE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__13"
+
+    // $ANTLR start "T__14"
+    public final void mT__14() throws RecognitionException {
+        try {
+            int _type = T__14;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:12:7: ( 'DELETE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:12:9: 'DELETE'
+            {
+            match("DELETE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:13:7: ( 'CREATE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:13:9: 'CREATE'
+            {
+            match("CREATE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:14:7: ( 'IMPORT' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:14:9: 'IMPORT'
+            {
+            match("IMPORT"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__16"
+
+    // $ANTLR start "T__17"
+    public final void mT__17() throws RecognitionException {
+        try {
+            int _type = T__17;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:15:7: ( 'Engines:' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:15:9: 'Engines:'
+            {
+            match("Engines:"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__17"
+
+    // $ANTLR start "T__18"
+    public final void mT__18() throws RecognitionException {
+        try {
+            int _type = T__18;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:16:7: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:16:9: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__18"
+
+    // $ANTLR start "T__19"
+    public final void mT__19() throws RecognitionException {
+        try {
+            int _type = T__19;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:17:7: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:17:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:18:7: ( '.' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:18:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:19:7: ( 'Node' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:19:9: 'Node'
+            {
+            match("Node"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:20:7: ( 'Type' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:20:9: 'Type'
+            {
+            match("Type"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__22"
+
+    // $ANTLR start "T__23"
+    public final void mT__23() throws RecognitionException {
+        try {
+            int _type = T__23;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:21:7: ( 'Contain' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:21:9: 'Contain'
+            {
+            match("Contain"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:22:7: ( 'Connection' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:22:9: 'Connection'
+            {
+            match("Connection"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__24"
+
+    // $ANTLR start "T__25"
+    public final void mT__25() throws RecognitionException {
+        try {
+            int _type = T__25;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:23:7: ( 'Endnodes' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:23:9: 'Endnodes'
+            {
+            match("Endnodes"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__25"
+
+    // $ANTLR start "T__26"
+    public final void mT__26() throws RecognitionException {
+        try {
+            int _type = T__26;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:24:7: ( 'Flow' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:24:9: 'Flow'
+            {
+            match("Flow"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__26"
+
+    // $ANTLR start "T__27"
+    public final void mT__27() throws RecognitionException {
+        try {
+            int _type = T__27;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:25:7: ( 'Match' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:25:9: 'Match'
+            {
+            match("Match"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__27"
+
+    // $ANTLR start "T__28"
+    public final void mT__28() throws RecognitionException {
+        try {
+            int _type = T__28;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:26:7: ( ':' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:26:9: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__28"
+
+    // $ANTLR start "T__29"
+    public final void mT__29() throws RecognitionException {
+        try {
+            int _type = T__29;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:27:7: ( 'Operation' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:27:9: 'Operation'
+            {
+            match("Operation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__29"
+
+    // $ANTLR start "T__30"
+    public final void mT__30() throws RecognitionException {
+        try {
+            int _type = T__30;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:28:7: ( 'Target' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:28:9: 'Target'
+            {
+            match("Target"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__30"
+
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:29:7: ( 'Action' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:29:9: 'Action'
+            {
+            match("Action"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
+    // $ANTLR start "T__32"
+    public final void mT__32() throws RecognitionException {
+        try {
+            int _type = T__32;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:30:7: ( 'Priority' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:30:9: 'Priority'
+            {
+            match("Priority"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__32"
+
+    // $ANTLR start "T__33"
+    public final void mT__33() throws RecognitionException {
+        try {
+            int _type = T__33;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:31:7: ( 'Condition' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:31:9: 'Condition'
+            {
+            match("Condition"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:32:7: ( 'Property ' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:32:9: 'Property '
+            {
+            match("Property "); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__34"
+
+    // $ANTLR start "T__35"
+    public final void mT__35() throws RecognitionException {
+        try {
+            int _type = T__35;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:33:7: ( 'Property' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:33:9: 'Property'
+            {
+            match("Property"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__35"
+
+    // $ANTLR start "RULE_IPV4_SUB"
+    public final void mRULE_IPV4_SUB() throws RecognitionException {
+        try {
+            int _type = RULE_IPV4_SUB;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5205:15: ( ( '0' .. '9' | '1' .. '9' '0' .. '9' | '1' '0' .. '9' '0' .. '9' | '2' '0' .. '4' '0' .. '9' | '25' '0' .. '5' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5205:17: ( '0' .. '9' | '1' .. '9' '0' .. '9' | '1' '0' .. '9' '0' .. '9' | '2' '0' .. '4' '0' .. '9' | '25' '0' .. '5' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5205:17: ( '0' .. '9' | '1' .. '9' '0' .. '9' | '1' '0' .. '9' '0' .. '9' | '2' '0' .. '4' '0' .. '9' | '25' '0' .. '5' )
+            int alt1=5;
+            alt1 = dfa1.predict(input);
+            switch (alt1) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5205:18: '0' .. '9'
+                    {
+                    matchRange('0','9'); 
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5205:27: '1' .. '9' '0' .. '9'
+                    {
+                    matchRange('1','9'); 
+                    matchRange('0','9'); 
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5205:45: '1' '0' .. '9' '0' .. '9'
+                    {
+                    match('1'); 
+                    matchRange('0','9'); 
+                    matchRange('0','9'); 
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5205:67: '2' '0' .. '4' '0' .. '9'
+                    {
+                    match('2'); 
+                    matchRange('0','4'); 
+                    matchRange('0','9'); 
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5205:89: '25' '0' .. '5'
+                    {
+                    match("25"); 
+
+                    matchRange('0','5'); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_IPV4_SUB"
+
+    // $ANTLR start "RULE_NEMOID"
+    public final void mRULE_NEMOID() throws RecognitionException {
+        try {
+            int _type = RULE_NEMOID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5207:13: ( ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '-' | '0' .. '9' )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5207:15: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '-' | '0' .. '9' )*
+            {
+            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5207:43: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '-' | '0' .. '9' )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0=='$'||LA2_0=='-'||(LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:
+                   {
+                   if ( input.LA(1)=='$'||input.LA(1)=='-'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                       input.consume();
+
+                   }
+                   else {
+                       MismatchedSetException mse = new MismatchedSetException(null,input);
+                       recover(mse);
+                       throw mse;}
+
+
+                   }
+                   break;
+
+               default :
+                   break loop2;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_NEMOID"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5209:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5209:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5209:11: ( '^' )?
+            int alt3=2;
+            int LA3_0 = input.LA(1);
+
+            if ( (LA3_0=='^') ) {
+                alt3=1;
+            }
+            switch (alt3) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5209:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5209:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            loop4:
+            do {
+                int alt4=2;
+                int LA4_0 = input.LA(1);
+
+                if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) {
+                    alt4=1;
+                }
+
+
+                switch (alt4) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:
+                   {
+                   if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                       input.consume();
+
+                   }
+                   else {
+                       MismatchedSetException mse = new MismatchedSetException(null,input);
+                       recover(mse);
+                       throw mse;}
+
+
+                   }
+                   break;
+
+               default :
+                   break loop4;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ID"
+
+    // $ANTLR start "RULE_INT"
+    public final void mRULE_INT() throws RecognitionException {
+        try {
+            int _type = RULE_INT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5211:10: ( ( '0' .. '9' )+ )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5211:12: ( '0' .. '9' )+
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5211:12: ( '0' .. '9' )+
+            int cnt5=0;
+            loop5:
+            do {
+                int alt5=2;
+                int LA5_0 = input.LA(1);
+
+                if ( ((LA5_0>='0' && LA5_0<='9')) ) {
+                    alt5=1;
+                }
+
+
+                switch (alt5) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5211:13: '0' .. '9'
+                   {
+                   matchRange('0','9'); 
+
+                   }
+                   break;
+
+               default :
+                   if ( cnt5 >= 1 ) break loop5;
+                        EarlyExitException eee =
+                            new EarlyExitException(5, input);
+                        throw eee;
+                }
+                cnt5++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_INT"
+
+    // $ANTLR start "RULE_STRING"
+    public final void mRULE_STRING() throws RecognitionException {
+        try {
+            int _type = RULE_STRING;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0=='\"') ) {
+                alt8=1;
+            }
+            else if ( (LA8_0=='\'') ) {
+                alt8=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    loop6:
+                    do {
+                        int alt6=3;
+                        int LA6_0 = input.LA(1);
+
+                        if ( (LA6_0=='\\') ) {
+                            alt6=1;
+                        }
+                        else if ( ((LA6_0>='\u0000' && LA6_0<='!')||(LA6_0>='#' && LA6_0<='[')||(LA6_0>=']' && LA6_0<='\uFFFF')) ) {
+                            alt6=2;
+                        }
+
+
+                        switch (alt6) {
+                       case 1 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213:21: '\\\\' .
+                           {
+                           match('\\'); 
+                           matchAny(); 
+
+                           }
+                           break;
+                       case 2 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213: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 loop6;
+                        }
+                    } while (true);
+
+                    match('\"'); 
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    loop7:
+                    do {
+                        int alt7=3;
+                        int LA7_0 = input.LA(1);
+
+                        if ( (LA7_0=='\\') ) {
+                            alt7=1;
+                        }
+                        else if ( ((LA7_0>='\u0000' && LA7_0<='&')||(LA7_0>='(' && LA7_0<='[')||(LA7_0>=']' && LA7_0<='\uFFFF')) ) {
+                            alt7=2;
+                        }
+
+
+                        switch (alt7) {
+                       case 1 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213:54: '\\\\' .
+                           {
+                           match('\\'); 
+                           matchAny(); 
+
+                           }
+                           break;
+                       case 2 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5213: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 loop7;
+                        }
+                    } while (true);
+
+                    match('\''); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_STRING"
+
+    // $ANTLR start "RULE_ML_COMMENT"
+    public final void mRULE_ML_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_ML_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5215:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5215:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5215:24: ( options {greedy=false; } : . )*
+            loop9:
+            do {
+                int alt9=2;
+                int LA9_0 = input.LA(1);
+
+                if ( (LA9_0=='*') ) {
+                    int LA9_1 = input.LA(2);
+
+                    if ( (LA9_1=='/') ) {
+                        alt9=2;
+                    }
+                    else if ( ((LA9_1>='\u0000' && LA9_1<='.')||(LA9_1>='0' && LA9_1<='\uFFFF')) ) {
+                        alt9=1;
+                    }
+
+
+                }
+                else if ( ((LA9_0>='\u0000' && LA9_0<=')')||(LA9_0>='+' && LA9_0<='\uFFFF')) ) {
+                    alt9=1;
+                }
+
+
+                switch (alt9) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5215:52: .
+                   {
+                   matchAny(); 
+
+                   }
+                   break;
+
+               default :
+                   break loop9;
+                }
+            } while (true);
+
+            match("*/"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ML_COMMENT"
+
+    // $ANTLR start "RULE_SL_COMMENT"
+    public final void mRULE_SL_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_SL_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5217:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5217:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5217:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            loop10:
+            do {
+                int alt10=2;
+                int LA10_0 = input.LA(1);
+
+                if ( ((LA10_0>='\u0000' && LA10_0<='\t')||(LA10_0>='\u000B' && LA10_0<='\f')||(LA10_0>='\u000E' && LA10_0<='\uFFFF')) ) {
+                    alt10=1;
+                }
+
+
+                switch (alt10) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5217:24: ~ ( ( '\\n' | '\\r' ) )
+                   {
+                   if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+                       input.consume();
+
+                   }
+                   else {
+                       MismatchedSetException mse = new MismatchedSetException(null,input);
+                       recover(mse);
+                       throw mse;}
+
+
+                   }
+                   break;
+
+               default :
+                   break loop10;
+                }
+            } while (true);
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5217:40: ( ( '\\r' )? '\\n' )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0=='\n'||LA12_0=='\r') ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5217:41: ( '\\r' )? '\\n'
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5217:41: ( '\\r' )?
+                    int alt11=2;
+                    int LA11_0 = input.LA(1);
+
+                    if ( (LA11_0=='\r') ) {
+                        alt11=1;
+                    }
+                    switch (alt11) {
+                        case 1 :
+                            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5217:41: '\\r'
+                            {
+                            match('\r'); 
+
+                            }
+                            break;
+
+                    }
+
+                    match('\n'); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_SL_COMMENT"
+
+    // $ANTLR start "RULE_WS"
+    public final void mRULE_WS() throws RecognitionException {
+        try {
+            int _type = RULE_WS;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5219:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5219:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5219:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            int cnt13=0;
+            loop13:
+            do {
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+
+                if ( ((LA13_0>='\t' && LA13_0<='\n')||LA13_0=='\r'||LA13_0==' ') ) {
+                    alt13=1;
+                }
+
+
+                switch (alt13) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:
+                   {
+                   if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+                       input.consume();
+
+                   }
+                   else {
+                       MismatchedSetException mse = new MismatchedSetException(null,input);
+                       recover(mse);
+                       throw mse;}
+
+
+                   }
+                   break;
+
+               default :
+                   if ( cnt13 >= 1 ) break loop13;
+                        EarlyExitException eee =
+                            new EarlyExitException(13, input);
+                        throw eee;
+                }
+                cnt13++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_WS"
+
+    // $ANTLR start "RULE_ANY_OTHER"
+    public final void mRULE_ANY_OTHER() throws RecognitionException {
+        try {
+            int _type = RULE_ANY_OTHER;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5221:16: ( . )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5221:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | RULE_IPV4_SUB | RULE_NEMOID | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt14=32;
+        alt14 = dfa14.predict(input);
+        switch (alt14) {
+            case 1 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:10: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 2 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:16: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 3 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:22: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 4 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:28: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 5 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:34: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 6 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:40: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 7 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:46: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 8 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:52: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 9 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:58: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 10 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:64: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 11 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:70: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 12 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:76: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 13 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:82: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 14 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:88: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 15 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:94: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 16 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:100: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 17 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:106: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 18 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:112: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 19 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:118: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 20 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:124: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 21 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:130: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 22 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:136: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 23 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:142: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 24 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:148: RULE_IPV4_SUB
+                {
+                mRULE_IPV4_SUB(); 
+
+                }
+                break;
+            case 25 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:162: RULE_NEMOID
+                {
+                mRULE_NEMOID(); 
+
+                }
+                break;
+            case 26 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:174: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 27 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:182: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 28 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:191: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 29 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:203: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 30 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:219: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 31 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:235: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 32 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1:243: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA1 dfa1 = new DFA1(this);
+    protected DFA14 dfa14 = new DFA14(this);
+    static final String DFA1_eotS =
+        "\1\uffff\1\2\1\uffff\2\2\3\10\4\uffff";
+    static final String DFA1_eofS =
+        "\14\uffff";
+    static final String DFA1_minS =
+        "\2\60\1\uffff\5\60\4\uffff";
+    static final String DFA1_maxS =
+        "\2\71\1\uffff\4\71\1\65\4\uffff";
+    static final String DFA1_acceptS =
+        "\2\uffff\1\1\5\uffff\1\2\1\3\1\4\1\5";
+    static final String DFA1_specialS =
+        "\14\uffff}>";
+    static final String[] DFA1_transitionS = {
+            "\1\2\1\1\1\3\7\4",
+            "\12\5",
+            "",
+            "\5\6\1\7\4\10",
+            "\12\10",
+            "\12\11",
+            "\12\12",
+            "\6\13",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS);
+    static final short[] DFA1_eof = DFA.unpackEncodedString(DFA1_eofS);
+    static final char[] DFA1_min = DFA.unpackEncodedStringToUnsignedChars(DFA1_minS);
+    static final char[] DFA1_max = DFA.unpackEncodedStringToUnsignedChars(DFA1_maxS);
+    static final short[] DFA1_accept = DFA.unpackEncodedString(DFA1_acceptS);
+    static final short[] DFA1_special = DFA.unpackEncodedString(DFA1_specialS);
+    static final short[][] DFA1_transition;
+
+    static {
+        int numStates = DFA1_transitionS.length;
+        DFA1_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA1_transition[i] = DFA.unpackEncodedString(DFA1_transitionS[i]);
+        }
+    }
+
+    class DFA1 extends DFA {
+
+        public DFA1(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 1;
+            this.eot = DFA1_eot;
+            this.eof = DFA1_eof;
+            this.min = DFA1_min;
+            this.max = DFA1_max;
+            this.accept = DFA1_accept;
+            this.special = DFA1_special;
+            this.transition = DFA1_transition;
+        }
+        public String getDescription() {
+            return "5205:17: ( '0' .. '9' | '1' .. '9' '0' .. '9' | '1' '0' .. '9' '0' .. '9' | '2' '0' .. '4' '0' .. '9' | '25' '0' .. '5' )";
+        }
+    }
+    static final String DFA14_eotS =
+        "\1\uffff\5\36\3\uffff\4\36\1\uffff\3\36\4\62\1\36\1\34\1\uffff\3\34\2\uffff\1\36\1\uffff\6\36\3\uffff\5\36\1\uffff\3\36\1\62\2\uffff\3\62\5\uffff\20\36\3\62\11\36\1\152\1\153\1\36\1\155\16\36\2\uffff\1\36\1\uffff\1\175\4\36\1\u0082\1\u0083\1\u0084\3\36\1\u0088\2\36\1\u008b\1\uffff\1\36\1\u008d\2\36\3\uffff\1\u0090\2\36\1\uffff\2\36\1\uffff\1\36\1\uffff\2\36\1\uffff\2\36\1\uffff\1\u009a\1\36\1\u009c\1\u009e\1\36\1\u00a0\1\uffff\1\u00a1\3\uffff\1\u00a2\3\uffff";
+    static final String DFA14_eofS =
+        "\u00a3\uffff";
+    static final String DFA14_minS =
+        "\1\0\5\60\3\uffff\4\60\1\uffff\10\60\1\101\1\uffff\2\0\1\52\2\uffff\1\60\1\uffff\6\60\3\uffff\5\60\1\uffff\4\60\2\uffff\3\60\5\uffff\34\60\2\44\1\60\1\44\16\60\2\uffff\1\60\1\uffff\1\44\4\60\3\44\3\60\1\44\2\60\1\44\1\uffff\1\60\1\44\2\60\3\uffff\1\44\2\60\1\uffff\2\60\1\uffff\1\60\1\uffff\2\60\1\uffff\2\60\1\uffff\1\44\1\60\1\44\1\40\1\60\1\44\1\uffff\1\44\3\uffff\1\44\3\uffff";
+    static final String DFA14_maxS =
+        "\1\uffff\5\172\3\uffff\4\172\1\uffff\3\172\4\71\2\172\1\uffff\2\uffff\1\57\2\uffff\1\172\1\uffff\6\172\3\uffff\5\172\1\uffff\3\172\1\71\2\uffff\3\71\5\uffff\20\172\3\71\33\172\2\uffff\1\172\1\uffff\17\172\1\uffff\4\172\3\uffff\3\172\1\uffff\2\172\1\uffff\1\172\1\uffff\2\172\1\uffff\2\172\1\uffff\6\172\1\uffff\1\172\3\uffff\1\172\3\uffff";
+    static final String DFA14_acceptS =
+        "\6\uffff\1\6\1\7\1\10\4\uffff\1\20\11\uffff\1\31\3\uffff\1\37\1\40\1\uffff\1\31\6\uffff\1\6\1\7\1\10\5\uffff\1\20\4\uffff\1\30\1\33\3\uffff\1\32\1\34\1\35\1\36\1\37\56\uffff\1\11\1\12\1\uffff\1\16\17\uffff\1\17\4\uffff\1\1\1\2\1\3\3\uffff\1\4\2\uffff\1\22\1\uffff\1\23\2\uffff\1\13\2\uffff\1\5\6\uffff\1\15\1\uffff\1\24\1\26\1\27\1\uffff\1\25\1\21\1\14";
+    static final String DFA14_specialS =
+        "\1\1\27\uffff\1\2\1\0\u0089\uffff}>";
+    static final String[] DFA14_transitionS = {
+            "\11\34\2\33\2\34\1\33\22\34\1\33\1\34\1\30\1\34\1\27\2\34\1\31\4\34\1\7\1\34\1\10\1\32\1\22\1\21\1\23\7\24\1\15\1\6\5\34\1\17\1\25\1\3\1\2\1\5\1\13\2\25\1\4\3\25\1\14\1\11\1\16\1\20\3\25\1\12\1\1\5\25\3\34\1\26\1\25\1\34\32\25\uff85\34",
+            "\12\37\7\uffff\17\37\1\35\12\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\4\37\1\40\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\21\37\1\41\10\37\4\uffff\1\37\1\uffff\16\37\1\42\13\37",
+            "\12\37\7\uffff\14\37\1\43\15\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\44\14\37",
+            "",
+            "",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\50\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\1\52\27\37\1\51\1\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\13\37\1\53\16\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\1\54\31\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\17\37\1\56\12\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\2\37\1\57\27\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\60\10\37",
+            "\12\61",
+            "\12\63",
+            "\5\64\1\65\4\66",
+            "\12\66",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\32\67\4\uffff\1\67\1\uffff\32\67",
+            "",
+            "\0\70",
+            "\0\70",
+            "\1\71\4\uffff\1\72",
+            "",
+            "",
+            "\12\37\7\uffff\3\37\1\74\26\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\13\37\1\75\16\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\4\37\1\76\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\77\14\37",
+            "\12\37\7\uffff\17\37\1\100\12\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\3\37\1\102\2\37\1\101\23\37",
+            "",
+            "",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\3\37\1\103\26\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\17\37\1\104\12\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\105\10\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\106\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\107\6\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\110\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\111\6\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\112\5\37\1\113\13\37",
+            "\12\114",
+            "",
+            "",
+            "\12\115",
+            "\6\116\4\63",
+            "\12\63",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\12\37\7\uffff\1\117\31\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\4\37\1\120\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\1\121\31\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\3\37\1\124\11\37\1\123\5\37\1\122\6\37",
+            "\12\37\7\uffff\16\37\1\125\13\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\126\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\127\14\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\130\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\131\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\6\37\1\132\23\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\26\37\1\133\3\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\2\37\1\134\27\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\135\10\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\136\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\137\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\17\37\1\140\12\37",
+            "\12\63",
+            "\12\63",
+            "\12\63",
+            "\12\37\7\uffff\23\37\1\141\6\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\23\37\1\142\6\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\23\37\1\143\6\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\1\144\31\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\145\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\146\21\37",
+            "\12\37\7\uffff\21\37\1\147\10\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\150\14\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\151\13\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\154\25\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\7\37\1\156\22\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\1\157\31\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\160\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\161\10\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\162\25\37",
+            "\12\37\7\uffff\4\37\1\163\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\4\37\1\164\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\4\37\1\165\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\166\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\2\37\1\167\27\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\170\6\37",
+            "\12\37\7\uffff\23\37\1\171\6\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\172\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\3\37\1\173\26\37",
+            "",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\174\6\37",
+            "",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\176\6\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\177\14\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\u0080\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\u0081\10\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\u0085\14\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\u0086\6\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\u0087\21\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\22\37\1\u0089\7\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\u008a\25\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\u008c\21\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\u008e\6\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\u008f\6\37",
+            "",
+            "",
+            "",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\u0091\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\u0092\13\37",
+            "",
+            "\12\37\1\u0093\6\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\22\37\1\u0094\7\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\u0095\13\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\30\37\1\u0096\1\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\30\37\1\u0097\1\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\u0098\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\u0099\14\37",
+            "",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\u009b\14\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u009d\3\uffff\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\u009f\14\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "",
+            "",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
+    static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
+    static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
+    static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
+    static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
+    static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
+    static final short[][] DFA14_transition;
+
+    static {
+        int numStates = DFA14_transitionS.length;
+        DFA14_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA14_transition[i] = DFA.unpackEncodedString(DFA14_transitionS[i]);
+        }
+    }
+
+    class DFA14 extends DFA {
+
+        public DFA14(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 14;
+            this.eot = DFA14_eot;
+            this.eof = DFA14_eof;
+            this.min = DFA14_min;
+            this.max = DFA14_max;
+            this.accept = DFA14_accept;
+            this.special = DFA14_special;
+            this.transition = DFA14_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | RULE_IPV4_SUB | RULE_NEMOID | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            IntStream input = _input;
+               int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA14_25 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA14_25>='\u0000' && LA14_25<='\uFFFF')) ) {s = 56;}
+
+                        else s = 28;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA14_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA14_0=='U') ) {s = 1;}
+
+                        else if ( (LA14_0=='D') ) {s = 2;}
+
+                        else if ( (LA14_0=='C') ) {s = 3;}
+
+                        else if ( (LA14_0=='I') ) {s = 4;}
+
+                        else if ( (LA14_0=='E') ) {s = 5;}
+
+                        else if ( (LA14_0==';') ) {s = 6;}
+
+                        else if ( (LA14_0==',') ) {s = 7;}
+
+                        else if ( (LA14_0=='.') ) {s = 8;}
+
+                        else if ( (LA14_0=='N') ) {s = 9;}
+
+                        else if ( (LA14_0=='T') ) {s = 10;}
+
+                        else if ( (LA14_0=='F') ) {s = 11;}
+
+                        else if ( (LA14_0=='M') ) {s = 12;}
+
+                        else if ( (LA14_0==':') ) {s = 13;}
+
+                        else if ( (LA14_0=='O') ) {s = 14;}
+
+                        else if ( (LA14_0=='A') ) {s = 15;}
+
+                        else if ( (LA14_0=='P') ) {s = 16;}
+
+                        else if ( (LA14_0=='1') ) {s = 17;}
+
+                        else if ( (LA14_0=='0') ) {s = 18;}
+
+                        else if ( (LA14_0=='2') ) {s = 19;}
+
+                        else if ( ((LA14_0>='3' && LA14_0<='9')) ) {s = 20;}
+
+                        else if ( (LA14_0=='B'||(LA14_0>='G' && LA14_0<='H')||(LA14_0>='J' && LA14_0<='L')||(LA14_0>='Q' && LA14_0<='S')||(LA14_0>='V' && LA14_0<='Z')||LA14_0=='_'||(LA14_0>='a' && LA14_0<='z')) ) {s = 21;}
+
+                        else if ( (LA14_0=='^') ) {s = 22;}
+
+                        else if ( (LA14_0=='$') ) {s = 23;}
+
+                        else if ( (LA14_0=='\"') ) {s = 24;}
+
+                        else if ( (LA14_0=='\'') ) {s = 25;}
+
+                        else if ( (LA14_0=='/') ) {s = 26;}
+
+                        else if ( ((LA14_0>='\t' && LA14_0<='\n')||LA14_0=='\r'||LA14_0==' ') ) {s = 27;}
+
+                        else if ( ((LA14_0>='\u0000' && LA14_0<='\b')||(LA14_0>='\u000B' && LA14_0<='\f')||(LA14_0>='\u000E' && LA14_0<='\u001F')||LA14_0=='!'||LA14_0=='#'||(LA14_0>='%' && LA14_0<='&')||(LA14_0>='(' && LA14_0<='+')||LA14_0=='-'||(LA14_0>='<' && LA14_0<='@')||(LA14_0>='[' && LA14_0<=']')||LA14_0=='`'||(LA14_0>='{' && LA14_0<='\uFFFF')) ) {s = 28;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA14_24 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA14_24>='\u0000' && LA14_24<='\uFFFF')) ) {s = 56;}
+
+                        else s = 28;
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 14, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditorParser.java
new file mode 100644 (file)
index 0000000..0b21855
--- /dev/null
@@ -0,0 +1,13869 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.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.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalEditorParser extends AbstractInternalContentAssistParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_NEMOID", "RULE_STRING", "RULE_INT", "RULE_IPV4_SUB", "RULE_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'UPDATE'", "'DELETE'", "'CREATE'", "'IMPORT'", "'Engines:'", "';'", "','", "'.'", "'Node'", "'Type'", "'Contain'", "'Connection'", "'Endnodes'", "'Flow'", "'Match'", "':'", "'Operation'", "'Target'", "'Action'", "'Priority'", "'Condition'", "'Property '", "'Property'"
+    };
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    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__33=33;
+    public static final int T__34=34;
+    public static final int T__13=13;
+    public static final int T__35=35;
+    public static final int T__14=14;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_ID=8;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int RULE_IPV4_SUB=7;
+    public static final int T__28=28;
+    public static final int RULE_INT=6;
+    public static final int T__29=29;
+    public static final int RULE_NEMOID=4;
+    public static final int T__22=22;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+
+    // delegates
+    // delegators
+
+
+        public InternalEditorParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalEditorParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalEditorParser.tokenNames; }
+    public String getGrammarFileName() { return "../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g"; }
+
+
+     
+       private EditorGrammarAccess grammarAccess;
+       
+        public void setGrammarAccess(EditorGrammarAccess grammarAccess) {
+               this.grammarAccess = grammarAccess;
+        }
+        
+        @Override
+        protected Grammar getGrammar() {
+               return grammarAccess.getGrammar();
+        }
+        
+        @Override
+        protected String getValueForTokenName(String tokenName) {
+               return tokenName;
+        }
+
+
+
+
+    // $ANTLR start "entryRuleModel"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:60:1: entryRuleModel : ruleModel EOF ;
+    public final void entryRuleModel() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:61:1: ( ruleModel EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:62:1: ruleModel EOF
+            {
+             before(grammarAccess.getModelRule()); 
+            pushFollow(FOLLOW_ruleModel_in_entryRuleModel61);
+            ruleModel();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleModel68); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleModel"
+
+
+    // $ANTLR start "ruleModel"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:69:1: ruleModel : ( ( rule__Model__SentencesAssignment )* ) ;
+    public final void ruleModel() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:73:2: ( ( ( rule__Model__SentencesAssignment )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:74:1: ( ( rule__Model__SentencesAssignment )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:74:1: ( ( rule__Model__SentencesAssignment )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:75:1: ( rule__Model__SentencesAssignment )*
+            {
+             before(grammarAccess.getModelAccess().getSentencesAssignment()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:76:1: ( rule__Model__SentencesAssignment )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( ((LA1_0>=13 && LA1_0<=17)) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:76:2: rule__Model__SentencesAssignment
+                   {
+                   pushFollow(FOLLOW_rule__Model__SentencesAssignment_in_ruleModel94);
+                   rule__Model__SentencesAssignment();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop1;
+                }
+            } while (true);
+
+             after(grammarAccess.getModelAccess().getSentencesAssignment()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleModel"
+
+
+    // $ANTLR start "entryRuleSentence"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:88:1: entryRuleSentence : ruleSentence EOF ;
+    public final void entryRuleSentence() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:89:1: ( ruleSentence EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:90:1: ruleSentence EOF
+            {
+             before(grammarAccess.getSentenceRule()); 
+            pushFollow(FOLLOW_ruleSentence_in_entryRuleSentence122);
+            ruleSentence();
+
+            state._fsp--;
+
+             after(grammarAccess.getSentenceRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSentence129); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSentence"
+
+
+    // $ANTLR start "ruleSentence"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:97:1: ruleSentence : ( ( rule__Sentence__Alternatives ) ) ;
+    public final void ruleSentence() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:101:2: ( ( ( rule__Sentence__Alternatives ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:102:1: ( ( rule__Sentence__Alternatives ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:102:1: ( ( rule__Sentence__Alternatives ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:103:1: ( rule__Sentence__Alternatives )
+            {
+             before(grammarAccess.getSentenceAccess().getAlternatives()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:104:1: ( rule__Sentence__Alternatives )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:104:2: rule__Sentence__Alternatives
+            {
+            pushFollow(FOLLOW_rule__Sentence__Alternatives_in_ruleSentence155);
+            rule__Sentence__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSentenceAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSentence"
+
+
+    // $ANTLR start "entryRuleSenEngines"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:116:1: entryRuleSenEngines : ruleSenEngines EOF ;
+    public final void entryRuleSenEngines() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:117:1: ( ruleSenEngines EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:118:1: ruleSenEngines EOF
+            {
+             before(grammarAccess.getSenEnginesRule()); 
+            pushFollow(FOLLOW_ruleSenEngines_in_entryRuleSenEngines182);
+            ruleSenEngines();
+
+            state._fsp--;
+
+             after(grammarAccess.getSenEnginesRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSenEngines189); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSenEngines"
+
+
+    // $ANTLR start "ruleSenEngines"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:125:1: ruleSenEngines : ( ( rule__SenEngines__Group__0 ) ) ;
+    public final void ruleSenEngines() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:129:2: ( ( ( rule__SenEngines__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:130:1: ( ( rule__SenEngines__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:130:1: ( ( rule__SenEngines__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:131:1: ( rule__SenEngines__Group__0 )
+            {
+             before(grammarAccess.getSenEnginesAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:132:1: ( rule__SenEngines__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:132:2: rule__SenEngines__Group__0
+            {
+            pushFollow(FOLLOW_rule__SenEngines__Group__0_in_ruleSenEngines215);
+            rule__SenEngines__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSenEnginesAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSenEngines"
+
+
+    // $ANTLR start "entryRuleIpv4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:144:1: entryRuleIpv4 : ruleIpv4 EOF ;
+    public final void entryRuleIpv4() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:145:1: ( ruleIpv4 EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:146:1: ruleIpv4 EOF
+            {
+             before(grammarAccess.getIpv4Rule()); 
+            pushFollow(FOLLOW_ruleIpv4_in_entryRuleIpv4242);
+            ruleIpv4();
+
+            state._fsp--;
+
+             after(grammarAccess.getIpv4Rule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleIpv4249); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIpv4"
+
+
+    // $ANTLR start "ruleIpv4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:153:1: ruleIpv4 : ( ( rule__Ipv4__Group__0 ) ) ;
+    public final void ruleIpv4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:157:2: ( ( ( rule__Ipv4__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:158:1: ( ( rule__Ipv4__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:158:1: ( ( rule__Ipv4__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:159:1: ( rule__Ipv4__Group__0 )
+            {
+             before(grammarAccess.getIpv4Access().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:160:1: ( rule__Ipv4__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:160:2: rule__Ipv4__Group__0
+            {
+            pushFollow(FOLLOW_rule__Ipv4__Group__0_in_ruleIpv4275);
+            rule__Ipv4__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIpv4Access().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIpv4"
+
+
+    // $ANTLR start "entryRuleUser"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:172:1: entryRuleUser : ruleUser EOF ;
+    public final void entryRuleUser() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:173:1: ( ruleUser EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:174:1: ruleUser EOF
+            {
+             before(grammarAccess.getUserRule()); 
+            pushFollow(FOLLOW_ruleUser_in_entryRuleUser302);
+            ruleUser();
+
+            state._fsp--;
+
+             after(grammarAccess.getUserRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleUser309); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleUser"
+
+
+    // $ANTLR start "ruleUser"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:181:1: ruleUser : ( ( rule__User__Group__0 ) ) ;
+    public final void ruleUser() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:185:2: ( ( ( rule__User__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:186:1: ( ( rule__User__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:186:1: ( ( rule__User__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:187:1: ( rule__User__Group__0 )
+            {
+             before(grammarAccess.getUserAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:188:1: ( rule__User__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:188:2: rule__User__Group__0
+            {
+            pushFollow(FOLLOW_rule__User__Group__0_in_ruleUser335);
+            rule__User__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getUserAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleUser"
+
+
+    // $ANTLR start "entryRuleNode"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:200:1: entryRuleNode : ruleNode EOF ;
+    public final void entryRuleNode() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:201:1: ( ruleNode EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:202:1: ruleNode EOF
+            {
+             before(grammarAccess.getNodeRule()); 
+            pushFollow(FOLLOW_ruleNode_in_entryRuleNode362);
+            ruleNode();
+
+            state._fsp--;
+
+             after(grammarAccess.getNodeRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNode369); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNode"
+
+
+    // $ANTLR start "ruleNode"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:209:1: ruleNode : ( ( rule__Node__Group__0 ) ) ;
+    public final void ruleNode() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:213:2: ( ( ( rule__Node__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:214:1: ( ( rule__Node__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:214:1: ( ( rule__Node__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:215:1: ( rule__Node__Group__0 )
+            {
+             before(grammarAccess.getNodeAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:216:1: ( rule__Node__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:216:2: rule__Node__Group__0
+            {
+            pushFollow(FOLLOW_rule__Node__Group__0_in_ruleNode395);
+            rule__Node__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNode"
+
+
+    // $ANTLR start "entryRuleNodeOperating"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:230:1: entryRuleNodeOperating : ruleNodeOperating EOF ;
+    public final void entryRuleNodeOperating() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:231:1: ( ruleNodeOperating EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:232:1: ruleNodeOperating EOF
+            {
+             before(grammarAccess.getNodeOperatingRule()); 
+            pushFollow(FOLLOW_ruleNodeOperating_in_entryRuleNodeOperating424);
+            ruleNodeOperating();
+
+            state._fsp--;
+
+             after(grammarAccess.getNodeOperatingRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNodeOperating431); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNodeOperating"
+
+
+    // $ANTLR start "ruleNodeOperating"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:239:1: ruleNodeOperating : ( ( rule__NodeOperating__Group__0 ) ) ;
+    public final void ruleNodeOperating() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:243:2: ( ( ( rule__NodeOperating__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:244:1: ( ( rule__NodeOperating__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:244:1: ( ( rule__NodeOperating__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:245:1: ( rule__NodeOperating__Group__0 )
+            {
+             before(grammarAccess.getNodeOperatingAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:246:1: ( rule__NodeOperating__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:246:2: rule__NodeOperating__Group__0
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group__0_in_ruleNodeOperating457);
+            rule__NodeOperating__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNodeOperating"
+
+
+    // $ANTLR start "entryRuleConnection"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:258:1: entryRuleConnection : ruleConnection EOF ;
+    public final void entryRuleConnection() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:259:1: ( ruleConnection EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:260:1: ruleConnection EOF
+            {
+             before(grammarAccess.getConnectionRule()); 
+            pushFollow(FOLLOW_ruleConnection_in_entryRuleConnection484);
+            ruleConnection();
+
+            state._fsp--;
+
+             after(grammarAccess.getConnectionRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleConnection491); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConnection"
+
+
+    // $ANTLR start "ruleConnection"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:267:1: ruleConnection : ( ( rule__Connection__Group__0 ) ) ;
+    public final void ruleConnection() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:271:2: ( ( ( rule__Connection__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:272:1: ( ( rule__Connection__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:272:1: ( ( rule__Connection__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:273:1: ( rule__Connection__Group__0 )
+            {
+             before(grammarAccess.getConnectionAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:274:1: ( rule__Connection__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:274:2: rule__Connection__Group__0
+            {
+            pushFollow(FOLLOW_rule__Connection__Group__0_in_ruleConnection517);
+            rule__Connection__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleConnection"
+
+
+    // $ANTLR start "entryRuleConnectionUpdate"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:286:1: entryRuleConnectionUpdate : ruleConnectionUpdate EOF ;
+    public final void entryRuleConnectionUpdate() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:287:1: ( ruleConnectionUpdate EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:288:1: ruleConnectionUpdate EOF
+            {
+             before(grammarAccess.getConnectionUpdateRule()); 
+            pushFollow(FOLLOW_ruleConnectionUpdate_in_entryRuleConnectionUpdate544);
+            ruleConnectionUpdate();
+
+            state._fsp--;
+
+             after(grammarAccess.getConnectionUpdateRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleConnectionUpdate551); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConnectionUpdate"
+
+
+    // $ANTLR start "ruleConnectionUpdate"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:295:1: ruleConnectionUpdate : ( ( rule__ConnectionUpdate__Group__0 ) ) ;
+    public final void ruleConnectionUpdate() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:299:2: ( ( ( rule__ConnectionUpdate__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:300:1: ( ( rule__ConnectionUpdate__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:300:1: ( ( rule__ConnectionUpdate__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:301:1: ( rule__ConnectionUpdate__Group__0 )
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:302:1: ( rule__ConnectionUpdate__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:302:2: rule__ConnectionUpdate__Group__0
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__0_in_ruleConnectionUpdate577);
+            rule__ConnectionUpdate__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleConnectionUpdate"
+
+
+    // $ANTLR start "entryRuleFlow"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:314:1: entryRuleFlow : ruleFlow EOF ;
+    public final void entryRuleFlow() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:315:1: ( ruleFlow EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:316:1: ruleFlow EOF
+            {
+             before(grammarAccess.getFlowRule()); 
+            pushFollow(FOLLOW_ruleFlow_in_entryRuleFlow604);
+            ruleFlow();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFlow611); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFlow"
+
+
+    // $ANTLR start "ruleFlow"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:323:1: ruleFlow : ( ( rule__Flow__Group__0 ) ) ;
+    public final void ruleFlow() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:327:2: ( ( ( rule__Flow__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:328:1: ( ( rule__Flow__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:328:1: ( ( rule__Flow__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:329:1: ( rule__Flow__Group__0 )
+            {
+             before(grammarAccess.getFlowAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:330:1: ( rule__Flow__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:330:2: rule__Flow__Group__0
+            {
+            pushFollow(FOLLOW_rule__Flow__Group__0_in_ruleFlow637);
+            rule__Flow__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFlow"
+
+
+    // $ANTLR start "entryRuleFlowUpdate"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:342:1: entryRuleFlowUpdate : ruleFlowUpdate EOF ;
+    public final void entryRuleFlowUpdate() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:343:1: ( ruleFlowUpdate EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:344:1: ruleFlowUpdate EOF
+            {
+             before(grammarAccess.getFlowUpdateRule()); 
+            pushFollow(FOLLOW_ruleFlowUpdate_in_entryRuleFlowUpdate664);
+            ruleFlowUpdate();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowUpdateRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFlowUpdate671); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFlowUpdate"
+
+
+    // $ANTLR start "ruleFlowUpdate"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:351:1: ruleFlowUpdate : ( ( rule__FlowUpdate__Group__0 ) ) ;
+    public final void ruleFlowUpdate() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:355:2: ( ( ( rule__FlowUpdate__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:356:1: ( ( rule__FlowUpdate__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:356:1: ( ( rule__FlowUpdate__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:357:1: ( rule__FlowUpdate__Group__0 )
+            {
+             before(grammarAccess.getFlowUpdateAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:358:1: ( rule__FlowUpdate__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:358:2: rule__FlowUpdate__Group__0
+            {
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__0_in_ruleFlowUpdate697);
+            rule__FlowUpdate__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowUpdateAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFlowUpdate"
+
+
+    // $ANTLR start "entryRuleMatches"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:370:1: entryRuleMatches : ruleMatches EOF ;
+    public final void entryRuleMatches() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:371:1: ( ruleMatches EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:372:1: ruleMatches EOF
+            {
+             before(grammarAccess.getMatchesRule()); 
+            pushFollow(FOLLOW_ruleMatches_in_entryRuleMatches724);
+            ruleMatches();
+
+            state._fsp--;
+
+             after(grammarAccess.getMatchesRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMatches731); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleMatches"
+
+
+    // $ANTLR start "ruleMatches"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:379:1: ruleMatches : ( ( rule__Matches__Group__0 ) ) ;
+    public final void ruleMatches() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:383:2: ( ( ( rule__Matches__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:384:1: ( ( rule__Matches__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:384:1: ( ( rule__Matches__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:385:1: ( rule__Matches__Group__0 )
+            {
+             before(grammarAccess.getMatchesAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:386:1: ( rule__Matches__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:386:2: rule__Matches__Group__0
+            {
+            pushFollow(FOLLOW_rule__Matches__Group__0_in_ruleMatches757);
+            rule__Matches__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMatchesAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleMatches"
+
+
+    // $ANTLR start "entryRuleMatch"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:398:1: entryRuleMatch : ruleMatch EOF ;
+    public final void entryRuleMatch() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:399:1: ( ruleMatch EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:400:1: ruleMatch EOF
+            {
+             before(grammarAccess.getMatchRule()); 
+            pushFollow(FOLLOW_ruleMatch_in_entryRuleMatch784);
+            ruleMatch();
+
+            state._fsp--;
+
+             after(grammarAccess.getMatchRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMatch791); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleMatch"
+
+
+    // $ANTLR start "ruleMatch"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:407:1: ruleMatch : ( ( rule__Match__Group__0 ) ) ;
+    public final void ruleMatch() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:411:2: ( ( ( rule__Match__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:412:1: ( ( rule__Match__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:412:1: ( ( rule__Match__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:413:1: ( rule__Match__Group__0 )
+            {
+             before(grammarAccess.getMatchAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:414:1: ( rule__Match__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:414:2: rule__Match__Group__0
+            {
+            pushFollow(FOLLOW_rule__Match__Group__0_in_ruleMatch817);
+            rule__Match__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMatchAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleMatch"
+
+
+    // $ANTLR start "entryRuleOperation"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:426:1: entryRuleOperation : ruleOperation EOF ;
+    public final void entryRuleOperation() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:427:1: ( ruleOperation EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:428:1: ruleOperation EOF
+            {
+             before(grammarAccess.getOperationRule()); 
+            pushFollow(FOLLOW_ruleOperation_in_entryRuleOperation844);
+            ruleOperation();
+
+            state._fsp--;
+
+             after(grammarAccess.getOperationRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOperation851); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOperation"
+
+
+    // $ANTLR start "ruleOperation"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:435:1: ruleOperation : ( ( rule__Operation__Group__0 ) ) ;
+    public final void ruleOperation() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:439:2: ( ( ( rule__Operation__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:440:1: ( ( rule__Operation__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:440:1: ( ( rule__Operation__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:441:1: ( rule__Operation__Group__0 )
+            {
+             before(grammarAccess.getOperationAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:442:1: ( rule__Operation__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:442:2: rule__Operation__Group__0
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__0_in_ruleOperation877);
+            rule__Operation__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOperationAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOperation"
+
+
+    // $ANTLR start "entryRuleCondition"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:454:1: entryRuleCondition : ruleCondition EOF ;
+    public final void entryRuleCondition() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:455:1: ( ruleCondition EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:456:1: ruleCondition EOF
+            {
+             before(grammarAccess.getConditionRule()); 
+            pushFollow(FOLLOW_ruleCondition_in_entryRuleCondition904);
+            ruleCondition();
+
+            state._fsp--;
+
+             after(grammarAccess.getConditionRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleCondition911); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleCondition"
+
+
+    // $ANTLR start "ruleCondition"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:463:1: ruleCondition : ( ( rule__Condition__Group__0 ) ) ;
+    public final void ruleCondition() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:467:2: ( ( ( rule__Condition__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:468:1: ( ( rule__Condition__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:468:1: ( ( rule__Condition__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:469:1: ( rule__Condition__Group__0 )
+            {
+             before(grammarAccess.getConditionAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:470:1: ( rule__Condition__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:470:2: rule__Condition__Group__0
+            {
+            pushFollow(FOLLOW_rule__Condition__Group__0_in_ruleCondition937);
+            rule__Condition__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConditionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleCondition"
+
+
+    // $ANTLR start "entryRuleProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:482:1: entryRuleProperty : ruleProperty EOF ;
+    public final void entryRuleProperty() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:483:1: ( ruleProperty EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:484:1: ruleProperty EOF
+            {
+             before(grammarAccess.getPropertyRule()); 
+            pushFollow(FOLLOW_ruleProperty_in_entryRuleProperty964);
+            ruleProperty();
+
+            state._fsp--;
+
+             after(grammarAccess.getPropertyRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleProperty971); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleProperty"
+
+
+    // $ANTLR start "ruleProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:491:1: ruleProperty : ( ( rule__Property__Group__0 ) ) ;
+    public final void ruleProperty() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:495:2: ( ( ( rule__Property__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:496:1: ( ( rule__Property__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:496:1: ( ( rule__Property__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:497:1: ( rule__Property__Group__0 )
+            {
+             before(grammarAccess.getPropertyAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:498:1: ( rule__Property__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:498:2: rule__Property__Group__0
+            {
+            pushFollow(FOLLOW_rule__Property__Group__0_in_ruleProperty997);
+            rule__Property__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPropertyAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleProperty"
+
+
+    // $ANTLR start "entryRuleOneProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:510:1: entryRuleOneProperty : ruleOneProperty EOF ;
+    public final void entryRuleOneProperty() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:511:1: ( ruleOneProperty EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:512:1: ruleOneProperty EOF
+            {
+             before(grammarAccess.getOnePropertyRule()); 
+            pushFollow(FOLLOW_ruleOneProperty_in_entryRuleOneProperty1024);
+            ruleOneProperty();
+
+            state._fsp--;
+
+             after(grammarAccess.getOnePropertyRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOneProperty1031); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOneProperty"
+
+
+    // $ANTLR start "ruleOneProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:519:1: ruleOneProperty : ( ( rule__OneProperty__Group__0 ) ) ;
+    public final void ruleOneProperty() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:523:2: ( ( ( rule__OneProperty__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:524:1: ( ( rule__OneProperty__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:524:1: ( ( rule__OneProperty__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:525:1: ( rule__OneProperty__Group__0 )
+            {
+             before(grammarAccess.getOnePropertyAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:526:1: ( rule__OneProperty__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:526:2: rule__OneProperty__Group__0
+            {
+            pushFollow(FOLLOW_rule__OneProperty__Group__0_in_ruleOneProperty1057);
+            rule__OneProperty__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOnePropertyAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOneProperty"
+
+
+    // $ANTLR start "entryRuleModelProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:538:1: entryRuleModelProperty : ruleModelProperty EOF ;
+    public final void entryRuleModelProperty() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:539:1: ( ruleModelProperty EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:540:1: ruleModelProperty EOF
+            {
+             before(grammarAccess.getModelPropertyRule()); 
+            pushFollow(FOLLOW_ruleModelProperty_in_entryRuleModelProperty1084);
+            ruleModelProperty();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelPropertyRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleModelProperty1091); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleModelProperty"
+
+
+    // $ANTLR start "ruleModelProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:547:1: ruleModelProperty : ( ( rule__ModelProperty__Group__0 ) ) ;
+    public final void ruleModelProperty() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:551:2: ( ( ( rule__ModelProperty__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:552:1: ( ( rule__ModelProperty__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:552:1: ( ( rule__ModelProperty__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:553:1: ( rule__ModelProperty__Group__0 )
+            {
+             before(grammarAccess.getModelPropertyAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:554:1: ( rule__ModelProperty__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:554:2: rule__ModelProperty__Group__0
+            {
+            pushFollow(FOLLOW_rule__ModelProperty__Group__0_in_ruleModelProperty1117);
+            rule__ModelProperty__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelPropertyAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleModelProperty"
+
+
+    // $ANTLR start "entryRuleOneModelProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:566:1: entryRuleOneModelProperty : ruleOneModelProperty EOF ;
+    public final void entryRuleOneModelProperty() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:567:1: ( ruleOneModelProperty EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:568:1: ruleOneModelProperty EOF
+            {
+             before(grammarAccess.getOneModelPropertyRule()); 
+            pushFollow(FOLLOW_ruleOneModelProperty_in_entryRuleOneModelProperty1144);
+            ruleOneModelProperty();
+
+            state._fsp--;
+
+             after(grammarAccess.getOneModelPropertyRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOneModelProperty1151); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOneModelProperty"
+
+
+    // $ANTLR start "ruleOneModelProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:575:1: ruleOneModelProperty : ( ( rule__OneModelProperty__Group__0 ) ) ;
+    public final void ruleOneModelProperty() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:579:2: ( ( ( rule__OneModelProperty__Group__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:580:1: ( ( rule__OneModelProperty__Group__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:580:1: ( ( rule__OneModelProperty__Group__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:581:1: ( rule__OneModelProperty__Group__0 )
+            {
+             before(grammarAccess.getOneModelPropertyAccess().getGroup()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:582:1: ( rule__OneModelProperty__Group__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:582:2: rule__OneModelProperty__Group__0
+            {
+            pushFollow(FOLLOW_rule__OneModelProperty__Group__0_in_ruleOneModelProperty1177);
+            rule__OneModelProperty__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOneModelPropertyAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOneModelProperty"
+
+
+    // $ANTLR start "entryRuleNewObj"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:594:1: entryRuleNewObj : ruleNewObj EOF ;
+    public final void entryRuleNewObj() throws RecognitionException {
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:595:1: ( ruleNewObj EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:596:1: ruleNewObj EOF
+            {
+             before(grammarAccess.getNewObjRule()); 
+            pushFollow(FOLLOW_ruleNewObj_in_entryRuleNewObj1204);
+            ruleNewObj();
+
+            state._fsp--;
+
+             after(grammarAccess.getNewObjRule()); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNewObj1211); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNewObj"
+
+
+    // $ANTLR start "ruleNewObj"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:603:1: ruleNewObj : ( ( rule__NewObj__Alternatives ) ) ;
+    public final void ruleNewObj() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:607:2: ( ( ( rule__NewObj__Alternatives ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:608:1: ( ( rule__NewObj__Alternatives ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:608:1: ( ( rule__NewObj__Alternatives ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:609:1: ( rule__NewObj__Alternatives )
+            {
+             before(grammarAccess.getNewObjAccess().getAlternatives()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:610:1: ( rule__NewObj__Alternatives )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:610:2: rule__NewObj__Alternatives
+            {
+            pushFollow(FOLLOW_rule__NewObj__Alternatives_in_ruleNewObj1237);
+            rule__NewObj__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNewObjAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNewObj"
+
+
+    // $ANTLR start "rule__Sentence__Alternatives"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:622:1: rule__Sentence__Alternatives : ( ( ruleSenEngines ) | ( ruleUser ) | ( ruleNode ) | ( ruleNodeOperating ) | ( ruleConnection ) | ( ruleConnectionUpdate ) | ( ruleFlow ) | ( ruleFlowUpdate ) | ( ruleOperation ) );
+    public final void rule__Sentence__Alternatives() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:626:1: ( ( ruleSenEngines ) | ( ruleUser ) | ( ruleNode ) | ( ruleNodeOperating ) | ( ruleConnection ) | ( ruleConnectionUpdate ) | ( ruleFlow ) | ( ruleFlowUpdate ) | ( ruleOperation ) )
+            int alt2=9;
+            alt2 = dfa2.predict(input);
+            switch (alt2) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:627:1: ( ruleSenEngines )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:627:1: ( ruleSenEngines )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:628:1: ruleSenEngines
+                    {
+                     before(grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()); 
+                    pushFollow(FOLLOW_ruleSenEngines_in_rule__Sentence__Alternatives1273);
+                    ruleSenEngines();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:633:6: ( ruleUser )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:633:6: ( ruleUser )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:634:1: ruleUser
+                    {
+                     before(grammarAccess.getSentenceAccess().getUserParserRuleCall_1()); 
+                    pushFollow(FOLLOW_ruleUser_in_rule__Sentence__Alternatives1290);
+                    ruleUser();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getSentenceAccess().getUserParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:639:6: ( ruleNode )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:639:6: ( ruleNode )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:640:1: ruleNode
+                    {
+                     before(grammarAccess.getSentenceAccess().getNodeParserRuleCall_2()); 
+                    pushFollow(FOLLOW_ruleNode_in_rule__Sentence__Alternatives1307);
+                    ruleNode();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getSentenceAccess().getNodeParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:645:6: ( ruleNodeOperating )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:645:6: ( ruleNodeOperating )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:646:1: ruleNodeOperating
+                    {
+                     before(grammarAccess.getSentenceAccess().getNodeOperatingParserRuleCall_3()); 
+                    pushFollow(FOLLOW_ruleNodeOperating_in_rule__Sentence__Alternatives1324);
+                    ruleNodeOperating();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getSentenceAccess().getNodeOperatingParserRuleCall_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:651:6: ( ruleConnection )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:651:6: ( ruleConnection )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:652:1: ruleConnection
+                    {
+                     before(grammarAccess.getSentenceAccess().getConnectionParserRuleCall_4()); 
+                    pushFollow(FOLLOW_ruleConnection_in_rule__Sentence__Alternatives1341);
+                    ruleConnection();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getSentenceAccess().getConnectionParserRuleCall_4()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:657:6: ( ruleConnectionUpdate )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:657:6: ( ruleConnectionUpdate )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:658:1: ruleConnectionUpdate
+                    {
+                     before(grammarAccess.getSentenceAccess().getConnectionUpdateParserRuleCall_5()); 
+                    pushFollow(FOLLOW_ruleConnectionUpdate_in_rule__Sentence__Alternatives1358);
+                    ruleConnectionUpdate();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getSentenceAccess().getConnectionUpdateParserRuleCall_5()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:663:6: ( ruleFlow )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:663:6: ( ruleFlow )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:664:1: ruleFlow
+                    {
+                     before(grammarAccess.getSentenceAccess().getFlowParserRuleCall_6()); 
+                    pushFollow(FOLLOW_ruleFlow_in_rule__Sentence__Alternatives1375);
+                    ruleFlow();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getSentenceAccess().getFlowParserRuleCall_6()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:669:6: ( ruleFlowUpdate )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:669:6: ( ruleFlowUpdate )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:670:1: ruleFlowUpdate
+                    {
+                     before(grammarAccess.getSentenceAccess().getFlowUpdateParserRuleCall_7()); 
+                    pushFollow(FOLLOW_ruleFlowUpdate_in_rule__Sentence__Alternatives1392);
+                    ruleFlowUpdate();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getSentenceAccess().getFlowUpdateParserRuleCall_7()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 9 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:675:6: ( ruleOperation )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:675:6: ( ruleOperation )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:676:1: ruleOperation
+                    {
+                     before(grammarAccess.getSentenceAccess().getOperationParserRuleCall_8()); 
+                    pushFollow(FOLLOW_ruleOperation_in_rule__Sentence__Alternatives1409);
+                    ruleOperation();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getSentenceAccess().getOperationParserRuleCall_8()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Sentence__Alternatives"
+
+
+    // $ANTLR start "rule__NodeOperating__Alternatives_0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:686:1: rule__NodeOperating__Alternatives_0 : ( ( 'UPDATE' ) | ( 'DELETE' ) );
+    public final void rule__NodeOperating__Alternatives_0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:690:1: ( ( 'UPDATE' ) | ( 'DELETE' ) )
+            int alt3=2;
+            int LA3_0 = input.LA(1);
+
+            if ( (LA3_0==13) ) {
+                alt3=1;
+            }
+            else if ( (LA3_0==14) ) {
+                alt3=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 3, 0, input);
+
+                throw nvae;
+            }
+            switch (alt3) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:691:1: ( 'UPDATE' )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:691:1: ( 'UPDATE' )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:692:1: 'UPDATE'
+                    {
+                     before(grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0()); 
+                    match(input,13,FOLLOW_13_in_rule__NodeOperating__Alternatives_01442); 
+                     after(grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:699:6: ( 'DELETE' )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:699:6: ( 'DELETE' )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:700:1: 'DELETE'
+                    {
+                     before(grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1()); 
+                    match(input,14,FOLLOW_14_in_rule__NodeOperating__Alternatives_01462); 
+                     after(grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Alternatives_0"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Alternatives_0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:712:1: rule__ConnectionUpdate__Alternatives_0 : ( ( 'UPDATE' ) | ( 'DELETE' ) );
+    public final void rule__ConnectionUpdate__Alternatives_0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:716:1: ( ( 'UPDATE' ) | ( 'DELETE' ) )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==13) ) {
+                alt4=1;
+            }
+            else if ( (LA4_0==14) ) {
+                alt4=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 4, 0, input);
+
+                throw nvae;
+            }
+            switch (alt4) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:717:1: ( 'UPDATE' )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:717:1: ( 'UPDATE' )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:718:1: 'UPDATE'
+                    {
+                     before(grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0()); 
+                    match(input,13,FOLLOW_13_in_rule__ConnectionUpdate__Alternatives_01497); 
+                     after(grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:725:6: ( 'DELETE' )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:725:6: ( 'DELETE' )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:726:1: 'DELETE'
+                    {
+                     before(grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1()); 
+                    match(input,14,FOLLOW_14_in_rule__ConnectionUpdate__Alternatives_01517); 
+                     after(grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Alternatives_0"
+
+
+    // $ANTLR start "rule__FlowUpdate__Alternatives_0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:738:1: rule__FlowUpdate__Alternatives_0 : ( ( 'UPDATE' ) | ( 'DELETE' ) );
+    public final void rule__FlowUpdate__Alternatives_0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:742:1: ( ( 'UPDATE' ) | ( 'DELETE' ) )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==13) ) {
+                alt5=1;
+            }
+            else if ( (LA5_0==14) ) {
+                alt5=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+            switch (alt5) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:743:1: ( 'UPDATE' )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:743:1: ( 'UPDATE' )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:744:1: 'UPDATE'
+                    {
+                     before(grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0()); 
+                    match(input,13,FOLLOW_13_in_rule__FlowUpdate__Alternatives_01552); 
+                     after(grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:751:6: ( 'DELETE' )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:751:6: ( 'DELETE' )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:752:1: 'DELETE'
+                    {
+                     before(grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1()); 
+                    match(input,14,FOLLOW_14_in_rule__FlowUpdate__Alternatives_01572); 
+                     after(grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Alternatives_0"
+
+
+    // $ANTLR start "rule__Operation__Alternatives_8"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:764:1: rule__Operation__Alternatives_8 : ( ( RULE_NEMOID ) | ( ( rule__Operation__Group_8_1__0 ) ) );
+    public final void rule__Operation__Alternatives_8() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:768:1: ( ( RULE_NEMOID ) | ( ( rule__Operation__Group_8_1__0 ) ) )
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+
+            if ( (LA6_0==RULE_NEMOID) ) {
+                int LA6_1 = input.LA(2);
+
+                if ( (LA6_1==28) ) {
+                    alt6=2;
+                }
+                else if ( (LA6_1==18) ) {
+                    alt6=1;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 6, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 6, 0, input);
+
+                throw nvae;
+            }
+            switch (alt6) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:769:1: ( RULE_NEMOID )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:769:1: ( RULE_NEMOID )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:770:1: RULE_NEMOID
+                    {
+                     before(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_0()); 
+                    match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Operation__Alternatives_81606); 
+                     after(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:775:6: ( ( rule__Operation__Group_8_1__0 ) )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:775:6: ( ( rule__Operation__Group_8_1__0 ) )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:776:1: ( rule__Operation__Group_8_1__0 )
+                    {
+                     before(grammarAccess.getOperationAccess().getGroup_8_1()); 
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:777:1: ( rule__Operation__Group_8_1__0 )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:777:2: rule__Operation__Group_8_1__0
+                    {
+                    pushFollow(FOLLOW_rule__Operation__Group_8_1__0_in_rule__Operation__Alternatives_81623);
+                    rule__Operation__Group_8_1__0();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getOperationAccess().getGroup_8_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Alternatives_8"
+
+
+    // $ANTLR start "rule__OneProperty__Alternatives_2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:786:1: rule__OneProperty__Alternatives_2 : ( ( RULE_STRING ) | ( RULE_INT ) );
+    public final void rule__OneProperty__Alternatives_2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:790:1: ( ( RULE_STRING ) | ( RULE_INT ) )
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==RULE_STRING) ) {
+                alt7=1;
+            }
+            else if ( (LA7_0==RULE_INT) ) {
+                alt7=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+            switch (alt7) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:791:1: ( RULE_STRING )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:791:1: ( RULE_STRING )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:792:1: RULE_STRING
+                    {
+                     before(grammarAccess.getOnePropertyAccess().getSTRINGTerminalRuleCall_2_0()); 
+                    match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__OneProperty__Alternatives_21656); 
+                     after(grammarAccess.getOnePropertyAccess().getSTRINGTerminalRuleCall_2_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:797:6: ( RULE_INT )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:797:6: ( RULE_INT )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:798:1: RULE_INT
+                    {
+                     before(grammarAccess.getOnePropertyAccess().getINTTerminalRuleCall_2_1()); 
+                    match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__OneProperty__Alternatives_21673); 
+                     after(grammarAccess.getOnePropertyAccess().getINTTerminalRuleCall_2_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneProperty__Alternatives_2"
+
+
+    // $ANTLR start "rule__OneModelProperty__Alternatives_0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:808:1: rule__OneModelProperty__Alternatives_0 : ( ( RULE_STRING ) | ( RULE_INT ) );
+    public final void rule__OneModelProperty__Alternatives_0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:812:1: ( ( RULE_STRING ) | ( RULE_INT ) )
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==RULE_STRING) ) {
+                alt8=1;
+            }
+            else if ( (LA8_0==RULE_INT) ) {
+                alt8=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:813:1: ( RULE_STRING )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:813:1: ( RULE_STRING )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:814:1: RULE_STRING
+                    {
+                     before(grammarAccess.getOneModelPropertyAccess().getSTRINGTerminalRuleCall_0_0()); 
+                    match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__OneModelProperty__Alternatives_01705); 
+                     after(grammarAccess.getOneModelPropertyAccess().getSTRINGTerminalRuleCall_0_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:819:6: ( RULE_INT )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:819:6: ( RULE_INT )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:820:1: RULE_INT
+                    {
+                     before(grammarAccess.getOneModelPropertyAccess().getINTTerminalRuleCall_0_1()); 
+                    match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__OneModelProperty__Alternatives_01722); 
+                     after(grammarAccess.getOneModelPropertyAccess().getINTTerminalRuleCall_0_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneModelProperty__Alternatives_0"
+
+
+    // $ANTLR start "rule__NewObj__Alternatives"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:830:1: rule__NewObj__Alternatives : ( ( 'CREATE' ) | ( 'IMPORT' ) );
+    public final void rule__NewObj__Alternatives() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:834:1: ( ( 'CREATE' ) | ( 'IMPORT' ) )
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0==15) ) {
+                alt9=1;
+            }
+            else if ( (LA9_0==16) ) {
+                alt9=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 9, 0, input);
+
+                throw nvae;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:835:1: ( 'CREATE' )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:835:1: ( 'CREATE' )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:836:1: 'CREATE'
+                    {
+                     before(grammarAccess.getNewObjAccess().getCREATEKeyword_0()); 
+                    match(input,15,FOLLOW_15_in_rule__NewObj__Alternatives1755); 
+                     after(grammarAccess.getNewObjAccess().getCREATEKeyword_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:843:6: ( 'IMPORT' )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:843:6: ( 'IMPORT' )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:844:1: 'IMPORT'
+                    {
+                     before(grammarAccess.getNewObjAccess().getIMPORTKeyword_1()); 
+                    match(input,16,FOLLOW_16_in_rule__NewObj__Alternatives1775); 
+                     after(grammarAccess.getNewObjAccess().getIMPORTKeyword_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NewObj__Alternatives"
+
+
+    // $ANTLR start "rule__SenEngines__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:858:1: rule__SenEngines__Group__0 : rule__SenEngines__Group__0__Impl rule__SenEngines__Group__1 ;
+    public final void rule__SenEngines__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:862:1: ( rule__SenEngines__Group__0__Impl rule__SenEngines__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:863:2: rule__SenEngines__Group__0__Impl rule__SenEngines__Group__1
+            {
+            pushFollow(FOLLOW_rule__SenEngines__Group__0__Impl_in_rule__SenEngines__Group__01807);
+            rule__SenEngines__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__SenEngines__Group__1_in_rule__SenEngines__Group__01810);
+            rule__SenEngines__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group__0"
+
+
+    // $ANTLR start "rule__SenEngines__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:870:1: rule__SenEngines__Group__0__Impl : ( 'Engines:' ) ;
+    public final void rule__SenEngines__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:874:1: ( ( 'Engines:' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:875:1: ( 'Engines:' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:875:1: ( 'Engines:' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:876:1: 'Engines:'
+            {
+             before(grammarAccess.getSenEnginesAccess().getEnginesKeyword_0()); 
+            match(input,17,FOLLOW_17_in_rule__SenEngines__Group__0__Impl1838); 
+             after(grammarAccess.getSenEnginesAccess().getEnginesKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SenEngines__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:889:1: rule__SenEngines__Group__1 : rule__SenEngines__Group__1__Impl rule__SenEngines__Group__2 ;
+    public final void rule__SenEngines__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:893:1: ( rule__SenEngines__Group__1__Impl rule__SenEngines__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:894:2: rule__SenEngines__Group__1__Impl rule__SenEngines__Group__2
+            {
+            pushFollow(FOLLOW_rule__SenEngines__Group__1__Impl_in_rule__SenEngines__Group__11869);
+            rule__SenEngines__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__SenEngines__Group__2_in_rule__SenEngines__Group__11872);
+            rule__SenEngines__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group__1"
+
+
+    // $ANTLR start "rule__SenEngines__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:901:1: rule__SenEngines__Group__1__Impl : ( ruleIpv4 ) ;
+    public final void rule__SenEngines__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:905:1: ( ( ruleIpv4 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:906:1: ( ruleIpv4 )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:906:1: ( ruleIpv4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:907:1: ruleIpv4
+            {
+             before(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_1()); 
+            pushFollow(FOLLOW_ruleIpv4_in_rule__SenEngines__Group__1__Impl1899);
+            ruleIpv4();
+
+            state._fsp--;
+
+             after(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group__1__Impl"
+
+
+    // $ANTLR start "rule__SenEngines__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:918:1: rule__SenEngines__Group__2 : rule__SenEngines__Group__2__Impl rule__SenEngines__Group__3 ;
+    public final void rule__SenEngines__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:922:1: ( rule__SenEngines__Group__2__Impl rule__SenEngines__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:923:2: rule__SenEngines__Group__2__Impl rule__SenEngines__Group__3
+            {
+            pushFollow(FOLLOW_rule__SenEngines__Group__2__Impl_in_rule__SenEngines__Group__21928);
+            rule__SenEngines__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__SenEngines__Group__3_in_rule__SenEngines__Group__21931);
+            rule__SenEngines__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group__2"
+
+
+    // $ANTLR start "rule__SenEngines__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:930:1: rule__SenEngines__Group__2__Impl : ( ( rule__SenEngines__Group_2__0 )* ) ;
+    public final void rule__SenEngines__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:934:1: ( ( ( rule__SenEngines__Group_2__0 )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:935:1: ( ( rule__SenEngines__Group_2__0 )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:935:1: ( ( rule__SenEngines__Group_2__0 )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:936:1: ( rule__SenEngines__Group_2__0 )*
+            {
+             before(grammarAccess.getSenEnginesAccess().getGroup_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:937:1: ( rule__SenEngines__Group_2__0 )*
+            loop10:
+            do {
+                int alt10=2;
+                int LA10_0 = input.LA(1);
+
+                if ( (LA10_0==19) ) {
+                    alt10=1;
+                }
+
+
+                switch (alt10) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:937:2: rule__SenEngines__Group_2__0
+                   {
+                   pushFollow(FOLLOW_rule__SenEngines__Group_2__0_in_rule__SenEngines__Group__2__Impl1958);
+                   rule__SenEngines__Group_2__0();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop10;
+                }
+            } while (true);
+
+             after(grammarAccess.getSenEnginesAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group__2__Impl"
+
+
+    // $ANTLR start "rule__SenEngines__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:947:1: rule__SenEngines__Group__3 : rule__SenEngines__Group__3__Impl ;
+    public final void rule__SenEngines__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:951:1: ( rule__SenEngines__Group__3__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:952:2: rule__SenEngines__Group__3__Impl
+            {
+            pushFollow(FOLLOW_rule__SenEngines__Group__3__Impl_in_rule__SenEngines__Group__31989);
+            rule__SenEngines__Group__3__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group__3"
+
+
+    // $ANTLR start "rule__SenEngines__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:958:1: rule__SenEngines__Group__3__Impl : ( ';' ) ;
+    public final void rule__SenEngines__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:962:1: ( ( ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:963:1: ( ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:963:1: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:964:1: ';'
+            {
+             before(grammarAccess.getSenEnginesAccess().getSemicolonKeyword_3()); 
+            match(input,18,FOLLOW_18_in_rule__SenEngines__Group__3__Impl2017); 
+             after(grammarAccess.getSenEnginesAccess().getSemicolonKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group__3__Impl"
+
+
+    // $ANTLR start "rule__SenEngines__Group_2__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:985:1: rule__SenEngines__Group_2__0 : rule__SenEngines__Group_2__0__Impl rule__SenEngines__Group_2__1 ;
+    public final void rule__SenEngines__Group_2__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:989:1: ( rule__SenEngines__Group_2__0__Impl rule__SenEngines__Group_2__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:990:2: rule__SenEngines__Group_2__0__Impl rule__SenEngines__Group_2__1
+            {
+            pushFollow(FOLLOW_rule__SenEngines__Group_2__0__Impl_in_rule__SenEngines__Group_2__02056);
+            rule__SenEngines__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__SenEngines__Group_2__1_in_rule__SenEngines__Group_2__02059);
+            rule__SenEngines__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group_2__0"
+
+
+    // $ANTLR start "rule__SenEngines__Group_2__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:997:1: rule__SenEngines__Group_2__0__Impl : ( ',' ) ;
+    public final void rule__SenEngines__Group_2__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1001:1: ( ( ',' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1002:1: ( ',' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1002:1: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1003:1: ','
+            {
+             before(grammarAccess.getSenEnginesAccess().getCommaKeyword_2_0()); 
+            match(input,19,FOLLOW_19_in_rule__SenEngines__Group_2__0__Impl2087); 
+             after(grammarAccess.getSenEnginesAccess().getCommaKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__SenEngines__Group_2__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1016:1: rule__SenEngines__Group_2__1 : rule__SenEngines__Group_2__1__Impl ;
+    public final void rule__SenEngines__Group_2__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1020:1: ( rule__SenEngines__Group_2__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1021:2: rule__SenEngines__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__SenEngines__Group_2__1__Impl_in_rule__SenEngines__Group_2__12118);
+            rule__SenEngines__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group_2__1"
+
+
+    // $ANTLR start "rule__SenEngines__Group_2__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1027:1: rule__SenEngines__Group_2__1__Impl : ( ruleIpv4 ) ;
+    public final void rule__SenEngines__Group_2__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1031:1: ( ( ruleIpv4 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1032:1: ( ruleIpv4 )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1032:1: ( ruleIpv4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1033:1: ruleIpv4
+            {
+             before(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_2_1()); 
+            pushFollow(FOLLOW_ruleIpv4_in_rule__SenEngines__Group_2__1__Impl2145);
+            ruleIpv4();
+
+            state._fsp--;
+
+             after(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SenEngines__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__Ipv4__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1048:1: rule__Ipv4__Group__0 : rule__Ipv4__Group__0__Impl rule__Ipv4__Group__1 ;
+    public final void rule__Ipv4__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1052:1: ( rule__Ipv4__Group__0__Impl rule__Ipv4__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1053:2: rule__Ipv4__Group__0__Impl rule__Ipv4__Group__1
+            {
+            pushFollow(FOLLOW_rule__Ipv4__Group__0__Impl_in_rule__Ipv4__Group__02178);
+            rule__Ipv4__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Ipv4__Group__1_in_rule__Ipv4__Group__02181);
+            rule__Ipv4__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__0"
+
+
+    // $ANTLR start "rule__Ipv4__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1060:1: rule__Ipv4__Group__0__Impl : ( RULE_IPV4_SUB ) ;
+    public final void rule__Ipv4__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1064:1: ( ( RULE_IPV4_SUB ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1065:1: ( RULE_IPV4_SUB )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1065:1: ( RULE_IPV4_SUB )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1066:1: RULE_IPV4_SUB
+            {
+             before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_0()); 
+            match(input,RULE_IPV4_SUB,FOLLOW_RULE_IPV4_SUB_in_rule__Ipv4__Group__0__Impl2208); 
+             after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Ipv4__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1077:1: rule__Ipv4__Group__1 : rule__Ipv4__Group__1__Impl rule__Ipv4__Group__2 ;
+    public final void rule__Ipv4__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1081:1: ( rule__Ipv4__Group__1__Impl rule__Ipv4__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1082:2: rule__Ipv4__Group__1__Impl rule__Ipv4__Group__2
+            {
+            pushFollow(FOLLOW_rule__Ipv4__Group__1__Impl_in_rule__Ipv4__Group__12237);
+            rule__Ipv4__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Ipv4__Group__2_in_rule__Ipv4__Group__12240);
+            rule__Ipv4__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__1"
+
+
+    // $ANTLR start "rule__Ipv4__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1089:1: rule__Ipv4__Group__1__Impl : ( '.' ) ;
+    public final void rule__Ipv4__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1093:1: ( ( '.' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1094:1: ( '.' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1094:1: ( '.' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1095:1: '.'
+            {
+             before(grammarAccess.getIpv4Access().getFullStopKeyword_1()); 
+            match(input,20,FOLLOW_20_in_rule__Ipv4__Group__1__Impl2268); 
+             after(grammarAccess.getIpv4Access().getFullStopKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Ipv4__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1108:1: rule__Ipv4__Group__2 : rule__Ipv4__Group__2__Impl rule__Ipv4__Group__3 ;
+    public final void rule__Ipv4__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1112:1: ( rule__Ipv4__Group__2__Impl rule__Ipv4__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1113:2: rule__Ipv4__Group__2__Impl rule__Ipv4__Group__3
+            {
+            pushFollow(FOLLOW_rule__Ipv4__Group__2__Impl_in_rule__Ipv4__Group__22299);
+            rule__Ipv4__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Ipv4__Group__3_in_rule__Ipv4__Group__22302);
+            rule__Ipv4__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__2"
+
+
+    // $ANTLR start "rule__Ipv4__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1120:1: rule__Ipv4__Group__2__Impl : ( RULE_IPV4_SUB ) ;
+    public final void rule__Ipv4__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1124:1: ( ( RULE_IPV4_SUB ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1125:1: ( RULE_IPV4_SUB )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1125:1: ( RULE_IPV4_SUB )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1126:1: RULE_IPV4_SUB
+            {
+             before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_2()); 
+            match(input,RULE_IPV4_SUB,FOLLOW_RULE_IPV4_SUB_in_rule__Ipv4__Group__2__Impl2329); 
+             after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Ipv4__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1137:1: rule__Ipv4__Group__3 : rule__Ipv4__Group__3__Impl rule__Ipv4__Group__4 ;
+    public final void rule__Ipv4__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1141:1: ( rule__Ipv4__Group__3__Impl rule__Ipv4__Group__4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1142:2: rule__Ipv4__Group__3__Impl rule__Ipv4__Group__4
+            {
+            pushFollow(FOLLOW_rule__Ipv4__Group__3__Impl_in_rule__Ipv4__Group__32358);
+            rule__Ipv4__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Ipv4__Group__4_in_rule__Ipv4__Group__32361);
+            rule__Ipv4__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__3"
+
+
+    // $ANTLR start "rule__Ipv4__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1149:1: rule__Ipv4__Group__3__Impl : ( '.' ) ;
+    public final void rule__Ipv4__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1153:1: ( ( '.' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1154:1: ( '.' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1154:1: ( '.' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1155:1: '.'
+            {
+             before(grammarAccess.getIpv4Access().getFullStopKeyword_3()); 
+            match(input,20,FOLLOW_20_in_rule__Ipv4__Group__3__Impl2389); 
+             after(grammarAccess.getIpv4Access().getFullStopKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Ipv4__Group__4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1168:1: rule__Ipv4__Group__4 : rule__Ipv4__Group__4__Impl rule__Ipv4__Group__5 ;
+    public final void rule__Ipv4__Group__4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1172:1: ( rule__Ipv4__Group__4__Impl rule__Ipv4__Group__5 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1173:2: rule__Ipv4__Group__4__Impl rule__Ipv4__Group__5
+            {
+            pushFollow(FOLLOW_rule__Ipv4__Group__4__Impl_in_rule__Ipv4__Group__42420);
+            rule__Ipv4__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Ipv4__Group__5_in_rule__Ipv4__Group__42423);
+            rule__Ipv4__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__4"
+
+
+    // $ANTLR start "rule__Ipv4__Group__4__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1180:1: rule__Ipv4__Group__4__Impl : ( RULE_IPV4_SUB ) ;
+    public final void rule__Ipv4__Group__4__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1184:1: ( ( RULE_IPV4_SUB ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1185:1: ( RULE_IPV4_SUB )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1185:1: ( RULE_IPV4_SUB )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1186:1: RULE_IPV4_SUB
+            {
+             before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_4()); 
+            match(input,RULE_IPV4_SUB,FOLLOW_RULE_IPV4_SUB_in_rule__Ipv4__Group__4__Impl2450); 
+             after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Ipv4__Group__5"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1197:1: rule__Ipv4__Group__5 : rule__Ipv4__Group__5__Impl rule__Ipv4__Group__6 ;
+    public final void rule__Ipv4__Group__5() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1201:1: ( rule__Ipv4__Group__5__Impl rule__Ipv4__Group__6 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1202:2: rule__Ipv4__Group__5__Impl rule__Ipv4__Group__6
+            {
+            pushFollow(FOLLOW_rule__Ipv4__Group__5__Impl_in_rule__Ipv4__Group__52479);
+            rule__Ipv4__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Ipv4__Group__6_in_rule__Ipv4__Group__52482);
+            rule__Ipv4__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__5"
+
+
+    // $ANTLR start "rule__Ipv4__Group__5__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1209:1: rule__Ipv4__Group__5__Impl : ( '.' ) ;
+    public final void rule__Ipv4__Group__5__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1213:1: ( ( '.' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1214:1: ( '.' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1214:1: ( '.' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1215:1: '.'
+            {
+             before(grammarAccess.getIpv4Access().getFullStopKeyword_5()); 
+            match(input,20,FOLLOW_20_in_rule__Ipv4__Group__5__Impl2510); 
+             after(grammarAccess.getIpv4Access().getFullStopKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Ipv4__Group__6"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1228:1: rule__Ipv4__Group__6 : rule__Ipv4__Group__6__Impl ;
+    public final void rule__Ipv4__Group__6() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1232:1: ( rule__Ipv4__Group__6__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1233:2: rule__Ipv4__Group__6__Impl
+            {
+            pushFollow(FOLLOW_rule__Ipv4__Group__6__Impl_in_rule__Ipv4__Group__62541);
+            rule__Ipv4__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__6"
+
+
+    // $ANTLR start "rule__Ipv4__Group__6__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1239:1: rule__Ipv4__Group__6__Impl : ( RULE_IPV4_SUB ) ;
+    public final void rule__Ipv4__Group__6__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1243:1: ( ( RULE_IPV4_SUB ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1244:1: ( RULE_IPV4_SUB )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1244:1: ( RULE_IPV4_SUB )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1245:1: RULE_IPV4_SUB
+            {
+             before(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_6()); 
+            match(input,RULE_IPV4_SUB,FOLLOW_RULE_IPV4_SUB_in_rule__Ipv4__Group__6__Impl2568); 
+             after(grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Ipv4__Group__6__Impl"
+
+
+    // $ANTLR start "rule__User__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1270:1: rule__User__Group__0 : rule__User__Group__0__Impl rule__User__Group__1 ;
+    public final void rule__User__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1274:1: ( rule__User__Group__0__Impl rule__User__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1275:2: rule__User__Group__0__Impl rule__User__Group__1
+            {
+            pushFollow(FOLLOW_rule__User__Group__0__Impl_in_rule__User__Group__02611);
+            rule__User__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__User__Group__1_in_rule__User__Group__02614);
+            rule__User__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__0"
+
+
+    // $ANTLR start "rule__User__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1282:1: rule__User__Group__0__Impl : ( 'CREATE' ) ;
+    public final void rule__User__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1286:1: ( ( 'CREATE' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1287:1: ( 'CREATE' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1287:1: ( 'CREATE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1288:1: 'CREATE'
+            {
+             before(grammarAccess.getUserAccess().getCREATEKeyword_0()); 
+            match(input,15,FOLLOW_15_in_rule__User__Group__0__Impl2642); 
+             after(grammarAccess.getUserAccess().getCREATEKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__0__Impl"
+
+
+    // $ANTLR start "rule__User__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1301:1: rule__User__Group__1 : rule__User__Group__1__Impl rule__User__Group__2 ;
+    public final void rule__User__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1305:1: ( rule__User__Group__1__Impl rule__User__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1306:2: rule__User__Group__1__Impl rule__User__Group__2
+            {
+            pushFollow(FOLLOW_rule__User__Group__1__Impl_in_rule__User__Group__12673);
+            rule__User__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__User__Group__2_in_rule__User__Group__12676);
+            rule__User__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__1"
+
+
+    // $ANTLR start "rule__User__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1313:1: rule__User__Group__1__Impl : ( RULE_STRING ) ;
+    public final void rule__User__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1317:1: ( ( RULE_STRING ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1318:1: ( RULE_STRING )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1318:1: ( RULE_STRING )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1319:1: RULE_STRING
+            {
+             before(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_1()); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__User__Group__1__Impl2703); 
+             after(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__1__Impl"
+
+
+    // $ANTLR start "rule__User__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1330:1: rule__User__Group__2 : rule__User__Group__2__Impl rule__User__Group__3 ;
+    public final void rule__User__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1334:1: ( rule__User__Group__2__Impl rule__User__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1335:2: rule__User__Group__2__Impl rule__User__Group__3
+            {
+            pushFollow(FOLLOW_rule__User__Group__2__Impl_in_rule__User__Group__22732);
+            rule__User__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__User__Group__3_in_rule__User__Group__22735);
+            rule__User__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__2"
+
+
+    // $ANTLR start "rule__User__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1342:1: rule__User__Group__2__Impl : ( RULE_STRING ) ;
+    public final void rule__User__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1346:1: ( ( RULE_STRING ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1347:1: ( RULE_STRING )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1347:1: ( RULE_STRING )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1348:1: RULE_STRING
+            {
+             before(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_2()); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__User__Group__2__Impl2762); 
+             after(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__2__Impl"
+
+
+    // $ANTLR start "rule__User__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1359:1: rule__User__Group__3 : rule__User__Group__3__Impl rule__User__Group__4 ;
+    public final void rule__User__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1363:1: ( rule__User__Group__3__Impl rule__User__Group__4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1364:2: rule__User__Group__3__Impl rule__User__Group__4
+            {
+            pushFollow(FOLLOW_rule__User__Group__3__Impl_in_rule__User__Group__32791);
+            rule__User__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__User__Group__4_in_rule__User__Group__32794);
+            rule__User__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__3"
+
+
+    // $ANTLR start "rule__User__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1371:1: rule__User__Group__3__Impl : ( RULE_STRING ) ;
+    public final void rule__User__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1375:1: ( ( RULE_STRING ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1376:1: ( RULE_STRING )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1376:1: ( RULE_STRING )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1377:1: RULE_STRING
+            {
+             before(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_3()); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__User__Group__3__Impl2821); 
+             after(grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__3__Impl"
+
+
+    // $ANTLR start "rule__User__Group__4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1388:1: rule__User__Group__4 : rule__User__Group__4__Impl ;
+    public final void rule__User__Group__4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1392:1: ( rule__User__Group__4__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1393:2: rule__User__Group__4__Impl
+            {
+            pushFollow(FOLLOW_rule__User__Group__4__Impl_in_rule__User__Group__42850);
+            rule__User__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__4"
+
+
+    // $ANTLR start "rule__User__Group__4__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1399:1: rule__User__Group__4__Impl : ( ';' ) ;
+    public final void rule__User__Group__4__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1403:1: ( ( ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1404:1: ( ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1404:1: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1405:1: ';'
+            {
+             before(grammarAccess.getUserAccess().getSemicolonKeyword_4()); 
+            match(input,18,FOLLOW_18_in_rule__User__Group__4__Impl2878); 
+             after(grammarAccess.getUserAccess().getSemicolonKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__User__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Node__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1428:1: rule__Node__Group__0 : rule__Node__Group__0__Impl rule__Node__Group__1 ;
+    public final void rule__Node__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1432:1: ( rule__Node__Group__0__Impl rule__Node__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1433:2: rule__Node__Group__0__Impl rule__Node__Group__1
+            {
+            pushFollow(FOLLOW_rule__Node__Group__0__Impl_in_rule__Node__Group__02919);
+            rule__Node__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group__1_in_rule__Node__Group__02922);
+            rule__Node__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__0"
+
+
+    // $ANTLR start "rule__Node__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1440:1: rule__Node__Group__0__Impl : ( ruleNewObj ) ;
+    public final void rule__Node__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1444:1: ( ( ruleNewObj ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1445:1: ( ruleNewObj )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1445:1: ( ruleNewObj )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1446:1: ruleNewObj
+            {
+             before(grammarAccess.getNodeAccess().getNewObjParserRuleCall_0()); 
+            pushFollow(FOLLOW_ruleNewObj_in_rule__Node__Group__0__Impl2949);
+            ruleNewObj();
+
+            state._fsp--;
+
+             after(grammarAccess.getNodeAccess().getNewObjParserRuleCall_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Node__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1457:1: rule__Node__Group__1 : rule__Node__Group__1__Impl rule__Node__Group__2 ;
+    public final void rule__Node__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1461:1: ( rule__Node__Group__1__Impl rule__Node__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1462:2: rule__Node__Group__1__Impl rule__Node__Group__2
+            {
+            pushFollow(FOLLOW_rule__Node__Group__1__Impl_in_rule__Node__Group__12978);
+            rule__Node__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group__2_in_rule__Node__Group__12981);
+            rule__Node__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__1"
+
+
+    // $ANTLR start "rule__Node__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1469:1: rule__Node__Group__1__Impl : ( 'Node' ) ;
+    public final void rule__Node__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1473:1: ( ( 'Node' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1474:1: ( 'Node' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1474:1: ( 'Node' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1475:1: 'Node'
+            {
+             before(grammarAccess.getNodeAccess().getNodeKeyword_1()); 
+            match(input,21,FOLLOW_21_in_rule__Node__Group__1__Impl3009); 
+             after(grammarAccess.getNodeAccess().getNodeKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Node__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1488:1: rule__Node__Group__2 : rule__Node__Group__2__Impl rule__Node__Group__3 ;
+    public final void rule__Node__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1492:1: ( rule__Node__Group__2__Impl rule__Node__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1493:2: rule__Node__Group__2__Impl rule__Node__Group__3
+            {
+            pushFollow(FOLLOW_rule__Node__Group__2__Impl_in_rule__Node__Group__23040);
+            rule__Node__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group__3_in_rule__Node__Group__23043);
+            rule__Node__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__2"
+
+
+    // $ANTLR start "rule__Node__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1500:1: rule__Node__Group__2__Impl : ( ( rule__Node__NameAssignment_2 ) ) ;
+    public final void rule__Node__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1504:1: ( ( ( rule__Node__NameAssignment_2 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1505:1: ( ( rule__Node__NameAssignment_2 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1505:1: ( ( rule__Node__NameAssignment_2 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1506:1: ( rule__Node__NameAssignment_2 )
+            {
+             before(grammarAccess.getNodeAccess().getNameAssignment_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1507:1: ( rule__Node__NameAssignment_2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1507:2: rule__Node__NameAssignment_2
+            {
+            pushFollow(FOLLOW_rule__Node__NameAssignment_2_in_rule__Node__Group__2__Impl3070);
+            rule__Node__NameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeAccess().getNameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Node__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1517:1: rule__Node__Group__3 : rule__Node__Group__3__Impl rule__Node__Group__4 ;
+    public final void rule__Node__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1521:1: ( rule__Node__Group__3__Impl rule__Node__Group__4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1522:2: rule__Node__Group__3__Impl rule__Node__Group__4
+            {
+            pushFollow(FOLLOW_rule__Node__Group__3__Impl_in_rule__Node__Group__33100);
+            rule__Node__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group__4_in_rule__Node__Group__33103);
+            rule__Node__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__3"
+
+
+    // $ANTLR start "rule__Node__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1529:1: rule__Node__Group__3__Impl : ( ( rule__Node__Group_3__0 ) ) ;
+    public final void rule__Node__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1533:1: ( ( ( rule__Node__Group_3__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1534:1: ( ( rule__Node__Group_3__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1534:1: ( ( rule__Node__Group_3__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1535:1: ( rule__Node__Group_3__0 )
+            {
+             before(grammarAccess.getNodeAccess().getGroup_3()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1536:1: ( rule__Node__Group_3__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1536:2: rule__Node__Group_3__0
+            {
+            pushFollow(FOLLOW_rule__Node__Group_3__0_in_rule__Node__Group__3__Impl3130);
+            rule__Node__Group_3__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Node__Group__4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1546:1: rule__Node__Group__4 : rule__Node__Group__4__Impl rule__Node__Group__5 ;
+    public final void rule__Node__Group__4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1550:1: ( rule__Node__Group__4__Impl rule__Node__Group__5 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1551:2: rule__Node__Group__4__Impl rule__Node__Group__5
+            {
+            pushFollow(FOLLOW_rule__Node__Group__4__Impl_in_rule__Node__Group__43160);
+            rule__Node__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group__5_in_rule__Node__Group__43163);
+            rule__Node__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__4"
+
+
+    // $ANTLR start "rule__Node__Group__4__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1558:1: rule__Node__Group__4__Impl : ( ( rule__Node__Group_4__0 )? ) ;
+    public final void rule__Node__Group__4__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1562:1: ( ( ( rule__Node__Group_4__0 )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1563:1: ( ( rule__Node__Group_4__0 )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1563:1: ( ( rule__Node__Group_4__0 )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1564:1: ( rule__Node__Group_4__0 )?
+            {
+             before(grammarAccess.getNodeAccess().getGroup_4()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1565:1: ( rule__Node__Group_4__0 )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==23) ) {
+                alt11=1;
+            }
+            switch (alt11) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1565:2: rule__Node__Group_4__0
+                    {
+                    pushFollow(FOLLOW_rule__Node__Group_4__0_in_rule__Node__Group__4__Impl3190);
+                    rule__Node__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNodeAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Node__Group__5"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1575:1: rule__Node__Group__5 : rule__Node__Group__5__Impl rule__Node__Group__6 ;
+    public final void rule__Node__Group__5() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1579:1: ( rule__Node__Group__5__Impl rule__Node__Group__6 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1580:2: rule__Node__Group__5__Impl rule__Node__Group__6
+            {
+            pushFollow(FOLLOW_rule__Node__Group__5__Impl_in_rule__Node__Group__53221);
+            rule__Node__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group__6_in_rule__Node__Group__53224);
+            rule__Node__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__5"
+
+
+    // $ANTLR start "rule__Node__Group__5__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1587:1: rule__Node__Group__5__Impl : ( ( ruleProperty )? ) ;
+    public final void rule__Node__Group__5__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1591:1: ( ( ( ruleProperty )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1592:1: ( ( ruleProperty )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1592:1: ( ( ruleProperty )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1593:1: ( ruleProperty )?
+            {
+             before(grammarAccess.getNodeAccess().getPropertyParserRuleCall_5()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1594:1: ( ruleProperty )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0==34) ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1594:3: ruleProperty
+                    {
+                    pushFollow(FOLLOW_ruleProperty_in_rule__Node__Group__5__Impl3252);
+                    ruleProperty();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNodeAccess().getPropertyParserRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Node__Group__6"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1604:1: rule__Node__Group__6 : rule__Node__Group__6__Impl ;
+    public final void rule__Node__Group__6() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1608:1: ( rule__Node__Group__6__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1609:2: rule__Node__Group__6__Impl
+            {
+            pushFollow(FOLLOW_rule__Node__Group__6__Impl_in_rule__Node__Group__63283);
+            rule__Node__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__6"
+
+
+    // $ANTLR start "rule__Node__Group__6__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1615:1: rule__Node__Group__6__Impl : ( ';' ) ;
+    public final void rule__Node__Group__6__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1619:1: ( ( ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1620:1: ( ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1620:1: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1621:1: ';'
+            {
+             before(grammarAccess.getNodeAccess().getSemicolonKeyword_6()); 
+            match(input,18,FOLLOW_18_in_rule__Node__Group__6__Impl3311); 
+             after(grammarAccess.getNodeAccess().getSemicolonKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Node__Group_3__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1648:1: rule__Node__Group_3__0 : rule__Node__Group_3__0__Impl rule__Node__Group_3__1 ;
+    public final void rule__Node__Group_3__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1652:1: ( rule__Node__Group_3__0__Impl rule__Node__Group_3__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1653:2: rule__Node__Group_3__0__Impl rule__Node__Group_3__1
+            {
+            pushFollow(FOLLOW_rule__Node__Group_3__0__Impl_in_rule__Node__Group_3__03356);
+            rule__Node__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group_3__1_in_rule__Node__Group_3__03359);
+            rule__Node__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_3__0"
+
+
+    // $ANTLR start "rule__Node__Group_3__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1660:1: rule__Node__Group_3__0__Impl : ( 'Type' ) ;
+    public final void rule__Node__Group_3__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1664:1: ( ( 'Type' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1665:1: ( 'Type' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1665:1: ( 'Type' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1666:1: 'Type'
+            {
+             before(grammarAccess.getNodeAccess().getTypeKeyword_3_0()); 
+            match(input,22,FOLLOW_22_in_rule__Node__Group_3__0__Impl3387); 
+             after(grammarAccess.getNodeAccess().getTypeKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__Node__Group_3__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1679:1: rule__Node__Group_3__1 : rule__Node__Group_3__1__Impl ;
+    public final void rule__Node__Group_3__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1683:1: ( rule__Node__Group_3__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1684:2: rule__Node__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Node__Group_3__1__Impl_in_rule__Node__Group_3__13418);
+            rule__Node__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_3__1"
+
+
+    // $ANTLR start "rule__Node__Group_3__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1690:1: rule__Node__Group_3__1__Impl : ( RULE_NEMOID ) ;
+    public final void rule__Node__Group_3__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1694:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1695:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1695:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1696:1: RULE_NEMOID
+            {
+             before(grammarAccess.getNodeAccess().getNemoIdTerminalRuleCall_3_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Node__Group_3__1__Impl3445); 
+             after(grammarAccess.getNodeAccess().getNemoIdTerminalRuleCall_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__Node__Group_4__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1711:1: rule__Node__Group_4__0 : rule__Node__Group_4__0__Impl rule__Node__Group_4__1 ;
+    public final void rule__Node__Group_4__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1715:1: ( rule__Node__Group_4__0__Impl rule__Node__Group_4__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1716:2: rule__Node__Group_4__0__Impl rule__Node__Group_4__1
+            {
+            pushFollow(FOLLOW_rule__Node__Group_4__0__Impl_in_rule__Node__Group_4__03478);
+            rule__Node__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group_4__1_in_rule__Node__Group_4__03481);
+            rule__Node__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4__0"
+
+
+    // $ANTLR start "rule__Node__Group_4__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1723:1: rule__Node__Group_4__0__Impl : ( 'Contain' ) ;
+    public final void rule__Node__Group_4__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1727:1: ( ( 'Contain' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1728:1: ( 'Contain' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1728:1: ( 'Contain' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1729:1: 'Contain'
+            {
+             before(grammarAccess.getNodeAccess().getContainKeyword_4_0()); 
+            match(input,23,FOLLOW_23_in_rule__Node__Group_4__0__Impl3509); 
+             after(grammarAccess.getNodeAccess().getContainKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__Node__Group_4__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1742:1: rule__Node__Group_4__1 : rule__Node__Group_4__1__Impl rule__Node__Group_4__2 ;
+    public final void rule__Node__Group_4__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1746:1: ( rule__Node__Group_4__1__Impl rule__Node__Group_4__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1747:2: rule__Node__Group_4__1__Impl rule__Node__Group_4__2
+            {
+            pushFollow(FOLLOW_rule__Node__Group_4__1__Impl_in_rule__Node__Group_4__13540);
+            rule__Node__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group_4__2_in_rule__Node__Group_4__13543);
+            rule__Node__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4__1"
+
+
+    // $ANTLR start "rule__Node__Group_4__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1754:1: rule__Node__Group_4__1__Impl : ( ( rule__Node__NodesAssignment_4_1 ) ) ;
+    public final void rule__Node__Group_4__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1758:1: ( ( ( rule__Node__NodesAssignment_4_1 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1759:1: ( ( rule__Node__NodesAssignment_4_1 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1759:1: ( ( rule__Node__NodesAssignment_4_1 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1760:1: ( rule__Node__NodesAssignment_4_1 )
+            {
+             before(grammarAccess.getNodeAccess().getNodesAssignment_4_1()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1761:1: ( rule__Node__NodesAssignment_4_1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1761:2: rule__Node__NodesAssignment_4_1
+            {
+            pushFollow(FOLLOW_rule__Node__NodesAssignment_4_1_in_rule__Node__Group_4__1__Impl3570);
+            rule__Node__NodesAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeAccess().getNodesAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__Node__Group_4__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1771:1: rule__Node__Group_4__2 : rule__Node__Group_4__2__Impl ;
+    public final void rule__Node__Group_4__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1775:1: ( rule__Node__Group_4__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1776:2: rule__Node__Group_4__2__Impl
+            {
+            pushFollow(FOLLOW_rule__Node__Group_4__2__Impl_in_rule__Node__Group_4__23600);
+            rule__Node__Group_4__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4__2"
+
+
+    // $ANTLR start "rule__Node__Group_4__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1782:1: rule__Node__Group_4__2__Impl : ( ( rule__Node__Group_4_2__0 )* ) ;
+    public final void rule__Node__Group_4__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1786:1: ( ( ( rule__Node__Group_4_2__0 )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1787:1: ( ( rule__Node__Group_4_2__0 )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1787:1: ( ( rule__Node__Group_4_2__0 )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1788:1: ( rule__Node__Group_4_2__0 )*
+            {
+             before(grammarAccess.getNodeAccess().getGroup_4_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1789:1: ( rule__Node__Group_4_2__0 )*
+            loop13:
+            do {
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+
+                if ( (LA13_0==19) ) {
+                    alt13=1;
+                }
+
+
+                switch (alt13) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1789:2: rule__Node__Group_4_2__0
+                   {
+                   pushFollow(FOLLOW_rule__Node__Group_4_2__0_in_rule__Node__Group_4__2__Impl3627);
+                   rule__Node__Group_4_2__0();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop13;
+                }
+            } while (true);
+
+             after(grammarAccess.getNodeAccess().getGroup_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__Node__Group_4_2__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1805:1: rule__Node__Group_4_2__0 : rule__Node__Group_4_2__0__Impl rule__Node__Group_4_2__1 ;
+    public final void rule__Node__Group_4_2__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1809:1: ( rule__Node__Group_4_2__0__Impl rule__Node__Group_4_2__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1810:2: rule__Node__Group_4_2__0__Impl rule__Node__Group_4_2__1
+            {
+            pushFollow(FOLLOW_rule__Node__Group_4_2__0__Impl_in_rule__Node__Group_4_2__03664);
+            rule__Node__Group_4_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Node__Group_4_2__1_in_rule__Node__Group_4_2__03667);
+            rule__Node__Group_4_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4_2__0"
+
+
+    // $ANTLR start "rule__Node__Group_4_2__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1817:1: rule__Node__Group_4_2__0__Impl : ( ',' ) ;
+    public final void rule__Node__Group_4_2__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1821:1: ( ( ',' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1822:1: ( ',' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1822:1: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1823:1: ','
+            {
+             before(grammarAccess.getNodeAccess().getCommaKeyword_4_2_0()); 
+            match(input,19,FOLLOW_19_in_rule__Node__Group_4_2__0__Impl3695); 
+             after(grammarAccess.getNodeAccess().getCommaKeyword_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4_2__0__Impl"
+
+
+    // $ANTLR start "rule__Node__Group_4_2__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1836:1: rule__Node__Group_4_2__1 : rule__Node__Group_4_2__1__Impl ;
+    public final void rule__Node__Group_4_2__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1840:1: ( rule__Node__Group_4_2__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1841:2: rule__Node__Group_4_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Node__Group_4_2__1__Impl_in_rule__Node__Group_4_2__13726);
+            rule__Node__Group_4_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4_2__1"
+
+
+    // $ANTLR start "rule__Node__Group_4_2__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1847:1: rule__Node__Group_4_2__1__Impl : ( ( rule__Node__NodesAssignment_4_2_1 ) ) ;
+    public final void rule__Node__Group_4_2__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1851:1: ( ( ( rule__Node__NodesAssignment_4_2_1 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1852:1: ( ( rule__Node__NodesAssignment_4_2_1 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1852:1: ( ( rule__Node__NodesAssignment_4_2_1 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1853:1: ( rule__Node__NodesAssignment_4_2_1 )
+            {
+             before(grammarAccess.getNodeAccess().getNodesAssignment_4_2_1()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1854:1: ( rule__Node__NodesAssignment_4_2_1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1854:2: rule__Node__NodesAssignment_4_2_1
+            {
+            pushFollow(FOLLOW_rule__Node__NodesAssignment_4_2_1_in_rule__Node__Group_4_2__1__Impl3753);
+            rule__Node__NodesAssignment_4_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeAccess().getNodesAssignment_4_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Group_4_2__1__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1869:1: rule__NodeOperating__Group__0 : rule__NodeOperating__Group__0__Impl rule__NodeOperating__Group__1 ;
+    public final void rule__NodeOperating__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1873:1: ( rule__NodeOperating__Group__0__Impl rule__NodeOperating__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1874:2: rule__NodeOperating__Group__0__Impl rule__NodeOperating__Group__1
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group__0__Impl_in_rule__NodeOperating__Group__03788);
+            rule__NodeOperating__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group__1_in_rule__NodeOperating__Group__03791);
+            rule__NodeOperating__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__0"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1881:1: rule__NodeOperating__Group__0__Impl : ( ( rule__NodeOperating__Alternatives_0 ) ) ;
+    public final void rule__NodeOperating__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1885:1: ( ( ( rule__NodeOperating__Alternatives_0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1886:1: ( ( rule__NodeOperating__Alternatives_0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1886:1: ( ( rule__NodeOperating__Alternatives_0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1887:1: ( rule__NodeOperating__Alternatives_0 )
+            {
+             before(grammarAccess.getNodeOperatingAccess().getAlternatives_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1888:1: ( rule__NodeOperating__Alternatives_0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1888:2: rule__NodeOperating__Alternatives_0
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Alternatives_0_in_rule__NodeOperating__Group__0__Impl3818);
+            rule__NodeOperating__Alternatives_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getAlternatives_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1898:1: rule__NodeOperating__Group__1 : rule__NodeOperating__Group__1__Impl rule__NodeOperating__Group__2 ;
+    public final void rule__NodeOperating__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1902:1: ( rule__NodeOperating__Group__1__Impl rule__NodeOperating__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1903:2: rule__NodeOperating__Group__1__Impl rule__NodeOperating__Group__2
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group__1__Impl_in_rule__NodeOperating__Group__13848);
+            rule__NodeOperating__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group__2_in_rule__NodeOperating__Group__13851);
+            rule__NodeOperating__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__1"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1910:1: rule__NodeOperating__Group__1__Impl : ( 'Node' ) ;
+    public final void rule__NodeOperating__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1914:1: ( ( 'Node' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1915:1: ( 'Node' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1915:1: ( 'Node' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1916:1: 'Node'
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodeKeyword_1()); 
+            match(input,21,FOLLOW_21_in_rule__NodeOperating__Group__1__Impl3879); 
+             after(grammarAccess.getNodeOperatingAccess().getNodeKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__1__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1929:1: rule__NodeOperating__Group__2 : rule__NodeOperating__Group__2__Impl rule__NodeOperating__Group__3 ;
+    public final void rule__NodeOperating__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1933:1: ( rule__NodeOperating__Group__2__Impl rule__NodeOperating__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1934:2: rule__NodeOperating__Group__2__Impl rule__NodeOperating__Group__3
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group__2__Impl_in_rule__NodeOperating__Group__23910);
+            rule__NodeOperating__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group__3_in_rule__NodeOperating__Group__23913);
+            rule__NodeOperating__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__2"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1941:1: rule__NodeOperating__Group__2__Impl : ( ( rule__NodeOperating__NodenameAssignment_2 ) ) ;
+    public final void rule__NodeOperating__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1945:1: ( ( ( rule__NodeOperating__NodenameAssignment_2 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1946:1: ( ( rule__NodeOperating__NodenameAssignment_2 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1946:1: ( ( rule__NodeOperating__NodenameAssignment_2 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1947:1: ( rule__NodeOperating__NodenameAssignment_2 )
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodenameAssignment_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1948:1: ( rule__NodeOperating__NodenameAssignment_2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1948:2: rule__NodeOperating__NodenameAssignment_2
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__NodenameAssignment_2_in_rule__NodeOperating__Group__2__Impl3940);
+            rule__NodeOperating__NodenameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getNodenameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__2__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1958:1: rule__NodeOperating__Group__3 : rule__NodeOperating__Group__3__Impl rule__NodeOperating__Group__4 ;
+    public final void rule__NodeOperating__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1962:1: ( rule__NodeOperating__Group__3__Impl rule__NodeOperating__Group__4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1963:2: rule__NodeOperating__Group__3__Impl rule__NodeOperating__Group__4
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group__3__Impl_in_rule__NodeOperating__Group__33970);
+            rule__NodeOperating__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group__4_in_rule__NodeOperating__Group__33973);
+            rule__NodeOperating__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__3"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1970:1: rule__NodeOperating__Group__3__Impl : ( ( rule__NodeOperating__Group_3__0 )? ) ;
+    public final void rule__NodeOperating__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1974:1: ( ( ( rule__NodeOperating__Group_3__0 )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1975:1: ( ( rule__NodeOperating__Group_3__0 )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1975:1: ( ( rule__NodeOperating__Group_3__0 )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1976:1: ( rule__NodeOperating__Group_3__0 )?
+            {
+             before(grammarAccess.getNodeOperatingAccess().getGroup_3()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1977:1: ( rule__NodeOperating__Group_3__0 )?
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+
+            if ( (LA14_0==22) ) {
+                alt14=1;
+            }
+            switch (alt14) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1977:2: rule__NodeOperating__Group_3__0
+                    {
+                    pushFollow(FOLLOW_rule__NodeOperating__Group_3__0_in_rule__NodeOperating__Group__3__Impl4000);
+                    rule__NodeOperating__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__3__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1987:1: rule__NodeOperating__Group__4 : rule__NodeOperating__Group__4__Impl rule__NodeOperating__Group__5 ;
+    public final void rule__NodeOperating__Group__4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1991:1: ( rule__NodeOperating__Group__4__Impl rule__NodeOperating__Group__5 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1992:2: rule__NodeOperating__Group__4__Impl rule__NodeOperating__Group__5
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group__4__Impl_in_rule__NodeOperating__Group__44031);
+            rule__NodeOperating__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group__5_in_rule__NodeOperating__Group__44034);
+            rule__NodeOperating__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__4"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__4__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:1999:1: rule__NodeOperating__Group__4__Impl : ( ( rule__NodeOperating__Group_4__0 )? ) ;
+    public final void rule__NodeOperating__Group__4__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2003:1: ( ( ( rule__NodeOperating__Group_4__0 )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2004:1: ( ( rule__NodeOperating__Group_4__0 )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2004:1: ( ( rule__NodeOperating__Group_4__0 )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2005:1: ( rule__NodeOperating__Group_4__0 )?
+            {
+             before(grammarAccess.getNodeOperatingAccess().getGroup_4()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2006:1: ( rule__NodeOperating__Group_4__0 )?
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==23) ) {
+                alt15=1;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2006:2: rule__NodeOperating__Group_4__0
+                    {
+                    pushFollow(FOLLOW_rule__NodeOperating__Group_4__0_in_rule__NodeOperating__Group__4__Impl4061);
+                    rule__NodeOperating__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__4__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__5"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2016:1: rule__NodeOperating__Group__5 : rule__NodeOperating__Group__5__Impl rule__NodeOperating__Group__6 ;
+    public final void rule__NodeOperating__Group__5() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2020:1: ( rule__NodeOperating__Group__5__Impl rule__NodeOperating__Group__6 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2021:2: rule__NodeOperating__Group__5__Impl rule__NodeOperating__Group__6
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group__5__Impl_in_rule__NodeOperating__Group__54092);
+            rule__NodeOperating__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group__6_in_rule__NodeOperating__Group__54095);
+            rule__NodeOperating__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__5"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__5__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2028:1: rule__NodeOperating__Group__5__Impl : ( ( ruleProperty )? ) ;
+    public final void rule__NodeOperating__Group__5__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2032:1: ( ( ( ruleProperty )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2033:1: ( ( ruleProperty )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2033:1: ( ( ruleProperty )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2034:1: ( ruleProperty )?
+            {
+             before(grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2035:1: ( ruleProperty )?
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+
+            if ( (LA16_0==34) ) {
+                alt16=1;
+            }
+            switch (alt16) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2035:3: ruleProperty
+                    {
+                    pushFollow(FOLLOW_ruleProperty_in_rule__NodeOperating__Group__5__Impl4123);
+                    ruleProperty();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__5__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__6"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2045:1: rule__NodeOperating__Group__6 : rule__NodeOperating__Group__6__Impl ;
+    public final void rule__NodeOperating__Group__6() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2049:1: ( rule__NodeOperating__Group__6__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2050:2: rule__NodeOperating__Group__6__Impl
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group__6__Impl_in_rule__NodeOperating__Group__64154);
+            rule__NodeOperating__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__6"
+
+
+    // $ANTLR start "rule__NodeOperating__Group__6__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2056:1: rule__NodeOperating__Group__6__Impl : ( ';' ) ;
+    public final void rule__NodeOperating__Group__6__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2060:1: ( ( ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2061:1: ( ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2061:1: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2062:1: ';'
+            {
+             before(grammarAccess.getNodeOperatingAccess().getSemicolonKeyword_6()); 
+            match(input,18,FOLLOW_18_in_rule__NodeOperating__Group__6__Impl4182); 
+             after(grammarAccess.getNodeOperatingAccess().getSemicolonKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group__6__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_3__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2089:1: rule__NodeOperating__Group_3__0 : rule__NodeOperating__Group_3__0__Impl rule__NodeOperating__Group_3__1 ;
+    public final void rule__NodeOperating__Group_3__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2093:1: ( rule__NodeOperating__Group_3__0__Impl rule__NodeOperating__Group_3__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2094:2: rule__NodeOperating__Group_3__0__Impl rule__NodeOperating__Group_3__1
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group_3__0__Impl_in_rule__NodeOperating__Group_3__04227);
+            rule__NodeOperating__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group_3__1_in_rule__NodeOperating__Group_3__04230);
+            rule__NodeOperating__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_3__0"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_3__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2101:1: rule__NodeOperating__Group_3__0__Impl : ( 'Type' ) ;
+    public final void rule__NodeOperating__Group_3__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2105:1: ( ( 'Type' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2106:1: ( 'Type' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2106:1: ( 'Type' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2107:1: 'Type'
+            {
+             before(grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0()); 
+            match(input,22,FOLLOW_22_in_rule__NodeOperating__Group_3__0__Impl4258); 
+             after(grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_3__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2120:1: rule__NodeOperating__Group_3__1 : rule__NodeOperating__Group_3__1__Impl ;
+    public final void rule__NodeOperating__Group_3__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2124:1: ( rule__NodeOperating__Group_3__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2125:2: rule__NodeOperating__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group_3__1__Impl_in_rule__NodeOperating__Group_3__14289);
+            rule__NodeOperating__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_3__1"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_3__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2131:1: rule__NodeOperating__Group_3__1__Impl : ( RULE_NEMOID ) ;
+    public final void rule__NodeOperating__Group_3__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2135:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2136:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2136:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2137:1: RULE_NEMOID
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__NodeOperating__Group_3__1__Impl4316); 
+             after(grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2152:1: rule__NodeOperating__Group_4__0 : rule__NodeOperating__Group_4__0__Impl rule__NodeOperating__Group_4__1 ;
+    public final void rule__NodeOperating__Group_4__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2156:1: ( rule__NodeOperating__Group_4__0__Impl rule__NodeOperating__Group_4__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2157:2: rule__NodeOperating__Group_4__0__Impl rule__NodeOperating__Group_4__1
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group_4__0__Impl_in_rule__NodeOperating__Group_4__04349);
+            rule__NodeOperating__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group_4__1_in_rule__NodeOperating__Group_4__04352);
+            rule__NodeOperating__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4__0"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2164:1: rule__NodeOperating__Group_4__0__Impl : ( 'Contain' ) ;
+    public final void rule__NodeOperating__Group_4__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2168:1: ( ( 'Contain' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2169:1: ( 'Contain' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2169:1: ( 'Contain' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2170:1: 'Contain'
+            {
+             before(grammarAccess.getNodeOperatingAccess().getContainKeyword_4_0()); 
+            match(input,23,FOLLOW_23_in_rule__NodeOperating__Group_4__0__Impl4380); 
+             after(grammarAccess.getNodeOperatingAccess().getContainKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2183:1: rule__NodeOperating__Group_4__1 : rule__NodeOperating__Group_4__1__Impl rule__NodeOperating__Group_4__2 ;
+    public final void rule__NodeOperating__Group_4__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2187:1: ( rule__NodeOperating__Group_4__1__Impl rule__NodeOperating__Group_4__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2188:2: rule__NodeOperating__Group_4__1__Impl rule__NodeOperating__Group_4__2
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group_4__1__Impl_in_rule__NodeOperating__Group_4__14411);
+            rule__NodeOperating__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group_4__2_in_rule__NodeOperating__Group_4__14414);
+            rule__NodeOperating__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4__1"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2195:1: rule__NodeOperating__Group_4__1__Impl : ( ( rule__NodeOperating__NodesAssignment_4_1 ) ) ;
+    public final void rule__NodeOperating__Group_4__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2199:1: ( ( ( rule__NodeOperating__NodesAssignment_4_1 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2200:1: ( ( rule__NodeOperating__NodesAssignment_4_1 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2200:1: ( ( rule__NodeOperating__NodesAssignment_4_1 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2201:1: ( rule__NodeOperating__NodesAssignment_4_1 )
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_1()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2202:1: ( rule__NodeOperating__NodesAssignment_4_1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2202:2: rule__NodeOperating__NodesAssignment_4_1
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__NodesAssignment_4_1_in_rule__NodeOperating__Group_4__1__Impl4441);
+            rule__NodeOperating__NodesAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2212:1: rule__NodeOperating__Group_4__2 : rule__NodeOperating__Group_4__2__Impl ;
+    public final void rule__NodeOperating__Group_4__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2216:1: ( rule__NodeOperating__Group_4__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2217:2: rule__NodeOperating__Group_4__2__Impl
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group_4__2__Impl_in_rule__NodeOperating__Group_4__24471);
+            rule__NodeOperating__Group_4__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4__2"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2223:1: rule__NodeOperating__Group_4__2__Impl : ( ( rule__NodeOperating__Group_4_2__0 )* ) ;
+    public final void rule__NodeOperating__Group_4__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2227:1: ( ( ( rule__NodeOperating__Group_4_2__0 )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2228:1: ( ( rule__NodeOperating__Group_4_2__0 )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2228:1: ( ( rule__NodeOperating__Group_4_2__0 )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2229:1: ( rule__NodeOperating__Group_4_2__0 )*
+            {
+             before(grammarAccess.getNodeOperatingAccess().getGroup_4_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2230:1: ( rule__NodeOperating__Group_4_2__0 )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( (LA17_0==19) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2230:2: rule__NodeOperating__Group_4_2__0
+                   {
+                   pushFollow(FOLLOW_rule__NodeOperating__Group_4_2__0_in_rule__NodeOperating__Group_4__2__Impl4498);
+                   rule__NodeOperating__Group_4_2__0();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop17;
+                }
+            } while (true);
+
+             after(grammarAccess.getNodeOperatingAccess().getGroup_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4_2__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2246:1: rule__NodeOperating__Group_4_2__0 : rule__NodeOperating__Group_4_2__0__Impl rule__NodeOperating__Group_4_2__1 ;
+    public final void rule__NodeOperating__Group_4_2__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2250:1: ( rule__NodeOperating__Group_4_2__0__Impl rule__NodeOperating__Group_4_2__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2251:2: rule__NodeOperating__Group_4_2__0__Impl rule__NodeOperating__Group_4_2__1
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group_4_2__0__Impl_in_rule__NodeOperating__Group_4_2__04535);
+            rule__NodeOperating__Group_4_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__NodeOperating__Group_4_2__1_in_rule__NodeOperating__Group_4_2__04538);
+            rule__NodeOperating__Group_4_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4_2__0"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4_2__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2258:1: rule__NodeOperating__Group_4_2__0__Impl : ( ',' ) ;
+    public final void rule__NodeOperating__Group_4_2__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2262:1: ( ( ',' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2263:1: ( ',' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2263:1: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2264:1: ','
+            {
+             before(grammarAccess.getNodeOperatingAccess().getCommaKeyword_4_2_0()); 
+            match(input,19,FOLLOW_19_in_rule__NodeOperating__Group_4_2__0__Impl4566); 
+             after(grammarAccess.getNodeOperatingAccess().getCommaKeyword_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4_2__0__Impl"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4_2__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2277:1: rule__NodeOperating__Group_4_2__1 : rule__NodeOperating__Group_4_2__1__Impl ;
+    public final void rule__NodeOperating__Group_4_2__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2281:1: ( rule__NodeOperating__Group_4_2__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2282:2: rule__NodeOperating__Group_4_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__Group_4_2__1__Impl_in_rule__NodeOperating__Group_4_2__14597);
+            rule__NodeOperating__Group_4_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4_2__1"
+
+
+    // $ANTLR start "rule__NodeOperating__Group_4_2__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2288:1: rule__NodeOperating__Group_4_2__1__Impl : ( ( rule__NodeOperating__NodesAssignment_4_2_1 ) ) ;
+    public final void rule__NodeOperating__Group_4_2__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2292:1: ( ( ( rule__NodeOperating__NodesAssignment_4_2_1 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2293:1: ( ( rule__NodeOperating__NodesAssignment_4_2_1 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2293:1: ( ( rule__NodeOperating__NodesAssignment_4_2_1 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2294:1: ( rule__NodeOperating__NodesAssignment_4_2_1 )
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_2_1()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2295:1: ( rule__NodeOperating__NodesAssignment_4_2_1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2295:2: rule__NodeOperating__NodesAssignment_4_2_1
+            {
+            pushFollow(FOLLOW_rule__NodeOperating__NodesAssignment_4_2_1_in_rule__NodeOperating__Group_4_2__1__Impl4624);
+            rule__NodeOperating__NodesAssignment_4_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getNodesAssignment_4_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__Group_4_2__1__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2309:1: rule__Connection__Group__0 : rule__Connection__Group__0__Impl rule__Connection__Group__1 ;
+    public final void rule__Connection__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2313:1: ( rule__Connection__Group__0__Impl rule__Connection__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2314:2: rule__Connection__Group__0__Impl rule__Connection__Group__1
+            {
+            pushFollow(FOLLOW_rule__Connection__Group__0__Impl_in_rule__Connection__Group__04658);
+            rule__Connection__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group__1_in_rule__Connection__Group__04661);
+            rule__Connection__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__0"
+
+
+    // $ANTLR start "rule__Connection__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2321:1: rule__Connection__Group__0__Impl : ( 'CREATE' ) ;
+    public final void rule__Connection__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2325:1: ( ( 'CREATE' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2326:1: ( 'CREATE' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2326:1: ( 'CREATE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2327:1: 'CREATE'
+            {
+             before(grammarAccess.getConnectionAccess().getCREATEKeyword_0()); 
+            match(input,15,FOLLOW_15_in_rule__Connection__Group__0__Impl4689); 
+             after(grammarAccess.getConnectionAccess().getCREATEKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2340:1: rule__Connection__Group__1 : rule__Connection__Group__1__Impl rule__Connection__Group__2 ;
+    public final void rule__Connection__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2344:1: ( rule__Connection__Group__1__Impl rule__Connection__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2345:2: rule__Connection__Group__1__Impl rule__Connection__Group__2
+            {
+            pushFollow(FOLLOW_rule__Connection__Group__1__Impl_in_rule__Connection__Group__14720);
+            rule__Connection__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group__2_in_rule__Connection__Group__14723);
+            rule__Connection__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__1"
+
+
+    // $ANTLR start "rule__Connection__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2352:1: rule__Connection__Group__1__Impl : ( 'Connection' ) ;
+    public final void rule__Connection__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2356:1: ( ( 'Connection' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2357:1: ( 'Connection' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2357:1: ( 'Connection' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2358:1: 'Connection'
+            {
+             before(grammarAccess.getConnectionAccess().getConnectionKeyword_1()); 
+            match(input,24,FOLLOW_24_in_rule__Connection__Group__1__Impl4751); 
+             after(grammarAccess.getConnectionAccess().getConnectionKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2371:1: rule__Connection__Group__2 : rule__Connection__Group__2__Impl rule__Connection__Group__3 ;
+    public final void rule__Connection__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2375:1: ( rule__Connection__Group__2__Impl rule__Connection__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2376:2: rule__Connection__Group__2__Impl rule__Connection__Group__3
+            {
+            pushFollow(FOLLOW_rule__Connection__Group__2__Impl_in_rule__Connection__Group__24782);
+            rule__Connection__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group__3_in_rule__Connection__Group__24785);
+            rule__Connection__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__2"
+
+
+    // $ANTLR start "rule__Connection__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2383:1: rule__Connection__Group__2__Impl : ( ( rule__Connection__NameAssignment_2 ) ) ;
+    public final void rule__Connection__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2387:1: ( ( ( rule__Connection__NameAssignment_2 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2388:1: ( ( rule__Connection__NameAssignment_2 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2388:1: ( ( rule__Connection__NameAssignment_2 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2389:1: ( rule__Connection__NameAssignment_2 )
+            {
+             before(grammarAccess.getConnectionAccess().getNameAssignment_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2390:1: ( rule__Connection__NameAssignment_2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2390:2: rule__Connection__NameAssignment_2
+            {
+            pushFollow(FOLLOW_rule__Connection__NameAssignment_2_in_rule__Connection__Group__2__Impl4812);
+            rule__Connection__NameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionAccess().getNameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2400:1: rule__Connection__Group__3 : rule__Connection__Group__3__Impl rule__Connection__Group__4 ;
+    public final void rule__Connection__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2404:1: ( rule__Connection__Group__3__Impl rule__Connection__Group__4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2405:2: rule__Connection__Group__3__Impl rule__Connection__Group__4
+            {
+            pushFollow(FOLLOW_rule__Connection__Group__3__Impl_in_rule__Connection__Group__34842);
+            rule__Connection__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group__4_in_rule__Connection__Group__34845);
+            rule__Connection__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__3"
+
+
+    // $ANTLR start "rule__Connection__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2412:1: rule__Connection__Group__3__Impl : ( 'Type' ) ;
+    public final void rule__Connection__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2416:1: ( ( 'Type' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2417:1: ( 'Type' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2417:1: ( 'Type' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2418:1: 'Type'
+            {
+             before(grammarAccess.getConnectionAccess().getTypeKeyword_3()); 
+            match(input,22,FOLLOW_22_in_rule__Connection__Group__3__Impl4873); 
+             after(grammarAccess.getConnectionAccess().getTypeKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group__4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2431:1: rule__Connection__Group__4 : rule__Connection__Group__4__Impl rule__Connection__Group__5 ;
+    public final void rule__Connection__Group__4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2435:1: ( rule__Connection__Group__4__Impl rule__Connection__Group__5 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2436:2: rule__Connection__Group__4__Impl rule__Connection__Group__5
+            {
+            pushFollow(FOLLOW_rule__Connection__Group__4__Impl_in_rule__Connection__Group__44904);
+            rule__Connection__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group__5_in_rule__Connection__Group__44907);
+            rule__Connection__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__4"
+
+
+    // $ANTLR start "rule__Connection__Group__4__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2443:1: rule__Connection__Group__4__Impl : ( RULE_NEMOID ) ;
+    public final void rule__Connection__Group__4__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2447:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2448:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2448:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2449:1: RULE_NEMOID
+            {
+             before(grammarAccess.getConnectionAccess().getNemoIdTerminalRuleCall_4()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Connection__Group__4__Impl4934); 
+             after(grammarAccess.getConnectionAccess().getNemoIdTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group__5"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2460:1: rule__Connection__Group__5 : rule__Connection__Group__5__Impl rule__Connection__Group__6 ;
+    public final void rule__Connection__Group__5() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2464:1: ( rule__Connection__Group__5__Impl rule__Connection__Group__6 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2465:2: rule__Connection__Group__5__Impl rule__Connection__Group__6
+            {
+            pushFollow(FOLLOW_rule__Connection__Group__5__Impl_in_rule__Connection__Group__54963);
+            rule__Connection__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group__6_in_rule__Connection__Group__54966);
+            rule__Connection__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__5"
+
+
+    // $ANTLR start "rule__Connection__Group__5__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2472:1: rule__Connection__Group__5__Impl : ( ( rule__Connection__Group_5__0 ) ) ;
+    public final void rule__Connection__Group__5__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2476:1: ( ( ( rule__Connection__Group_5__0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2477:1: ( ( rule__Connection__Group_5__0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2477:1: ( ( rule__Connection__Group_5__0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2478:1: ( rule__Connection__Group_5__0 )
+            {
+             before(grammarAccess.getConnectionAccess().getGroup_5()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2479:1: ( rule__Connection__Group_5__0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2479:2: rule__Connection__Group_5__0
+            {
+            pushFollow(FOLLOW_rule__Connection__Group_5__0_in_rule__Connection__Group__5__Impl4993);
+            rule__Connection__Group_5__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group__6"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2489:1: rule__Connection__Group__6 : rule__Connection__Group__6__Impl rule__Connection__Group__7 ;
+    public final void rule__Connection__Group__6() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2493:1: ( rule__Connection__Group__6__Impl rule__Connection__Group__7 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2494:2: rule__Connection__Group__6__Impl rule__Connection__Group__7
+            {
+            pushFollow(FOLLOW_rule__Connection__Group__6__Impl_in_rule__Connection__Group__65023);
+            rule__Connection__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group__7_in_rule__Connection__Group__65026);
+            rule__Connection__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__6"
+
+
+    // $ANTLR start "rule__Connection__Group__6__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2501:1: rule__Connection__Group__6__Impl : ( ( ruleProperty )? ) ;
+    public final void rule__Connection__Group__6__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2505:1: ( ( ( ruleProperty )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2506:1: ( ( ruleProperty )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2506:1: ( ( ruleProperty )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2507:1: ( ruleProperty )?
+            {
+             before(grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2508:1: ( ruleProperty )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0==34) ) {
+                alt18=1;
+            }
+            switch (alt18) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2508:3: ruleProperty
+                    {
+                    pushFollow(FOLLOW_ruleProperty_in_rule__Connection__Group__6__Impl5054);
+                    ruleProperty();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group__7"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2518:1: rule__Connection__Group__7 : rule__Connection__Group__7__Impl ;
+    public final void rule__Connection__Group__7() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2522:1: ( rule__Connection__Group__7__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2523:2: rule__Connection__Group__7__Impl
+            {
+            pushFollow(FOLLOW_rule__Connection__Group__7__Impl_in_rule__Connection__Group__75085);
+            rule__Connection__Group__7__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__7"
+
+
+    // $ANTLR start "rule__Connection__Group__7__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2529:1: rule__Connection__Group__7__Impl : ( ';' ) ;
+    public final void rule__Connection__Group__7__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2533:1: ( ( ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2534:1: ( ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2534:1: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2535:1: ';'
+            {
+             before(grammarAccess.getConnectionAccess().getSemicolonKeyword_7()); 
+            match(input,18,FOLLOW_18_in_rule__Connection__Group__7__Impl5113); 
+             after(grammarAccess.getConnectionAccess().getSemicolonKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group_5__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2564:1: rule__Connection__Group_5__0 : rule__Connection__Group_5__0__Impl rule__Connection__Group_5__1 ;
+    public final void rule__Connection__Group_5__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2568:1: ( rule__Connection__Group_5__0__Impl rule__Connection__Group_5__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2569:2: rule__Connection__Group_5__0__Impl rule__Connection__Group_5__1
+            {
+            pushFollow(FOLLOW_rule__Connection__Group_5__0__Impl_in_rule__Connection__Group_5__05160);
+            rule__Connection__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group_5__1_in_rule__Connection__Group_5__05163);
+            rule__Connection__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5__0"
+
+
+    // $ANTLR start "rule__Connection__Group_5__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2576:1: rule__Connection__Group_5__0__Impl : ( 'Endnodes' ) ;
+    public final void rule__Connection__Group_5__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2580:1: ( ( 'Endnodes' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2581:1: ( 'Endnodes' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2581:1: ( 'Endnodes' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2582:1: 'Endnodes'
+            {
+             before(grammarAccess.getConnectionAccess().getEndnodesKeyword_5_0()); 
+            match(input,25,FOLLOW_25_in_rule__Connection__Group_5__0__Impl5191); 
+             after(grammarAccess.getConnectionAccess().getEndnodesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group_5__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2595:1: rule__Connection__Group_5__1 : rule__Connection__Group_5__1__Impl rule__Connection__Group_5__2 ;
+    public final void rule__Connection__Group_5__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2599:1: ( rule__Connection__Group_5__1__Impl rule__Connection__Group_5__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2600:2: rule__Connection__Group_5__1__Impl rule__Connection__Group_5__2
+            {
+            pushFollow(FOLLOW_rule__Connection__Group_5__1__Impl_in_rule__Connection__Group_5__15222);
+            rule__Connection__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group_5__2_in_rule__Connection__Group_5__15225);
+            rule__Connection__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5__1"
+
+
+    // $ANTLR start "rule__Connection__Group_5__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2607:1: rule__Connection__Group_5__1__Impl : ( ( rule__Connection__EndnodeAssignment_5_1 ) ) ;
+    public final void rule__Connection__Group_5__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2611:1: ( ( ( rule__Connection__EndnodeAssignment_5_1 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2612:1: ( ( rule__Connection__EndnodeAssignment_5_1 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2612:1: ( ( rule__Connection__EndnodeAssignment_5_1 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2613:1: ( rule__Connection__EndnodeAssignment_5_1 )
+            {
+             before(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_1()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2614:1: ( rule__Connection__EndnodeAssignment_5_1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2614:2: rule__Connection__EndnodeAssignment_5_1
+            {
+            pushFollow(FOLLOW_rule__Connection__EndnodeAssignment_5_1_in_rule__Connection__Group_5__1__Impl5252);
+            rule__Connection__EndnodeAssignment_5_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group_5__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2624:1: rule__Connection__Group_5__2 : rule__Connection__Group_5__2__Impl ;
+    public final void rule__Connection__Group_5__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2628:1: ( rule__Connection__Group_5__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2629:2: rule__Connection__Group_5__2__Impl
+            {
+            pushFollow(FOLLOW_rule__Connection__Group_5__2__Impl_in_rule__Connection__Group_5__25282);
+            rule__Connection__Group_5__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5__2"
+
+
+    // $ANTLR start "rule__Connection__Group_5__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2635:1: rule__Connection__Group_5__2__Impl : ( ( rule__Connection__Group_5_2__0 )* ) ;
+    public final void rule__Connection__Group_5__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2639:1: ( ( ( rule__Connection__Group_5_2__0 )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2640:1: ( ( rule__Connection__Group_5_2__0 )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2640:1: ( ( rule__Connection__Group_5_2__0 )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2641:1: ( rule__Connection__Group_5_2__0 )*
+            {
+             before(grammarAccess.getConnectionAccess().getGroup_5_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2642:1: ( rule__Connection__Group_5_2__0 )*
+            loop19:
+            do {
+                int alt19=2;
+                int LA19_0 = input.LA(1);
+
+                if ( (LA19_0==19) ) {
+                    alt19=1;
+                }
+
+
+                switch (alt19) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2642:2: rule__Connection__Group_5_2__0
+                   {
+                   pushFollow(FOLLOW_rule__Connection__Group_5_2__0_in_rule__Connection__Group_5__2__Impl5309);
+                   rule__Connection__Group_5_2__0();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop19;
+                }
+            } while (true);
+
+             after(grammarAccess.getConnectionAccess().getGroup_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group_5_2__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2658:1: rule__Connection__Group_5_2__0 : rule__Connection__Group_5_2__0__Impl rule__Connection__Group_5_2__1 ;
+    public final void rule__Connection__Group_5_2__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2662:1: ( rule__Connection__Group_5_2__0__Impl rule__Connection__Group_5_2__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2663:2: rule__Connection__Group_5_2__0__Impl rule__Connection__Group_5_2__1
+            {
+            pushFollow(FOLLOW_rule__Connection__Group_5_2__0__Impl_in_rule__Connection__Group_5_2__05346);
+            rule__Connection__Group_5_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Connection__Group_5_2__1_in_rule__Connection__Group_5_2__05349);
+            rule__Connection__Group_5_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5_2__0"
+
+
+    // $ANTLR start "rule__Connection__Group_5_2__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2670:1: rule__Connection__Group_5_2__0__Impl : ( ',' ) ;
+    public final void rule__Connection__Group_5_2__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2674:1: ( ( ',' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2675:1: ( ',' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2675:1: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2676:1: ','
+            {
+             before(grammarAccess.getConnectionAccess().getCommaKeyword_5_2_0()); 
+            match(input,19,FOLLOW_19_in_rule__Connection__Group_5_2__0__Impl5377); 
+             after(grammarAccess.getConnectionAccess().getCommaKeyword_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5_2__0__Impl"
+
+
+    // $ANTLR start "rule__Connection__Group_5_2__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2689:1: rule__Connection__Group_5_2__1 : rule__Connection__Group_5_2__1__Impl ;
+    public final void rule__Connection__Group_5_2__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2693:1: ( rule__Connection__Group_5_2__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2694:2: rule__Connection__Group_5_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Connection__Group_5_2__1__Impl_in_rule__Connection__Group_5_2__15408);
+            rule__Connection__Group_5_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5_2__1"
+
+
+    // $ANTLR start "rule__Connection__Group_5_2__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2700:1: rule__Connection__Group_5_2__1__Impl : ( ( rule__Connection__EndnodeAssignment_5_2_1 ) ) ;
+    public final void rule__Connection__Group_5_2__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2704:1: ( ( ( rule__Connection__EndnodeAssignment_5_2_1 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2705:1: ( ( rule__Connection__EndnodeAssignment_5_2_1 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2705:1: ( ( rule__Connection__EndnodeAssignment_5_2_1 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2706:1: ( rule__Connection__EndnodeAssignment_5_2_1 )
+            {
+             before(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_2_1()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2707:1: ( rule__Connection__EndnodeAssignment_5_2_1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2707:2: rule__Connection__EndnodeAssignment_5_2_1
+            {
+            pushFollow(FOLLOW_rule__Connection__EndnodeAssignment_5_2_1_in_rule__Connection__Group_5_2__1__Impl5435);
+            rule__Connection__EndnodeAssignment_5_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionAccess().getEndnodeAssignment_5_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__Group_5_2__1__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2721:1: rule__ConnectionUpdate__Group__0 : rule__ConnectionUpdate__Group__0__Impl rule__ConnectionUpdate__Group__1 ;
+    public final void rule__ConnectionUpdate__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2725:1: ( rule__ConnectionUpdate__Group__0__Impl rule__ConnectionUpdate__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2726:2: rule__ConnectionUpdate__Group__0__Impl rule__ConnectionUpdate__Group__1
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__0__Impl_in_rule__ConnectionUpdate__Group__05469);
+            rule__ConnectionUpdate__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__1_in_rule__ConnectionUpdate__Group__05472);
+            rule__ConnectionUpdate__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__0"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2733:1: rule__ConnectionUpdate__Group__0__Impl : ( ( rule__ConnectionUpdate__Alternatives_0 ) ) ;
+    public final void rule__ConnectionUpdate__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2737:1: ( ( ( rule__ConnectionUpdate__Alternatives_0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2738:1: ( ( rule__ConnectionUpdate__Alternatives_0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2738:1: ( ( rule__ConnectionUpdate__Alternatives_0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2739:1: ( rule__ConnectionUpdate__Alternatives_0 )
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getAlternatives_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2740:1: ( rule__ConnectionUpdate__Alternatives_0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2740:2: rule__ConnectionUpdate__Alternatives_0
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Alternatives_0_in_rule__ConnectionUpdate__Group__0__Impl5499);
+            rule__ConnectionUpdate__Alternatives_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getAlternatives_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2750:1: rule__ConnectionUpdate__Group__1 : rule__ConnectionUpdate__Group__1__Impl rule__ConnectionUpdate__Group__2 ;
+    public final void rule__ConnectionUpdate__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2754:1: ( rule__ConnectionUpdate__Group__1__Impl rule__ConnectionUpdate__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2755:2: rule__ConnectionUpdate__Group__1__Impl rule__ConnectionUpdate__Group__2
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__1__Impl_in_rule__ConnectionUpdate__Group__15529);
+            rule__ConnectionUpdate__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__2_in_rule__ConnectionUpdate__Group__15532);
+            rule__ConnectionUpdate__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__1"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2762:1: rule__ConnectionUpdate__Group__1__Impl : ( 'Connection' ) ;
+    public final void rule__ConnectionUpdate__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2766:1: ( ( 'Connection' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2767:1: ( 'Connection' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2767:1: ( 'Connection' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2768:1: 'Connection'
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getConnectionKeyword_1()); 
+            match(input,24,FOLLOW_24_in_rule__ConnectionUpdate__Group__1__Impl5560); 
+             after(grammarAccess.getConnectionUpdateAccess().getConnectionKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2781:1: rule__ConnectionUpdate__Group__2 : rule__ConnectionUpdate__Group__2__Impl rule__ConnectionUpdate__Group__3 ;
+    public final void rule__ConnectionUpdate__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2785:1: ( rule__ConnectionUpdate__Group__2__Impl rule__ConnectionUpdate__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2786:2: rule__ConnectionUpdate__Group__2__Impl rule__ConnectionUpdate__Group__3
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__2__Impl_in_rule__ConnectionUpdate__Group__25591);
+            rule__ConnectionUpdate__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__3_in_rule__ConnectionUpdate__Group__25594);
+            rule__ConnectionUpdate__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__2"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2793:1: rule__ConnectionUpdate__Group__2__Impl : ( ( rule__ConnectionUpdate__ConnectionnameAssignment_2 ) ) ;
+    public final void rule__ConnectionUpdate__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2797:1: ( ( ( rule__ConnectionUpdate__ConnectionnameAssignment_2 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2798:1: ( ( rule__ConnectionUpdate__ConnectionnameAssignment_2 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2798:1: ( ( rule__ConnectionUpdate__ConnectionnameAssignment_2 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2799:1: ( rule__ConnectionUpdate__ConnectionnameAssignment_2 )
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getConnectionnameAssignment_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2800:1: ( rule__ConnectionUpdate__ConnectionnameAssignment_2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2800:2: rule__ConnectionUpdate__ConnectionnameAssignment_2
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__ConnectionnameAssignment_2_in_rule__ConnectionUpdate__Group__2__Impl5621);
+            rule__ConnectionUpdate__ConnectionnameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getConnectionnameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2810:1: rule__ConnectionUpdate__Group__3 : rule__ConnectionUpdate__Group__3__Impl rule__ConnectionUpdate__Group__4 ;
+    public final void rule__ConnectionUpdate__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2814:1: ( rule__ConnectionUpdate__Group__3__Impl rule__ConnectionUpdate__Group__4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2815:2: rule__ConnectionUpdate__Group__3__Impl rule__ConnectionUpdate__Group__4
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__3__Impl_in_rule__ConnectionUpdate__Group__35651);
+            rule__ConnectionUpdate__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__4_in_rule__ConnectionUpdate__Group__35654);
+            rule__ConnectionUpdate__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__3"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2822:1: rule__ConnectionUpdate__Group__3__Impl : ( ( rule__ConnectionUpdate__Group_3__0 )? ) ;
+    public final void rule__ConnectionUpdate__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2826:1: ( ( ( rule__ConnectionUpdate__Group_3__0 )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2827:1: ( ( rule__ConnectionUpdate__Group_3__0 )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2827:1: ( ( rule__ConnectionUpdate__Group_3__0 )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2828:1: ( rule__ConnectionUpdate__Group_3__0 )?
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getGroup_3()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2829:1: ( rule__ConnectionUpdate__Group_3__0 )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==22) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2829:2: rule__ConnectionUpdate__Group_3__0
+                    {
+                    pushFollow(FOLLOW_rule__ConnectionUpdate__Group_3__0_in_rule__ConnectionUpdate__Group__3__Impl5681);
+                    rule__ConnectionUpdate__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2839:1: rule__ConnectionUpdate__Group__4 : rule__ConnectionUpdate__Group__4__Impl rule__ConnectionUpdate__Group__5 ;
+    public final void rule__ConnectionUpdate__Group__4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2843:1: ( rule__ConnectionUpdate__Group__4__Impl rule__ConnectionUpdate__Group__5 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2844:2: rule__ConnectionUpdate__Group__4__Impl rule__ConnectionUpdate__Group__5
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__4__Impl_in_rule__ConnectionUpdate__Group__45712);
+            rule__ConnectionUpdate__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__5_in_rule__ConnectionUpdate__Group__45715);
+            rule__ConnectionUpdate__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__4"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__4__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2851:1: rule__ConnectionUpdate__Group__4__Impl : ( ( rule__ConnectionUpdate__Group_4__0 )? ) ;
+    public final void rule__ConnectionUpdate__Group__4__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2855:1: ( ( ( rule__ConnectionUpdate__Group_4__0 )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2856:1: ( ( rule__ConnectionUpdate__Group_4__0 )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2856:1: ( ( rule__ConnectionUpdate__Group_4__0 )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2857:1: ( rule__ConnectionUpdate__Group_4__0 )?
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getGroup_4()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2858:1: ( rule__ConnectionUpdate__Group_4__0 )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==25) ) {
+                alt21=1;
+            }
+            switch (alt21) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2858:2: rule__ConnectionUpdate__Group_4__0
+                    {
+                    pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4__0_in_rule__ConnectionUpdate__Group__4__Impl5742);
+                    rule__ConnectionUpdate__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__5"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2868:1: rule__ConnectionUpdate__Group__5 : rule__ConnectionUpdate__Group__5__Impl rule__ConnectionUpdate__Group__6 ;
+    public final void rule__ConnectionUpdate__Group__5() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2872:1: ( rule__ConnectionUpdate__Group__5__Impl rule__ConnectionUpdate__Group__6 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2873:2: rule__ConnectionUpdate__Group__5__Impl rule__ConnectionUpdate__Group__6
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__5__Impl_in_rule__ConnectionUpdate__Group__55773);
+            rule__ConnectionUpdate__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__6_in_rule__ConnectionUpdate__Group__55776);
+            rule__ConnectionUpdate__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__5"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__5__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2880:1: rule__ConnectionUpdate__Group__5__Impl : ( ( ruleProperty )? ) ;
+    public final void rule__ConnectionUpdate__Group__5__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2884:1: ( ( ( ruleProperty )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2885:1: ( ( ruleProperty )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2885:1: ( ( ruleProperty )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2886:1: ( ruleProperty )?
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2887:1: ( ruleProperty )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0==34) ) {
+                alt22=1;
+            }
+            switch (alt22) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2887:3: ruleProperty
+                    {
+                    pushFollow(FOLLOW_ruleProperty_in_rule__ConnectionUpdate__Group__5__Impl5804);
+                    ruleProperty();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__6"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2897:1: rule__ConnectionUpdate__Group__6 : rule__ConnectionUpdate__Group__6__Impl ;
+    public final void rule__ConnectionUpdate__Group__6() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2901:1: ( rule__ConnectionUpdate__Group__6__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2902:2: rule__ConnectionUpdate__Group__6__Impl
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group__6__Impl_in_rule__ConnectionUpdate__Group__65835);
+            rule__ConnectionUpdate__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__6"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group__6__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2908:1: rule__ConnectionUpdate__Group__6__Impl : ( ';' ) ;
+    public final void rule__ConnectionUpdate__Group__6__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2912:1: ( ( ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2913:1: ( ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2913:1: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2914:1: ';'
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getSemicolonKeyword_6()); 
+            match(input,18,FOLLOW_18_in_rule__ConnectionUpdate__Group__6__Impl5863); 
+             after(grammarAccess.getConnectionUpdateAccess().getSemicolonKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_3__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2941:1: rule__ConnectionUpdate__Group_3__0 : rule__ConnectionUpdate__Group_3__0__Impl rule__ConnectionUpdate__Group_3__1 ;
+    public final void rule__ConnectionUpdate__Group_3__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2945:1: ( rule__ConnectionUpdate__Group_3__0__Impl rule__ConnectionUpdate__Group_3__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2946:2: rule__ConnectionUpdate__Group_3__0__Impl rule__ConnectionUpdate__Group_3__1
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_3__0__Impl_in_rule__ConnectionUpdate__Group_3__05908);
+            rule__ConnectionUpdate__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_3__1_in_rule__ConnectionUpdate__Group_3__05911);
+            rule__ConnectionUpdate__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_3__0"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_3__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2953:1: rule__ConnectionUpdate__Group_3__0__Impl : ( 'Type' ) ;
+    public final void rule__ConnectionUpdate__Group_3__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2957:1: ( ( 'Type' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2958:1: ( 'Type' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2958:1: ( 'Type' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2959:1: 'Type'
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0()); 
+            match(input,22,FOLLOW_22_in_rule__ConnectionUpdate__Group_3__0__Impl5939); 
+             after(grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_3__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2972:1: rule__ConnectionUpdate__Group_3__1 : rule__ConnectionUpdate__Group_3__1__Impl ;
+    public final void rule__ConnectionUpdate__Group_3__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2976:1: ( rule__ConnectionUpdate__Group_3__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2977:2: rule__ConnectionUpdate__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_3__1__Impl_in_rule__ConnectionUpdate__Group_3__15970);
+            rule__ConnectionUpdate__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_3__1"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_3__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2983:1: rule__ConnectionUpdate__Group_3__1__Impl : ( RULE_NEMOID ) ;
+    public final void rule__ConnectionUpdate__Group_3__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2987:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2988:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2988:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:2989:1: RULE_NEMOID
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__ConnectionUpdate__Group_3__1__Impl5997); 
+             after(grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3004:1: rule__ConnectionUpdate__Group_4__0 : rule__ConnectionUpdate__Group_4__0__Impl rule__ConnectionUpdate__Group_4__1 ;
+    public final void rule__ConnectionUpdate__Group_4__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3008:1: ( rule__ConnectionUpdate__Group_4__0__Impl rule__ConnectionUpdate__Group_4__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3009:2: rule__ConnectionUpdate__Group_4__0__Impl rule__ConnectionUpdate__Group_4__1
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4__0__Impl_in_rule__ConnectionUpdate__Group_4__06030);
+            rule__ConnectionUpdate__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4__1_in_rule__ConnectionUpdate__Group_4__06033);
+            rule__ConnectionUpdate__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4__0"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3016:1: rule__ConnectionUpdate__Group_4__0__Impl : ( 'Endnodes' ) ;
+    public final void rule__ConnectionUpdate__Group_4__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3020:1: ( ( 'Endnodes' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3021:1: ( 'Endnodes' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3021:1: ( 'Endnodes' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3022:1: 'Endnodes'
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getEndnodesKeyword_4_0()); 
+            match(input,25,FOLLOW_25_in_rule__ConnectionUpdate__Group_4__0__Impl6061); 
+             after(grammarAccess.getConnectionUpdateAccess().getEndnodesKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3035:1: rule__ConnectionUpdate__Group_4__1 : rule__ConnectionUpdate__Group_4__1__Impl rule__ConnectionUpdate__Group_4__2 ;
+    public final void rule__ConnectionUpdate__Group_4__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3039:1: ( rule__ConnectionUpdate__Group_4__1__Impl rule__ConnectionUpdate__Group_4__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3040:2: rule__ConnectionUpdate__Group_4__1__Impl rule__ConnectionUpdate__Group_4__2
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4__1__Impl_in_rule__ConnectionUpdate__Group_4__16092);
+            rule__ConnectionUpdate__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4__2_in_rule__ConnectionUpdate__Group_4__16095);
+            rule__ConnectionUpdate__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4__1"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3047:1: rule__ConnectionUpdate__Group_4__1__Impl : ( ( rule__ConnectionUpdate__EndnodeAssignment_4_1 ) ) ;
+    public final void rule__ConnectionUpdate__Group_4__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3051:1: ( ( ( rule__ConnectionUpdate__EndnodeAssignment_4_1 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3052:1: ( ( rule__ConnectionUpdate__EndnodeAssignment_4_1 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3052:1: ( ( rule__ConnectionUpdate__EndnodeAssignment_4_1 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3053:1: ( rule__ConnectionUpdate__EndnodeAssignment_4_1 )
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_1()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3054:1: ( rule__ConnectionUpdate__EndnodeAssignment_4_1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3054:2: rule__ConnectionUpdate__EndnodeAssignment_4_1
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__EndnodeAssignment_4_1_in_rule__ConnectionUpdate__Group_4__1__Impl6122);
+            rule__ConnectionUpdate__EndnodeAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3064:1: rule__ConnectionUpdate__Group_4__2 : rule__ConnectionUpdate__Group_4__2__Impl ;
+    public final void rule__ConnectionUpdate__Group_4__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3068:1: ( rule__ConnectionUpdate__Group_4__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3069:2: rule__ConnectionUpdate__Group_4__2__Impl
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4__2__Impl_in_rule__ConnectionUpdate__Group_4__26152);
+            rule__ConnectionUpdate__Group_4__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4__2"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3075:1: rule__ConnectionUpdate__Group_4__2__Impl : ( ( rule__ConnectionUpdate__Group_4_2__0 )* ) ;
+    public final void rule__ConnectionUpdate__Group_4__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3079:1: ( ( ( rule__ConnectionUpdate__Group_4_2__0 )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3080:1: ( ( rule__ConnectionUpdate__Group_4_2__0 )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3080:1: ( ( rule__ConnectionUpdate__Group_4_2__0 )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3081:1: ( rule__ConnectionUpdate__Group_4_2__0 )*
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getGroup_4_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3082:1: ( rule__ConnectionUpdate__Group_4_2__0 )*
+            loop23:
+            do {
+                int alt23=2;
+                int LA23_0 = input.LA(1);
+
+                if ( (LA23_0==19) ) {
+                    alt23=1;
+                }
+
+
+                switch (alt23) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3082:2: rule__ConnectionUpdate__Group_4_2__0
+                   {
+                   pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4_2__0_in_rule__ConnectionUpdate__Group_4__2__Impl6179);
+                   rule__ConnectionUpdate__Group_4_2__0();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop23;
+                }
+            } while (true);
+
+             after(grammarAccess.getConnectionUpdateAccess().getGroup_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4_2__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3098:1: rule__ConnectionUpdate__Group_4_2__0 : rule__ConnectionUpdate__Group_4_2__0__Impl rule__ConnectionUpdate__Group_4_2__1 ;
+    public final void rule__ConnectionUpdate__Group_4_2__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3102:1: ( rule__ConnectionUpdate__Group_4_2__0__Impl rule__ConnectionUpdate__Group_4_2__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3103:2: rule__ConnectionUpdate__Group_4_2__0__Impl rule__ConnectionUpdate__Group_4_2__1
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4_2__0__Impl_in_rule__ConnectionUpdate__Group_4_2__06216);
+            rule__ConnectionUpdate__Group_4_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4_2__1_in_rule__ConnectionUpdate__Group_4_2__06219);
+            rule__ConnectionUpdate__Group_4_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4_2__0"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4_2__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3110:1: rule__ConnectionUpdate__Group_4_2__0__Impl : ( ',' ) ;
+    public final void rule__ConnectionUpdate__Group_4_2__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3114:1: ( ( ',' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3115:1: ( ',' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3115:1: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3116:1: ','
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getCommaKeyword_4_2_0()); 
+            match(input,19,FOLLOW_19_in_rule__ConnectionUpdate__Group_4_2__0__Impl6247); 
+             after(grammarAccess.getConnectionUpdateAccess().getCommaKeyword_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4_2__0__Impl"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4_2__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3129:1: rule__ConnectionUpdate__Group_4_2__1 : rule__ConnectionUpdate__Group_4_2__1__Impl ;
+    public final void rule__ConnectionUpdate__Group_4_2__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3133:1: ( rule__ConnectionUpdate__Group_4_2__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3134:2: rule__ConnectionUpdate__Group_4_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__Group_4_2__1__Impl_in_rule__ConnectionUpdate__Group_4_2__16278);
+            rule__ConnectionUpdate__Group_4_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4_2__1"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__Group_4_2__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3140:1: rule__ConnectionUpdate__Group_4_2__1__Impl : ( ( rule__ConnectionUpdate__EndnodeAssignment_4_2_1 ) ) ;
+    public final void rule__ConnectionUpdate__Group_4_2__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3144:1: ( ( ( rule__ConnectionUpdate__EndnodeAssignment_4_2_1 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3145:1: ( ( rule__ConnectionUpdate__EndnodeAssignment_4_2_1 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3145:1: ( ( rule__ConnectionUpdate__EndnodeAssignment_4_2_1 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3146:1: ( rule__ConnectionUpdate__EndnodeAssignment_4_2_1 )
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_2_1()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3147:1: ( rule__ConnectionUpdate__EndnodeAssignment_4_2_1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3147:2: rule__ConnectionUpdate__EndnodeAssignment_4_2_1
+            {
+            pushFollow(FOLLOW_rule__ConnectionUpdate__EndnodeAssignment_4_2_1_in_rule__ConnectionUpdate__Group_4_2__1__Impl6305);
+            rule__ConnectionUpdate__EndnodeAssignment_4_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getEndnodeAssignment_4_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__Group_4_2__1__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3161:1: rule__Flow__Group__0 : rule__Flow__Group__0__Impl rule__Flow__Group__1 ;
+    public final void rule__Flow__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3165:1: ( rule__Flow__Group__0__Impl rule__Flow__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3166:2: rule__Flow__Group__0__Impl rule__Flow__Group__1
+            {
+            pushFollow(FOLLOW_rule__Flow__Group__0__Impl_in_rule__Flow__Group__06339);
+            rule__Flow__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Flow__Group__1_in_rule__Flow__Group__06342);
+            rule__Flow__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__0"
+
+
+    // $ANTLR start "rule__Flow__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3173:1: rule__Flow__Group__0__Impl : ( 'CREATE' ) ;
+    public final void rule__Flow__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3177:1: ( ( 'CREATE' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3178:1: ( 'CREATE' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3178:1: ( 'CREATE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3179:1: 'CREATE'
+            {
+             before(grammarAccess.getFlowAccess().getCREATEKeyword_0()); 
+            match(input,15,FOLLOW_15_in_rule__Flow__Group__0__Impl6370); 
+             after(grammarAccess.getFlowAccess().getCREATEKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3192:1: rule__Flow__Group__1 : rule__Flow__Group__1__Impl rule__Flow__Group__2 ;
+    public final void rule__Flow__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3196:1: ( rule__Flow__Group__1__Impl rule__Flow__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3197:2: rule__Flow__Group__1__Impl rule__Flow__Group__2
+            {
+            pushFollow(FOLLOW_rule__Flow__Group__1__Impl_in_rule__Flow__Group__16401);
+            rule__Flow__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Flow__Group__2_in_rule__Flow__Group__16404);
+            rule__Flow__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__1"
+
+
+    // $ANTLR start "rule__Flow__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3204:1: rule__Flow__Group__1__Impl : ( 'Flow' ) ;
+    public final void rule__Flow__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3208:1: ( ( 'Flow' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3209:1: ( 'Flow' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3209:1: ( 'Flow' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3210:1: 'Flow'
+            {
+             before(grammarAccess.getFlowAccess().getFlowKeyword_1()); 
+            match(input,26,FOLLOW_26_in_rule__Flow__Group__1__Impl6432); 
+             after(grammarAccess.getFlowAccess().getFlowKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3223:1: rule__Flow__Group__2 : rule__Flow__Group__2__Impl rule__Flow__Group__3 ;
+    public final void rule__Flow__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3227:1: ( rule__Flow__Group__2__Impl rule__Flow__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3228:2: rule__Flow__Group__2__Impl rule__Flow__Group__3
+            {
+            pushFollow(FOLLOW_rule__Flow__Group__2__Impl_in_rule__Flow__Group__26463);
+            rule__Flow__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Flow__Group__3_in_rule__Flow__Group__26466);
+            rule__Flow__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__2"
+
+
+    // $ANTLR start "rule__Flow__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3235:1: rule__Flow__Group__2__Impl : ( ( rule__Flow__NameAssignment_2 ) ) ;
+    public final void rule__Flow__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3239:1: ( ( ( rule__Flow__NameAssignment_2 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3240:1: ( ( rule__Flow__NameAssignment_2 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3240:1: ( ( rule__Flow__NameAssignment_2 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3241:1: ( rule__Flow__NameAssignment_2 )
+            {
+             before(grammarAccess.getFlowAccess().getNameAssignment_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3242:1: ( rule__Flow__NameAssignment_2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3242:2: rule__Flow__NameAssignment_2
+            {
+            pushFollow(FOLLOW_rule__Flow__NameAssignment_2_in_rule__Flow__Group__2__Impl6493);
+            rule__Flow__NameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getNameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3252:1: rule__Flow__Group__3 : rule__Flow__Group__3__Impl rule__Flow__Group__4 ;
+    public final void rule__Flow__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3256:1: ( rule__Flow__Group__3__Impl rule__Flow__Group__4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3257:2: rule__Flow__Group__3__Impl rule__Flow__Group__4
+            {
+            pushFollow(FOLLOW_rule__Flow__Group__3__Impl_in_rule__Flow__Group__36523);
+            rule__Flow__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Flow__Group__4_in_rule__Flow__Group__36526);
+            rule__Flow__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__3"
+
+
+    // $ANTLR start "rule__Flow__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3264:1: rule__Flow__Group__3__Impl : ( ( ruleMatches )? ) ;
+    public final void rule__Flow__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3268:1: ( ( ( ruleMatches )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3269:1: ( ( ruleMatches )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3269:1: ( ( ruleMatches )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3270:1: ( ruleMatches )?
+            {
+             before(grammarAccess.getFlowAccess().getMatchesParserRuleCall_3()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3271:1: ( ruleMatches )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==27) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3271:3: ruleMatches
+                    {
+                    pushFollow(FOLLOW_ruleMatches_in_rule__Flow__Group__3__Impl6554);
+                    ruleMatches();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getFlowAccess().getMatchesParserRuleCall_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3281:1: rule__Flow__Group__4 : rule__Flow__Group__4__Impl ;
+    public final void rule__Flow__Group__4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3285:1: ( rule__Flow__Group__4__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3286:2: rule__Flow__Group__4__Impl
+            {
+            pushFollow(FOLLOW_rule__Flow__Group__4__Impl_in_rule__Flow__Group__46585);
+            rule__Flow__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__4"
+
+
+    // $ANTLR start "rule__Flow__Group__4__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3292:1: rule__Flow__Group__4__Impl : ( ';' ) ;
+    public final void rule__Flow__Group__4__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3296:1: ( ( ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3297:1: ( ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3297:1: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3298:1: ';'
+            {
+             before(grammarAccess.getFlowAccess().getSemicolonKeyword_4()); 
+            match(input,18,FOLLOW_18_in_rule__Flow__Group__4__Impl6613); 
+             after(grammarAccess.getFlowAccess().getSemicolonKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__4__Impl"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3321:1: rule__FlowUpdate__Group__0 : rule__FlowUpdate__Group__0__Impl rule__FlowUpdate__Group__1 ;
+    public final void rule__FlowUpdate__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3325:1: ( rule__FlowUpdate__Group__0__Impl rule__FlowUpdate__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3326:2: rule__FlowUpdate__Group__0__Impl rule__FlowUpdate__Group__1
+            {
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__0__Impl_in_rule__FlowUpdate__Group__06654);
+            rule__FlowUpdate__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__1_in_rule__FlowUpdate__Group__06657);
+            rule__FlowUpdate__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__0"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3333:1: rule__FlowUpdate__Group__0__Impl : ( ( rule__FlowUpdate__Alternatives_0 ) ) ;
+    public final void rule__FlowUpdate__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3337:1: ( ( ( rule__FlowUpdate__Alternatives_0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3338:1: ( ( rule__FlowUpdate__Alternatives_0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3338:1: ( ( rule__FlowUpdate__Alternatives_0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3339:1: ( rule__FlowUpdate__Alternatives_0 )
+            {
+             before(grammarAccess.getFlowUpdateAccess().getAlternatives_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3340:1: ( rule__FlowUpdate__Alternatives_0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3340:2: rule__FlowUpdate__Alternatives_0
+            {
+            pushFollow(FOLLOW_rule__FlowUpdate__Alternatives_0_in_rule__FlowUpdate__Group__0__Impl6684);
+            rule__FlowUpdate__Alternatives_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowUpdateAccess().getAlternatives_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__0__Impl"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3350:1: rule__FlowUpdate__Group__1 : rule__FlowUpdate__Group__1__Impl rule__FlowUpdate__Group__2 ;
+    public final void rule__FlowUpdate__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3354:1: ( rule__FlowUpdate__Group__1__Impl rule__FlowUpdate__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3355:2: rule__FlowUpdate__Group__1__Impl rule__FlowUpdate__Group__2
+            {
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__1__Impl_in_rule__FlowUpdate__Group__16714);
+            rule__FlowUpdate__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__2_in_rule__FlowUpdate__Group__16717);
+            rule__FlowUpdate__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__1"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3362:1: rule__FlowUpdate__Group__1__Impl : ( 'Flow' ) ;
+    public final void rule__FlowUpdate__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3366:1: ( ( 'Flow' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3367:1: ( 'Flow' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3367:1: ( 'Flow' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3368:1: 'Flow'
+            {
+             before(grammarAccess.getFlowUpdateAccess().getFlowKeyword_1()); 
+            match(input,26,FOLLOW_26_in_rule__FlowUpdate__Group__1__Impl6745); 
+             after(grammarAccess.getFlowUpdateAccess().getFlowKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__1__Impl"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3381:1: rule__FlowUpdate__Group__2 : rule__FlowUpdate__Group__2__Impl rule__FlowUpdate__Group__3 ;
+    public final void rule__FlowUpdate__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3385:1: ( rule__FlowUpdate__Group__2__Impl rule__FlowUpdate__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3386:2: rule__FlowUpdate__Group__2__Impl rule__FlowUpdate__Group__3
+            {
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__2__Impl_in_rule__FlowUpdate__Group__26776);
+            rule__FlowUpdate__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__3_in_rule__FlowUpdate__Group__26779);
+            rule__FlowUpdate__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__2"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3393:1: rule__FlowUpdate__Group__2__Impl : ( ( rule__FlowUpdate__FlowIdAssignment_2 ) ) ;
+    public final void rule__FlowUpdate__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3397:1: ( ( ( rule__FlowUpdate__FlowIdAssignment_2 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3398:1: ( ( rule__FlowUpdate__FlowIdAssignment_2 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3398:1: ( ( rule__FlowUpdate__FlowIdAssignment_2 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3399:1: ( rule__FlowUpdate__FlowIdAssignment_2 )
+            {
+             before(grammarAccess.getFlowUpdateAccess().getFlowIdAssignment_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3400:1: ( rule__FlowUpdate__FlowIdAssignment_2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3400:2: rule__FlowUpdate__FlowIdAssignment_2
+            {
+            pushFollow(FOLLOW_rule__FlowUpdate__FlowIdAssignment_2_in_rule__FlowUpdate__Group__2__Impl6806);
+            rule__FlowUpdate__FlowIdAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowUpdateAccess().getFlowIdAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__2__Impl"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3410:1: rule__FlowUpdate__Group__3 : rule__FlowUpdate__Group__3__Impl rule__FlowUpdate__Group__4 ;
+    public final void rule__FlowUpdate__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3414:1: ( rule__FlowUpdate__Group__3__Impl rule__FlowUpdate__Group__4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3415:2: rule__FlowUpdate__Group__3__Impl rule__FlowUpdate__Group__4
+            {
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__3__Impl_in_rule__FlowUpdate__Group__36836);
+            rule__FlowUpdate__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__4_in_rule__FlowUpdate__Group__36839);
+            rule__FlowUpdate__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__3"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3422:1: rule__FlowUpdate__Group__3__Impl : ( ( ruleMatches )? ) ;
+    public final void rule__FlowUpdate__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3426:1: ( ( ( ruleMatches )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3427:1: ( ( ruleMatches )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3427:1: ( ( ruleMatches )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3428:1: ( ruleMatches )?
+            {
+             before(grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3429:1: ( ruleMatches )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==27) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3429:3: ruleMatches
+                    {
+                    pushFollow(FOLLOW_ruleMatches_in_rule__FlowUpdate__Group__3__Impl6867);
+                    ruleMatches();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__3__Impl"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3439:1: rule__FlowUpdate__Group__4 : rule__FlowUpdate__Group__4__Impl ;
+    public final void rule__FlowUpdate__Group__4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3443:1: ( rule__FlowUpdate__Group__4__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3444:2: rule__FlowUpdate__Group__4__Impl
+            {
+            pushFollow(FOLLOW_rule__FlowUpdate__Group__4__Impl_in_rule__FlowUpdate__Group__46898);
+            rule__FlowUpdate__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__4"
+
+
+    // $ANTLR start "rule__FlowUpdate__Group__4__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3450:1: rule__FlowUpdate__Group__4__Impl : ( ';' ) ;
+    public final void rule__FlowUpdate__Group__4__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3454:1: ( ( ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3455:1: ( ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3455:1: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3456:1: ';'
+            {
+             before(grammarAccess.getFlowUpdateAccess().getSemicolonKeyword_4()); 
+            match(input,18,FOLLOW_18_in_rule__FlowUpdate__Group__4__Impl6926); 
+             after(grammarAccess.getFlowUpdateAccess().getSemicolonKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Matches__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3479:1: rule__Matches__Group__0 : rule__Matches__Group__0__Impl rule__Matches__Group__1 ;
+    public final void rule__Matches__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3483:1: ( rule__Matches__Group__0__Impl rule__Matches__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3484:2: rule__Matches__Group__0__Impl rule__Matches__Group__1
+            {
+            pushFollow(FOLLOW_rule__Matches__Group__0__Impl_in_rule__Matches__Group__06967);
+            rule__Matches__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Matches__Group__1_in_rule__Matches__Group__06970);
+            rule__Matches__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group__0"
+
+
+    // $ANTLR start "rule__Matches__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3491:1: rule__Matches__Group__0__Impl : ( 'Match' ) ;
+    public final void rule__Matches__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3495:1: ( ( 'Match' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3496:1: ( 'Match' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3496:1: ( 'Match' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3497:1: 'Match'
+            {
+             before(grammarAccess.getMatchesAccess().getMatchKeyword_0()); 
+            match(input,27,FOLLOW_27_in_rule__Matches__Group__0__Impl6998); 
+             after(grammarAccess.getMatchesAccess().getMatchKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Matches__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3510:1: rule__Matches__Group__1 : rule__Matches__Group__1__Impl rule__Matches__Group__2 ;
+    public final void rule__Matches__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3514:1: ( rule__Matches__Group__1__Impl rule__Matches__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3515:2: rule__Matches__Group__1__Impl rule__Matches__Group__2
+            {
+            pushFollow(FOLLOW_rule__Matches__Group__1__Impl_in_rule__Matches__Group__17029);
+            rule__Matches__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Matches__Group__2_in_rule__Matches__Group__17032);
+            rule__Matches__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group__1"
+
+
+    // $ANTLR start "rule__Matches__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3522:1: rule__Matches__Group__1__Impl : ( ruleMatch ) ;
+    public final void rule__Matches__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3526:1: ( ( ruleMatch ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3527:1: ( ruleMatch )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3527:1: ( ruleMatch )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3528:1: ruleMatch
+            {
+             before(grammarAccess.getMatchesAccess().getMatchParserRuleCall_1()); 
+            pushFollow(FOLLOW_ruleMatch_in_rule__Matches__Group__1__Impl7059);
+            ruleMatch();
+
+            state._fsp--;
+
+             after(grammarAccess.getMatchesAccess().getMatchParserRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Matches__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3539:1: rule__Matches__Group__2 : rule__Matches__Group__2__Impl ;
+    public final void rule__Matches__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3543:1: ( rule__Matches__Group__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3544:2: rule__Matches__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__Matches__Group__2__Impl_in_rule__Matches__Group__27088);
+            rule__Matches__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group__2"
+
+
+    // $ANTLR start "rule__Matches__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3550:1: rule__Matches__Group__2__Impl : ( ( rule__Matches__Group_2__0 )* ) ;
+    public final void rule__Matches__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3554:1: ( ( ( rule__Matches__Group_2__0 )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3555:1: ( ( rule__Matches__Group_2__0 )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3555:1: ( ( rule__Matches__Group_2__0 )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3556:1: ( rule__Matches__Group_2__0 )*
+            {
+             before(grammarAccess.getMatchesAccess().getGroup_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3557:1: ( rule__Matches__Group_2__0 )*
+            loop26:
+            do {
+                int alt26=2;
+                int LA26_0 = input.LA(1);
+
+                if ( (LA26_0==19) ) {
+                    alt26=1;
+                }
+
+
+                switch (alt26) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3557:2: rule__Matches__Group_2__0
+                   {
+                   pushFollow(FOLLOW_rule__Matches__Group_2__0_in_rule__Matches__Group__2__Impl7115);
+                   rule__Matches__Group_2__0();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop26;
+                }
+            } while (true);
+
+             after(grammarAccess.getMatchesAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Matches__Group_2__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3573:1: rule__Matches__Group_2__0 : rule__Matches__Group_2__0__Impl rule__Matches__Group_2__1 ;
+    public final void rule__Matches__Group_2__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3577:1: ( rule__Matches__Group_2__0__Impl rule__Matches__Group_2__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3578:2: rule__Matches__Group_2__0__Impl rule__Matches__Group_2__1
+            {
+            pushFollow(FOLLOW_rule__Matches__Group_2__0__Impl_in_rule__Matches__Group_2__07152);
+            rule__Matches__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Matches__Group_2__1_in_rule__Matches__Group_2__07155);
+            rule__Matches__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group_2__0"
+
+
+    // $ANTLR start "rule__Matches__Group_2__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3585:1: rule__Matches__Group_2__0__Impl : ( ',' ) ;
+    public final void rule__Matches__Group_2__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3589:1: ( ( ',' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3590:1: ( ',' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3590:1: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3591:1: ','
+            {
+             before(grammarAccess.getMatchesAccess().getCommaKeyword_2_0()); 
+            match(input,19,FOLLOW_19_in_rule__Matches__Group_2__0__Impl7183); 
+             after(grammarAccess.getMatchesAccess().getCommaKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__Matches__Group_2__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3604:1: rule__Matches__Group_2__1 : rule__Matches__Group_2__1__Impl ;
+    public final void rule__Matches__Group_2__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3608:1: ( rule__Matches__Group_2__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3609:2: rule__Matches__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Matches__Group_2__1__Impl_in_rule__Matches__Group_2__17214);
+            rule__Matches__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group_2__1"
+
+
+    // $ANTLR start "rule__Matches__Group_2__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3615:1: rule__Matches__Group_2__1__Impl : ( ruleMatch ) ;
+    public final void rule__Matches__Group_2__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3619:1: ( ( ruleMatch ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3620:1: ( ruleMatch )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3620:1: ( ruleMatch )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3621:1: ruleMatch
+            {
+             before(grammarAccess.getMatchesAccess().getMatchParserRuleCall_2_1()); 
+            pushFollow(FOLLOW_ruleMatch_in_rule__Matches__Group_2__1__Impl7241);
+            ruleMatch();
+
+            state._fsp--;
+
+             after(grammarAccess.getMatchesAccess().getMatchParserRuleCall_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Matches__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__Match__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3636:1: rule__Match__Group__0 : rule__Match__Group__0__Impl rule__Match__Group__1 ;
+    public final void rule__Match__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3640:1: ( rule__Match__Group__0__Impl rule__Match__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3641:2: rule__Match__Group__0__Impl rule__Match__Group__1
+            {
+            pushFollow(FOLLOW_rule__Match__Group__0__Impl_in_rule__Match__Group__07274);
+            rule__Match__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Match__Group__1_in_rule__Match__Group__07277);
+            rule__Match__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Match__Group__0"
+
+
+    // $ANTLR start "rule__Match__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3648:1: rule__Match__Group__0__Impl : ( RULE_NEMOID ) ;
+    public final void rule__Match__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3652:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3653:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3653:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3654:1: RULE_NEMOID
+            {
+             before(grammarAccess.getMatchAccess().getNemoIdTerminalRuleCall_0()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Match__Group__0__Impl7304); 
+             after(grammarAccess.getMatchAccess().getNemoIdTerminalRuleCall_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Match__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Match__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3665:1: rule__Match__Group__1 : rule__Match__Group__1__Impl rule__Match__Group__2 ;
+    public final void rule__Match__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3669:1: ( rule__Match__Group__1__Impl rule__Match__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3670:2: rule__Match__Group__1__Impl rule__Match__Group__2
+            {
+            pushFollow(FOLLOW_rule__Match__Group__1__Impl_in_rule__Match__Group__17333);
+            rule__Match__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Match__Group__2_in_rule__Match__Group__17336);
+            rule__Match__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Match__Group__1"
+
+
+    // $ANTLR start "rule__Match__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3677:1: rule__Match__Group__1__Impl : ( ':' ) ;
+    public final void rule__Match__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3681:1: ( ( ':' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3682:1: ( ':' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3682:1: ( ':' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3683:1: ':'
+            {
+             before(grammarAccess.getMatchAccess().getColonKeyword_1()); 
+            match(input,28,FOLLOW_28_in_rule__Match__Group__1__Impl7364); 
+             after(grammarAccess.getMatchAccess().getColonKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Match__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Match__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3696:1: rule__Match__Group__2 : rule__Match__Group__2__Impl ;
+    public final void rule__Match__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3700:1: ( rule__Match__Group__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3701:2: rule__Match__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__Match__Group__2__Impl_in_rule__Match__Group__27395);
+            rule__Match__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Match__Group__2"
+
+
+    // $ANTLR start "rule__Match__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3707:1: rule__Match__Group__2__Impl : ( RULE_STRING ) ;
+    public final void rule__Match__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3711:1: ( ( RULE_STRING ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3712:1: ( RULE_STRING )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3712:1: ( RULE_STRING )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3713:1: RULE_STRING
+            {
+             before(grammarAccess.getMatchAccess().getSTRINGTerminalRuleCall_2()); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Match__Group__2__Impl7422); 
+             after(grammarAccess.getMatchAccess().getSTRINGTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Match__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3730:1: rule__Operation__Group__0 : rule__Operation__Group__0__Impl rule__Operation__Group__1 ;
+    public final void rule__Operation__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3734:1: ( rule__Operation__Group__0__Impl rule__Operation__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3735:2: rule__Operation__Group__0__Impl rule__Operation__Group__1
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__0__Impl_in_rule__Operation__Group__07457);
+            rule__Operation__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group__1_in_rule__Operation__Group__07460);
+            rule__Operation__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__0"
+
+
+    // $ANTLR start "rule__Operation__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3742:1: rule__Operation__Group__0__Impl : ( 'CREATE' ) ;
+    public final void rule__Operation__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3746:1: ( ( 'CREATE' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3747:1: ( 'CREATE' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3747:1: ( 'CREATE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3748:1: 'CREATE'
+            {
+             before(grammarAccess.getOperationAccess().getCREATEKeyword_0()); 
+            match(input,15,FOLLOW_15_in_rule__Operation__Group__0__Impl7488); 
+             after(grammarAccess.getOperationAccess().getCREATEKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3761:1: rule__Operation__Group__1 : rule__Operation__Group__1__Impl rule__Operation__Group__2 ;
+    public final void rule__Operation__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3765:1: ( rule__Operation__Group__1__Impl rule__Operation__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3766:2: rule__Operation__Group__1__Impl rule__Operation__Group__2
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__1__Impl_in_rule__Operation__Group__17519);
+            rule__Operation__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group__2_in_rule__Operation__Group__17522);
+            rule__Operation__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__1"
+
+
+    // $ANTLR start "rule__Operation__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3773:1: rule__Operation__Group__1__Impl : ( 'Operation' ) ;
+    public final void rule__Operation__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3777:1: ( ( 'Operation' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3778:1: ( 'Operation' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3778:1: ( 'Operation' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3779:1: 'Operation'
+            {
+             before(grammarAccess.getOperationAccess().getOperationKeyword_1()); 
+            match(input,29,FOLLOW_29_in_rule__Operation__Group__1__Impl7550); 
+             after(grammarAccess.getOperationAccess().getOperationKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3792:1: rule__Operation__Group__2 : rule__Operation__Group__2__Impl rule__Operation__Group__3 ;
+    public final void rule__Operation__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3796:1: ( rule__Operation__Group__2__Impl rule__Operation__Group__3 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3797:2: rule__Operation__Group__2__Impl rule__Operation__Group__3
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__2__Impl_in_rule__Operation__Group__27581);
+            rule__Operation__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group__3_in_rule__Operation__Group__27584);
+            rule__Operation__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__2"
+
+
+    // $ANTLR start "rule__Operation__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3804:1: rule__Operation__Group__2__Impl : ( ( rule__Operation__NameAssignment_2 ) ) ;
+    public final void rule__Operation__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3808:1: ( ( ( rule__Operation__NameAssignment_2 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3809:1: ( ( rule__Operation__NameAssignment_2 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3809:1: ( ( rule__Operation__NameAssignment_2 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3810:1: ( rule__Operation__NameAssignment_2 )
+            {
+             before(grammarAccess.getOperationAccess().getNameAssignment_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3811:1: ( rule__Operation__NameAssignment_2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3811:2: rule__Operation__NameAssignment_2
+            {
+            pushFollow(FOLLOW_rule__Operation__NameAssignment_2_in_rule__Operation__Group__2__Impl7611);
+            rule__Operation__NameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOperationAccess().getNameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__3"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3821:1: rule__Operation__Group__3 : rule__Operation__Group__3__Impl rule__Operation__Group__4 ;
+    public final void rule__Operation__Group__3() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3825:1: ( rule__Operation__Group__3__Impl rule__Operation__Group__4 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3826:2: rule__Operation__Group__3__Impl rule__Operation__Group__4
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__3__Impl_in_rule__Operation__Group__37641);
+            rule__Operation__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group__4_in_rule__Operation__Group__37644);
+            rule__Operation__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__3"
+
+
+    // $ANTLR start "rule__Operation__Group__3__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3833:1: rule__Operation__Group__3__Impl : ( ( rule__Operation__Group_3__0 )? ) ;
+    public final void rule__Operation__Group__3__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3837:1: ( ( ( rule__Operation__Group_3__0 )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3838:1: ( ( rule__Operation__Group_3__0 )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3838:1: ( ( rule__Operation__Group_3__0 )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3839:1: ( rule__Operation__Group_3__0 )?
+            {
+             before(grammarAccess.getOperationAccess().getGroup_3()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3840:1: ( rule__Operation__Group_3__0 )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( (LA27_0==32) ) {
+                alt27=1;
+            }
+            switch (alt27) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3840:2: rule__Operation__Group_3__0
+                    {
+                    pushFollow(FOLLOW_rule__Operation__Group_3__0_in_rule__Operation__Group__3__Impl7671);
+                    rule__Operation__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getOperationAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3850:1: rule__Operation__Group__4 : rule__Operation__Group__4__Impl rule__Operation__Group__5 ;
+    public final void rule__Operation__Group__4() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3854:1: ( rule__Operation__Group__4__Impl rule__Operation__Group__5 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3855:2: rule__Operation__Group__4__Impl rule__Operation__Group__5
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__4__Impl_in_rule__Operation__Group__47702);
+            rule__Operation__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group__5_in_rule__Operation__Group__47705);
+            rule__Operation__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__4"
+
+
+    // $ANTLR start "rule__Operation__Group__4__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3862:1: rule__Operation__Group__4__Impl : ( 'Target' ) ;
+    public final void rule__Operation__Group__4__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3866:1: ( ( 'Target' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3867:1: ( 'Target' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3867:1: ( 'Target' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3868:1: 'Target'
+            {
+             before(grammarAccess.getOperationAccess().getTargetKeyword_4()); 
+            match(input,30,FOLLOW_30_in_rule__Operation__Group__4__Impl7733); 
+             after(grammarAccess.getOperationAccess().getTargetKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__5"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3881:1: rule__Operation__Group__5 : rule__Operation__Group__5__Impl rule__Operation__Group__6 ;
+    public final void rule__Operation__Group__5() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3885:1: ( rule__Operation__Group__5__Impl rule__Operation__Group__6 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3886:2: rule__Operation__Group__5__Impl rule__Operation__Group__6
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__5__Impl_in_rule__Operation__Group__57764);
+            rule__Operation__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group__6_in_rule__Operation__Group__57767);
+            rule__Operation__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__5"
+
+
+    // $ANTLR start "rule__Operation__Group__5__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3893:1: rule__Operation__Group__5__Impl : ( ( rule__Operation__TargetIdAssignment_5 ) ) ;
+    public final void rule__Operation__Group__5__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3897:1: ( ( ( rule__Operation__TargetIdAssignment_5 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3898:1: ( ( rule__Operation__TargetIdAssignment_5 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3898:1: ( ( rule__Operation__TargetIdAssignment_5 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3899:1: ( rule__Operation__TargetIdAssignment_5 )
+            {
+             before(grammarAccess.getOperationAccess().getTargetIdAssignment_5()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3900:1: ( rule__Operation__TargetIdAssignment_5 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3900:2: rule__Operation__TargetIdAssignment_5
+            {
+            pushFollow(FOLLOW_rule__Operation__TargetIdAssignment_5_in_rule__Operation__Group__5__Impl7794);
+            rule__Operation__TargetIdAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOperationAccess().getTargetIdAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__6"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3910:1: rule__Operation__Group__6 : rule__Operation__Group__6__Impl rule__Operation__Group__7 ;
+    public final void rule__Operation__Group__6() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3914:1: ( rule__Operation__Group__6__Impl rule__Operation__Group__7 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3915:2: rule__Operation__Group__6__Impl rule__Operation__Group__7
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__6__Impl_in_rule__Operation__Group__67824);
+            rule__Operation__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group__7_in_rule__Operation__Group__67827);
+            rule__Operation__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__6"
+
+
+    // $ANTLR start "rule__Operation__Group__6__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3922:1: rule__Operation__Group__6__Impl : ( ( ruleCondition )? ) ;
+    public final void rule__Operation__Group__6__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3926:1: ( ( ( ruleCondition )? ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3927:1: ( ( ruleCondition )? )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3927:1: ( ( ruleCondition )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3928:1: ( ruleCondition )?
+            {
+             before(grammarAccess.getOperationAccess().getConditionParserRuleCall_6()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3929:1: ( ruleCondition )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==33) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3929:3: ruleCondition
+                    {
+                    pushFollow(FOLLOW_ruleCondition_in_rule__Operation__Group__6__Impl7855);
+                    ruleCondition();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getOperationAccess().getConditionParserRuleCall_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__7"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3939:1: rule__Operation__Group__7 : rule__Operation__Group__7__Impl rule__Operation__Group__8 ;
+    public final void rule__Operation__Group__7() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3943:1: ( rule__Operation__Group__7__Impl rule__Operation__Group__8 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3944:2: rule__Operation__Group__7__Impl rule__Operation__Group__8
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__7__Impl_in_rule__Operation__Group__77886);
+            rule__Operation__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group__8_in_rule__Operation__Group__77889);
+            rule__Operation__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__7"
+
+
+    // $ANTLR start "rule__Operation__Group__7__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3951:1: rule__Operation__Group__7__Impl : ( 'Action' ) ;
+    public final void rule__Operation__Group__7__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3955:1: ( ( 'Action' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3956:1: ( 'Action' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3956:1: ( 'Action' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3957:1: 'Action'
+            {
+             before(grammarAccess.getOperationAccess().getActionKeyword_7()); 
+            match(input,31,FOLLOW_31_in_rule__Operation__Group__7__Impl7917); 
+             after(grammarAccess.getOperationAccess().getActionKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__8"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3970:1: rule__Operation__Group__8 : rule__Operation__Group__8__Impl rule__Operation__Group__9 ;
+    public final void rule__Operation__Group__8() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3974:1: ( rule__Operation__Group__8__Impl rule__Operation__Group__9 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3975:2: rule__Operation__Group__8__Impl rule__Operation__Group__9
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__8__Impl_in_rule__Operation__Group__87948);
+            rule__Operation__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group__9_in_rule__Operation__Group__87951);
+            rule__Operation__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__8"
+
+
+    // $ANTLR start "rule__Operation__Group__8__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3982:1: rule__Operation__Group__8__Impl : ( ( rule__Operation__Alternatives_8 ) ) ;
+    public final void rule__Operation__Group__8__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3986:1: ( ( ( rule__Operation__Alternatives_8 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3987:1: ( ( rule__Operation__Alternatives_8 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3987:1: ( ( rule__Operation__Alternatives_8 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3988:1: ( rule__Operation__Alternatives_8 )
+            {
+             before(grammarAccess.getOperationAccess().getAlternatives_8()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3989:1: ( rule__Operation__Alternatives_8 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3989:2: rule__Operation__Alternatives_8
+            {
+            pushFollow(FOLLOW_rule__Operation__Alternatives_8_in_rule__Operation__Group__8__Impl7978);
+            rule__Operation__Alternatives_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOperationAccess().getAlternatives_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group__9"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:3999:1: rule__Operation__Group__9 : rule__Operation__Group__9__Impl ;
+    public final void rule__Operation__Group__9() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4003:1: ( rule__Operation__Group__9__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4004:2: rule__Operation__Group__9__Impl
+            {
+            pushFollow(FOLLOW_rule__Operation__Group__9__Impl_in_rule__Operation__Group__98008);
+            rule__Operation__Group__9__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__9"
+
+
+    // $ANTLR start "rule__Operation__Group__9__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4010:1: rule__Operation__Group__9__Impl : ( ';' ) ;
+    public final void rule__Operation__Group__9__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4014:1: ( ( ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4015:1: ( ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4015:1: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4016:1: ';'
+            {
+             before(grammarAccess.getOperationAccess().getSemicolonKeyword_9()); 
+            match(input,18,FOLLOW_18_in_rule__Operation__Group__9__Impl8036); 
+             after(grammarAccess.getOperationAccess().getSemicolonKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group_3__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4049:1: rule__Operation__Group_3__0 : rule__Operation__Group_3__0__Impl rule__Operation__Group_3__1 ;
+    public final void rule__Operation__Group_3__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4053:1: ( rule__Operation__Group_3__0__Impl rule__Operation__Group_3__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4054:2: rule__Operation__Group_3__0__Impl rule__Operation__Group_3__1
+            {
+            pushFollow(FOLLOW_rule__Operation__Group_3__0__Impl_in_rule__Operation__Group_3__08087);
+            rule__Operation__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group_3__1_in_rule__Operation__Group_3__08090);
+            rule__Operation__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_3__0"
+
+
+    // $ANTLR start "rule__Operation__Group_3__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4061:1: rule__Operation__Group_3__0__Impl : ( 'Priority' ) ;
+    public final void rule__Operation__Group_3__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4065:1: ( ( 'Priority' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4066:1: ( 'Priority' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4066:1: ( 'Priority' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4067:1: 'Priority'
+            {
+             before(grammarAccess.getOperationAccess().getPriorityKeyword_3_0()); 
+            match(input,32,FOLLOW_32_in_rule__Operation__Group_3__0__Impl8118); 
+             after(grammarAccess.getOperationAccess().getPriorityKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group_3__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4080:1: rule__Operation__Group_3__1 : rule__Operation__Group_3__1__Impl ;
+    public final void rule__Operation__Group_3__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4084:1: ( rule__Operation__Group_3__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4085:2: rule__Operation__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Operation__Group_3__1__Impl_in_rule__Operation__Group_3__18149);
+            rule__Operation__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_3__1"
+
+
+    // $ANTLR start "rule__Operation__Group_3__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4091:1: rule__Operation__Group_3__1__Impl : ( ( rule__Operation__ValueAssignment_3_1 ) ) ;
+    public final void rule__Operation__Group_3__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4095:1: ( ( ( rule__Operation__ValueAssignment_3_1 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4096:1: ( ( rule__Operation__ValueAssignment_3_1 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4096:1: ( ( rule__Operation__ValueAssignment_3_1 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4097:1: ( rule__Operation__ValueAssignment_3_1 )
+            {
+             before(grammarAccess.getOperationAccess().getValueAssignment_3_1()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4098:1: ( rule__Operation__ValueAssignment_3_1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4098:2: rule__Operation__ValueAssignment_3_1
+            {
+            pushFollow(FOLLOW_rule__Operation__ValueAssignment_3_1_in_rule__Operation__Group_3__1__Impl8176);
+            rule__Operation__ValueAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOperationAccess().getValueAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group_8_1__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4112:1: rule__Operation__Group_8_1__0 : rule__Operation__Group_8_1__0__Impl rule__Operation__Group_8_1__1 ;
+    public final void rule__Operation__Group_8_1__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4116:1: ( rule__Operation__Group_8_1__0__Impl rule__Operation__Group_8_1__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4117:2: rule__Operation__Group_8_1__0__Impl rule__Operation__Group_8_1__1
+            {
+            pushFollow(FOLLOW_rule__Operation__Group_8_1__0__Impl_in_rule__Operation__Group_8_1__08210);
+            rule__Operation__Group_8_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group_8_1__1_in_rule__Operation__Group_8_1__08213);
+            rule__Operation__Group_8_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_8_1__0"
+
+
+    // $ANTLR start "rule__Operation__Group_8_1__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4124:1: rule__Operation__Group_8_1__0__Impl : ( RULE_NEMOID ) ;
+    public final void rule__Operation__Group_8_1__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4128:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4129:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4129:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4130:1: RULE_NEMOID
+            {
+             before(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_1_0()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Operation__Group_8_1__0__Impl8240); 
+             after(grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_8_1__0__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group_8_1__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4141:1: rule__Operation__Group_8_1__1 : rule__Operation__Group_8_1__1__Impl rule__Operation__Group_8_1__2 ;
+    public final void rule__Operation__Group_8_1__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4145:1: ( rule__Operation__Group_8_1__1__Impl rule__Operation__Group_8_1__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4146:2: rule__Operation__Group_8_1__1__Impl rule__Operation__Group_8_1__2
+            {
+            pushFollow(FOLLOW_rule__Operation__Group_8_1__1__Impl_in_rule__Operation__Group_8_1__18269);
+            rule__Operation__Group_8_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Operation__Group_8_1__2_in_rule__Operation__Group_8_1__18272);
+            rule__Operation__Group_8_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_8_1__1"
+
+
+    // $ANTLR start "rule__Operation__Group_8_1__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4153:1: rule__Operation__Group_8_1__1__Impl : ( ':' ) ;
+    public final void rule__Operation__Group_8_1__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4157:1: ( ( ':' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4158:1: ( ':' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4158:1: ( ':' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4159:1: ':'
+            {
+             before(grammarAccess.getOperationAccess().getColonKeyword_8_1_1()); 
+            match(input,28,FOLLOW_28_in_rule__Operation__Group_8_1__1__Impl8300); 
+             after(grammarAccess.getOperationAccess().getColonKeyword_8_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_8_1__1__Impl"
+
+
+    // $ANTLR start "rule__Operation__Group_8_1__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4172:1: rule__Operation__Group_8_1__2 : rule__Operation__Group_8_1__2__Impl ;
+    public final void rule__Operation__Group_8_1__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4176:1: ( rule__Operation__Group_8_1__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4177:2: rule__Operation__Group_8_1__2__Impl
+            {
+            pushFollow(FOLLOW_rule__Operation__Group_8_1__2__Impl_in_rule__Operation__Group_8_1__28331);
+            rule__Operation__Group_8_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_8_1__2"
+
+
+    // $ANTLR start "rule__Operation__Group_8_1__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4183:1: rule__Operation__Group_8_1__2__Impl : ( ( rule__Operation__TargetNodeAssignment_8_1_2 ) ) ;
+    public final void rule__Operation__Group_8_1__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4187:1: ( ( ( rule__Operation__TargetNodeAssignment_8_1_2 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4188:1: ( ( rule__Operation__TargetNodeAssignment_8_1_2 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4188:1: ( ( rule__Operation__TargetNodeAssignment_8_1_2 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4189:1: ( rule__Operation__TargetNodeAssignment_8_1_2 )
+            {
+             before(grammarAccess.getOperationAccess().getTargetNodeAssignment_8_1_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4190:1: ( rule__Operation__TargetNodeAssignment_8_1_2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4190:2: rule__Operation__TargetNodeAssignment_8_1_2
+            {
+            pushFollow(FOLLOW_rule__Operation__TargetNodeAssignment_8_1_2_in_rule__Operation__Group_8_1__2__Impl8358);
+            rule__Operation__TargetNodeAssignment_8_1_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOperationAccess().getTargetNodeAssignment_8_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__Group_8_1__2__Impl"
+
+
+    // $ANTLR start "rule__Condition__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4206:1: rule__Condition__Group__0 : rule__Condition__Group__0__Impl rule__Condition__Group__1 ;
+    public final void rule__Condition__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4210:1: ( rule__Condition__Group__0__Impl rule__Condition__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4211:2: rule__Condition__Group__0__Impl rule__Condition__Group__1
+            {
+            pushFollow(FOLLOW_rule__Condition__Group__0__Impl_in_rule__Condition__Group__08394);
+            rule__Condition__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Condition__Group__1_in_rule__Condition__Group__08397);
+            rule__Condition__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group__0"
+
+
+    // $ANTLR start "rule__Condition__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4218:1: rule__Condition__Group__0__Impl : ( 'Condition' ) ;
+    public final void rule__Condition__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4222:1: ( ( 'Condition' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4223:1: ( 'Condition' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4223:1: ( 'Condition' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4224:1: 'Condition'
+            {
+             before(grammarAccess.getConditionAccess().getConditionKeyword_0()); 
+            match(input,33,FOLLOW_33_in_rule__Condition__Group__0__Impl8425); 
+             after(grammarAccess.getConditionAccess().getConditionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Condition__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4237:1: rule__Condition__Group__1 : rule__Condition__Group__1__Impl rule__Condition__Group__2 ;
+    public final void rule__Condition__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4241:1: ( rule__Condition__Group__1__Impl rule__Condition__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4242:2: rule__Condition__Group__1__Impl rule__Condition__Group__2
+            {
+            pushFollow(FOLLOW_rule__Condition__Group__1__Impl_in_rule__Condition__Group__18456);
+            rule__Condition__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Condition__Group__2_in_rule__Condition__Group__18459);
+            rule__Condition__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group__1"
+
+
+    // $ANTLR start "rule__Condition__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4249:1: rule__Condition__Group__1__Impl : ( RULE_STRING ) ;
+    public final void rule__Condition__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4253:1: ( ( RULE_STRING ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4254:1: ( RULE_STRING )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4254:1: ( RULE_STRING )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4255:1: RULE_STRING
+            {
+             before(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_1()); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Condition__Group__1__Impl8486); 
+             after(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Condition__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4266:1: rule__Condition__Group__2 : rule__Condition__Group__2__Impl ;
+    public final void rule__Condition__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4270:1: ( rule__Condition__Group__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4271:2: rule__Condition__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__Condition__Group__2__Impl_in_rule__Condition__Group__28515);
+            rule__Condition__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group__2"
+
+
+    // $ANTLR start "rule__Condition__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4277:1: rule__Condition__Group__2__Impl : ( ( rule__Condition__Group_2__0 )* ) ;
+    public final void rule__Condition__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4281:1: ( ( ( rule__Condition__Group_2__0 )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4282:1: ( ( rule__Condition__Group_2__0 )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4282:1: ( ( rule__Condition__Group_2__0 )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4283:1: ( rule__Condition__Group_2__0 )*
+            {
+             before(grammarAccess.getConditionAccess().getGroup_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4284:1: ( rule__Condition__Group_2__0 )*
+            loop29:
+            do {
+                int alt29=2;
+                int LA29_0 = input.LA(1);
+
+                if ( (LA29_0==19) ) {
+                    alt29=1;
+                }
+
+
+                switch (alt29) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4284:2: rule__Condition__Group_2__0
+                   {
+                   pushFollow(FOLLOW_rule__Condition__Group_2__0_in_rule__Condition__Group__2__Impl8542);
+                   rule__Condition__Group_2__0();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop29;
+                }
+            } while (true);
+
+             after(grammarAccess.getConditionAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Condition__Group_2__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4300:1: rule__Condition__Group_2__0 : rule__Condition__Group_2__0__Impl rule__Condition__Group_2__1 ;
+    public final void rule__Condition__Group_2__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4304:1: ( rule__Condition__Group_2__0__Impl rule__Condition__Group_2__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4305:2: rule__Condition__Group_2__0__Impl rule__Condition__Group_2__1
+            {
+            pushFollow(FOLLOW_rule__Condition__Group_2__0__Impl_in_rule__Condition__Group_2__08579);
+            rule__Condition__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Condition__Group_2__1_in_rule__Condition__Group_2__08582);
+            rule__Condition__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group_2__0"
+
+
+    // $ANTLR start "rule__Condition__Group_2__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4312:1: rule__Condition__Group_2__0__Impl : ( ',' ) ;
+    public final void rule__Condition__Group_2__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4316:1: ( ( ',' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4317:1: ( ',' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4317:1: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4318:1: ','
+            {
+             before(grammarAccess.getConditionAccess().getCommaKeyword_2_0()); 
+            match(input,19,FOLLOW_19_in_rule__Condition__Group_2__0__Impl8610); 
+             after(grammarAccess.getConditionAccess().getCommaKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__Condition__Group_2__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4331:1: rule__Condition__Group_2__1 : rule__Condition__Group_2__1__Impl ;
+    public final void rule__Condition__Group_2__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4335:1: ( rule__Condition__Group_2__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4336:2: rule__Condition__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Condition__Group_2__1__Impl_in_rule__Condition__Group_2__18641);
+            rule__Condition__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group_2__1"
+
+
+    // $ANTLR start "rule__Condition__Group_2__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4342:1: rule__Condition__Group_2__1__Impl : ( RULE_STRING ) ;
+    public final void rule__Condition__Group_2__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4346:1: ( ( RULE_STRING ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4347:1: ( RULE_STRING )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4347:1: ( RULE_STRING )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4348:1: RULE_STRING
+            {
+             before(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_2_1()); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Condition__Group_2__1__Impl8668); 
+             after(grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Condition__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__Property__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4363:1: rule__Property__Group__0 : rule__Property__Group__0__Impl rule__Property__Group__1 ;
+    public final void rule__Property__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4367:1: ( rule__Property__Group__0__Impl rule__Property__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4368:2: rule__Property__Group__0__Impl rule__Property__Group__1
+            {
+            pushFollow(FOLLOW_rule__Property__Group__0__Impl_in_rule__Property__Group__08701);
+            rule__Property__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Property__Group__1_in_rule__Property__Group__08704);
+            rule__Property__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__0"
+
+
+    // $ANTLR start "rule__Property__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4375:1: rule__Property__Group__0__Impl : ( 'Property ' ) ;
+    public final void rule__Property__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4379:1: ( ( 'Property ' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4380:1: ( 'Property ' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4380:1: ( 'Property ' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4381:1: 'Property '
+            {
+             before(grammarAccess.getPropertyAccess().getPropertyKeyword_0()); 
+            match(input,34,FOLLOW_34_in_rule__Property__Group__0__Impl8732); 
+             after(grammarAccess.getPropertyAccess().getPropertyKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Property__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4394:1: rule__Property__Group__1 : rule__Property__Group__1__Impl rule__Property__Group__2 ;
+    public final void rule__Property__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4398:1: ( rule__Property__Group__1__Impl rule__Property__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4399:2: rule__Property__Group__1__Impl rule__Property__Group__2
+            {
+            pushFollow(FOLLOW_rule__Property__Group__1__Impl_in_rule__Property__Group__18763);
+            rule__Property__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Property__Group__2_in_rule__Property__Group__18766);
+            rule__Property__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__1"
+
+
+    // $ANTLR start "rule__Property__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4406:1: rule__Property__Group__1__Impl : ( ruleOneProperty ) ;
+    public final void rule__Property__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4410:1: ( ( ruleOneProperty ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4411:1: ( ruleOneProperty )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4411:1: ( ruleOneProperty )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4412:1: ruleOneProperty
+            {
+             before(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_1()); 
+            pushFollow(FOLLOW_ruleOneProperty_in_rule__Property__Group__1__Impl8793);
+            ruleOneProperty();
+
+            state._fsp--;
+
+             after(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Property__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4423:1: rule__Property__Group__2 : rule__Property__Group__2__Impl ;
+    public final void rule__Property__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4427:1: ( rule__Property__Group__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4428:2: rule__Property__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__Property__Group__2__Impl_in_rule__Property__Group__28822);
+            rule__Property__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__2"
+
+
+    // $ANTLR start "rule__Property__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4434:1: rule__Property__Group__2__Impl : ( ( rule__Property__Group_2__0 )* ) ;
+    public final void rule__Property__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4438:1: ( ( ( rule__Property__Group_2__0 )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4439:1: ( ( rule__Property__Group_2__0 )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4439:1: ( ( rule__Property__Group_2__0 )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4440:1: ( rule__Property__Group_2__0 )*
+            {
+             before(grammarAccess.getPropertyAccess().getGroup_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4441:1: ( rule__Property__Group_2__0 )*
+            loop30:
+            do {
+                int alt30=2;
+                int LA30_0 = input.LA(1);
+
+                if ( (LA30_0==19) ) {
+                    alt30=1;
+                }
+
+
+                switch (alt30) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4441:2: rule__Property__Group_2__0
+                   {
+                   pushFollow(FOLLOW_rule__Property__Group_2__0_in_rule__Property__Group__2__Impl8849);
+                   rule__Property__Group_2__0();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop30;
+                }
+            } while (true);
+
+             after(grammarAccess.getPropertyAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Property__Group_2__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4457:1: rule__Property__Group_2__0 : rule__Property__Group_2__0__Impl rule__Property__Group_2__1 ;
+    public final void rule__Property__Group_2__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4461:1: ( rule__Property__Group_2__0__Impl rule__Property__Group_2__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4462:2: rule__Property__Group_2__0__Impl rule__Property__Group_2__1
+            {
+            pushFollow(FOLLOW_rule__Property__Group_2__0__Impl_in_rule__Property__Group_2__08886);
+            rule__Property__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__Property__Group_2__1_in_rule__Property__Group_2__08889);
+            rule__Property__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group_2__0"
+
+
+    // $ANTLR start "rule__Property__Group_2__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4469:1: rule__Property__Group_2__0__Impl : ( ',' ) ;
+    public final void rule__Property__Group_2__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4473:1: ( ( ',' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4474:1: ( ',' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4474:1: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4475:1: ','
+            {
+             before(grammarAccess.getPropertyAccess().getCommaKeyword_2_0()); 
+            match(input,19,FOLLOW_19_in_rule__Property__Group_2__0__Impl8917); 
+             after(grammarAccess.getPropertyAccess().getCommaKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__Property__Group_2__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4488:1: rule__Property__Group_2__1 : rule__Property__Group_2__1__Impl ;
+    public final void rule__Property__Group_2__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4492:1: ( rule__Property__Group_2__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4493:2: rule__Property__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Property__Group_2__1__Impl_in_rule__Property__Group_2__18948);
+            rule__Property__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group_2__1"
+
+
+    // $ANTLR start "rule__Property__Group_2__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4499:1: rule__Property__Group_2__1__Impl : ( ruleOneProperty ) ;
+    public final void rule__Property__Group_2__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4503:1: ( ( ruleOneProperty ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4504:1: ( ruleOneProperty )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4504:1: ( ruleOneProperty )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4505:1: ruleOneProperty
+            {
+             before(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_2_1()); 
+            pushFollow(FOLLOW_ruleOneProperty_in_rule__Property__Group_2__1__Impl8975);
+            ruleOneProperty();
+
+            state._fsp--;
+
+             after(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__OneProperty__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4520:1: rule__OneProperty__Group__0 : rule__OneProperty__Group__0__Impl rule__OneProperty__Group__1 ;
+    public final void rule__OneProperty__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4524:1: ( rule__OneProperty__Group__0__Impl rule__OneProperty__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4525:2: rule__OneProperty__Group__0__Impl rule__OneProperty__Group__1
+            {
+            pushFollow(FOLLOW_rule__OneProperty__Group__0__Impl_in_rule__OneProperty__Group__09008);
+            rule__OneProperty__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__OneProperty__Group__1_in_rule__OneProperty__Group__09011);
+            rule__OneProperty__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneProperty__Group__0"
+
+
+    // $ANTLR start "rule__OneProperty__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4532:1: rule__OneProperty__Group__0__Impl : ( RULE_NEMOID ) ;
+    public final void rule__OneProperty__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4536:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4537:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4537:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4538:1: RULE_NEMOID
+            {
+             before(grammarAccess.getOnePropertyAccess().getNemoIdTerminalRuleCall_0()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__OneProperty__Group__0__Impl9038); 
+             after(grammarAccess.getOnePropertyAccess().getNemoIdTerminalRuleCall_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneProperty__Group__0__Impl"
+
+
+    // $ANTLR start "rule__OneProperty__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4549:1: rule__OneProperty__Group__1 : rule__OneProperty__Group__1__Impl rule__OneProperty__Group__2 ;
+    public final void rule__OneProperty__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4553:1: ( rule__OneProperty__Group__1__Impl rule__OneProperty__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4554:2: rule__OneProperty__Group__1__Impl rule__OneProperty__Group__2
+            {
+            pushFollow(FOLLOW_rule__OneProperty__Group__1__Impl_in_rule__OneProperty__Group__19067);
+            rule__OneProperty__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__OneProperty__Group__2_in_rule__OneProperty__Group__19070);
+            rule__OneProperty__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneProperty__Group__1"
+
+
+    // $ANTLR start "rule__OneProperty__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4561:1: rule__OneProperty__Group__1__Impl : ( ':' ) ;
+    public final void rule__OneProperty__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4565:1: ( ( ':' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4566:1: ( ':' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4566:1: ( ':' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4567:1: ':'
+            {
+             before(grammarAccess.getOnePropertyAccess().getColonKeyword_1()); 
+            match(input,28,FOLLOW_28_in_rule__OneProperty__Group__1__Impl9098); 
+             after(grammarAccess.getOnePropertyAccess().getColonKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneProperty__Group__1__Impl"
+
+
+    // $ANTLR start "rule__OneProperty__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4580:1: rule__OneProperty__Group__2 : rule__OneProperty__Group__2__Impl ;
+    public final void rule__OneProperty__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4584:1: ( rule__OneProperty__Group__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4585:2: rule__OneProperty__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__OneProperty__Group__2__Impl_in_rule__OneProperty__Group__29129);
+            rule__OneProperty__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneProperty__Group__2"
+
+
+    // $ANTLR start "rule__OneProperty__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4591:1: rule__OneProperty__Group__2__Impl : ( ( rule__OneProperty__Alternatives_2 ) ) ;
+    public final void rule__OneProperty__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4595:1: ( ( ( rule__OneProperty__Alternatives_2 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4596:1: ( ( rule__OneProperty__Alternatives_2 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4596:1: ( ( rule__OneProperty__Alternatives_2 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4597:1: ( rule__OneProperty__Alternatives_2 )
+            {
+             before(grammarAccess.getOnePropertyAccess().getAlternatives_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4598:1: ( rule__OneProperty__Alternatives_2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4598:2: rule__OneProperty__Alternatives_2
+            {
+            pushFollow(FOLLOW_rule__OneProperty__Alternatives_2_in_rule__OneProperty__Group__2__Impl9156);
+            rule__OneProperty__Alternatives_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOnePropertyAccess().getAlternatives_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneProperty__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ModelProperty__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4614:1: rule__ModelProperty__Group__0 : rule__ModelProperty__Group__0__Impl rule__ModelProperty__Group__1 ;
+    public final void rule__ModelProperty__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4618:1: ( rule__ModelProperty__Group__0__Impl rule__ModelProperty__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4619:2: rule__ModelProperty__Group__0__Impl rule__ModelProperty__Group__1
+            {
+            pushFollow(FOLLOW_rule__ModelProperty__Group__0__Impl_in_rule__ModelProperty__Group__09192);
+            rule__ModelProperty__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ModelProperty__Group__1_in_rule__ModelProperty__Group__09195);
+            rule__ModelProperty__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group__0"
+
+
+    // $ANTLR start "rule__ModelProperty__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4626:1: rule__ModelProperty__Group__0__Impl : ( 'Property' ) ;
+    public final void rule__ModelProperty__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4630:1: ( ( 'Property' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4631:1: ( 'Property' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4631:1: ( 'Property' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4632:1: 'Property'
+            {
+             before(grammarAccess.getModelPropertyAccess().getPropertyKeyword_0()); 
+            match(input,35,FOLLOW_35_in_rule__ModelProperty__Group__0__Impl9223); 
+             after(grammarAccess.getModelPropertyAccess().getPropertyKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ModelProperty__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4645:1: rule__ModelProperty__Group__1 : rule__ModelProperty__Group__1__Impl rule__ModelProperty__Group__2 ;
+    public final void rule__ModelProperty__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4649:1: ( rule__ModelProperty__Group__1__Impl rule__ModelProperty__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4650:2: rule__ModelProperty__Group__1__Impl rule__ModelProperty__Group__2
+            {
+            pushFollow(FOLLOW_rule__ModelProperty__Group__1__Impl_in_rule__ModelProperty__Group__19254);
+            rule__ModelProperty__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ModelProperty__Group__2_in_rule__ModelProperty__Group__19257);
+            rule__ModelProperty__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group__1"
+
+
+    // $ANTLR start "rule__ModelProperty__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4657:1: rule__ModelProperty__Group__1__Impl : ( ruleOneModelProperty ) ;
+    public final void rule__ModelProperty__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4661:1: ( ( ruleOneModelProperty ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4662:1: ( ruleOneModelProperty )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4662:1: ( ruleOneModelProperty )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4663:1: ruleOneModelProperty
+            {
+             before(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_1()); 
+            pushFollow(FOLLOW_ruleOneModelProperty_in_rule__ModelProperty__Group__1__Impl9284);
+            ruleOneModelProperty();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ModelProperty__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4674:1: rule__ModelProperty__Group__2 : rule__ModelProperty__Group__2__Impl ;
+    public final void rule__ModelProperty__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4678:1: ( rule__ModelProperty__Group__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4679:2: rule__ModelProperty__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__ModelProperty__Group__2__Impl_in_rule__ModelProperty__Group__29313);
+            rule__ModelProperty__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group__2"
+
+
+    // $ANTLR start "rule__ModelProperty__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4685:1: rule__ModelProperty__Group__2__Impl : ( ( rule__ModelProperty__Group_2__0 )* ) ;
+    public final void rule__ModelProperty__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4689:1: ( ( ( rule__ModelProperty__Group_2__0 )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4690:1: ( ( rule__ModelProperty__Group_2__0 )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4690:1: ( ( rule__ModelProperty__Group_2__0 )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4691:1: ( rule__ModelProperty__Group_2__0 )*
+            {
+             before(grammarAccess.getModelPropertyAccess().getGroup_2()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4692:1: ( rule__ModelProperty__Group_2__0 )*
+            loop31:
+            do {
+                int alt31=2;
+                int LA31_0 = input.LA(1);
+
+                if ( (LA31_0==19) ) {
+                    alt31=1;
+                }
+
+
+                switch (alt31) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4692:2: rule__ModelProperty__Group_2__0
+                   {
+                   pushFollow(FOLLOW_rule__ModelProperty__Group_2__0_in_rule__ModelProperty__Group__2__Impl9340);
+                   rule__ModelProperty__Group_2__0();
+
+                   state._fsp--;
+
+
+                   }
+                   break;
+
+               default :
+                   break loop31;
+                }
+            } while (true);
+
+             after(grammarAccess.getModelPropertyAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ModelProperty__Group_2__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4708:1: rule__ModelProperty__Group_2__0 : rule__ModelProperty__Group_2__0__Impl rule__ModelProperty__Group_2__1 ;
+    public final void rule__ModelProperty__Group_2__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4712:1: ( rule__ModelProperty__Group_2__0__Impl rule__ModelProperty__Group_2__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4713:2: rule__ModelProperty__Group_2__0__Impl rule__ModelProperty__Group_2__1
+            {
+            pushFollow(FOLLOW_rule__ModelProperty__Group_2__0__Impl_in_rule__ModelProperty__Group_2__09377);
+            rule__ModelProperty__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__ModelProperty__Group_2__1_in_rule__ModelProperty__Group_2__09380);
+            rule__ModelProperty__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group_2__0"
+
+
+    // $ANTLR start "rule__ModelProperty__Group_2__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4720:1: rule__ModelProperty__Group_2__0__Impl : ( ',' ) ;
+    public final void rule__ModelProperty__Group_2__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4724:1: ( ( ',' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4725:1: ( ',' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4725:1: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4726:1: ','
+            {
+             before(grammarAccess.getModelPropertyAccess().getCommaKeyword_2_0()); 
+            match(input,19,FOLLOW_19_in_rule__ModelProperty__Group_2__0__Impl9408); 
+             after(grammarAccess.getModelPropertyAccess().getCommaKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__ModelProperty__Group_2__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4739:1: rule__ModelProperty__Group_2__1 : rule__ModelProperty__Group_2__1__Impl ;
+    public final void rule__ModelProperty__Group_2__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4743:1: ( rule__ModelProperty__Group_2__1__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4744:2: rule__ModelProperty__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__ModelProperty__Group_2__1__Impl_in_rule__ModelProperty__Group_2__19439);
+            rule__ModelProperty__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group_2__1"
+
+
+    // $ANTLR start "rule__ModelProperty__Group_2__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4750:1: rule__ModelProperty__Group_2__1__Impl : ( ruleOneModelProperty ) ;
+    public final void rule__ModelProperty__Group_2__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4754:1: ( ( ruleOneModelProperty ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4755:1: ( ruleOneModelProperty )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4755:1: ( ruleOneModelProperty )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4756:1: ruleOneModelProperty
+            {
+             before(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_2_1()); 
+            pushFollow(FOLLOW_ruleOneModelProperty_in_rule__ModelProperty__Group_2__1__Impl9466);
+            ruleOneModelProperty();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelProperty__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__OneModelProperty__Group__0"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4771:1: rule__OneModelProperty__Group__0 : rule__OneModelProperty__Group__0__Impl rule__OneModelProperty__Group__1 ;
+    public final void rule__OneModelProperty__Group__0() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4775:1: ( rule__OneModelProperty__Group__0__Impl rule__OneModelProperty__Group__1 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4776:2: rule__OneModelProperty__Group__0__Impl rule__OneModelProperty__Group__1
+            {
+            pushFollow(FOLLOW_rule__OneModelProperty__Group__0__Impl_in_rule__OneModelProperty__Group__09499);
+            rule__OneModelProperty__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__OneModelProperty__Group__1_in_rule__OneModelProperty__Group__09502);
+            rule__OneModelProperty__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneModelProperty__Group__0"
+
+
+    // $ANTLR start "rule__OneModelProperty__Group__0__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4783:1: rule__OneModelProperty__Group__0__Impl : ( ( rule__OneModelProperty__Alternatives_0 ) ) ;
+    public final void rule__OneModelProperty__Group__0__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4787:1: ( ( ( rule__OneModelProperty__Alternatives_0 ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4788:1: ( ( rule__OneModelProperty__Alternatives_0 ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4788:1: ( ( rule__OneModelProperty__Alternatives_0 ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4789:1: ( rule__OneModelProperty__Alternatives_0 )
+            {
+             before(grammarAccess.getOneModelPropertyAccess().getAlternatives_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4790:1: ( rule__OneModelProperty__Alternatives_0 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4790:2: rule__OneModelProperty__Alternatives_0
+            {
+            pushFollow(FOLLOW_rule__OneModelProperty__Alternatives_0_in_rule__OneModelProperty__Group__0__Impl9529);
+            rule__OneModelProperty__Alternatives_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOneModelPropertyAccess().getAlternatives_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneModelProperty__Group__0__Impl"
+
+
+    // $ANTLR start "rule__OneModelProperty__Group__1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4800:1: rule__OneModelProperty__Group__1 : rule__OneModelProperty__Group__1__Impl rule__OneModelProperty__Group__2 ;
+    public final void rule__OneModelProperty__Group__1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4804:1: ( rule__OneModelProperty__Group__1__Impl rule__OneModelProperty__Group__2 )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4805:2: rule__OneModelProperty__Group__1__Impl rule__OneModelProperty__Group__2
+            {
+            pushFollow(FOLLOW_rule__OneModelProperty__Group__1__Impl_in_rule__OneModelProperty__Group__19559);
+            rule__OneModelProperty__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_rule__OneModelProperty__Group__2_in_rule__OneModelProperty__Group__19562);
+            rule__OneModelProperty__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneModelProperty__Group__1"
+
+
+    // $ANTLR start "rule__OneModelProperty__Group__1__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4812:1: rule__OneModelProperty__Group__1__Impl : ( ':' ) ;
+    public final void rule__OneModelProperty__Group__1__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4816:1: ( ( ':' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4817:1: ( ':' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4817:1: ( ':' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4818:1: ':'
+            {
+             before(grammarAccess.getOneModelPropertyAccess().getColonKeyword_1()); 
+            match(input,28,FOLLOW_28_in_rule__OneModelProperty__Group__1__Impl9590); 
+             after(grammarAccess.getOneModelPropertyAccess().getColonKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneModelProperty__Group__1__Impl"
+
+
+    // $ANTLR start "rule__OneModelProperty__Group__2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4831:1: rule__OneModelProperty__Group__2 : rule__OneModelProperty__Group__2__Impl ;
+    public final void rule__OneModelProperty__Group__2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4835:1: ( rule__OneModelProperty__Group__2__Impl )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4836:2: rule__OneModelProperty__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__OneModelProperty__Group__2__Impl_in_rule__OneModelProperty__Group__29621);
+            rule__OneModelProperty__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneModelProperty__Group__2"
+
+
+    // $ANTLR start "rule__OneModelProperty__Group__2__Impl"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4842:1: rule__OneModelProperty__Group__2__Impl : ( RULE_NEMOID ) ;
+    public final void rule__OneModelProperty__Group__2__Impl() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4846:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4847:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4847:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4848:1: RULE_NEMOID
+            {
+             before(grammarAccess.getOneModelPropertyAccess().getNemoIdTerminalRuleCall_2()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__OneModelProperty__Group__2__Impl9648); 
+             after(grammarAccess.getOneModelPropertyAccess().getNemoIdTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OneModelProperty__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Model__SentencesAssignment"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4866:1: rule__Model__SentencesAssignment : ( ruleSentence ) ;
+    public final void rule__Model__SentencesAssignment() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4870:1: ( ( ruleSentence ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4871:1: ( ruleSentence )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4871:1: ( ruleSentence )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4872:1: ruleSentence
+            {
+             before(grammarAccess.getModelAccess().getSentencesSentenceParserRuleCall_0()); 
+            pushFollow(FOLLOW_ruleSentence_in_rule__Model__SentencesAssignment9688);
+            ruleSentence();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelAccess().getSentencesSentenceParserRuleCall_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Model__SentencesAssignment"
+
+
+    // $ANTLR start "rule__Node__NameAssignment_2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4881:1: rule__Node__NameAssignment_2 : ( RULE_NEMOID ) ;
+    public final void rule__Node__NameAssignment_2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4885:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4886:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4886:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4887:1: RULE_NEMOID
+            {
+             before(grammarAccess.getNodeAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Node__NameAssignment_29719); 
+             after(grammarAccess.getNodeAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__NameAssignment_2"
+
+
+    // $ANTLR start "rule__Node__NodesAssignment_4_1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4896:1: rule__Node__NodesAssignment_4_1 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__Node__NodesAssignment_4_1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4900:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4901:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4901:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4902:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_1_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4903:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4904:1: RULE_NEMOID
+            {
+             before(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Node__NodesAssignment_4_19754); 
+             after(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__NodesAssignment_4_1"
+
+
+    // $ANTLR start "rule__Node__NodesAssignment_4_2_1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4915:1: rule__Node__NodesAssignment_4_2_1 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__Node__NodesAssignment_4_2_1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4919:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4920:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4920:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4921:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_2_1_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4922:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4923:1: RULE_NEMOID
+            {
+             before(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Node__NodesAssignment_4_2_19793); 
+             after(grammarAccess.getNodeAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__NodesAssignment_4_2_1"
+
+
+    // $ANTLR start "rule__NodeOperating__NodenameAssignment_2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4935:1: rule__NodeOperating__NodenameAssignment_2 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__NodeOperating__NodenameAssignment_2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4939:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4940:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4940:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4941:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodenameNodeCrossReference_2_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4942:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4943:1: RULE_NEMOID
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodenameNodeNemoIdTerminalRuleCall_2_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__NodeOperating__NodenameAssignment_29833); 
+             after(grammarAccess.getNodeOperatingAccess().getNodenameNodeNemoIdTerminalRuleCall_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getNodenameNodeCrossReference_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__NodenameAssignment_2"
+
+
+    // $ANTLR start "rule__NodeOperating__NodesAssignment_4_1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4954:1: rule__NodeOperating__NodesAssignment_4_1 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__NodeOperating__NodesAssignment_4_1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4958:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4959:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4959:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4960:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_1_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4961:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4962:1: RULE_NEMOID
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__NodeOperating__NodesAssignment_4_19872); 
+             after(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__NodesAssignment_4_1"
+
+
+    // $ANTLR start "rule__NodeOperating__NodesAssignment_4_2_1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4973:1: rule__NodeOperating__NodesAssignment_4_2_1 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__NodeOperating__NodesAssignment_4_2_1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4977:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4978:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4978:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4979:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_2_1_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4980:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4981:1: RULE_NEMOID
+            {
+             before(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__NodeOperating__NodesAssignment_4_2_19911); 
+             after(grammarAccess.getNodeOperatingAccess().getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NodeOperating__NodesAssignment_4_2_1"
+
+
+    // $ANTLR start "rule__Connection__NameAssignment_2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4992:1: rule__Connection__NameAssignment_2 : ( RULE_NEMOID ) ;
+    public final void rule__Connection__NameAssignment_2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4996:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4997:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4997:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:4998:1: RULE_NEMOID
+            {
+             before(grammarAccess.getConnectionAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Connection__NameAssignment_29946); 
+             after(grammarAccess.getConnectionAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__NameAssignment_2"
+
+
+    // $ANTLR start "rule__Connection__EndnodeAssignment_5_1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5007:1: rule__Connection__EndnodeAssignment_5_1 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__Connection__EndnodeAssignment_5_1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5011:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5012:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5012:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5013:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_1_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5014:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5015:1: RULE_NEMOID
+            {
+             before(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_1_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Connection__EndnodeAssignment_5_19981); 
+             after(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__EndnodeAssignment_5_1"
+
+
+    // $ANTLR start "rule__Connection__EndnodeAssignment_5_2_1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5026:1: rule__Connection__EndnodeAssignment_5_2_1 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__Connection__EndnodeAssignment_5_2_1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5030:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5031:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5031:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5032:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_2_1_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5033:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5034:1: RULE_NEMOID
+            {
+             before(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_2_1_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Connection__EndnodeAssignment_5_2_110020); 
+             after(grammarAccess.getConnectionAccess().getEndnodeNodeNemoIdTerminalRuleCall_5_2_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Connection__EndnodeAssignment_5_2_1"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__ConnectionnameAssignment_2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5045:1: rule__ConnectionUpdate__ConnectionnameAssignment_2 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__ConnectionUpdate__ConnectionnameAssignment_2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5049:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5050:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5050:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5051:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionCrossReference_2_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5052:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5053:1: RULE_NEMOID
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionNemoIdTerminalRuleCall_2_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__ConnectionUpdate__ConnectionnameAssignment_210059); 
+             after(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionNemoIdTerminalRuleCall_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionCrossReference_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__ConnectionnameAssignment_2"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__EndnodeAssignment_4_1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5064:1: rule__ConnectionUpdate__EndnodeAssignment_4_1 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__ConnectionUpdate__EndnodeAssignment_4_1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5068:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5069:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5069:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5070:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_1_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5071:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5072:1: RULE_NEMOID
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_1_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__ConnectionUpdate__EndnodeAssignment_4_110098); 
+             after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__EndnodeAssignment_4_1"
+
+
+    // $ANTLR start "rule__ConnectionUpdate__EndnodeAssignment_4_2_1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5083:1: rule__ConnectionUpdate__EndnodeAssignment_4_2_1 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__ConnectionUpdate__EndnodeAssignment_4_2_1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5087:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5088:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5088:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5089:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_2_1_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5090:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5091:1: RULE_NEMOID
+            {
+             before(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_2_1_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__ConnectionUpdate__EndnodeAssignment_4_2_110137); 
+             after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeNemoIdTerminalRuleCall_4_2_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConnectionUpdate__EndnodeAssignment_4_2_1"
+
+
+    // $ANTLR start "rule__Flow__NameAssignment_2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5102:1: rule__Flow__NameAssignment_2 : ( RULE_NEMOID ) ;
+    public final void rule__Flow__NameAssignment_2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5106:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5107:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5107:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5108:1: RULE_NEMOID
+            {
+             before(grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Flow__NameAssignment_210172); 
+             after(grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__NameAssignment_2"
+
+
+    // $ANTLR start "rule__FlowUpdate__FlowIdAssignment_2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5117:1: rule__FlowUpdate__FlowIdAssignment_2 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__FlowUpdate__FlowIdAssignment_2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5121:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5122:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5122:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5123:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getFlowUpdateAccess().getFlowIdFlowCrossReference_2_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5124:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5125:1: RULE_NEMOID
+            {
+             before(grammarAccess.getFlowUpdateAccess().getFlowIdFlowNemoIdTerminalRuleCall_2_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__FlowUpdate__FlowIdAssignment_210207); 
+             after(grammarAccess.getFlowUpdateAccess().getFlowIdFlowNemoIdTerminalRuleCall_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getFlowUpdateAccess().getFlowIdFlowCrossReference_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowUpdate__FlowIdAssignment_2"
+
+
+    // $ANTLR start "rule__Operation__NameAssignment_2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5136:1: rule__Operation__NameAssignment_2 : ( RULE_NEMOID ) ;
+    public final void rule__Operation__NameAssignment_2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5140:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5141:1: ( RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5141:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5142:1: RULE_NEMOID
+            {
+             before(grammarAccess.getOperationAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Operation__NameAssignment_210242); 
+             after(grammarAccess.getOperationAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__NameAssignment_2"
+
+
+    // $ANTLR start "rule__Operation__ValueAssignment_3_1"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5151:1: rule__Operation__ValueAssignment_3_1 : ( RULE_INT ) ;
+    public final void rule__Operation__ValueAssignment_3_1() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5155:1: ( ( RULE_INT ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5156:1: ( RULE_INT )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5156:1: ( RULE_INT )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5157:1: RULE_INT
+            {
+             before(grammarAccess.getOperationAccess().getValueINTTerminalRuleCall_3_1_0()); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Operation__ValueAssignment_3_110273); 
+             after(grammarAccess.getOperationAccess().getValueINTTerminalRuleCall_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__ValueAssignment_3_1"
+
+
+    // $ANTLR start "rule__Operation__TargetIdAssignment_5"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5166:1: rule__Operation__TargetIdAssignment_5 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__Operation__TargetIdAssignment_5() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5170:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5171:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5171:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5172:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getOperationAccess().getTargetIdFlowCrossReference_5_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5173:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5174:1: RULE_NEMOID
+            {
+             before(grammarAccess.getOperationAccess().getTargetIdFlowNemoIdTerminalRuleCall_5_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Operation__TargetIdAssignment_510308); 
+             after(grammarAccess.getOperationAccess().getTargetIdFlowNemoIdTerminalRuleCall_5_0_1()); 
+
+            }
+
+             after(grammarAccess.getOperationAccess().getTargetIdFlowCrossReference_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__TargetIdAssignment_5"
+
+
+    // $ANTLR start "rule__Operation__TargetNodeAssignment_8_1_2"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5185:1: rule__Operation__TargetNodeAssignment_8_1_2 : ( ( RULE_NEMOID ) ) ;
+    public final void rule__Operation__TargetNodeAssignment_8_1_2() throws RecognitionException {
+
+                       int stackSize = keepStackSize();
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5189:1: ( ( ( RULE_NEMOID ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5190:1: ( ( RULE_NEMOID ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5190:1: ( ( RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5191:1: ( RULE_NEMOID )
+            {
+             before(grammarAccess.getOperationAccess().getTargetNodeNodeCrossReference_8_1_2_0()); 
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5192:1: ( RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/antlr/internal/InternalEditor.g:5193:1: RULE_NEMOID
+            {
+             before(grammarAccess.getOperationAccess().getTargetNodeNodeNemoIdTerminalRuleCall_8_1_2_0_1()); 
+            match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_rule__Operation__TargetNodeAssignment_8_1_210347); 
+             after(grammarAccess.getOperationAccess().getTargetNodeNodeNemoIdTerminalRuleCall_8_1_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getOperationAccess().getTargetNodeNodeCrossReference_8_1_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+               restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Operation__TargetNodeAssignment_8_1_2"
+
+    // Delegated rules
+
+
+    protected DFA2 dfa2 = new DFA2(this);
+    static final String DFA2_eotS =
+        "\15\uffff";
+    static final String DFA2_eofS =
+        "\15\uffff";
+    static final String DFA2_minS =
+        "\1\15\1\uffff\1\5\1\uffff\2\25\7\uffff";
+    static final String DFA2_maxS =
+        "\1\21\1\uffff\1\35\1\uffff\2\32\7\uffff";
+    static final String DFA2_acceptS =
+        "\1\uffff\1\1\1\uffff\1\3\2\uffff\1\5\1\11\1\7\1\2\1\4\1\10\1\6";
+    static final String DFA2_specialS =
+        "\15\uffff}>";
+    static final String[] DFA2_transitionS = {
+            "\1\4\1\5\1\2\1\3\1\1",
+            "",
+            "\1\11\17\uffff\1\3\2\uffff\1\6\1\uffff\1\10\2\uffff\1\7",
+            "",
+            "\1\12\2\uffff\1\14\1\uffff\1\13",
+            "\1\12\2\uffff\1\14\1\uffff\1\13",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
+    static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
+    static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
+    static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
+    static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
+    static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
+    static final short[][] DFA2_transition;
+
+    static {
+        int numStates = DFA2_transitionS.length;
+        DFA2_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA2_transition[i] = DFA.unpackEncodedString(DFA2_transitionS[i]);
+        }
+    }
+
+    class DFA2 extends DFA {
+
+        public DFA2(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 2;
+            this.eot = DFA2_eot;
+            this.eof = DFA2_eof;
+            this.min = DFA2_min;
+            this.max = DFA2_max;
+            this.accept = DFA2_accept;
+            this.special = DFA2_special;
+            this.transition = DFA2_transition;
+        }
+        public String getDescription() {
+            return "622:1: rule__Sentence__Alternatives : ( ( ruleSenEngines ) | ( ruleUser ) | ( ruleNode ) | ( ruleNodeOperating ) | ( ruleConnection ) | ( ruleConnectionUpdate ) | ( ruleFlow ) | ( ruleFlowUpdate ) | ( ruleOperation ) );";
+        }
+    }
+
+    public static final BitSet FOLLOW_ruleModel_in_entryRuleModel61 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleModel68 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Model__SentencesAssignment_in_ruleModel94 = new BitSet(new long[]{0x000000000003E002L});
+    public static final BitSet FOLLOW_ruleSentence_in_entryRuleSentence122 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSentence129 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Sentence__Alternatives_in_ruleSentence155 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSenEngines_in_entryRuleSenEngines182 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSenEngines189 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group__0_in_ruleSenEngines215 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleIpv4_in_entryRuleIpv4242 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleIpv4249 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__0_in_ruleIpv4275 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleUser_in_entryRuleUser302 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleUser309 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__User__Group__0_in_ruleUser335 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNode_in_entryRuleNode362 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleNode369 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group__0_in_ruleNode395 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNodeOperating_in_entryRuleNodeOperating424 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleNodeOperating431 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__0_in_ruleNodeOperating457 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleConnection_in_entryRuleConnection484 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleConnection491 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group__0_in_ruleConnection517 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleConnectionUpdate_in_entryRuleConnectionUpdate544 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleConnectionUpdate551 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__0_in_ruleConnectionUpdate577 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFlow_in_entryRuleFlow604 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleFlow611 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Flow__Group__0_in_ruleFlow637 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFlowUpdate_in_entryRuleFlowUpdate664 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleFlowUpdate671 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__0_in_ruleFlowUpdate697 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMatches_in_entryRuleMatches724 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleMatches731 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Matches__Group__0_in_ruleMatches757 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMatch_in_entryRuleMatch784 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleMatch791 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Match__Group__0_in_ruleMatch817 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOperation_in_entryRuleOperation844 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleOperation851 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__0_in_ruleOperation877 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleCondition_in_entryRuleCondition904 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleCondition911 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Condition__Group__0_in_ruleCondition937 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleProperty_in_entryRuleProperty964 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleProperty971 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Property__Group__0_in_ruleProperty997 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOneProperty_in_entryRuleOneProperty1024 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleOneProperty1031 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneProperty__Group__0_in_ruleOneProperty1057 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleModelProperty_in_entryRuleModelProperty1084 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleModelProperty1091 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group__0_in_ruleModelProperty1117 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOneModelProperty_in_entryRuleOneModelProperty1144 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleOneModelProperty1151 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneModelProperty__Group__0_in_ruleOneModelProperty1177 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNewObj_in_entryRuleNewObj1204 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleNewObj1211 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NewObj__Alternatives_in_ruleNewObj1237 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSenEngines_in_rule__Sentence__Alternatives1273 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleUser_in_rule__Sentence__Alternatives1290 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNode_in_rule__Sentence__Alternatives1307 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNodeOperating_in_rule__Sentence__Alternatives1324 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleConnection_in_rule__Sentence__Alternatives1341 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleConnectionUpdate_in_rule__Sentence__Alternatives1358 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFlow_in_rule__Sentence__Alternatives1375 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFlowUpdate_in_rule__Sentence__Alternatives1392 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOperation_in_rule__Sentence__Alternatives1409 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__NodeOperating__Alternatives_01442 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_14_in_rule__NodeOperating__Alternatives_01462 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__ConnectionUpdate__Alternatives_01497 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_14_in_rule__ConnectionUpdate__Alternatives_01517 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__FlowUpdate__Alternatives_01552 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_14_in_rule__FlowUpdate__Alternatives_01572 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Operation__Alternatives_81606 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group_8_1__0_in_rule__Operation__Alternatives_81623 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__OneProperty__Alternatives_21656 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__OneProperty__Alternatives_21673 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__OneModelProperty__Alternatives_01705 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__OneModelProperty__Alternatives_01722 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_15_in_rule__NewObj__Alternatives1755 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_16_in_rule__NewObj__Alternatives1775 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group__0__Impl_in_rule__SenEngines__Group__01807 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group__1_in_rule__SenEngines__Group__01810 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_rule__SenEngines__Group__0__Impl1838 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group__1__Impl_in_rule__SenEngines__Group__11869 = new BitSet(new long[]{0x00000000000C0000L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group__2_in_rule__SenEngines__Group__11872 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleIpv4_in_rule__SenEngines__Group__1__Impl1899 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group__2__Impl_in_rule__SenEngines__Group__21928 = new BitSet(new long[]{0x00000000000C0000L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group__3_in_rule__SenEngines__Group__21931 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group_2__0_in_rule__SenEngines__Group__2__Impl1958 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group__3__Impl_in_rule__SenEngines__Group__31989 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__SenEngines__Group__3__Impl2017 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group_2__0__Impl_in_rule__SenEngines__Group_2__02056 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group_2__1_in_rule__SenEngines__Group_2__02059 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__SenEngines__Group_2__0__Impl2087 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SenEngines__Group_2__1__Impl_in_rule__SenEngines__Group_2__12118 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleIpv4_in_rule__SenEngines__Group_2__1__Impl2145 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__0__Impl_in_rule__Ipv4__Group__02178 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__1_in_rule__Ipv4__Group__02181 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_IPV4_SUB_in_rule__Ipv4__Group__0__Impl2208 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__1__Impl_in_rule__Ipv4__Group__12237 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__2_in_rule__Ipv4__Group__12240 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_20_in_rule__Ipv4__Group__1__Impl2268 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__2__Impl_in_rule__Ipv4__Group__22299 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__3_in_rule__Ipv4__Group__22302 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_IPV4_SUB_in_rule__Ipv4__Group__2__Impl2329 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__3__Impl_in_rule__Ipv4__Group__32358 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__4_in_rule__Ipv4__Group__32361 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_20_in_rule__Ipv4__Group__3__Impl2389 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__4__Impl_in_rule__Ipv4__Group__42420 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__5_in_rule__Ipv4__Group__42423 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_IPV4_SUB_in_rule__Ipv4__Group__4__Impl2450 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__5__Impl_in_rule__Ipv4__Group__52479 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__6_in_rule__Ipv4__Group__52482 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_20_in_rule__Ipv4__Group__5__Impl2510 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Ipv4__Group__6__Impl_in_rule__Ipv4__Group__62541 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_IPV4_SUB_in_rule__Ipv4__Group__6__Impl2568 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__User__Group__0__Impl_in_rule__User__Group__02611 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__User__Group__1_in_rule__User__Group__02614 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_15_in_rule__User__Group__0__Impl2642 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__User__Group__1__Impl_in_rule__User__Group__12673 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__User__Group__2_in_rule__User__Group__12676 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__User__Group__1__Impl2703 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__User__Group__2__Impl_in_rule__User__Group__22732 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__User__Group__3_in_rule__User__Group__22735 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__User__Group__2__Impl2762 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__User__Group__3__Impl_in_rule__User__Group__32791 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_rule__User__Group__4_in_rule__User__Group__32794 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__User__Group__3__Impl2821 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__User__Group__4__Impl_in_rule__User__Group__42850 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__User__Group__4__Impl2878 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group__0__Impl_in_rule__Node__Group__02919 = new BitSet(new long[]{0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__Node__Group__1_in_rule__Node__Group__02922 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNewObj_in_rule__Node__Group__0__Impl2949 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group__1__Impl_in_rule__Node__Group__12978 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Node__Group__2_in_rule__Node__Group__12981 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_21_in_rule__Node__Group__1__Impl3009 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group__2__Impl_in_rule__Node__Group__23040 = new BitSet(new long[]{0x0000000000400000L});
+    public static final BitSet FOLLOW_rule__Node__Group__3_in_rule__Node__Group__23043 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__NameAssignment_2_in_rule__Node__Group__2__Impl3070 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group__3__Impl_in_rule__Node__Group__33100 = new BitSet(new long[]{0x0000000400840000L});
+    public static final BitSet FOLLOW_rule__Node__Group__4_in_rule__Node__Group__33103 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group_3__0_in_rule__Node__Group__3__Impl3130 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group__4__Impl_in_rule__Node__Group__43160 = new BitSet(new long[]{0x0000000400840000L});
+    public static final BitSet FOLLOW_rule__Node__Group__5_in_rule__Node__Group__43163 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group_4__0_in_rule__Node__Group__4__Impl3190 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group__5__Impl_in_rule__Node__Group__53221 = new BitSet(new long[]{0x0000000400840000L});
+    public static final BitSet FOLLOW_rule__Node__Group__6_in_rule__Node__Group__53224 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleProperty_in_rule__Node__Group__5__Impl3252 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group__6__Impl_in_rule__Node__Group__63283 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__Node__Group__6__Impl3311 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group_3__0__Impl_in_rule__Node__Group_3__03356 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Node__Group_3__1_in_rule__Node__Group_3__03359 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_22_in_rule__Node__Group_3__0__Impl3387 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group_3__1__Impl_in_rule__Node__Group_3__13418 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Node__Group_3__1__Impl3445 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group_4__0__Impl_in_rule__Node__Group_4__03478 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Node__Group_4__1_in_rule__Node__Group_4__03481 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__Node__Group_4__0__Impl3509 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group_4__1__Impl_in_rule__Node__Group_4__13540 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_rule__Node__Group_4__2_in_rule__Node__Group_4__13543 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__NodesAssignment_4_1_in_rule__Node__Group_4__1__Impl3570 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group_4__2__Impl_in_rule__Node__Group_4__23600 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group_4_2__0_in_rule__Node__Group_4__2__Impl3627 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_rule__Node__Group_4_2__0__Impl_in_rule__Node__Group_4_2__03664 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Node__Group_4_2__1_in_rule__Node__Group_4_2__03667 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__Node__Group_4_2__0__Impl3695 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__Group_4_2__1__Impl_in_rule__Node__Group_4_2__13726 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Node__NodesAssignment_4_2_1_in_rule__Node__Group_4_2__1__Impl3753 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__0__Impl_in_rule__NodeOperating__Group__03788 = new BitSet(new long[]{0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__1_in_rule__NodeOperating__Group__03791 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Alternatives_0_in_rule__NodeOperating__Group__0__Impl3818 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__1__Impl_in_rule__NodeOperating__Group__13848 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__2_in_rule__NodeOperating__Group__13851 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_21_in_rule__NodeOperating__Group__1__Impl3879 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__2__Impl_in_rule__NodeOperating__Group__23910 = new BitSet(new long[]{0x0000000400C40000L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__3_in_rule__NodeOperating__Group__23913 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__NodenameAssignment_2_in_rule__NodeOperating__Group__2__Impl3940 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__3__Impl_in_rule__NodeOperating__Group__33970 = new BitSet(new long[]{0x0000000400C40000L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__4_in_rule__NodeOperating__Group__33973 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_3__0_in_rule__NodeOperating__Group__3__Impl4000 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__4__Impl_in_rule__NodeOperating__Group__44031 = new BitSet(new long[]{0x0000000400C40000L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__5_in_rule__NodeOperating__Group__44034 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4__0_in_rule__NodeOperating__Group__4__Impl4061 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__5__Impl_in_rule__NodeOperating__Group__54092 = new BitSet(new long[]{0x0000000400C40000L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__6_in_rule__NodeOperating__Group__54095 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleProperty_in_rule__NodeOperating__Group__5__Impl4123 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group__6__Impl_in_rule__NodeOperating__Group__64154 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__NodeOperating__Group__6__Impl4182 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_3__0__Impl_in_rule__NodeOperating__Group_3__04227 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_3__1_in_rule__NodeOperating__Group_3__04230 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_22_in_rule__NodeOperating__Group_3__0__Impl4258 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_3__1__Impl_in_rule__NodeOperating__Group_3__14289 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__NodeOperating__Group_3__1__Impl4316 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4__0__Impl_in_rule__NodeOperating__Group_4__04349 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4__1_in_rule__NodeOperating__Group_4__04352 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__NodeOperating__Group_4__0__Impl4380 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4__1__Impl_in_rule__NodeOperating__Group_4__14411 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4__2_in_rule__NodeOperating__Group_4__14414 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__NodesAssignment_4_1_in_rule__NodeOperating__Group_4__1__Impl4441 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4__2__Impl_in_rule__NodeOperating__Group_4__24471 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4_2__0_in_rule__NodeOperating__Group_4__2__Impl4498 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4_2__0__Impl_in_rule__NodeOperating__Group_4_2__04535 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4_2__1_in_rule__NodeOperating__Group_4_2__04538 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__NodeOperating__Group_4_2__0__Impl4566 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__Group_4_2__1__Impl_in_rule__NodeOperating__Group_4_2__14597 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__NodeOperating__NodesAssignment_4_2_1_in_rule__NodeOperating__Group_4_2__1__Impl4624 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group__0__Impl_in_rule__Connection__Group__04658 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_rule__Connection__Group__1_in_rule__Connection__Group__04661 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_15_in_rule__Connection__Group__0__Impl4689 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group__1__Impl_in_rule__Connection__Group__14720 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Connection__Group__2_in_rule__Connection__Group__14723 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_24_in_rule__Connection__Group__1__Impl4751 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group__2__Impl_in_rule__Connection__Group__24782 = new BitSet(new long[]{0x0000000000400000L});
+    public static final BitSet FOLLOW_rule__Connection__Group__3_in_rule__Connection__Group__24785 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__NameAssignment_2_in_rule__Connection__Group__2__Impl4812 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group__3__Impl_in_rule__Connection__Group__34842 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Connection__Group__4_in_rule__Connection__Group__34845 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_22_in_rule__Connection__Group__3__Impl4873 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group__4__Impl_in_rule__Connection__Group__44904 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_rule__Connection__Group__5_in_rule__Connection__Group__44907 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Connection__Group__4__Impl4934 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group__5__Impl_in_rule__Connection__Group__54963 = new BitSet(new long[]{0x0000000400040000L});
+    public static final BitSet FOLLOW_rule__Connection__Group__6_in_rule__Connection__Group__54966 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5__0_in_rule__Connection__Group__5__Impl4993 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group__6__Impl_in_rule__Connection__Group__65023 = new BitSet(new long[]{0x0000000400040000L});
+    public static final BitSet FOLLOW_rule__Connection__Group__7_in_rule__Connection__Group__65026 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleProperty_in_rule__Connection__Group__6__Impl5054 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group__7__Impl_in_rule__Connection__Group__75085 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__Connection__Group__7__Impl5113 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5__0__Impl_in_rule__Connection__Group_5__05160 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5__1_in_rule__Connection__Group_5__05163 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_rule__Connection__Group_5__0__Impl5191 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5__1__Impl_in_rule__Connection__Group_5__15222 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5__2_in_rule__Connection__Group_5__15225 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__EndnodeAssignment_5_1_in_rule__Connection__Group_5__1__Impl5252 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5__2__Impl_in_rule__Connection__Group_5__25282 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5_2__0_in_rule__Connection__Group_5__2__Impl5309 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5_2__0__Impl_in_rule__Connection__Group_5_2__05346 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5_2__1_in_rule__Connection__Group_5_2__05349 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__Connection__Group_5_2__0__Impl5377 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__Group_5_2__1__Impl_in_rule__Connection__Group_5_2__15408 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Connection__EndnodeAssignment_5_2_1_in_rule__Connection__Group_5_2__1__Impl5435 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__0__Impl_in_rule__ConnectionUpdate__Group__05469 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__1_in_rule__ConnectionUpdate__Group__05472 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Alternatives_0_in_rule__ConnectionUpdate__Group__0__Impl5499 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__1__Impl_in_rule__ConnectionUpdate__Group__15529 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__2_in_rule__ConnectionUpdate__Group__15532 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_24_in_rule__ConnectionUpdate__Group__1__Impl5560 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__2__Impl_in_rule__ConnectionUpdate__Group__25591 = new BitSet(new long[]{0x0000000402440000L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__3_in_rule__ConnectionUpdate__Group__25594 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__ConnectionnameAssignment_2_in_rule__ConnectionUpdate__Group__2__Impl5621 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__3__Impl_in_rule__ConnectionUpdate__Group__35651 = new BitSet(new long[]{0x0000000402440000L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__4_in_rule__ConnectionUpdate__Group__35654 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_3__0_in_rule__ConnectionUpdate__Group__3__Impl5681 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__4__Impl_in_rule__ConnectionUpdate__Group__45712 = new BitSet(new long[]{0x0000000402440000L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__5_in_rule__ConnectionUpdate__Group__45715 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4__0_in_rule__ConnectionUpdate__Group__4__Impl5742 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__5__Impl_in_rule__ConnectionUpdate__Group__55773 = new BitSet(new long[]{0x0000000402440000L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__6_in_rule__ConnectionUpdate__Group__55776 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleProperty_in_rule__ConnectionUpdate__Group__5__Impl5804 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group__6__Impl_in_rule__ConnectionUpdate__Group__65835 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__ConnectionUpdate__Group__6__Impl5863 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_3__0__Impl_in_rule__ConnectionUpdate__Group_3__05908 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_3__1_in_rule__ConnectionUpdate__Group_3__05911 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_22_in_rule__ConnectionUpdate__Group_3__0__Impl5939 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_3__1__Impl_in_rule__ConnectionUpdate__Group_3__15970 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__ConnectionUpdate__Group_3__1__Impl5997 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4__0__Impl_in_rule__ConnectionUpdate__Group_4__06030 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4__1_in_rule__ConnectionUpdate__Group_4__06033 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_rule__ConnectionUpdate__Group_4__0__Impl6061 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4__1__Impl_in_rule__ConnectionUpdate__Group_4__16092 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4__2_in_rule__ConnectionUpdate__Group_4__16095 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__EndnodeAssignment_4_1_in_rule__ConnectionUpdate__Group_4__1__Impl6122 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4__2__Impl_in_rule__ConnectionUpdate__Group_4__26152 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4_2__0_in_rule__ConnectionUpdate__Group_4__2__Impl6179 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4_2__0__Impl_in_rule__ConnectionUpdate__Group_4_2__06216 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4_2__1_in_rule__ConnectionUpdate__Group_4_2__06219 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__ConnectionUpdate__Group_4_2__0__Impl6247 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__Group_4_2__1__Impl_in_rule__ConnectionUpdate__Group_4_2__16278 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ConnectionUpdate__EndnodeAssignment_4_2_1_in_rule__ConnectionUpdate__Group_4_2__1__Impl6305 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Flow__Group__0__Impl_in_rule__Flow__Group__06339 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_rule__Flow__Group__1_in_rule__Flow__Group__06342 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_15_in_rule__Flow__Group__0__Impl6370 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Flow__Group__1__Impl_in_rule__Flow__Group__16401 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Flow__Group__2_in_rule__Flow__Group__16404 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_26_in_rule__Flow__Group__1__Impl6432 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Flow__Group__2__Impl_in_rule__Flow__Group__26463 = new BitSet(new long[]{0x0000000008040000L});
+    public static final BitSet FOLLOW_rule__Flow__Group__3_in_rule__Flow__Group__26466 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Flow__NameAssignment_2_in_rule__Flow__Group__2__Impl6493 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Flow__Group__3__Impl_in_rule__Flow__Group__36523 = new BitSet(new long[]{0x0000000008040000L});
+    public static final BitSet FOLLOW_rule__Flow__Group__4_in_rule__Flow__Group__36526 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMatches_in_rule__Flow__Group__3__Impl6554 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Flow__Group__4__Impl_in_rule__Flow__Group__46585 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__Flow__Group__4__Impl6613 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__0__Impl_in_rule__FlowUpdate__Group__06654 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__1_in_rule__FlowUpdate__Group__06657 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Alternatives_0_in_rule__FlowUpdate__Group__0__Impl6684 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__1__Impl_in_rule__FlowUpdate__Group__16714 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__2_in_rule__FlowUpdate__Group__16717 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_26_in_rule__FlowUpdate__Group__1__Impl6745 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__2__Impl_in_rule__FlowUpdate__Group__26776 = new BitSet(new long[]{0x0000000008040000L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__3_in_rule__FlowUpdate__Group__26779 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__FlowIdAssignment_2_in_rule__FlowUpdate__Group__2__Impl6806 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__3__Impl_in_rule__FlowUpdate__Group__36836 = new BitSet(new long[]{0x0000000008040000L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__4_in_rule__FlowUpdate__Group__36839 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMatches_in_rule__FlowUpdate__Group__3__Impl6867 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FlowUpdate__Group__4__Impl_in_rule__FlowUpdate__Group__46898 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__FlowUpdate__Group__4__Impl6926 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Matches__Group__0__Impl_in_rule__Matches__Group__06967 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Matches__Group__1_in_rule__Matches__Group__06970 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_27_in_rule__Matches__Group__0__Impl6998 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Matches__Group__1__Impl_in_rule__Matches__Group__17029 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_rule__Matches__Group__2_in_rule__Matches__Group__17032 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMatch_in_rule__Matches__Group__1__Impl7059 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Matches__Group__2__Impl_in_rule__Matches__Group__27088 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Matches__Group_2__0_in_rule__Matches__Group__2__Impl7115 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_rule__Matches__Group_2__0__Impl_in_rule__Matches__Group_2__07152 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Matches__Group_2__1_in_rule__Matches__Group_2__07155 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__Matches__Group_2__0__Impl7183 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Matches__Group_2__1__Impl_in_rule__Matches__Group_2__17214 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMatch_in_rule__Matches__Group_2__1__Impl7241 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Match__Group__0__Impl_in_rule__Match__Group__07274 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_rule__Match__Group__1_in_rule__Match__Group__07277 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Match__Group__0__Impl7304 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Match__Group__1__Impl_in_rule__Match__Group__17333 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__Match__Group__2_in_rule__Match__Group__17336 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_rule__Match__Group__1__Impl7364 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Match__Group__2__Impl_in_rule__Match__Group__27395 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__Match__Group__2__Impl7422 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__0__Impl_in_rule__Operation__Group__07457 = new BitSet(new long[]{0x0000000020000000L});
+    public static final BitSet FOLLOW_rule__Operation__Group__1_in_rule__Operation__Group__07460 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_15_in_rule__Operation__Group__0__Impl7488 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__1__Impl_in_rule__Operation__Group__17519 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Operation__Group__2_in_rule__Operation__Group__17522 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_29_in_rule__Operation__Group__1__Impl7550 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__2__Impl_in_rule__Operation__Group__27581 = new BitSet(new long[]{0x0000000140000000L});
+    public static final BitSet FOLLOW_rule__Operation__Group__3_in_rule__Operation__Group__27584 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__NameAssignment_2_in_rule__Operation__Group__2__Impl7611 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__3__Impl_in_rule__Operation__Group__37641 = new BitSet(new long[]{0x0000000140000000L});
+    public static final BitSet FOLLOW_rule__Operation__Group__4_in_rule__Operation__Group__37644 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group_3__0_in_rule__Operation__Group__3__Impl7671 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__4__Impl_in_rule__Operation__Group__47702 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Operation__Group__5_in_rule__Operation__Group__47705 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_30_in_rule__Operation__Group__4__Impl7733 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__5__Impl_in_rule__Operation__Group__57764 = new BitSet(new long[]{0x0000000280000000L});
+    public static final BitSet FOLLOW_rule__Operation__Group__6_in_rule__Operation__Group__57767 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__TargetIdAssignment_5_in_rule__Operation__Group__5__Impl7794 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__6__Impl_in_rule__Operation__Group__67824 = new BitSet(new long[]{0x0000000280000000L});
+    public static final BitSet FOLLOW_rule__Operation__Group__7_in_rule__Operation__Group__67827 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleCondition_in_rule__Operation__Group__6__Impl7855 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__7__Impl_in_rule__Operation__Group__77886 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Operation__Group__8_in_rule__Operation__Group__77889 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_31_in_rule__Operation__Group__7__Impl7917 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__8__Impl_in_rule__Operation__Group__87948 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_rule__Operation__Group__9_in_rule__Operation__Group__87951 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Alternatives_8_in_rule__Operation__Group__8__Impl7978 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group__9__Impl_in_rule__Operation__Group__98008 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__Operation__Group__9__Impl8036 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group_3__0__Impl_in_rule__Operation__Group_3__08087 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_rule__Operation__Group_3__1_in_rule__Operation__Group_3__08090 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_32_in_rule__Operation__Group_3__0__Impl8118 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group_3__1__Impl_in_rule__Operation__Group_3__18149 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__ValueAssignment_3_1_in_rule__Operation__Group_3__1__Impl8176 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group_8_1__0__Impl_in_rule__Operation__Group_8_1__08210 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_rule__Operation__Group_8_1__1_in_rule__Operation__Group_8_1__08213 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Operation__Group_8_1__0__Impl8240 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group_8_1__1__Impl_in_rule__Operation__Group_8_1__18269 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Operation__Group_8_1__2_in_rule__Operation__Group_8_1__18272 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_rule__Operation__Group_8_1__1__Impl8300 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__Group_8_1__2__Impl_in_rule__Operation__Group_8_1__28331 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Operation__TargetNodeAssignment_8_1_2_in_rule__Operation__Group_8_1__2__Impl8358 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Condition__Group__0__Impl_in_rule__Condition__Group__08394 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__Condition__Group__1_in_rule__Condition__Group__08397 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_rule__Condition__Group__0__Impl8425 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Condition__Group__1__Impl_in_rule__Condition__Group__18456 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_rule__Condition__Group__2_in_rule__Condition__Group__18459 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__Condition__Group__1__Impl8486 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Condition__Group__2__Impl_in_rule__Condition__Group__28515 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Condition__Group_2__0_in_rule__Condition__Group__2__Impl8542 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_rule__Condition__Group_2__0__Impl_in_rule__Condition__Group_2__08579 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__Condition__Group_2__1_in_rule__Condition__Group_2__08582 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__Condition__Group_2__0__Impl8610 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Condition__Group_2__1__Impl_in_rule__Condition__Group_2__18641 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__Condition__Group_2__1__Impl8668 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Property__Group__0__Impl_in_rule__Property__Group__08701 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Property__Group__1_in_rule__Property__Group__08704 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_34_in_rule__Property__Group__0__Impl8732 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Property__Group__1__Impl_in_rule__Property__Group__18763 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_rule__Property__Group__2_in_rule__Property__Group__18766 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOneProperty_in_rule__Property__Group__1__Impl8793 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Property__Group__2__Impl_in_rule__Property__Group__28822 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Property__Group_2__0_in_rule__Property__Group__2__Impl8849 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_rule__Property__Group_2__0__Impl_in_rule__Property__Group_2__08886 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Property__Group_2__1_in_rule__Property__Group_2__08889 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__Property__Group_2__0__Impl8917 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Property__Group_2__1__Impl_in_rule__Property__Group_2__18948 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOneProperty_in_rule__Property__Group_2__1__Impl8975 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneProperty__Group__0__Impl_in_rule__OneProperty__Group__09008 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_rule__OneProperty__Group__1_in_rule__OneProperty__Group__09011 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__OneProperty__Group__0__Impl9038 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneProperty__Group__1__Impl_in_rule__OneProperty__Group__19067 = new BitSet(new long[]{0x0000000000000060L});
+    public static final BitSet FOLLOW_rule__OneProperty__Group__2_in_rule__OneProperty__Group__19070 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_rule__OneProperty__Group__1__Impl9098 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneProperty__Group__2__Impl_in_rule__OneProperty__Group__29129 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneProperty__Alternatives_2_in_rule__OneProperty__Group__2__Impl9156 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group__0__Impl_in_rule__ModelProperty__Group__09192 = new BitSet(new long[]{0x0000000000000060L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group__1_in_rule__ModelProperty__Group__09195 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_rule__ModelProperty__Group__0__Impl9223 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group__1__Impl_in_rule__ModelProperty__Group__19254 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group__2_in_rule__ModelProperty__Group__19257 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOneModelProperty_in_rule__ModelProperty__Group__1__Impl9284 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group__2__Impl_in_rule__ModelProperty__Group__29313 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group_2__0_in_rule__ModelProperty__Group__2__Impl9340 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group_2__0__Impl_in_rule__ModelProperty__Group_2__09377 = new BitSet(new long[]{0x0000000000000060L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group_2__1_in_rule__ModelProperty__Group_2__09380 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__ModelProperty__Group_2__0__Impl9408 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ModelProperty__Group_2__1__Impl_in_rule__ModelProperty__Group_2__19439 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOneModelProperty_in_rule__ModelProperty__Group_2__1__Impl9466 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneModelProperty__Group__0__Impl_in_rule__OneModelProperty__Group__09499 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_rule__OneModelProperty__Group__1_in_rule__OneModelProperty__Group__09502 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneModelProperty__Alternatives_0_in_rule__OneModelProperty__Group__0__Impl9529 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneModelProperty__Group__1__Impl_in_rule__OneModelProperty__Group__19559 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__OneModelProperty__Group__2_in_rule__OneModelProperty__Group__19562 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_rule__OneModelProperty__Group__1__Impl9590 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OneModelProperty__Group__2__Impl_in_rule__OneModelProperty__Group__29621 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__OneModelProperty__Group__2__Impl9648 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSentence_in_rule__Model__SentencesAssignment9688 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Node__NameAssignment_29719 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Node__NodesAssignment_4_19754 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Node__NodesAssignment_4_2_19793 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__NodeOperating__NodenameAssignment_29833 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__NodeOperating__NodesAssignment_4_19872 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__NodeOperating__NodesAssignment_4_2_19911 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Connection__NameAssignment_29946 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Connection__EndnodeAssignment_5_19981 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Connection__EndnodeAssignment_5_2_110020 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__ConnectionUpdate__ConnectionnameAssignment_210059 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__ConnectionUpdate__EndnodeAssignment_4_110098 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__ConnectionUpdate__EndnodeAssignment_4_2_110137 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Flow__NameAssignment_210172 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__FlowUpdate__FlowIdAssignment_210207 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Operation__NameAssignment_210242 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__Operation__ValueAssignment_3_110273 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Operation__TargetIdAssignment_510308 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_rule__Operation__TargetNodeAssignment_8_1_210347 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/internal/EditorActivator.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/internal/EditorActivator.java
new file mode 100644 (file)
index 0000000..7326025
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.internal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class EditorActivator extends AbstractUIPlugin {
+       
+       public static final String ORG_OPENDAYLIGHT_NEMO_TOOL_ECLIPSE_PLUGIN_EDITOR = "org.opendaylight.nemo.tool.eclipse.plugin.Editor";
+       
+       private static final Logger logger = Logger.getLogger(EditorActivator.class);
+       
+       private static EditorActivator 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 EditorActivator 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_OPENDAYLIGHT_NEMO_TOOL_ECLIPSE_PLUGIN_EDITOR.equals(grammar)) {
+                       return new org.opendaylight.nemo.tool.eclipse.plugin.EditorRuntimeModule();
+               }
+               
+               throw new IllegalArgumentException(grammar);
+       }
+       
+       protected Module getUiModule(String grammar) {
+               if (ORG_OPENDAYLIGHT_NEMO_TOOL_ECLIPSE_PLUGIN_EDITOR.equals(grammar)) {
+                       return new org.opendaylight.nemo.tool.eclipse.plugin.ui.EditorUiModule(this);
+               }
+               
+               throw new IllegalArgumentException(grammar);
+       }
+       
+       protected Module getSharedStateModule() {
+               return new SharedStateModule();
+       }
+       
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorUiModule.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/EditorUiModule.java
new file mode 100644 (file)
index 0000000..b05e0a6
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class EditorUiModule extends org.opendaylight.nemo.tool.eclipse.plugin.ui.AbstractEditorUiModule {
+       public EditorUiModule(AbstractUIPlugin plugin) {
+               super(plugin);
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.xtend
new file mode 100644 (file)
index 0000000..444c759
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist
+
+import org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.AbstractEditorProposalProvider
+
+/**
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist
+ * on how to customize the content assistant.
+ */
+class EditorProposalProvider extends AbstractEditorProposalProvider {
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.xtend
new file mode 100644 (file)
index 0000000..1139f52
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.labeling
+
+//import org.eclipse.xtext.resource.IEObjectDescription
+
+/**
+ * Provides labels for IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class EditorDescriptionLabelProvider extends org.eclipse.xtext.ui.label.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/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.xtend
new file mode 100644 (file)
index 0000000..41c4b6a
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.labeling
+
+import com.google.inject.Inject
+
+/**
+ * Provides labels for EObjects.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class EditorLabelProvider extends org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider {
+
+       @Inject
+       new(org.eclipse.emf.edit.ui.provider.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/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.xtend
new file mode 100644 (file)
index 0000000..455fda8
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.outline
+
+/**
+ * Customization of the default outline structure.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#outline
+ */
+class EditorOutlineTreeProvider extends org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider {
+       
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/src/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.xtend
new file mode 100644 (file)
index 0000000..ac3123f
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.quickfix
+
+//import org.eclipse.xtext.ui.editor.quickfix.Fix
+//import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor
+//import org.eclipse.xtext.validation.Issue
+
+/**
+ * Custom quickfixes.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#quick-fixes
+ */
+class EditorQuickfixProvider extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider {
+
+//     @Fix(MyDslValidator::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/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.java._trace
new file mode 100644 (file)
index 0000000..6c5eee4
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.xtendbin
new file mode 100644 (file)
index 0000000..63ea98e
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/.EditorProposalProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/contentassist/EditorProposalProvider.java
new file mode 100644 (file)
index 0000000..e411c48
--- /dev/null
@@ -0,0 +1,14 @@
+/**
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.ui.contentassist.AbstractEditorProposalProvider;
+
+/**
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist
+ * on how to customize the content assistant.
+ */
+@SuppressWarnings("all")
+public class EditorProposalProvider extends AbstractEditorProposalProvider {
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.java._trace
new file mode 100644 (file)
index 0000000..9ba4bbc
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.xtendbin
new file mode 100644 (file)
index 0000000..287c97e
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorDescriptionLabelProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.java._trace
new file mode 100644 (file)
index 0000000..ac55a23
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.xtendbin
new file mode 100644 (file)
index 0000000..64c78a3
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/.EditorLabelProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorDescriptionLabelProvider.java
new file mode 100644 (file)
index 0000000..b8b8ef4
--- /dev/null
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.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
+ */
+@SuppressWarnings("all")
+public class EditorDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/labeling/EditorLabelProvider.java
new file mode 100644 (file)
index 0000000..24da886
--- /dev/null
@@ -0,0 +1,21 @@
+/**
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.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
+ */
+@SuppressWarnings("all")
+public class EditorLabelProvider extends DefaultEObjectLabelProvider {
+  @Inject
+  public EditorLabelProvider(final AdapterFactoryLabelProvider delegate) {
+    super(delegate);
+  }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.java._trace
new file mode 100644 (file)
index 0000000..ceb929d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.xtendbin
new file mode 100644 (file)
index 0000000..a3d038c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/.EditorOutlineTreeProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/outline/EditorOutlineTreeProvider.java
new file mode 100644 (file)
index 0000000..a90102e
--- /dev/null
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.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
+ */
+@SuppressWarnings("all")
+public class EditorOutlineTreeProvider extends DefaultOutlineTreeProvider {
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.java._trace
new file mode 100644 (file)
index 0000000..e500d2d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.xtendbin
new file mode 100644 (file)
index 0000000..51e7022
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/.EditorQuickfixProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/ui/quickfix/EditorQuickfixProvider.java
new file mode 100644 (file)
index 0000000..ed23c7d
--- /dev/null
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.ui.quickfix;
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+
+/**
+ * Custom quickfixes.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#quick-fixes
+ */
+@SuppressWarnings("all")
+public class EditorQuickfixProvider extends DefaultQuickfixProvider {
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/.launch/Generate Language Infrastructure (org.opendaylight.nemo.tool.eclipse.plugin.editor).launch b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/.launch/Generate Language Infrastructure (org.opendaylight.nemo.tool.eclipse.plugin.editor).launch
new file mode 100644 (file)
index 0000000..a3246ce
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1299248699643_13&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.opendaylight.nemo.tool.eclipse.plugin.editor&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.opendaylight.nemo.tool.eclipse.plugin.editor.generator&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.opendaylight.nemo.tool.eclipse.plugin.editor.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.opendaylight.nemo.tool.eclipse.plugin.editor.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.opendaylight.nemo.tool.eclipse.plugin.editor"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/opendaylight/nemo/tool/eclipse/plugin/GenerateEditor.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.opendaylight.nemo.tool.eclipse.plugin.editor"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
+</launchConfiguration>
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/META-INF/MANIFEST.MF b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..65caaf0
--- /dev/null
@@ -0,0 +1,31 @@
+Manifest-Version: 1.0\r
+Bundle-ManifestVersion: 2\r
+Bundle-Name: org.opendaylight.nemo.tool.eclipse.plugin.editor\r
+Bundle-Vendor: My Company\r
+Bundle-Version: 1.0.0.qualifier\r
+Bundle-SymbolicName: org.opendaylight.nemo.tool.eclipse.plugin.editor; singleton:=true\r
+Bundle-ActivationPolicy: lazy\r
+Require-Bundle: org.eclipse.xtext;visibility:=reexport,\r
+ org.eclipse.equinox.common;bundle-version="3.5.0",\r
+ org.eclipse.xtext.util,\r
+ org.eclipse.emf.ecore,\r
+ org.eclipse.emf.common,\r
+ org.eclipse.xtext.xbase.lib,\r
+ org.antlr.runtime,\r
+ org.eclipse.xtext.common.types,\r
+ org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional\r
+Import-Package: org.apache.log4j\r
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8\r
+Export-Package: org.opendaylight.nemo.tool.eclipse.plugin,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.services,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.editor,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.editor.impl,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.editor.util,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.serializer,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.internal,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.validation,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.scoping,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.generator,\r
+ org.opendaylight.nemo.tool.eclipse.plugin.formatting\r
+\r
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/AbstractEditorRuntimeModule.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/AbstractEditorRuntimeModule.class
new file mode 100644 (file)
index 0000000..ff195e7
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/AbstractEditorRuntimeModule.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtext b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtext
new file mode 100644 (file)
index 0000000..b3ef240
--- /dev/null
@@ -0,0 +1,74 @@
+
+grammar org.opendaylight.nemo.tool.eclipse.plugin.Editor with org.eclipse.xtext.common.Terminals
+
+generate editor "http://www.huawei.com/nemo/Editor"
+
+Model:
+       sentences+=Sentence*;
+
+Sentence:
+       SenEngines | User| Node | NodeOperating | Connection|ConnectionUpdate|Flow|FlowUpdate|Operation;
+       
+       
+       
+//Engines sentence
+SenEngines:
+       'Engines:' Ipv4 (',' Ipv4)* ';';
+
+Ipv4:
+       IPV4_SUB '.' IPV4_SUB '.' IPV4_SUB '.' IPV4_SUB ;
+
+terminal IPV4_SUB:
+       ('0'..'9') | ('1'..'9') ('0'..'9') | '1' ('0'..'9') ('0'..'9') | '2' ('0'..'4') ('0'..'9') | '25' ('0'..'5');
+terminal NemoId: ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'-'|'0'..'9')*;
+
+
+//User
+User:'CREATE'  (STRING) (STRING) (STRING)   ';' ;      
+       
+////Node
+Node:NewObj  'Node'  name=NemoId   ('Type'  NemoId) ('Contain' nodes+=[Node|NemoId] (',' nodes+=[Node|NemoId])*)? (Property)?  ';' ;
+
+//NodeModel
+NodeModel: 'NodeModel' name=NemoId (ModelProperty)?;
+
+
+NodeOperating:('UPDATE'|'DELETE')  'Node'  nodename+=[Node|NemoId] ('Type'  NemoId)? ('Contain' nodes+=[Node|NemoId] (',' nodes+=[Node|NemoId])*)? (Property)?  ';';
+
+//Connection
+Connection:'CREATE' 'Connection' name=NemoId 'Type' NemoId  ('Endnodes' endnode+=[Node|NemoId] (',' endnode+=[Node|NemoId])*) (Property)?  ';';
+
+//Connection operating
+ConnectionUpdate:('UPDATE'|'DELETE') 'Connection'  connectionname+=[Connection|NemoId]   ('Type'   NemoId)? ('Endnodes' endnode+=[Node|NemoId] (',' endnode+=[Node|NemoId])*)? (Property)?  ';';
+
+//flow
+Flow:'CREATE' 'Flow' name=NemoId (Matches)? ';';
+FlowUpdate: ('UPDATE'|'DELETE') 'Flow' flowId+=[Flow|NemoId] (Matches)? ';';
+Matches:   'Match'   Match (',' Match)*;
+Match: NemoId ':' STRING ;
+
+
+
+
+//Operation
+Operation:'CREATE'   'Operation'   name=NemoId (  'Priority' value+=INT)?   'Target'   targetId=[Flow|NemoId] (Condition)?   'Action'   (NemoId|(NemoId ':' targetNode=[Node|NemoId])) ';';
+
+
+
+
+Condition: 'Condition' STRING(','STRING)*;
+Property: 'Property ' OneProperty(',' OneProperty)*;
+OneProperty:NemoId ':' (STRING|INT);
+ModelProperty: 'Property' OneModelProperty (',' OneModelProperty)*;
+OneModelProperty: (STRING|INT)':'NemoId;
+
+NewObj:'CREATE'|'IMPORT';
+
+
+
+//PropertyType:'location'|'ip-prifix'|'is-enable'|'ac-info-network';
+//terminal Mac_sub: (('0'..'9')|('a'..'f'))(('0'..'9')|('a'..'f'));
+//Mac: Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub;
+
+//Query
+//Query:'Query' BLANK Condition BLANK 'From' BLANK (tar=[Node])|(tar=[Operation])|(tar=[Flow])|(tar=[Connection]);
\ No newline at end of file
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtextbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtextbin
new file mode 100644 (file)
index 0000000..2ea7434
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtextbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorRuntimeModule.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorRuntimeModule.class
new file mode 100644 (file)
index 0000000..d86cb13
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorRuntimeModule.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetup.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetup.class
new file mode 100644 (file)
index 0000000..89bf6b3
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetup.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetupGenerated.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetupGenerated.class
new file mode 100644 (file)
index 0000000..e6e86cf
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetupGenerated.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/GenerateEditor.mwe2 b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/GenerateEditor.mwe2
new file mode 100644 (file)
index 0000000..843f3e7
--- /dev/null
@@ -0,0 +1,133 @@
+module org.opendaylight.nemo.tool.eclipse.plugin.GenerateEditor
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtext"
+var fileExtensions = "nemo"
+var projectName = "org.opendaylight.nemo.tool.eclipse.plugin.editor"
+var runtimeProject = "../${projectName}"
+var generateXtendStub = true
+var encoding = "UTF-8"
+
+Workflow {
+    bean = StandaloneSetup {
+       scanClassPath = true
+       platformUri = "${runtimeProject}/.."
+       // The following two lines can be removed, if Xbase is not used.
+       registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
+       registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
+    }
+    
+    component = DirectoryCleaner {
+       directory = "${runtimeProject}/src-gen"
+    }
+    
+    component = DirectoryCleaner {
+       directory = "${runtimeProject}/model/generated"
+    }
+    
+    component = DirectoryCleaner {
+       directory = "${runtimeProject}.ui/src-gen"
+    }
+    
+    component = DirectoryCleaner {
+       directory = "${runtimeProject}.tests/src-gen"
+    }
+    
+    component = Generator {
+       pathRtProject = runtimeProject
+       pathUiProject = "${runtimeProject}.ui"
+       pathTestProject = "${runtimeProject}.tests"
+       projectNameRt = projectName
+       projectNameUi = "${projectName}.ui"
+       encoding = encoding
+       language = auto-inject {
+               uri = grammarURI
+    
+               // Java API to access grammar elements (required by several other fragments)
+               fragment = grammarAccess.GrammarAccessFragment auto-inject {}
+    
+               // generates Java API for the generated EPackages
+               fragment = ecore.EMFGeneratorFragment auto-inject {}
+    
+               // the old serialization component
+               // fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}    
+    
+               // serializer 2.0
+               fragment = serializer.SerializerFragment auto-inject {
+                       generateStub = false
+               }
+    
+               // a custom ResourceFactory for use with EMF
+               fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
+    
+               // The antlr parser generator fragment.
+               fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
+               //  options = {
+               //      backtrack = true
+               //  }
+               }
+    
+               // Xtend-based API for validation
+               fragment = validation.ValidatorFragment auto-inject {
+               //    composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+               //    composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+               }
+    
+               // old scoping and exporting API
+               // fragment = scoping.ImportURIScopingFragment auto-inject {}
+               // fragment = exporting.SimpleNamesFragment auto-inject {}
+    
+               // scoping and exporting API
+               fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
+               fragment = exporting.QualifiedNamesFragment auto-inject {}
+               fragment = builder.BuilderIntegrationFragment auto-inject {}
+    
+               // generator API
+               fragment = generator.GeneratorFragment auto-inject {}
+    
+               // formatter API
+               fragment = formatting.FormatterFragment auto-inject {}
+    
+               // labeling API
+               fragment = labeling.LabelProviderFragment auto-inject {}
+    
+               // outline API
+               fragment = outline.OutlineTreeProviderFragment auto-inject {}
+               fragment = outline.QuickOutlineFragment auto-inject {}
+    
+               // quickfix API
+               fragment = quickfix.QuickfixProviderFragment auto-inject {}
+    
+               // content assist API
+               fragment = contentAssist.ContentAssistFragment auto-inject {}
+    
+               // generates a more lightweight Antlr parser and lexer tailored for content assist
+               fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}
+    
+               // generates junit test support classes into Generator#pathTestProject
+               fragment = junit.Junit4Fragment auto-inject {}
+    
+               // rename refactoring
+               fragment = refactoring.RefactorElementNameFragment auto-inject {}
+    
+               // provides the necessary bindings for java types integration
+               fragment = types.TypesGeneratorFragment auto-inject {}
+    
+               // generates the required bindings only if the grammar inherits from Xbase
+               fragment = xbase.XbaseGeneratorFragment auto-inject {}
+               
+               // generates the required bindings only if the grammar inherits from Xtype
+               fragment = xbase.XtypeGeneratorFragment auto-inject {}
+    
+               // provides a preference page for template proposals
+               fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
+    
+               // provides a compare view
+               fragment = compare.CompareFragment auto-inject {}
+       }
+    }
+}
+
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Connection.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Connection.class
new file mode 100644 (file)
index 0000000..0dacc41
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Connection.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/ConnectionUpdate.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/ConnectionUpdate.class
new file mode 100644 (file)
index 0000000..8152771
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/ConnectionUpdate.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorFactory.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorFactory.class
new file mode 100644 (file)
index 0000000..eb24072
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorFactory.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage$Literals.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage$Literals.class
new file mode 100644 (file)
index 0000000..6650d7e
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage$Literals.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage.class
new file mode 100644 (file)
index 0000000..d632165
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Flow.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Flow.class
new file mode 100644 (file)
index 0000000..bf52a1d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Flow.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/FlowUpdate.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/FlowUpdate.class
new file mode 100644 (file)
index 0000000..1df4496
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/FlowUpdate.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Model.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Model.class
new file mode 100644 (file)
index 0000000..cc7961a
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Model.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Node.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Node.class
new file mode 100644 (file)
index 0000000..5d7cc21
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Node.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeModel.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeModel.class
new file mode 100644 (file)
index 0000000..3ab7579
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeModel.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeOperating.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeOperating.class
new file mode 100644 (file)
index 0000000..6d27feb
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeOperating.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Operation.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Operation.class
new file mode 100644 (file)
index 0000000..1f281e9
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Operation.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Sentence.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Sentence.class
new file mode 100644 (file)
index 0000000..bc6d65c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/Sentence.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionImpl.class
new file mode 100644 (file)
index 0000000..44d9964
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionUpdateImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionUpdateImpl.class
new file mode 100644 (file)
index 0000000..3b8df89
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionUpdateImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorFactoryImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorFactoryImpl.class
new file mode 100644 (file)
index 0000000..9992a96
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorFactoryImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorPackageImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorPackageImpl.class
new file mode 100644 (file)
index 0000000..e19123a
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorPackageImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowImpl.class
new file mode 100644 (file)
index 0000000..6f1ad11
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowUpdateImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowUpdateImpl.class
new file mode 100644 (file)
index 0000000..e500eaa
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowUpdateImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ModelImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ModelImpl.class
new file mode 100644 (file)
index 0000000..ce5d13b
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ModelImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeImpl.class
new file mode 100644 (file)
index 0000000..0f73a8e
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeModelImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeModelImpl.class
new file mode 100644 (file)
index 0000000..a2e5070
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeModelImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeOperatingImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeOperatingImpl.class
new file mode 100644 (file)
index 0000000..f1ce5ba
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeOperatingImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/OperationImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/OperationImpl.class
new file mode 100644 (file)
index 0000000..116caa3
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/OperationImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/SentenceImpl.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/SentenceImpl.class
new file mode 100644 (file)
index 0000000..4f21b9b
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/SentenceImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory$1.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory$1.class
new file mode 100644 (file)
index 0000000..d5b8138
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory$1.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory.class
new file mode 100644 (file)
index 0000000..f81738a
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorSwitch.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorSwitch.class
new file mode 100644 (file)
index 0000000..673f0f3
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorSwitch.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.java._trace
new file mode 100644 (file)
index 0000000..9c12f0c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.xtendbin
new file mode 100644 (file)
index 0000000..bc93729
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.class
new file mode 100644 (file)
index 0000000..b08662d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.xtend
new file mode 100644 (file)
index 0000000..5652459
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.formatting
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter
+import org.eclipse.xtext.formatting.impl.FormattingConfig
+// import com.google.inject.Inject;
+// import org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess
+
+/**
+ * This class contains custom formatting declarations.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#formatting
+ * on how and when to use it.
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+class EditorFormatter extends AbstractDeclarativeFormatter {
+
+//     @Inject extension EditorGrammarAccess
+       
+       override protected void configureFormatting(FormattingConfig c) {
+// It's usually a good idea to activate the following three statements.
+// They will add and preserve newlines around comments
+//             c.setLinewrap(0, 1, 2).before(SL_COMMENTRule)
+//             c.setLinewrap(0, 1, 2).before(ML_COMMENTRule)
+//             c.setLinewrap(0, 1, 1).after(ML_COMMENTRule)
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.java._trace
new file mode 100644 (file)
index 0000000..df12aed
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.xtendbin
new file mode 100644 (file)
index 0000000..a4106ef
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.class
new file mode 100644 (file)
index 0000000..64cc4f6
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.xtend
new file mode 100644 (file)
index 0000000..e2b689f
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess
+
+/**
+ * Generates code from your model files on save.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
+ */
+class EditorGenerator implements IGenerator {
+       
+       override void doGenerate(Resource resource, IFileSystemAccess fsa) {
+//             fsa.generateFile('greetings.txt', 'People to greet: ' + 
+//                     resource.allContents
+//                             .filter(typeof(Greeting))
+//                             .map[name]
+//                             .join(', '))
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorAntlrTokenFileProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorAntlrTokenFileProvider.class
new file mode 100644 (file)
index 0000000..73a9b9b
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorAntlrTokenFileProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorParser.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorParser.class
new file mode 100644 (file)
index 0000000..96856d3
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorParser.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g
new file mode 100644 (file)
index 0000000..f552784
--- /dev/null
@@ -0,0 +1,1454 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalEditor;
+
+options {
+       superClass=AbstractInternalAntlrParser;
+       
+}
+
+@lexer::header {
+package org.opendaylight.nemo.tool.eclipse.plugin.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.opendaylight.nemo.tool.eclipse.plugin.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.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+}
+
+@parser::members {
+
+       private EditorGrammarAccess grammarAccess;
+       
+    public InternalEditorParser(TokenStream input, EditorGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+    
+    @Override
+    protected String getFirstRuleName() {
+       return "Model"; 
+       }
+       
+       @Override
+       protected EditorGrammarAccess 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().getSentencesSentenceParserRuleCall_0()); 
+           }
+               lv_sentences_0_0=ruleSentence           {
+               if ($current==null) {
+                   $current = createModelElementForParent(grammarAccess.getModelRule());
+               }
+                       add(
+                               $current, 
+                               "sentences",
+                       lv_sentences_0_0, 
+                       "Sentence");
+               afterParserOrEnumRuleCall();
+           }
+
+)
+)*
+;
+
+
+
+
+
+// Entry rule entryRuleSentence
+entryRuleSentence returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getSentenceRule()); }
+        iv_ruleSentence=ruleSentence 
+        { $current=$iv_ruleSentence.current; } 
+        EOF 
+;
+
+// Rule Sentence
+ruleSentence returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()); 
+    }
+ruleSenEngines
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getUserParserRuleCall_1()); 
+    }
+ruleUser
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getNodeParserRuleCall_2()); 
+    }
+    this_Node_2=ruleNode
+    { 
+        $current = $this_Node_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getNodeOperatingParserRuleCall_3()); 
+    }
+    this_NodeOperating_3=ruleNodeOperating
+    { 
+        $current = $this_NodeOperating_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getConnectionParserRuleCall_4()); 
+    }
+    this_Connection_4=ruleConnection
+    { 
+        $current = $this_Connection_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getConnectionUpdateParserRuleCall_5()); 
+    }
+    this_ConnectionUpdate_5=ruleConnectionUpdate
+    { 
+        $current = $this_ConnectionUpdate_5.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getFlowParserRuleCall_6()); 
+    }
+    this_Flow_6=ruleFlow
+    { 
+        $current = $this_Flow_6.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getFlowUpdateParserRuleCall_7()); 
+    }
+    this_FlowUpdate_7=ruleFlowUpdate
+    { 
+        $current = $this_FlowUpdate_7.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getOperationParserRuleCall_8()); 
+    }
+    this_Operation_8=ruleOperation
+    { 
+        $current = $this_Operation_8.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSenEngines
+entryRuleSenEngines returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getSenEnginesRule()); } 
+        iv_ruleSenEngines=ruleSenEngines 
+        { $current=$iv_ruleSenEngines.current.getText(); }  
+        EOF 
+;
+
+// Rule SenEngines
+ruleSenEngines returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Engines:' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getSenEnginesAccess().getEnginesKeyword_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_1()); 
+    }
+    this_Ipv4_1=ruleIpv4    {
+               $current.merge(this_Ipv4_1);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getSenEnginesAccess().getCommaKeyword_2_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_2_1()); 
+    }
+    this_Ipv4_3=ruleIpv4    {
+               $current.merge(this_Ipv4_3);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*
+       kw=';' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getSenEnginesAccess().getSemicolonKeyword_3()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleIpv4
+entryRuleIpv4 returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getIpv4Rule()); } 
+        iv_ruleIpv4=ruleIpv4 
+        { $current=$iv_ruleIpv4.current.getText(); }  
+        EOF 
+;
+
+// Rule Ipv4
+ruleIpv4 returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(    this_IPV4_SUB_0=RULE_IPV4_SUB    {
+               $current.merge(this_IPV4_SUB_0);
+    }
+
+    { 
+    newLeafNode(this_IPV4_SUB_0, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_0()); 
+    }
+
+       kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getIpv4Access().getFullStopKeyword_1()); 
+    }
+    this_IPV4_SUB_2=RULE_IPV4_SUB    {
+               $current.merge(this_IPV4_SUB_2);
+    }
+
+    { 
+    newLeafNode(this_IPV4_SUB_2, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_2()); 
+    }
+
+       kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getIpv4Access().getFullStopKeyword_3()); 
+    }
+    this_IPV4_SUB_4=RULE_IPV4_SUB    {
+               $current.merge(this_IPV4_SUB_4);
+    }
+
+    { 
+    newLeafNode(this_IPV4_SUB_4, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_4()); 
+    }
+
+       kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getIpv4Access().getFullStopKeyword_5()); 
+    }
+    this_IPV4_SUB_6=RULE_IPV4_SUB    {
+               $current.merge(this_IPV4_SUB_6);
+    }
+
+    { 
+    newLeafNode(this_IPV4_SUB_6, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_6()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleUser
+entryRuleUser returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getUserRule()); } 
+        iv_ruleUser=ruleUser 
+        { $current=$iv_ruleUser.current.getText(); }  
+        EOF 
+;
+
+// Rule User
+ruleUser returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='CREATE' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getUserAccess().getCREATEKeyword_0()); 
+    }
+    this_STRING_1=RULE_STRING    {
+               $current.merge(this_STRING_1);
+    }
+
+    { 
+    newLeafNode(this_STRING_1, grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_1()); 
+    }
+    this_STRING_2=RULE_STRING    {
+               $current.merge(this_STRING_2);
+    }
+
+    { 
+    newLeafNode(this_STRING_2, grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_2()); 
+    }
+    this_STRING_3=RULE_STRING    {
+               $current.merge(this_STRING_3);
+    }
+
+    { 
+    newLeafNode(this_STRING_3, grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_3()); 
+    }
+
+       kw=';' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getUserAccess().getSemicolonKeyword_4()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleNode
+entryRuleNode returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getNodeRule()); }
+        iv_ruleNode=ruleNode 
+        { $current=$iv_ruleNode.current; } 
+        EOF 
+;
+
+// Rule Node
+ruleNode returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getNodeAccess().getNewObjParserRuleCall_0()); 
+    }
+ruleNewObj
+    { 
+        afterParserOrEnumRuleCall();
+    }
+       otherlv_1='Node' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getNodeAccess().getNodeKeyword_1());
+    }
+(
+(
+               lv_name_2_0=RULE_NEMOID
+               {
+                       newLeafNode(lv_name_2_0, grammarAccess.getNodeAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeRule());
+               }
+                       setWithLastConsumed(
+                               $current, 
+                               "name",
+                       lv_name_2_0, 
+                       "NemoId");
+           }
+
+)
+)(     otherlv_3='Type' 
+    {
+       newLeafNode(otherlv_3, grammarAccess.getNodeAccess().getTypeKeyword_3_0());
+    }
+this_NemoId_4=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_4, grammarAccess.getNodeAccess().getNemoIdTerminalRuleCall_3_1()); 
+    }
+)(     otherlv_5='Contain' 
+    {
+       newLeafNode(otherlv_5, grammarAccess.getNodeAccess().getContainKeyword_4_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeRule());
+               }
+        }
+       otherlv_6=RULE_NEMOID
+       {
+               newLeafNode(otherlv_6, grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_1_0()); 
+       }
+
+)
+)(     otherlv_7=',' 
+    {
+       newLeafNode(otherlv_7, grammarAccess.getNodeAccess().getCommaKeyword_4_2_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeRule());
+               }
+        }
+       otherlv_8=RULE_NEMOID
+       {
+               newLeafNode(otherlv_8, grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_2_1_0()); 
+       }
+
+)
+))*)?(
+    { 
+        newCompositeNode(grammarAccess.getNodeAccess().getPropertyParserRuleCall_5()); 
+    }
+ruleProperty
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_10=';' 
+    {
+       newLeafNode(otherlv_10, grammarAccess.getNodeAccess().getSemicolonKeyword_6());
+    }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleNodeOperating
+entryRuleNodeOperating returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getNodeOperatingRule()); }
+        iv_ruleNodeOperating=ruleNodeOperating 
+        { $current=$iv_ruleNodeOperating.current; } 
+        EOF 
+;
+
+// Rule NodeOperating
+ruleNodeOperating returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((     otherlv_0='UPDATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0());
+    }
+
+    |  otherlv_1='DELETE' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1());
+    }
+)      otherlv_2='Node' 
+    {
+       newLeafNode(otherlv_2, grammarAccess.getNodeOperatingAccess().getNodeKeyword_1());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeOperatingRule());
+               }
+        }
+       otherlv_3=RULE_NEMOID
+       {
+               newLeafNode(otherlv_3, grammarAccess.getNodeOperatingAccess().getNodenameNodeCrossReference_2_0()); 
+       }
+
+)
+)(     otherlv_4='Type' 
+    {
+       newLeafNode(otherlv_4, grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0());
+    }
+this_NemoId_5=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_5, grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()); 
+    }
+)?(    otherlv_6='Contain' 
+    {
+       newLeafNode(otherlv_6, grammarAccess.getNodeOperatingAccess().getContainKeyword_4_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeOperatingRule());
+               }
+        }
+       otherlv_7=RULE_NEMOID
+       {
+               newLeafNode(otherlv_7, grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_1_0()); 
+       }
+
+)
+)(     otherlv_8=',' 
+    {
+       newLeafNode(otherlv_8, grammarAccess.getNodeOperatingAccess().getCommaKeyword_4_2_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeOperatingRule());
+               }
+        }
+       otherlv_9=RULE_NEMOID
+       {
+               newLeafNode(otherlv_9, grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_2_1_0()); 
+       }
+
+)
+))*)?(
+    { 
+        newCompositeNode(grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5()); 
+    }
+ruleProperty
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_11=';' 
+    {
+       newLeafNode(otherlv_11, grammarAccess.getNodeOperatingAccess().getSemicolonKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleConnection
+entryRuleConnection returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getConnectionRule()); }
+        iv_ruleConnection=ruleConnection 
+        { $current=$iv_ruleConnection.current; } 
+        EOF 
+;
+
+// Rule Connection
+ruleConnection returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(      otherlv_0='CREATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getConnectionAccess().getCREATEKeyword_0());
+    }
+       otherlv_1='Connection' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getConnectionAccess().getConnectionKeyword_1());
+    }
+(
+(
+               lv_name_2_0=RULE_NEMOID
+               {
+                       newLeafNode(lv_name_2_0, grammarAccess.getConnectionAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionRule());
+               }
+                       setWithLastConsumed(
+                               $current, 
+                               "name",
+                       lv_name_2_0, 
+                       "NemoId");
+           }
+
+)
+)      otherlv_3='Type' 
+    {
+       newLeafNode(otherlv_3, grammarAccess.getConnectionAccess().getTypeKeyword_3());
+    }
+this_NemoId_4=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_4, grammarAccess.getConnectionAccess().getNemoIdTerminalRuleCall_4()); 
+    }
+(      otherlv_5='Endnodes' 
+    {
+       newLeafNode(otherlv_5, grammarAccess.getConnectionAccess().getEndnodesKeyword_5_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionRule());
+               }
+        }
+       otherlv_6=RULE_NEMOID
+       {
+               newLeafNode(otherlv_6, grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_1_0()); 
+       }
+
+)
+)(     otherlv_7=',' 
+    {
+       newLeafNode(otherlv_7, grammarAccess.getConnectionAccess().getCommaKeyword_5_2_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionRule());
+               }
+        }
+       otherlv_8=RULE_NEMOID
+       {
+               newLeafNode(otherlv_8, grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_2_1_0()); 
+       }
+
+)
+))*)(
+    { 
+        newCompositeNode(grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6()); 
+    }
+ruleProperty
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_10=';' 
+    {
+       newLeafNode(otherlv_10, grammarAccess.getConnectionAccess().getSemicolonKeyword_7());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleConnectionUpdate
+entryRuleConnectionUpdate returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getConnectionUpdateRule()); }
+        iv_ruleConnectionUpdate=ruleConnectionUpdate 
+        { $current=$iv_ruleConnectionUpdate.current; } 
+        EOF 
+;
+
+// Rule ConnectionUpdate
+ruleConnectionUpdate returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((     otherlv_0='UPDATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0());
+    }
+
+    |  otherlv_1='DELETE' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1());
+    }
+)      otherlv_2='Connection' 
+    {
+       newLeafNode(otherlv_2, grammarAccess.getConnectionUpdateAccess().getConnectionKeyword_1());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionUpdateRule());
+               }
+        }
+       otherlv_3=RULE_NEMOID
+       {
+               newLeafNode(otherlv_3, grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionCrossReference_2_0()); 
+       }
+
+)
+)(     otherlv_4='Type' 
+    {
+       newLeafNode(otherlv_4, grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0());
+    }
+this_NemoId_5=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_5, grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()); 
+    }
+)?(    otherlv_6='Endnodes' 
+    {
+       newLeafNode(otherlv_6, grammarAccess.getConnectionUpdateAccess().getEndnodesKeyword_4_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionUpdateRule());
+               }
+        }
+       otherlv_7=RULE_NEMOID
+       {
+               newLeafNode(otherlv_7, grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_1_0()); 
+       }
+
+)
+)(     otherlv_8=',' 
+    {
+       newLeafNode(otherlv_8, grammarAccess.getConnectionUpdateAccess().getCommaKeyword_4_2_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionUpdateRule());
+               }
+        }
+       otherlv_9=RULE_NEMOID
+       {
+               newLeafNode(otherlv_9, grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_2_1_0()); 
+       }
+
+)
+))*)?(
+    { 
+        newCompositeNode(grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5()); 
+    }
+ruleProperty
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_11=';' 
+    {
+       newLeafNode(otherlv_11, grammarAccess.getConnectionUpdateAccess().getSemicolonKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFlow
+entryRuleFlow returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getFlowRule()); }
+        iv_ruleFlow=ruleFlow 
+        { $current=$iv_ruleFlow.current; } 
+        EOF 
+;
+
+// Rule Flow
+ruleFlow returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(      otherlv_0='CREATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getFlowAccess().getCREATEKeyword_0());
+    }
+       otherlv_1='Flow' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getFlowAccess().getFlowKeyword_1());
+    }
+(
+(
+               lv_name_2_0=RULE_NEMOID
+               {
+                       newLeafNode(lv_name_2_0, grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getFlowRule());
+               }
+                       setWithLastConsumed(
+                               $current, 
+                               "name",
+                       lv_name_2_0, 
+                       "NemoId");
+           }
+
+)
+)(
+    { 
+        newCompositeNode(grammarAccess.getFlowAccess().getMatchesParserRuleCall_3()); 
+    }
+ruleMatches
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_4=';' 
+    {
+       newLeafNode(otherlv_4, grammarAccess.getFlowAccess().getSemicolonKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFlowUpdate
+entryRuleFlowUpdate returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getFlowUpdateRule()); }
+        iv_ruleFlowUpdate=ruleFlowUpdate 
+        { $current=$iv_ruleFlowUpdate.current; } 
+        EOF 
+;
+
+// Rule FlowUpdate
+ruleFlowUpdate returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((     otherlv_0='UPDATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0());
+    }
+
+    |  otherlv_1='DELETE' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1());
+    }
+)      otherlv_2='Flow' 
+    {
+       newLeafNode(otherlv_2, grammarAccess.getFlowUpdateAccess().getFlowKeyword_1());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getFlowUpdateRule());
+               }
+        }
+       otherlv_3=RULE_NEMOID
+       {
+               newLeafNode(otherlv_3, grammarAccess.getFlowUpdateAccess().getFlowIdFlowCrossReference_2_0()); 
+       }
+
+)
+)(
+    { 
+        newCompositeNode(grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3()); 
+    }
+ruleMatches
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_5=';' 
+    {
+       newLeafNode(otherlv_5, grammarAccess.getFlowUpdateAccess().getSemicolonKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleMatches
+entryRuleMatches returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getMatchesRule()); } 
+        iv_ruleMatches=ruleMatches 
+        { $current=$iv_ruleMatches.current.getText(); }  
+        EOF 
+;
+
+// Rule Matches
+ruleMatches returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Match' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getMatchesAccess().getMatchKeyword_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getMatchesAccess().getMatchParserRuleCall_1()); 
+    }
+    this_Match_1=ruleMatch    {
+               $current.merge(this_Match_1);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getMatchesAccess().getCommaKeyword_2_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getMatchesAccess().getMatchParserRuleCall_2_1()); 
+    }
+    this_Match_3=ruleMatch    {
+               $current.merge(this_Match_3);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleMatch
+entryRuleMatch returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getMatchRule()); } 
+        iv_ruleMatch=ruleMatch 
+        { $current=$iv_ruleMatch.current.getText(); }  
+        EOF 
+;
+
+// Rule Match
+ruleMatch returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(    this_NemoId_0=RULE_NEMOID    {
+               $current.merge(this_NemoId_0);
+    }
+
+    { 
+    newLeafNode(this_NemoId_0, grammarAccess.getMatchAccess().getNemoIdTerminalRuleCall_0()); 
+    }
+
+       kw=':' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getMatchAccess().getColonKeyword_1()); 
+    }
+    this_STRING_2=RULE_STRING    {
+               $current.merge(this_STRING_2);
+    }
+
+    { 
+    newLeafNode(this_STRING_2, grammarAccess.getMatchAccess().getSTRINGTerminalRuleCall_2()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleOperation
+entryRuleOperation returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getOperationRule()); }
+        iv_ruleOperation=ruleOperation 
+        { $current=$iv_ruleOperation.current; } 
+        EOF 
+;
+
+// Rule Operation
+ruleOperation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(      otherlv_0='CREATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getOperationAccess().getCREATEKeyword_0());
+    }
+       otherlv_1='Operation' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getOperationAccess().getOperationKeyword_1());
+    }
+(
+(
+               lv_name_2_0=RULE_NEMOID
+               {
+                       newLeafNode(lv_name_2_0, grammarAccess.getOperationAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getOperationRule());
+               }
+                       setWithLastConsumed(
+                               $current, 
+                               "name",
+                       lv_name_2_0, 
+                       "NemoId");
+           }
+
+)
+)(     otherlv_3='Priority' 
+    {
+       newLeafNode(otherlv_3, grammarAccess.getOperationAccess().getPriorityKeyword_3_0());
+    }
+(
+(
+               lv_value_4_0=RULE_INT
+               {
+                       newLeafNode(lv_value_4_0, grammarAccess.getOperationAccess().getValueINTTerminalRuleCall_3_1_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getOperationRule());
+               }
+                       addWithLastConsumed(
+                               $current, 
+                               "value",
+                       lv_value_4_0, 
+                       "INT");
+           }
+
+)
+))?    otherlv_5='Target' 
+    {
+       newLeafNode(otherlv_5, grammarAccess.getOperationAccess().getTargetKeyword_4());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getOperationRule());
+               }
+        }
+       otherlv_6=RULE_NEMOID
+       {
+               newLeafNode(otherlv_6, grammarAccess.getOperationAccess().getTargetIdFlowCrossReference_5_0()); 
+       }
+
+)
+)(
+    { 
+        newCompositeNode(grammarAccess.getOperationAccess().getConditionParserRuleCall_6()); 
+    }
+ruleCondition
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_8='Action' 
+    {
+       newLeafNode(otherlv_8, grammarAccess.getOperationAccess().getActionKeyword_7());
+    }
+(this_NemoId_9=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_9, grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_0()); 
+    }
+
+    |(this_NemoId_10=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_10, grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_1_0()); 
+    }
+       otherlv_11=':' 
+    {
+       newLeafNode(otherlv_11, grammarAccess.getOperationAccess().getColonKeyword_8_1_1());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getOperationRule());
+               }
+        }
+       otherlv_12=RULE_NEMOID
+       {
+               newLeafNode(otherlv_12, grammarAccess.getOperationAccess().getTargetNodeNodeCrossReference_8_1_2_0()); 
+       }
+
+)
+)))    otherlv_13=';' 
+    {
+       newLeafNode(otherlv_13, grammarAccess.getOperationAccess().getSemicolonKeyword_9());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleCondition
+entryRuleCondition returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getConditionRule()); } 
+        iv_ruleCondition=ruleCondition 
+        { $current=$iv_ruleCondition.current.getText(); }  
+        EOF 
+;
+
+// Rule Condition
+ruleCondition returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Condition' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getConditionAccess().getConditionKeyword_0()); 
+    }
+    this_STRING_1=RULE_STRING    {
+               $current.merge(this_STRING_1);
+    }
+
+    { 
+    newLeafNode(this_STRING_1, grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_1()); 
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getConditionAccess().getCommaKeyword_2_0()); 
+    }
+    this_STRING_3=RULE_STRING    {
+               $current.merge(this_STRING_3);
+    }
+
+    { 
+    newLeafNode(this_STRING_3, grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_2_1()); 
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleProperty
+entryRuleProperty returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getPropertyRule()); } 
+        iv_ruleProperty=ruleProperty 
+        { $current=$iv_ruleProperty.current.getText(); }  
+        EOF 
+;
+
+// Rule Property
+ruleProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Property ' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getPropertyAccess().getPropertyKeyword_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_1()); 
+    }
+    this_OneProperty_1=ruleOneProperty    {
+               $current.merge(this_OneProperty_1);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getPropertyAccess().getCommaKeyword_2_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_2_1()); 
+    }
+    this_OneProperty_3=ruleOneProperty    {
+               $current.merge(this_OneProperty_3);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleOneProperty
+entryRuleOneProperty returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getOnePropertyRule()); } 
+        iv_ruleOneProperty=ruleOneProperty 
+        { $current=$iv_ruleOneProperty.current.getText(); }  
+        EOF 
+;
+
+// Rule OneProperty
+ruleOneProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(    this_NemoId_0=RULE_NEMOID    {
+               $current.merge(this_NemoId_0);
+    }
+
+    { 
+    newLeafNode(this_NemoId_0, grammarAccess.getOnePropertyAccess().getNemoIdTerminalRuleCall_0()); 
+    }
+
+       kw=':' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOnePropertyAccess().getColonKeyword_1()); 
+    }
+(    this_STRING_2=RULE_STRING    {
+               $current.merge(this_STRING_2);
+    }
+
+    { 
+    newLeafNode(this_STRING_2, grammarAccess.getOnePropertyAccess().getSTRINGTerminalRuleCall_2_0()); 
+    }
+
+    |    this_INT_3=RULE_INT    {
+               $current.merge(this_INT_3);
+    }
+
+    { 
+    newLeafNode(this_INT_3, grammarAccess.getOnePropertyAccess().getINTTerminalRuleCall_2_1()); 
+    }
+))
+    ;
+
+
+
+
+
+// Entry rule entryRuleModelProperty
+entryRuleModelProperty returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getModelPropertyRule()); } 
+        iv_ruleModelProperty=ruleModelProperty 
+        { $current=$iv_ruleModelProperty.current.getText(); }  
+        EOF 
+;
+
+// Rule ModelProperty
+ruleModelProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Property' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getModelPropertyAccess().getPropertyKeyword_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_1()); 
+    }
+    this_OneModelProperty_1=ruleOneModelProperty    {
+               $current.merge(this_OneModelProperty_1);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getModelPropertyAccess().getCommaKeyword_2_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_2_1()); 
+    }
+    this_OneModelProperty_3=ruleOneModelProperty    {
+               $current.merge(this_OneModelProperty_3);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleOneModelProperty
+entryRuleOneModelProperty returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getOneModelPropertyRule()); } 
+        iv_ruleOneModelProperty=ruleOneModelProperty 
+        { $current=$iv_ruleOneModelProperty.current.getText(); }  
+        EOF 
+;
+
+// Rule OneModelProperty
+ruleOneModelProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((    this_STRING_0=RULE_STRING    {
+               $current.merge(this_STRING_0);
+    }
+
+    { 
+    newLeafNode(this_STRING_0, grammarAccess.getOneModelPropertyAccess().getSTRINGTerminalRuleCall_0_0()); 
+    }
+
+    |    this_INT_1=RULE_INT    {
+               $current.merge(this_INT_1);
+    }
+
+    { 
+    newLeafNode(this_INT_1, grammarAccess.getOneModelPropertyAccess().getINTTerminalRuleCall_0_1()); 
+    }
+)
+       kw=':' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOneModelPropertyAccess().getColonKeyword_1()); 
+    }
+    this_NemoId_3=RULE_NEMOID    {
+               $current.merge(this_NemoId_3);
+    }
+
+    { 
+    newLeafNode(this_NemoId_3, grammarAccess.getOneModelPropertyAccess().getNemoIdTerminalRuleCall_2()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleNewObj
+entryRuleNewObj returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getNewObjRule()); } 
+        iv_ruleNewObj=ruleNewObj 
+        { $current=$iv_ruleNewObj.current.getText(); }  
+        EOF 
+;
+
+// Rule NewObj
+ruleNewObj returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='CREATE' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getNewObjAccess().getCREATEKeyword_0()); 
+    }
+
+    |
+       kw='IMPORT' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getNewObjAccess().getIMPORTKeyword_1()); 
+    }
+)
+    ;
+
+
+
+
+
+RULE_IPV4_SUB : ('0'..'9'|'1'..'9' '0'..'9'|'1' '0'..'9' '0'..'9'|'2' '0'..'4' '0'..'9'|'25' '0'..'5');
+
+RULE_NEMOID : ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'-'|'0'..'9')*;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.tokens b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.tokens
new file mode 100644 (file)
index 0000000..3288a26
--- /dev/null
@@ -0,0 +1,55 @@
+','=14
+'.'=16
+':'=27
+';'=15
+'Action'=31
+'CREATE'=17
+'Condition'=32
+'Connection'=23
+'Contain'=20
+'DELETE'=22
+'Endnodes'=24
+'Engines:'=13
+'Flow'=25
+'IMPORT'=35
+'Match'=26
+'Node'=18
+'Operation'=28
+'Priority'=29
+'Property '=33
+'Property'=34
+'Target'=30
+'Type'=19
+'UPDATE'=21
+RULE_ANY_OTHER=12
+RULE_ID=8
+RULE_INT=7
+RULE_IPV4_SUB=4
+RULE_ML_COMMENT=9
+RULE_NEMOID=6
+RULE_SL_COMMENT=10
+RULE_STRING=5
+RULE_WS=11
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer$DFA1.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer$DFA1.class
new file mode 100644 (file)
index 0000000..21adc03
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer$DFA1.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer$DFA14.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer$DFA14.class
new file mode 100644 (file)
index 0000000..35409bf
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer$DFA14.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer.class
new file mode 100644 (file)
index 0000000..ff23982
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser$DFA2.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser$DFA2.class
new file mode 100644 (file)
index 0000000..496305b
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser$DFA2.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser.class
new file mode 100644 (file)
index 0000000..e3cbb92
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.java._trace
new file mode 100644 (file)
index 0000000..291376c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.xtendbin
new file mode 100644 (file)
index 0000000..39cb6b2
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.class
new file mode 100644 (file)
index 0000000..dfe0f8f
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.xtend
new file mode 100644 (file)
index 0000000..896c743
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.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 EditorScopeProvider extends org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider {
+
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSemanticSequencer.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSemanticSequencer.class
new file mode 100644 (file)
index 0000000..ce6ad21
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSemanticSequencer.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSyntacticSequencer.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSyntacticSequencer.class
new file mode 100644 (file)
index 0000000..d9d230e
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSyntacticSequencer.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConditionElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConditionElements.class
new file mode 100644 (file)
index 0000000..290dbe5
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConditionElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConnectionElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConnectionElements.class
new file mode 100644 (file)
index 0000000..38e44c9
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConnectionElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConnectionUpdateElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConnectionUpdateElements.class
new file mode 100644 (file)
index 0000000..234289d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ConnectionUpdateElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$FlowElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$FlowElements.class
new file mode 100644 (file)
index 0000000..cccfbc8
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$FlowElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$FlowUpdateElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$FlowUpdateElements.class
new file mode 100644 (file)
index 0000000..5d2a66c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$FlowUpdateElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$Ipv4Elements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$Ipv4Elements.class
new file mode 100644 (file)
index 0000000..09b2a30
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$Ipv4Elements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$MatchElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$MatchElements.class
new file mode 100644 (file)
index 0000000..958e70b
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$MatchElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$MatchesElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$MatchesElements.class
new file mode 100644 (file)
index 0000000..3f185a6
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$MatchesElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ModelElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ModelElements.class
new file mode 100644 (file)
index 0000000..4cb484c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ModelElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ModelPropertyElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ModelPropertyElements.class
new file mode 100644 (file)
index 0000000..4f834cf
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$ModelPropertyElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NewObjElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NewObjElements.class
new file mode 100644 (file)
index 0000000..44433b9
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NewObjElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeElements.class
new file mode 100644 (file)
index 0000000..868ca02
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeModelElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeModelElements.class
new file mode 100644 (file)
index 0000000..f5e4cc3
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeModelElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeOperatingElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeOperatingElements.class
new file mode 100644 (file)
index 0000000..cef88e9
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$NodeOperatingElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OneModelPropertyElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OneModelPropertyElements.class
new file mode 100644 (file)
index 0000000..709bd8c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OneModelPropertyElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OnePropertyElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OnePropertyElements.class
new file mode 100644 (file)
index 0000000..5b8bbbf
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OnePropertyElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OperationElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OperationElements.class
new file mode 100644 (file)
index 0000000..7115348
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$OperationElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$PropertyElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$PropertyElements.class
new file mode 100644 (file)
index 0000000..cd49235
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$PropertyElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$SenEnginesElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$SenEnginesElements.class
new file mode 100644 (file)
index 0000000..a80062b
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$SenEnginesElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$SentenceElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$SentenceElements.class
new file mode 100644 (file)
index 0000000..cb457a2
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$SentenceElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$UserElements.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$UserElements.class
new file mode 100644 (file)
index 0000000..8d9be58
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess$UserElements.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess.class
new file mode 100644 (file)
index 0000000..c0762fe
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.java._trace
new file mode 100644 (file)
index 0000000..569a20a
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.xtendbin
new file mode 100644 (file)
index 0000000..7e316c5
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/AbstractEditorValidator.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/AbstractEditorValidator.class
new file mode 100644 (file)
index 0000000..972c9b1
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/AbstractEditorValidator.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.class b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.class
new file mode 100644 (file)
index 0000000..88ef339
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/bin/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.xtend
new file mode 100644 (file)
index 0000000..458ab25
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.validation
+
+//import org.eclipse.xtext.validation.Check
+
+/**
+ * This class contains custom validation rules. 
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
+ */
+class EditorValidator extends AbstractEditorValidator {
+
+//  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', 
+//                                     MyDslPackage.Literals.GREETING__NAME,
+//                                     INVALID_NAME)
+//             }
+//     }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/build.properties b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/build.properties
new file mode 100644 (file)
index 0000000..f9e12db
--- /dev/null
@@ -0,0 +1,15 @@
+source.. = src/,\
+           src-gen/,\
+           xtend-gen/
+bin.includes = model/,\
+               META-INF/,\
+               .,\
+               plugin.xml
+additional.bundles = org.eclipse.xtext.xbase,\
+                     org.eclipse.xtext.generator,\
+                     org.apache.commons.logging,\
+                     org.eclipse.emf.codegen.ecore,\
+                     org.eclipse.emf.mwe.utils,\
+                     org.eclipse.emf.mwe2.launch,\
+                     org.eclipse.xtext.common.types,\
+                     org.objectweb.asm
\ No newline at end of file
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/model/generated/Editor.ecore b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/model/generated/Editor.ecore
new file mode 100644 (file)
index 0000000..54a9232
--- /dev/null
@@ -0,0 +1,48 @@
+<?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="editor" nsURI="http://www.huawei.com/nemo/Editor" nsPrefix="editor">
+  <eClassifiers xsi:type="ecore:EClass" name="Model">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="sentences" upperBound="-1"
+        eType="#//Sentence" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Sentence"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//Sentence">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" unique="false" upperBound="-1"
+        eType="#//Node"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="NodeModel">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="NodeOperating" eSuperTypes="#//Sentence">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nodename" unique="false"
+        upperBound="-1" eType="#//Node"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" unique="false" upperBound="-1"
+        eType="#//Node"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Connection" eSuperTypes="#//Sentence">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="endnode" unique="false"
+        upperBound="-1" eType="#//Node"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConnectionUpdate" eSuperTypes="#//Sentence">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="connectionname" unique="false"
+        upperBound="-1" eType="#//Connection"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="endnode" unique="false"
+        upperBound="-1" eType="#//Node"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Flow" eSuperTypes="#//Sentence">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="FlowUpdate" eSuperTypes="#//Sentence">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="flowId" unique="false"
+        upperBound="-1" eType="#//Flow"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//Sentence">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetId" eType="#//Flow"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetNode" eType="#//Node"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/model/generated/Editor.genmodel b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/model/generated/Editor.genmodel
new file mode 100644 (file)
index 0000000..6a2c563
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen"
+    editDirectory="/org.opendaylight.nemo.tool.eclipse.plugin.editor.edit/src" editorDirectory="/org.opendaylight.nemo.tool.eclipse.plugin.editor.editor/src"
+    modelPluginID="org.opendaylight.nemo.tool.eclipse.plugin.editor" forceOverwrite="true"
+    modelName="Editor" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    complianceLevel="6.0" copyrightFields="false" editPluginID="org.opendaylight.nemo.tool.eclipse.plugin.editor.edit"
+    editorPluginID="org.opendaylight.nemo.tool.eclipse.plugin.editor.editor" runtimeVersion="2.11">
+  <genPackages prefix="Editor" basePackage="org.opendaylight.nemo.tool.eclipse.plugin"
+      disposableProviderFactory="true" fileExtensions="nemo" ecorePackage="Editor.ecore#/">
+    <genClasses ecoreClass="Editor.ecore#//Model">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Editor.ecore#//Model/sentences"/>
+    </genClasses>
+    <genClasses ecoreClass="Editor.ecore#//Sentence"/>
+    <genClasses ecoreClass="Editor.ecore#//Node">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Editor.ecore#//Node/name"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Editor.ecore#//Node/nodes"/>
+    </genClasses>
+    <genClasses ecoreClass="Editor.ecore#//NodeModel">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Editor.ecore#//NodeModel/name"/>
+    </genClasses>
+    <genClasses ecoreClass="Editor.ecore#//NodeOperating">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Editor.ecore#//NodeOperating/nodename"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Editor.ecore#//NodeOperating/nodes"/>
+    </genClasses>
+    <genClasses ecoreClass="Editor.ecore#//Connection">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Editor.ecore#//Connection/name"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Editor.ecore#//Connection/endnode"/>
+    </genClasses>
+    <genClasses ecoreClass="Editor.ecore#//ConnectionUpdate">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Editor.ecore#//ConnectionUpdate/connectionname"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Editor.ecore#//ConnectionUpdate/endnode"/>
+    </genClasses>
+    <genClasses ecoreClass="Editor.ecore#//Flow">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Editor.ecore#//Flow/name"/>
+    </genClasses>
+    <genClasses ecoreClass="Editor.ecore#//FlowUpdate">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Editor.ecore#//FlowUpdate/flowId"/>
+    </genClasses>
+    <genClasses ecoreClass="Editor.ecore#//Operation">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Editor.ecore#//Operation/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Editor.ecore#//Operation/value"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Editor.ecore#//Operation/targetId"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Editor.ecore#//Operation/targetNode"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/plugin.xml b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/plugin.xml
new file mode 100644 (file)
index 0000000..8caf06b
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+  <extension point="org.eclipse.emf.ecore.generated_package">
+    <package 
+       uri = "http://www.huawei.com/nemo/Editor" 
+       class = "org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage"
+       genModel = "model/generated/Editor.genmodel" /> 
+       
+  </extension>
+
+
+
+</plugin>
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/AbstractEditorRuntimeModule.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/AbstractEditorRuntimeModule.java
new file mode 100644 (file)
index 0000000..bea97be
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.opendaylight.nemo.tool.eclipse.plugin.EditorRuntimeModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractEditorRuntimeModule extends org.eclipse.xtext.common.types.DefaultCommonTypesRuntimeModule {
+
+       protected Properties properties = null;
+
+       @Override
+       public void configure(Binder binder) {
+               properties = tryBindProperties(binder, "org/opendaylight/nemo/tool/eclipse/plugin/Editor.properties");
+               super.configure(binder);
+       }
+       
+       public void configureLanguageName(Binder binder) {
+               binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.opendaylight.nemo.tool.eclipse.plugin.Editor");
+       }
+       
+       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("nemo");
+       }
+       
+       // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+       public java.lang.ClassLoader bindClassLoaderToInstance() {
+               return getClass().getClassLoader();
+       }
+
+       // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+       public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+       public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.serializer.EditorSemanticSequencer.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+       public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.serializer.EditorSyntacticSequencer.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+       public Class<? extends org.eclipse.xtext.serializer.ISerializer> bindISerializer() {
+               return org.eclipse.xtext.serializer.impl.Serializer.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.EditorParser.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+               return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.EditorAntlrTokenFileProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.internal.InternalEditorLexer.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public com.google.inject.Provider<org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.internal.InternalEditorLexer> provideInternalEditorLexer() {
+               return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.internal.InternalEditorLexer.class);
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public void configureRuntimeLexer(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.internal.InternalEditorLexer.class);
+       }
+
+       // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+       public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+               return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.validation.ValidatorFragment
+       @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.opendaylight.nemo.tool.eclipse.plugin.validation.EditorValidator> bindEditorValidator() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.validation.EditorValidator.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+       public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.scoping.EditorScopeProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+       public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider.class);
+       }
+
+       // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+       public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+               binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+       }
+
+       // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+       public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+               return org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+       public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() {
+               return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+       public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() {
+               return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+       public void configureIResourceDescriptions(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+       }
+
+       // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+       public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+               binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+       }
+
+       // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+       public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.generator.EditorGenerator.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+       public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+               return org.opendaylight.nemo.tool.eclipse.plugin.formatting.EditorFormatter.class;
+       }
+
+       // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+       public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+               return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class;
+       }
+
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtextbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtextbin
new file mode 100644 (file)
index 0000000..2ea7434
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtextbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetupGenerated.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetupGenerated.java
new file mode 100644 (file)
index 0000000..3a2dc3c
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.emf.ecore.resource.Resource;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+@SuppressWarnings("all")
+public class EditorStandaloneSetupGenerated implements ISetup {
+
+       @Override
+       public Injector createInjectorAndDoEMFRegistration() {
+               org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup();
+
+               Injector injector = createInjector();
+               register(injector);
+               return injector;
+       }
+       
+       public Injector createInjector() {
+               return Guice.createInjector(new org.opendaylight.nemo.tool.eclipse.plugin.EditorRuntimeModule());
+       }
+       
+       public void register(Injector injector) {
+       if (!EPackage.Registry.INSTANCE.containsKey("http://www.huawei.com/nemo/Editor")) {
+               EPackage.Registry.INSTANCE.put("http://www.huawei.com/nemo/Editor", org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage.eINSTANCE);
+       }
+
+               org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+               org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
+               Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("nemo", resourceFactory);
+               org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("nemo", serviceProvider);
+               
+
+
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Connection.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Connection.java
new file mode 100644 (file)
index 0000000..8896e29
--- /dev/null
@@ -0,0 +1,68 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Connection</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection#getName <em>Name</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection#getEndnode <em>Endnode</em>}</li>
+ * </ul>
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getConnection()
+ * @model
+ * @generated
+ */
+public interface Connection extends Sentence
+{
+  /**
+   * Returns the value of the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Name</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Name</em>' attribute.
+   * @see #setName(String)
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getConnection_Name()
+   * @model
+   * @generated
+   */
+  String getName();
+
+  /**
+   * Sets the value of the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection#getName <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Name</em>' attribute.
+   * @see #getName()
+   * @generated
+   */
+  void setName(String value);
+
+  /**
+   * Returns the value of the '<em><b>Endnode</b></em>' reference list.
+   * The list contents are of type {@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Endnode</em>' reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Endnode</em>' reference list.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getConnection_Endnode()
+   * @model
+   * @generated
+   */
+  EList<Node> getEndnode();
+
+} // Connection
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/ConnectionUpdate.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/ConnectionUpdate.java
new file mode 100644 (file)
index 0000000..f2abeee
--- /dev/null
@@ -0,0 +1,58 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Connection Update</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate#getConnectionname <em>Connectionname</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate#getEndnode <em>Endnode</em>}</li>
+ * </ul>
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getConnectionUpdate()
+ * @model
+ * @generated
+ */
+public interface ConnectionUpdate extends Sentence
+{
+  /**
+   * Returns the value of the '<em><b>Connectionname</b></em>' reference list.
+   * The list contents are of type {@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Connectionname</em>' reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Connectionname</em>' reference list.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getConnectionUpdate_Connectionname()
+   * @model
+   * @generated
+   */
+  EList<Connection> getConnectionname();
+
+  /**
+   * Returns the value of the '<em><b>Endnode</b></em>' reference list.
+   * The list contents are of type {@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Endnode</em>' reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Endnode</em>' reference list.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getConnectionUpdate_Endnode()
+   * @model
+   * @generated
+   */
+  EList<Node> getEndnode();
+
+} // ConnectionUpdate
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorFactory.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorFactory.java
new file mode 100644 (file)
index 0000000..78e1d7a
--- /dev/null
@@ -0,0 +1,124 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+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.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage
+ * @generated
+ */
+public interface EditorFactory extends EFactory
+{
+  /**
+   * The singleton instance of the factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  EditorFactory eINSTANCE = org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorFactoryImpl.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>Sentence</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Sentence</em>'.
+   * @generated
+   */
+  Sentence createSentence();
+
+  /**
+   * Returns a new object of class '<em>Node</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Node</em>'.
+   * @generated
+   */
+  Node createNode();
+
+  /**
+   * Returns a new object of class '<em>Node Model</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Node Model</em>'.
+   * @generated
+   */
+  NodeModel createNodeModel();
+
+  /**
+   * Returns a new object of class '<em>Node Operating</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Node Operating</em>'.
+   * @generated
+   */
+  NodeOperating createNodeOperating();
+
+  /**
+   * Returns a new object of class '<em>Connection</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Connection</em>'.
+   * @generated
+   */
+  Connection createConnection();
+
+  /**
+   * Returns a new object of class '<em>Connection Update</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Connection Update</em>'.
+   * @generated
+   */
+  ConnectionUpdate createConnectionUpdate();
+
+  /**
+   * Returns a new object of class '<em>Flow</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Flow</em>'.
+   * @generated
+   */
+  Flow createFlow();
+
+  /**
+   * Returns a new object of class '<em>Flow Update</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Flow Update</em>'.
+   * @generated
+   */
+  FlowUpdate createFlowUpdate();
+
+  /**
+   * Returns a new object of class '<em>Operation</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Operation</em>'.
+   * @generated
+   */
+  Operation createOperation();
+
+  /**
+   * Returns the package supported by this factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the package supported by this factory.
+   * @generated
+   */
+  EditorPackage getEditorPackage();
+
+} //EditorFactory
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/EditorPackage.java
new file mode 100644 (file)
index 0000000..f536dde
--- /dev/null
@@ -0,0 +1,923 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+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.opendaylight.nemo.tool.eclipse.plugin.editor.EditorFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface EditorPackage extends EPackage
+{
+  /**
+   * The package name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  String eNAME = "editor";
+
+  /**
+   * The package namespace URI.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  String eNS_URI = "http://www.huawei.com/nemo/Editor";
+
+  /**
+   * The package namespace name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  String eNS_PREFIX = "editor";
+
+  /**
+   * The singleton instance of the package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  EditorPackage eINSTANCE = org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl.init();
+
+  /**
+   * The meta object id for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ModelImpl <em>Model</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ModelImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getModel()
+   * @generated
+   */
+  int MODEL = 0;
+
+  /**
+   * The feature id for the '<em><b>Sentences</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MODEL__SENTENCES = 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.opendaylight.nemo.tool.eclipse.plugin.editor.impl.SentenceImpl <em>Sentence</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.SentenceImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getSentence()
+   * @generated
+   */
+  int SENTENCE = 1;
+
+  /**
+   * The number of structural features of the '<em>Sentence</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int SENTENCE_FEATURE_COUNT = 0;
+
+  /**
+   * The meta object id for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeImpl <em>Node</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getNode()
+   * @generated
+   */
+  int NODE = 2;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NODE__NAME = SENTENCE_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Nodes</b></em>' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NODE__NODES = SENTENCE_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Node</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NODE_FEATURE_COUNT = SENTENCE_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeModelImpl <em>Node Model</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeModelImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getNodeModel()
+   * @generated
+   */
+  int NODE_MODEL = 3;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NODE_MODEL__NAME = 0;
+
+  /**
+   * The number of structural features of the '<em>Node Model</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NODE_MODEL_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeOperatingImpl <em>Node Operating</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeOperatingImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getNodeOperating()
+   * @generated
+   */
+  int NODE_OPERATING = 4;
+
+  /**
+   * The feature id for the '<em><b>Nodename</b></em>' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NODE_OPERATING__NODENAME = SENTENCE_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Nodes</b></em>' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NODE_OPERATING__NODES = SENTENCE_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Node Operating</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int NODE_OPERATING_FEATURE_COUNT = SENTENCE_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionImpl <em>Connection</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getConnection()
+   * @generated
+   */
+  int CONNECTION = 5;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int CONNECTION__NAME = SENTENCE_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Endnode</b></em>' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int CONNECTION__ENDNODE = SENTENCE_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Connection</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int CONNECTION_FEATURE_COUNT = SENTENCE_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionUpdateImpl <em>Connection Update</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionUpdateImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getConnectionUpdate()
+   * @generated
+   */
+  int CONNECTION_UPDATE = 6;
+
+  /**
+   * The feature id for the '<em><b>Connectionname</b></em>' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int CONNECTION_UPDATE__CONNECTIONNAME = SENTENCE_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Endnode</b></em>' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int CONNECTION_UPDATE__ENDNODE = SENTENCE_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Connection Update</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int CONNECTION_UPDATE_FEATURE_COUNT = SENTENCE_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowImpl <em>Flow</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getFlow()
+   * @generated
+   */
+  int FLOW = 7;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW__NAME = SENTENCE_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>Flow</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_FEATURE_COUNT = SENTENCE_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowUpdateImpl <em>Flow Update</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowUpdateImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getFlowUpdate()
+   * @generated
+   */
+  int FLOW_UPDATE = 8;
+
+  /**
+   * The feature id for the '<em><b>Flow Id</b></em>' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_UPDATE__FLOW_ID = SENTENCE_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>Flow Update</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_UPDATE_FEATURE_COUNT = SENTENCE_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.OperationImpl <em>Operation</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.OperationImpl
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getOperation()
+   * @generated
+   */
+  int OPERATION = 9;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OPERATION__NAME = SENTENCE_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OPERATION__VALUE = SENTENCE_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>Target Id</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OPERATION__TARGET_ID = SENTENCE_FEATURE_COUNT + 2;
+
+  /**
+   * The feature id for the '<em><b>Target Node</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OPERATION__TARGET_NODE = SENTENCE_FEATURE_COUNT + 3;
+
+  /**
+   * The number of structural features of the '<em>Operation</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int OPERATION_FEATURE_COUNT = SENTENCE_FEATURE_COUNT + 4;
+
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Model <em>Model</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Model</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Model
+   * @generated
+   */
+  EClass getModel();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Model#getSentences <em>Sentences</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Sentences</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Model#getSentences()
+   * @see #getModel()
+   * @generated
+   */
+  EReference getModel_Sentences();
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Sentence <em>Sentence</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Sentence</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Sentence
+   * @generated
+   */
+  EClass getSentence();
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node <em>Node</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Node</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Node
+   * @generated
+   */
+  EClass getNode();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node#getName <em>Name</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Name</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Node#getName()
+   * @see #getNode()
+   * @generated
+   */
+  EAttribute getNode_Name();
+
+  /**
+   * Returns the meta object for the reference list '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node#getNodes <em>Nodes</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference list '<em>Nodes</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Node#getNodes()
+   * @see #getNode()
+   * @generated
+   */
+  EReference getNode_Nodes();
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel <em>Node Model</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Node Model</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel
+   * @generated
+   */
+  EClass getNodeModel();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel#getName <em>Name</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Name</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel#getName()
+   * @see #getNodeModel()
+   * @generated
+   */
+  EAttribute getNodeModel_Name();
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating <em>Node Operating</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Node Operating</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating
+   * @generated
+   */
+  EClass getNodeOperating();
+
+  /**
+   * Returns the meta object for the reference list '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating#getNodename <em>Nodename</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference list '<em>Nodename</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating#getNodename()
+   * @see #getNodeOperating()
+   * @generated
+   */
+  EReference getNodeOperating_Nodename();
+
+  /**
+   * Returns the meta object for the reference list '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating#getNodes <em>Nodes</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference list '<em>Nodes</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating#getNodes()
+   * @see #getNodeOperating()
+   * @generated
+   */
+  EReference getNodeOperating_Nodes();
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection <em>Connection</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Connection</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection
+   * @generated
+   */
+  EClass getConnection();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection#getName <em>Name</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Name</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection#getName()
+   * @see #getConnection()
+   * @generated
+   */
+  EAttribute getConnection_Name();
+
+  /**
+   * Returns the meta object for the reference list '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection#getEndnode <em>Endnode</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference list '<em>Endnode</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection#getEndnode()
+   * @see #getConnection()
+   * @generated
+   */
+  EReference getConnection_Endnode();
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate <em>Connection Update</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Connection Update</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate
+   * @generated
+   */
+  EClass getConnectionUpdate();
+
+  /**
+   * Returns the meta object for the reference list '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate#getConnectionname <em>Connectionname</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference list '<em>Connectionname</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate#getConnectionname()
+   * @see #getConnectionUpdate()
+   * @generated
+   */
+  EReference getConnectionUpdate_Connectionname();
+
+  /**
+   * Returns the meta object for the reference list '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate#getEndnode <em>Endnode</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference list '<em>Endnode</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate#getEndnode()
+   * @see #getConnectionUpdate()
+   * @generated
+   */
+  EReference getConnectionUpdate_Endnode();
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow <em>Flow</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Flow</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow
+   * @generated
+   */
+  EClass getFlow();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow#getName <em>Name</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Name</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow#getName()
+   * @see #getFlow()
+   * @generated
+   */
+  EAttribute getFlow_Name();
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate <em>Flow Update</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Flow Update</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate
+   * @generated
+   */
+  EClass getFlowUpdate();
+
+  /**
+   * Returns the meta object for the reference list '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate#getFlowId <em>Flow Id</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference list '<em>Flow Id</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate#getFlowId()
+   * @see #getFlowUpdate()
+   * @generated
+   */
+  EReference getFlowUpdate_FlowId();
+
+  /**
+   * Returns the meta object for class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation <em>Operation</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Operation</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation
+   * @generated
+   */
+  EClass getOperation();
+
+  /**
+   * Returns the meta object for the attribute '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getName <em>Name</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Name</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getName()
+   * @see #getOperation()
+   * @generated
+   */
+  EAttribute getOperation_Name();
+
+  /**
+   * Returns the meta object for the attribute list '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute list '<em>Value</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getValue()
+   * @see #getOperation()
+   * @generated
+   */
+  EAttribute getOperation_Value();
+
+  /**
+   * Returns the meta object for the reference '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getTargetId <em>Target Id</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Target Id</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getTargetId()
+   * @see #getOperation()
+   * @generated
+   */
+  EReference getOperation_TargetId();
+
+  /**
+   * Returns the meta object for the reference '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getTargetNode <em>Target Node</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Target Node</em>'.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getTargetNode()
+   * @see #getOperation()
+   * @generated
+   */
+  EReference getOperation_TargetNode();
+
+  /**
+   * 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
+   */
+  EditorFactory getEditorFactory();
+
+  /**
+   * <!-- 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.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ModelImpl <em>Model</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ModelImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getModel()
+     * @generated
+     */
+    EClass MODEL = eINSTANCE.getModel();
+
+    /**
+     * The meta object literal for the '<em><b>Sentences</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference MODEL__SENTENCES = eINSTANCE.getModel_Sentences();
+
+    /**
+     * The meta object literal for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.SentenceImpl <em>Sentence</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.SentenceImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getSentence()
+     * @generated
+     */
+    EClass SENTENCE = eINSTANCE.getSentence();
+
+    /**
+     * The meta object literal for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeImpl <em>Node</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getNode()
+     * @generated
+     */
+    EClass NODE = eINSTANCE.getNode();
+
+    /**
+     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute NODE__NAME = eINSTANCE.getNode_Name();
+
+    /**
+     * The meta object literal for the '<em><b>Nodes</b></em>' reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference NODE__NODES = eINSTANCE.getNode_Nodes();
+
+    /**
+     * The meta object literal for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeModelImpl <em>Node Model</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeModelImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getNodeModel()
+     * @generated
+     */
+    EClass NODE_MODEL = eINSTANCE.getNodeModel();
+
+    /**
+     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute NODE_MODEL__NAME = eINSTANCE.getNodeModel_Name();
+
+    /**
+     * The meta object literal for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeOperatingImpl <em>Node Operating</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeOperatingImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getNodeOperating()
+     * @generated
+     */
+    EClass NODE_OPERATING = eINSTANCE.getNodeOperating();
+
+    /**
+     * The meta object literal for the '<em><b>Nodename</b></em>' reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference NODE_OPERATING__NODENAME = eINSTANCE.getNodeOperating_Nodename();
+
+    /**
+     * The meta object literal for the '<em><b>Nodes</b></em>' reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference NODE_OPERATING__NODES = eINSTANCE.getNodeOperating_Nodes();
+
+    /**
+     * The meta object literal for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionImpl <em>Connection</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getConnection()
+     * @generated
+     */
+    EClass CONNECTION = eINSTANCE.getConnection();
+
+    /**
+     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute CONNECTION__NAME = eINSTANCE.getConnection_Name();
+
+    /**
+     * The meta object literal for the '<em><b>Endnode</b></em>' reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference CONNECTION__ENDNODE = eINSTANCE.getConnection_Endnode();
+
+    /**
+     * The meta object literal for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionUpdateImpl <em>Connection Update</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionUpdateImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getConnectionUpdate()
+     * @generated
+     */
+    EClass CONNECTION_UPDATE = eINSTANCE.getConnectionUpdate();
+
+    /**
+     * The meta object literal for the '<em><b>Connectionname</b></em>' reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference CONNECTION_UPDATE__CONNECTIONNAME = eINSTANCE.getConnectionUpdate_Connectionname();
+
+    /**
+     * The meta object literal for the '<em><b>Endnode</b></em>' reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference CONNECTION_UPDATE__ENDNODE = eINSTANCE.getConnectionUpdate_Endnode();
+
+    /**
+     * The meta object literal for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowImpl <em>Flow</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getFlow()
+     * @generated
+     */
+    EClass FLOW = eINSTANCE.getFlow();
+
+    /**
+     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute FLOW__NAME = eINSTANCE.getFlow_Name();
+
+    /**
+     * The meta object literal for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowUpdateImpl <em>Flow Update</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowUpdateImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getFlowUpdate()
+     * @generated
+     */
+    EClass FLOW_UPDATE = eINSTANCE.getFlowUpdate();
+
+    /**
+     * The meta object literal for the '<em><b>Flow Id</b></em>' reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference FLOW_UPDATE__FLOW_ID = eINSTANCE.getFlowUpdate_FlowId();
+
+    /**
+     * The meta object literal for the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.OperationImpl <em>Operation</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.OperationImpl
+     * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.EditorPackageImpl#getOperation()
+     * @generated
+     */
+    EClass OPERATION = eINSTANCE.getOperation();
+
+    /**
+     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute OPERATION__NAME = eINSTANCE.getOperation_Name();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute OPERATION__VALUE = eINSTANCE.getOperation_Value();
+
+    /**
+     * The meta object literal for the '<em><b>Target Id</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference OPERATION__TARGET_ID = eINSTANCE.getOperation_TargetId();
+
+    /**
+     * The meta object literal for the '<em><b>Target Node</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference OPERATION__TARGET_NODE = eINSTANCE.getOperation_TargetNode();
+
+  }
+
+} //EditorPackage
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Flow.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Flow.java
new file mode 100644 (file)
index 0000000..2575270
--- /dev/null
@@ -0,0 +1,50 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flow</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getFlow()
+ * @model
+ * @generated
+ */
+public interface Flow extends Sentence
+{
+  /**
+   * Returns the value of the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Name</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Name</em>' attribute.
+   * @see #setName(String)
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getFlow_Name()
+   * @model
+   * @generated
+   */
+  String getName();
+
+  /**
+   * Sets the value of the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow#getName <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Name</em>' attribute.
+   * @see #getName()
+   * @generated
+   */
+  void setName(String value);
+
+} // Flow
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/FlowUpdate.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/FlowUpdate.java
new file mode 100644 (file)
index 0000000..5af4fae
--- /dev/null
@@ -0,0 +1,41 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flow Update</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate#getFlowId <em>Flow Id</em>}</li>
+ * </ul>
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getFlowUpdate()
+ * @model
+ * @generated
+ */
+public interface FlowUpdate extends Sentence
+{
+  /**
+   * Returns the value of the '<em><b>Flow Id</b></em>' reference list.
+   * The list contents are of type {@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Flow Id</em>' reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Flow Id</em>' reference list.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getFlowUpdate_FlowId()
+   * @model
+   * @generated
+   */
+  EList<Flow> getFlowId();
+
+} // FlowUpdate
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Model.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Model.java
new file mode 100644 (file)
index 0000000..fcb8f14
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+import org.eclipse.emf.common.util.EList;
+
+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.opendaylight.nemo.tool.eclipse.plugin.editor.Model#getSentences <em>Sentences</em>}</li>
+ * </ul>
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Sentences</b></em>' containment reference list.
+   * The list contents are of type {@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Sentence}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Sentences</em>' containment reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Sentences</em>' containment reference list.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getModel_Sentences()
+   * @model containment="true"
+   * @generated
+   */
+  EList<Sentence> getSentences();
+
+} // Model
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Node.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Node.java
new file mode 100644 (file)
index 0000000..d9334fc
--- /dev/null
@@ -0,0 +1,68 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node#getName <em>Name</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node#getNodes <em>Nodes</em>}</li>
+ * </ul>
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getNode()
+ * @model
+ * @generated
+ */
+public interface Node extends Sentence
+{
+  /**
+   * Returns the value of the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Name</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Name</em>' attribute.
+   * @see #setName(String)
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getNode_Name()
+   * @model
+   * @generated
+   */
+  String getName();
+
+  /**
+   * Sets the value of the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node#getName <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Name</em>' attribute.
+   * @see #getName()
+   * @generated
+   */
+  void setName(String value);
+
+  /**
+   * Returns the value of the '<em><b>Nodes</b></em>' reference list.
+   * The list contents are of type {@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Nodes</em>' reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Nodes</em>' reference list.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getNode_Nodes()
+   * @model
+   * @generated
+   */
+  EList<Node> getNodes();
+
+} // Node
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeModel.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeModel.java
new file mode 100644 (file)
index 0000000..ffabd10
--- /dev/null
@@ -0,0 +1,51 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Node Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getNodeModel()
+ * @model
+ * @generated
+ */
+public interface NodeModel extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Name</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Name</em>' attribute.
+   * @see #setName(String)
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getNodeModel_Name()
+   * @model
+   * @generated
+   */
+  String getName();
+
+  /**
+   * Sets the value of the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel#getName <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Name</em>' attribute.
+   * @see #getName()
+   * @generated
+   */
+  void setName(String value);
+
+} // NodeModel
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeOperating.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/NodeOperating.java
new file mode 100644 (file)
index 0000000..dfd9385
--- /dev/null
@@ -0,0 +1,58 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Node Operating</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating#getNodename <em>Nodename</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating#getNodes <em>Nodes</em>}</li>
+ * </ul>
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getNodeOperating()
+ * @model
+ * @generated
+ */
+public interface NodeOperating extends Sentence
+{
+  /**
+   * Returns the value of the '<em><b>Nodename</b></em>' reference list.
+   * The list contents are of type {@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Nodename</em>' reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Nodename</em>' reference list.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getNodeOperating_Nodename()
+   * @model
+   * @generated
+   */
+  EList<Node> getNodename();
+
+  /**
+   * Returns the value of the '<em><b>Nodes</b></em>' reference list.
+   * The list contents are of type {@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Nodes</em>' reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Nodes</em>' reference list.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getNodeOperating_Nodes()
+   * @model
+   * @generated
+   */
+  EList<Node> getNodes();
+
+} // NodeOperating
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Operation.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Operation.java
new file mode 100644 (file)
index 0000000..d8a33b6
--- /dev/null
@@ -0,0 +1,122 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Operation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getName <em>Name</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getValue <em>Value</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getTargetId <em>Target Id</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getTargetNode <em>Target Node</em>}</li>
+ * </ul>
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getOperation()
+ * @model
+ * @generated
+ */
+public interface Operation extends Sentence
+{
+  /**
+   * Returns the value of the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Name</em>' attribute isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Name</em>' attribute.
+   * @see #setName(String)
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getOperation_Name()
+   * @model
+   * @generated
+   */
+  String getName();
+
+  /**
+   * Sets the value of the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getName <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Name</em>' attribute.
+   * @see #getName()
+   * @generated
+   */
+  void setName(String value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute list.
+   * The list contents are of type {@link java.lang.Integer}.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Value</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>Value</em>' attribute list.
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getOperation_Value()
+   * @model unique="false"
+   * @generated
+   */
+  EList<Integer> getValue();
+
+  /**
+   * Returns the value of the '<em><b>Target Id</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Target Id</em>' reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Target Id</em>' reference.
+   * @see #setTargetId(Flow)
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getOperation_TargetId()
+   * @model
+   * @generated
+   */
+  Flow getTargetId();
+
+  /**
+   * Sets the value of the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getTargetId <em>Target Id</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Target Id</em>' reference.
+   * @see #getTargetId()
+   * @generated
+   */
+  void setTargetId(Flow value);
+
+  /**
+   * Returns the value of the '<em><b>Target Node</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Target Node</em>' reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Target Node</em>' reference.
+   * @see #setTargetNode(Node)
+   * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getOperation_TargetNode()
+   * @model
+   * @generated
+   */
+  Node getTargetNode();
+
+  /**
+   * Sets the value of the '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation#getTargetNode <em>Target Node</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Target Node</em>' reference.
+   * @see #getTargetNode()
+   * @generated
+   */
+  void setTargetNode(Node value);
+
+} // Operation
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Sentence.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/Sentence.java
new file mode 100644 (file)
index 0000000..a05cdc4
--- /dev/null
@@ -0,0 +1,19 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sentence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#getSentence()
+ * @model
+ * @generated
+ */
+public interface Sentence extends EObject
+{
+} // Sentence
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionImpl.java
new file mode 100644 (file)
index 0000000..97c86c7
--- /dev/null
@@ -0,0 +1,220 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Node;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connection</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionImpl#getEndnode <em>Endnode</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConnectionImpl extends SentenceImpl implements Connection
+{
+  /**
+   * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected static final String NAME_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected String name = NAME_EDEFAULT;
+
+  /**
+   * The cached value of the '{@link #getEndnode() <em>Endnode</em>}' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getEndnode()
+   * @generated
+   * @ordered
+   */
+  protected EList<Node> endnode;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ConnectionImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.CONNECTION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setName(String newName)
+  {
+    String oldName = name;
+    name = newName;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, EditorPackage.CONNECTION__NAME, oldName, name));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Node> getEndnode()
+  {
+    if (endnode == null)
+    {
+      endnode = new EObjectResolvingEList<Node>(Node.class, this, EditorPackage.CONNECTION__ENDNODE);
+    }
+    return endnode;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.CONNECTION__NAME:
+        return getName();
+      case EditorPackage.CONNECTION__ENDNODE:
+        return getEndnode();
+    }
+    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 EditorPackage.CONNECTION__NAME:
+        setName((String)newValue);
+        return;
+      case EditorPackage.CONNECTION__ENDNODE:
+        getEndnode().clear();
+        getEndnode().addAll((Collection<? extends Node>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.CONNECTION__NAME:
+        setName(NAME_EDEFAULT);
+        return;
+      case EditorPackage.CONNECTION__ENDNODE:
+        getEndnode().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.CONNECTION__NAME:
+        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+      case EditorPackage.CONNECTION__ENDNODE:
+        return endnode != null && !endnode.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (name: ");
+    result.append(name);
+    result.append(')');
+    return result.toString();
+  }
+
+} //ConnectionImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionUpdateImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ConnectionUpdateImpl.java
new file mode 100644 (file)
index 0000000..7b0e93b
--- /dev/null
@@ -0,0 +1,182 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Node;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connection Update</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionUpdateImpl#getConnectionname <em>Connectionname</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ConnectionUpdateImpl#getEndnode <em>Endnode</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConnectionUpdateImpl extends SentenceImpl implements ConnectionUpdate
+{
+  /**
+   * The cached value of the '{@link #getConnectionname() <em>Connectionname</em>}' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getConnectionname()
+   * @generated
+   * @ordered
+   */
+  protected EList<Connection> connectionname;
+
+  /**
+   * The cached value of the '{@link #getEndnode() <em>Endnode</em>}' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getEndnode()
+   * @generated
+   * @ordered
+   */
+  protected EList<Node> endnode;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ConnectionUpdateImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.CONNECTION_UPDATE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Connection> getConnectionname()
+  {
+    if (connectionname == null)
+    {
+      connectionname = new EObjectResolvingEList<Connection>(Connection.class, this, EditorPackage.CONNECTION_UPDATE__CONNECTIONNAME);
+    }
+    return connectionname;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Node> getEndnode()
+  {
+    if (endnode == null)
+    {
+      endnode = new EObjectResolvingEList<Node>(Node.class, this, EditorPackage.CONNECTION_UPDATE__ENDNODE);
+    }
+    return endnode;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.CONNECTION_UPDATE__CONNECTIONNAME:
+        return getConnectionname();
+      case EditorPackage.CONNECTION_UPDATE__ENDNODE:
+        return getEndnode();
+    }
+    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 EditorPackage.CONNECTION_UPDATE__CONNECTIONNAME:
+        getConnectionname().clear();
+        getConnectionname().addAll((Collection<? extends Connection>)newValue);
+        return;
+      case EditorPackage.CONNECTION_UPDATE__ENDNODE:
+        getEndnode().clear();
+        getEndnode().addAll((Collection<? extends Node>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.CONNECTION_UPDATE__CONNECTIONNAME:
+        getConnectionname().clear();
+        return;
+      case EditorPackage.CONNECTION_UPDATE__ENDNODE:
+        getEndnode().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.CONNECTION_UPDATE__CONNECTIONNAME:
+        return connectionname != null && !connectionname.isEmpty();
+      case EditorPackage.CONNECTION_UPDATE__ENDNODE:
+        return endnode != null && !endnode.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //ConnectionUpdateImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorFactoryImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorFactoryImpl.java
new file mode 100644 (file)
index 0000000..6307d90
--- /dev/null
@@ -0,0 +1,214 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.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.opendaylight.nemo.tool.eclipse.plugin.editor.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EditorFactoryImpl extends EFactoryImpl implements EditorFactory
+{
+  /**
+   * Creates the default factory implementation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static EditorFactory init()
+  {
+    try
+    {
+      EditorFactory theEditorFactory = (EditorFactory)EPackage.Registry.INSTANCE.getEFactory(EditorPackage.eNS_URI);
+      if (theEditorFactory != null)
+      {
+        return theEditorFactory;
+      }
+    }
+    catch (Exception exception)
+    {
+      EcorePlugin.INSTANCE.log(exception);
+    }
+    return new EditorFactoryImpl();
+  }
+
+  /**
+   * Creates an instance of the factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EditorFactoryImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EObject create(EClass eClass)
+  {
+    switch (eClass.getClassifierID())
+    {
+      case EditorPackage.MODEL: return createModel();
+      case EditorPackage.SENTENCE: return createSentence();
+      case EditorPackage.NODE: return createNode();
+      case EditorPackage.NODE_MODEL: return createNodeModel();
+      case EditorPackage.NODE_OPERATING: return createNodeOperating();
+      case EditorPackage.CONNECTION: return createConnection();
+      case EditorPackage.CONNECTION_UPDATE: return createConnectionUpdate();
+      case EditorPackage.FLOW: return createFlow();
+      case EditorPackage.FLOW_UPDATE: return createFlowUpdate();
+      case EditorPackage.OPERATION: return createOperation();
+      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 Sentence createSentence()
+  {
+    SentenceImpl sentence = new SentenceImpl();
+    return sentence;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Node createNode()
+  {
+    NodeImpl node = new NodeImpl();
+    return node;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NodeModel createNodeModel()
+  {
+    NodeModelImpl nodeModel = new NodeModelImpl();
+    return nodeModel;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NodeOperating createNodeOperating()
+  {
+    NodeOperatingImpl nodeOperating = new NodeOperatingImpl();
+    return nodeOperating;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Connection createConnection()
+  {
+    ConnectionImpl connection = new ConnectionImpl();
+    return connection;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public ConnectionUpdate createConnectionUpdate()
+  {
+    ConnectionUpdateImpl connectionUpdate = new ConnectionUpdateImpl();
+    return connectionUpdate;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Flow createFlow()
+  {
+    FlowImpl flow = new FlowImpl();
+    return flow;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FlowUpdate createFlowUpdate()
+  {
+    FlowUpdateImpl flowUpdate = new FlowUpdateImpl();
+    return flowUpdate;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Operation createOperation()
+  {
+    OperationImpl operation = new OperationImpl();
+    return operation;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EditorPackage getEditorPackage()
+  {
+    return (EditorPackage)getEPackage();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @deprecated
+   * @generated
+   */
+  @Deprecated
+  public static EditorPackage getPackage()
+  {
+    return EditorPackage.eINSTANCE;
+  }
+
+} //EditorFactoryImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorPackageImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/EditorPackageImpl.java
new file mode 100644 (file)
index 0000000..ff6d7bf
--- /dev/null
@@ -0,0 +1,571 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.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.opendaylight.nemo.tool.eclipse.plugin.editor.Connection;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorFactory;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Model;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Node;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Sentence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EditorPackageImpl extends EPackageImpl implements EditorPackage
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass modelEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass sentenceEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass nodeEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass nodeModelEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass nodeOperatingEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass connectionEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass connectionUpdateEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass flowEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass flowUpdateEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass operationEClass = 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.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage#eNS_URI
+   * @see #init()
+   * @generated
+   */
+  private EditorPackageImpl()
+  {
+    super(eNS_URI, EditorFactory.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 EditorPackage#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 EditorPackage init()
+  {
+    if (isInited) return (EditorPackage)EPackage.Registry.INSTANCE.getEPackage(EditorPackage.eNS_URI);
+
+    // Obtain or create and register package
+    EditorPackageImpl theEditorPackage = (EditorPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EditorPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EditorPackageImpl());
+
+    isInited = true;
+
+    // Create package meta-data objects
+    theEditorPackage.createPackageContents();
+
+    // Initialize created meta-data
+    theEditorPackage.initializePackageContents();
+
+    // Mark meta-data to indicate it can't be changed
+    theEditorPackage.freeze();
+
+  
+    // Update the registry and return the package
+    EPackage.Registry.INSTANCE.put(EditorPackage.eNS_URI, theEditorPackage);
+    return theEditorPackage;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getModel()
+  {
+    return modelEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getModel_Sentences()
+  {
+    return (EReference)modelEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getSentence()
+  {
+    return sentenceEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getNode()
+  {
+    return nodeEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getNode_Name()
+  {
+    return (EAttribute)nodeEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getNode_Nodes()
+  {
+    return (EReference)nodeEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getNodeModel()
+  {
+    return nodeModelEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getNodeModel_Name()
+  {
+    return (EAttribute)nodeModelEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getNodeOperating()
+  {
+    return nodeOperatingEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getNodeOperating_Nodename()
+  {
+    return (EReference)nodeOperatingEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getNodeOperating_Nodes()
+  {
+    return (EReference)nodeOperatingEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getConnection()
+  {
+    return connectionEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getConnection_Name()
+  {
+    return (EAttribute)connectionEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getConnection_Endnode()
+  {
+    return (EReference)connectionEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getConnectionUpdate()
+  {
+    return connectionUpdateEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getConnectionUpdate_Connectionname()
+  {
+    return (EReference)connectionUpdateEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getConnectionUpdate_Endnode()
+  {
+    return (EReference)connectionUpdateEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getFlow()
+  {
+    return flowEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getFlow_Name()
+  {
+    return (EAttribute)flowEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getFlowUpdate()
+  {
+    return flowUpdateEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getFlowUpdate_FlowId()
+  {
+    return (EReference)flowUpdateEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EClass getOperation()
+  {
+    return operationEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getOperation_Name()
+  {
+    return (EAttribute)operationEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EAttribute getOperation_Value()
+  {
+    return (EAttribute)operationEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getOperation_TargetId()
+  {
+    return (EReference)operationEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EReference getOperation_TargetNode()
+  {
+    return (EReference)operationEClass.getEStructuralFeatures().get(3);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EditorFactory getEditorFactory()
+  {
+    return (EditorFactory)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__SENTENCES);
+
+    sentenceEClass = createEClass(SENTENCE);
+
+    nodeEClass = createEClass(NODE);
+    createEAttribute(nodeEClass, NODE__NAME);
+    createEReference(nodeEClass, NODE__NODES);
+
+    nodeModelEClass = createEClass(NODE_MODEL);
+    createEAttribute(nodeModelEClass, NODE_MODEL__NAME);
+
+    nodeOperatingEClass = createEClass(NODE_OPERATING);
+    createEReference(nodeOperatingEClass, NODE_OPERATING__NODENAME);
+    createEReference(nodeOperatingEClass, NODE_OPERATING__NODES);
+
+    connectionEClass = createEClass(CONNECTION);
+    createEAttribute(connectionEClass, CONNECTION__NAME);
+    createEReference(connectionEClass, CONNECTION__ENDNODE);
+
+    connectionUpdateEClass = createEClass(CONNECTION_UPDATE);
+    createEReference(connectionUpdateEClass, CONNECTION_UPDATE__CONNECTIONNAME);
+    createEReference(connectionUpdateEClass, CONNECTION_UPDATE__ENDNODE);
+
+    flowEClass = createEClass(FLOW);
+    createEAttribute(flowEClass, FLOW__NAME);
+
+    flowUpdateEClass = createEClass(FLOW_UPDATE);
+    createEReference(flowUpdateEClass, FLOW_UPDATE__FLOW_ID);
+
+    operationEClass = createEClass(OPERATION);
+    createEAttribute(operationEClass, OPERATION__NAME);
+    createEAttribute(operationEClass, OPERATION__VALUE);
+    createEReference(operationEClass, OPERATION__TARGET_ID);
+    createEReference(operationEClass, OPERATION__TARGET_NODE);
+  }
+
+  /**
+   * <!-- 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
+    nodeEClass.getESuperTypes().add(this.getSentence());
+    nodeOperatingEClass.getESuperTypes().add(this.getSentence());
+    connectionEClass.getESuperTypes().add(this.getSentence());
+    connectionUpdateEClass.getESuperTypes().add(this.getSentence());
+    flowEClass.getESuperTypes().add(this.getSentence());
+    flowUpdateEClass.getESuperTypes().add(this.getSentence());
+    operationEClass.getESuperTypes().add(this.getSentence());
+
+    // Initialize classes and features; add operations and parameters
+    initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getModel_Sentences(), this.getSentence(), null, "sentences", 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(sentenceEClass, Sentence.class, "Sentence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getNode_Name(), ecorePackage.getEString(), "name", null, 0, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getNode_Nodes(), this.getNode(), null, "nodes", null, 0, -1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(nodeModelEClass, NodeModel.class, "NodeModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getNodeModel_Name(), ecorePackage.getEString(), "name", null, 0, 1, NodeModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(nodeOperatingEClass, NodeOperating.class, "NodeOperating", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getNodeOperating_Nodename(), this.getNode(), null, "nodename", null, 0, -1, NodeOperating.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getNodeOperating_Nodes(), this.getNode(), null, "nodes", null, 0, -1, NodeOperating.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(connectionEClass, Connection.class, "Connection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getConnection_Name(), ecorePackage.getEString(), "name", null, 0, 1, Connection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getConnection_Endnode(), this.getNode(), null, "endnode", null, 0, -1, Connection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(connectionUpdateEClass, ConnectionUpdate.class, "ConnectionUpdate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getConnectionUpdate_Connectionname(), this.getConnection(), null, "connectionname", null, 0, -1, ConnectionUpdate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getConnectionUpdate_Endnode(), this.getNode(), null, "endnode", null, 0, -1, ConnectionUpdate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(flowEClass, Flow.class, "Flow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getFlow_Name(), ecorePackage.getEString(), "name", null, 0, 1, Flow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(flowUpdateEClass, FlowUpdate.class, "FlowUpdate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getFlowUpdate_FlowId(), this.getFlow(), null, "flowId", null, 0, -1, FlowUpdate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(operationEClass, Operation.class, "Operation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getOperation_Name(), ecorePackage.getEString(), "name", null, 0, 1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getOperation_Value(), ecorePackage.getEInt(), "value", null, 0, -1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getOperation_TargetId(), this.getFlow(), null, "targetId", null, 0, 1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getOperation_TargetNode(), this.getNode(), null, "targetNode", null, 0, 1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    // Create resource
+    createResource(eNS_URI);
+  }
+
+} //EditorPackageImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowImpl.java
new file mode 100644 (file)
index 0000000..53cc04d
--- /dev/null
@@ -0,0 +1,176 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FlowImpl extends SentenceImpl implements Flow
+{
+  /**
+   * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected static final String NAME_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected String name = NAME_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected FlowImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.FLOW;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setName(String newName)
+  {
+    String oldName = name;
+    name = newName;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, EditorPackage.FLOW__NAME, oldName, name));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.FLOW__NAME:
+        return getName();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.FLOW__NAME:
+        setName((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.FLOW__NAME:
+        setName(NAME_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.FLOW__NAME:
+        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (name: ");
+    result.append(name);
+    result.append(')');
+    return result.toString();
+  }
+
+} //FlowImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowUpdateImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/FlowUpdateImpl.java
new file mode 100644 (file)
index 0000000..9d0d8cf
--- /dev/null
@@ -0,0 +1,145 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow Update</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.FlowUpdateImpl#getFlowId <em>Flow Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FlowUpdateImpl extends SentenceImpl implements FlowUpdate
+{
+  /**
+   * The cached value of the '{@link #getFlowId() <em>Flow Id</em>}' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFlowId()
+   * @generated
+   * @ordered
+   */
+  protected EList<Flow> flowId;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected FlowUpdateImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.FLOW_UPDATE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Flow> getFlowId()
+  {
+    if (flowId == null)
+    {
+      flowId = new EObjectResolvingEList<Flow>(Flow.class, this, EditorPackage.FLOW_UPDATE__FLOW_ID);
+    }
+    return flowId;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.FLOW_UPDATE__FLOW_ID:
+        return getFlowId();
+    }
+    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 EditorPackage.FLOW_UPDATE__FLOW_ID:
+        getFlowId().clear();
+        getFlowId().addAll((Collection<? extends Flow>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.FLOW_UPDATE__FLOW_ID:
+        getFlowId().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.FLOW_UPDATE__FLOW_ID:
+        return flowId != null && !flowId.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //FlowUpdateImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ModelImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/ModelImpl.java
new file mode 100644 (file)
index 0000000..3a25058
--- /dev/null
@@ -0,0 +1,167 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Model;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Sentence;
+
+/**
+ * <!-- 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.opendaylight.nemo.tool.eclipse.plugin.editor.impl.ModelImpl#getSentences <em>Sentences</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ModelImpl extends MinimalEObjectImpl.Container implements Model
+{
+  /**
+   * The cached value of the '{@link #getSentences() <em>Sentences</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getSentences()
+   * @generated
+   * @ordered
+   */
+  protected EList<Sentence> sentences;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ModelImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.MODEL;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Sentence> getSentences()
+  {
+    if (sentences == null)
+    {
+      sentences = new EObjectContainmentEList<Sentence>(Sentence.class, this, EditorPackage.MODEL__SENTENCES);
+    }
+    return sentences;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.MODEL__SENTENCES:
+        return ((InternalEList<?>)getSentences()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.MODEL__SENTENCES:
+        return getSentences();
+    }
+    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 EditorPackage.MODEL__SENTENCES:
+        getSentences().clear();
+        getSentences().addAll((Collection<? extends Sentence>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.MODEL__SENTENCES:
+        getSentences().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.MODEL__SENTENCES:
+        return sentences != null && !sentences.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //ModelImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeImpl.java
new file mode 100644 (file)
index 0000000..6821094
--- /dev/null
@@ -0,0 +1,219 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Node;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeImpl#getNodes <em>Nodes</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NodeImpl extends SentenceImpl implements Node
+{
+  /**
+   * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected static final String NAME_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected String name = NAME_EDEFAULT;
+
+  /**
+   * The cached value of the '{@link #getNodes() <em>Nodes</em>}' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getNodes()
+   * @generated
+   * @ordered
+   */
+  protected EList<Node> nodes;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected NodeImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.NODE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setName(String newName)
+  {
+    String oldName = name;
+    name = newName;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, EditorPackage.NODE__NAME, oldName, name));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Node> getNodes()
+  {
+    if (nodes == null)
+    {
+      nodes = new EObjectResolvingEList<Node>(Node.class, this, EditorPackage.NODE__NODES);
+    }
+    return nodes;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE__NAME:
+        return getName();
+      case EditorPackage.NODE__NODES:
+        return getNodes();
+    }
+    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 EditorPackage.NODE__NAME:
+        setName((String)newValue);
+        return;
+      case EditorPackage.NODE__NODES:
+        getNodes().clear();
+        getNodes().addAll((Collection<? extends Node>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE__NAME:
+        setName(NAME_EDEFAULT);
+        return;
+      case EditorPackage.NODE__NODES:
+        getNodes().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE__NAME:
+        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+      case EditorPackage.NODE__NODES:
+        return nodes != null && !nodes.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (name: ");
+    result.append(name);
+    result.append(')');
+    return result.toString();
+  }
+
+} //NodeImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeModelImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeModelImpl.java
new file mode 100644 (file)
index 0000000..c9eb154
--- /dev/null
@@ -0,0 +1,177 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.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.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Node Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeModelImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NodeModelImpl extends MinimalEObjectImpl.Container implements NodeModel
+{
+  /**
+   * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected static final String NAME_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected String name = NAME_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected NodeModelImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.NODE_MODEL;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setName(String newName)
+  {
+    String oldName = name;
+    name = newName;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, EditorPackage.NODE_MODEL__NAME, oldName, name));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE_MODEL__NAME:
+        return getName();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE_MODEL__NAME:
+        setName((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE_MODEL__NAME:
+        setName(NAME_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE_MODEL__NAME:
+        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (name: ");
+    result.append(name);
+    result.append(')');
+    return result.toString();
+  }
+
+} //NodeModelImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeOperatingImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/NodeOperatingImpl.java
new file mode 100644 (file)
index 0000000..08279c0
--- /dev/null
@@ -0,0 +1,181 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Node;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Node Operating</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeOperatingImpl#getNodename <em>Nodename</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeOperatingImpl#getNodes <em>Nodes</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NodeOperatingImpl extends SentenceImpl implements NodeOperating
+{
+  /**
+   * The cached value of the '{@link #getNodename() <em>Nodename</em>}' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getNodename()
+   * @generated
+   * @ordered
+   */
+  protected EList<Node> nodename;
+
+  /**
+   * The cached value of the '{@link #getNodes() <em>Nodes</em>}' reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getNodes()
+   * @generated
+   * @ordered
+   */
+  protected EList<Node> nodes;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected NodeOperatingImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.NODE_OPERATING;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Node> getNodename()
+  {
+    if (nodename == null)
+    {
+      nodename = new EObjectResolvingEList<Node>(Node.class, this, EditorPackage.NODE_OPERATING__NODENAME);
+    }
+    return nodename;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Node> getNodes()
+  {
+    if (nodes == null)
+    {
+      nodes = new EObjectResolvingEList<Node>(Node.class, this, EditorPackage.NODE_OPERATING__NODES);
+    }
+    return nodes;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE_OPERATING__NODENAME:
+        return getNodename();
+      case EditorPackage.NODE_OPERATING__NODES:
+        return getNodes();
+    }
+    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 EditorPackage.NODE_OPERATING__NODENAME:
+        getNodename().clear();
+        getNodename().addAll((Collection<? extends Node>)newValue);
+        return;
+      case EditorPackage.NODE_OPERATING__NODES:
+        getNodes().clear();
+        getNodes().addAll((Collection<? extends Node>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE_OPERATING__NODENAME:
+        getNodename().clear();
+        return;
+      case EditorPackage.NODE_OPERATING__NODES:
+        getNodes().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.NODE_OPERATING__NODENAME:
+        return nodename != null && !nodename.isEmpty();
+      case EditorPackage.NODE_OPERATING__NODES:
+        return nodes != null && !nodes.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //NodeOperatingImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/OperationImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/OperationImpl.java
new file mode 100644 (file)
index 0000000..bb96d47
--- /dev/null
@@ -0,0 +1,354 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Node;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Operation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.OperationImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.OperationImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.OperationImpl#getTargetId <em>Target Id</em>}</li>
+ *   <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.OperationImpl#getTargetNode <em>Target Node</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OperationImpl extends SentenceImpl implements Operation
+{
+  /**
+   * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected static final String NAME_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected String name = NAME_EDEFAULT;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected EList<Integer> value;
+
+  /**
+   * The cached value of the '{@link #getTargetId() <em>Target Id</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getTargetId()
+   * @generated
+   * @ordered
+   */
+  protected Flow targetId;
+
+  /**
+   * The cached value of the '{@link #getTargetNode() <em>Target Node</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getTargetNode()
+   * @generated
+   * @ordered
+   */
+  protected Node targetNode;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected OperationImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.OPERATION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setName(String newName)
+  {
+    String oldName = name;
+    name = newName;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, EditorPackage.OPERATION__NAME, oldName, name));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<Integer> getValue()
+  {
+    if (value == null)
+    {
+      value = new EDataTypeEList<Integer>(Integer.class, this, EditorPackage.OPERATION__VALUE);
+    }
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Flow getTargetId()
+  {
+    if (targetId != null && targetId.eIsProxy())
+    {
+      InternalEObject oldTargetId = (InternalEObject)targetId;
+      targetId = (Flow)eResolveProxy(oldTargetId);
+      if (targetId != oldTargetId)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, EditorPackage.OPERATION__TARGET_ID, oldTargetId, targetId));
+      }
+    }
+    return targetId;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Flow basicGetTargetId()
+  {
+    return targetId;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setTargetId(Flow newTargetId)
+  {
+    Flow oldTargetId = targetId;
+    targetId = newTargetId;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, EditorPackage.OPERATION__TARGET_ID, oldTargetId, targetId));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Node getTargetNode()
+  {
+    if (targetNode != null && targetNode.eIsProxy())
+    {
+      InternalEObject oldTargetNode = (InternalEObject)targetNode;
+      targetNode = (Node)eResolveProxy(oldTargetNode);
+      if (targetNode != oldTargetNode)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, EditorPackage.OPERATION__TARGET_NODE, oldTargetNode, targetNode));
+      }
+    }
+    return targetNode;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Node basicGetTargetNode()
+  {
+    return targetNode;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setTargetNode(Node newTargetNode)
+  {
+    Node oldTargetNode = targetNode;
+    targetNode = newTargetNode;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, EditorPackage.OPERATION__TARGET_NODE, oldTargetNode, targetNode));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.OPERATION__NAME:
+        return getName();
+      case EditorPackage.OPERATION__VALUE:
+        return getValue();
+      case EditorPackage.OPERATION__TARGET_ID:
+        if (resolve) return getTargetId();
+        return basicGetTargetId();
+      case EditorPackage.OPERATION__TARGET_NODE:
+        if (resolve) return getTargetNode();
+        return basicGetTargetNode();
+    }
+    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 EditorPackage.OPERATION__NAME:
+        setName((String)newValue);
+        return;
+      case EditorPackage.OPERATION__VALUE:
+        getValue().clear();
+        getValue().addAll((Collection<? extends Integer>)newValue);
+        return;
+      case EditorPackage.OPERATION__TARGET_ID:
+        setTargetId((Flow)newValue);
+        return;
+      case EditorPackage.OPERATION__TARGET_NODE:
+        setTargetNode((Node)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.OPERATION__NAME:
+        setName(NAME_EDEFAULT);
+        return;
+      case EditorPackage.OPERATION__VALUE:
+        getValue().clear();
+        return;
+      case EditorPackage.OPERATION__TARGET_ID:
+        setTargetId((Flow)null);
+        return;
+      case EditorPackage.OPERATION__TARGET_NODE:
+        setTargetNode((Node)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EditorPackage.OPERATION__NAME:
+        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+      case EditorPackage.OPERATION__VALUE:
+        return value != null && !value.isEmpty();
+      case EditorPackage.OPERATION__TARGET_ID:
+        return targetId != null;
+      case EditorPackage.OPERATION__TARGET_NODE:
+        return targetNode != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (name: ");
+    result.append(name);
+    result.append(", value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //OperationImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/SentenceImpl.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/impl/SentenceImpl.java
new file mode 100644 (file)
index 0000000..2bc654f
--- /dev/null
@@ -0,0 +1,42 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Sentence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sentence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SentenceImpl extends MinimalEObjectImpl.Container implements Sentence
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected SentenceImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EditorPackage.Literals.SENTENCE;
+  }
+
+} //SentenceImpl
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorAdapterFactory.java
new file mode 100644 (file)
index 0000000..449579c
--- /dev/null
@@ -0,0 +1,312 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.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.opendaylight.nemo.tool.eclipse.plugin.editor.*;
+
+/**
+ * <!-- 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.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage
+ * @generated
+ */
+public class EditorAdapterFactory extends AdapterFactoryImpl
+{
+  /**
+   * The cached model package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected static EditorPackage modelPackage;
+
+  /**
+   * Creates an instance of the adapter factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EditorAdapterFactory()
+  {
+    if (modelPackage == null)
+    {
+      modelPackage = EditorPackage.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 EditorSwitch<Adapter> modelSwitch =
+    new EditorSwitch<Adapter>()
+    {
+      @Override
+      public Adapter caseModel(Model object)
+      {
+        return createModelAdapter();
+      }
+      @Override
+      public Adapter caseSentence(Sentence object)
+      {
+        return createSentenceAdapter();
+      }
+      @Override
+      public Adapter caseNode(Node object)
+      {
+        return createNodeAdapter();
+      }
+      @Override
+      public Adapter caseNodeModel(NodeModel object)
+      {
+        return createNodeModelAdapter();
+      }
+      @Override
+      public Adapter caseNodeOperating(NodeOperating object)
+      {
+        return createNodeOperatingAdapter();
+      }
+      @Override
+      public Adapter caseConnection(Connection object)
+      {
+        return createConnectionAdapter();
+      }
+      @Override
+      public Adapter caseConnectionUpdate(ConnectionUpdate object)
+      {
+        return createConnectionUpdateAdapter();
+      }
+      @Override
+      public Adapter caseFlow(Flow object)
+      {
+        return createFlowAdapter();
+      }
+      @Override
+      public Adapter caseFlowUpdate(FlowUpdate object)
+      {
+        return createFlowUpdateAdapter();
+      }
+      @Override
+      public Adapter caseOperation(Operation object)
+      {
+        return createOperationAdapter();
+      }
+      @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.opendaylight.nemo.tool.eclipse.plugin.editor.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.opendaylight.nemo.tool.eclipse.plugin.editor.Model
+   * @generated
+   */
+  public Adapter createModelAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Sentence <em>Sentence</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.opendaylight.nemo.tool.eclipse.plugin.editor.Sentence
+   * @generated
+   */
+  public Adapter createSentenceAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Node <em>Node</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.opendaylight.nemo.tool.eclipse.plugin.editor.Node
+   * @generated
+   */
+  public Adapter createNodeAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel <em>Node 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.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel
+   * @generated
+   */
+  public Adapter createNodeModelAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating <em>Node Operating</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.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating
+   * @generated
+   */
+  public Adapter createNodeOperatingAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection <em>Connection</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.opendaylight.nemo.tool.eclipse.plugin.editor.Connection
+   * @generated
+   */
+  public Adapter createConnectionAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate <em>Connection Update</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.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate
+   * @generated
+   */
+  public Adapter createConnectionUpdateAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow <em>Flow</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.opendaylight.nemo.tool.eclipse.plugin.editor.Flow
+   * @generated
+   */
+  public Adapter createFlowAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate <em>Flow Update</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.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate
+   * @generated
+   */
+  public Adapter createFlowUpdateAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation <em>Operation</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.opendaylight.nemo.tool.eclipse.plugin.editor.Operation
+   * @generated
+   */
+  public Adapter createOperationAdapter()
+  {
+    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;
+  }
+
+} //EditorAdapterFactory
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorSwitch.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/editor/util/EditorSwitch.java
new file mode 100644 (file)
index 0000000..8f8dbd1
--- /dev/null
@@ -0,0 +1,333 @@
+/**
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.editor.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.*;
+
+/**
+ * <!-- 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.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage
+ * @generated
+ */
+public class EditorSwitch<T> extends Switch<T>
+{
+  /**
+   * The cached model package
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected static EditorPackage modelPackage;
+
+  /**
+   * Creates an instance of the switch.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EditorSwitch()
+  {
+    if (modelPackage == null)
+    {
+      modelPackage = EditorPackage.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 EditorPackage.MODEL:
+      {
+        Model model = (Model)theEObject;
+        T result = caseModel(model);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case EditorPackage.SENTENCE:
+      {
+        Sentence sentence = (Sentence)theEObject;
+        T result = caseSentence(sentence);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case EditorPackage.NODE:
+      {
+        Node node = (Node)theEObject;
+        T result = caseNode(node);
+        if (result == null) result = caseSentence(node);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case EditorPackage.NODE_MODEL:
+      {
+        NodeModel nodeModel = (NodeModel)theEObject;
+        T result = caseNodeModel(nodeModel);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case EditorPackage.NODE_OPERATING:
+      {
+        NodeOperating nodeOperating = (NodeOperating)theEObject;
+        T result = caseNodeOperating(nodeOperating);
+        if (result == null) result = caseSentence(nodeOperating);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case EditorPackage.CONNECTION:
+      {
+        Connection connection = (Connection)theEObject;
+        T result = caseConnection(connection);
+        if (result == null) result = caseSentence(connection);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case EditorPackage.CONNECTION_UPDATE:
+      {
+        ConnectionUpdate connectionUpdate = (ConnectionUpdate)theEObject;
+        T result = caseConnectionUpdate(connectionUpdate);
+        if (result == null) result = caseSentence(connectionUpdate);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case EditorPackage.FLOW:
+      {
+        Flow flow = (Flow)theEObject;
+        T result = caseFlow(flow);
+        if (result == null) result = caseSentence(flow);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case EditorPackage.FLOW_UPDATE:
+      {
+        FlowUpdate flowUpdate = (FlowUpdate)theEObject;
+        T result = caseFlowUpdate(flowUpdate);
+        if (result == null) result = caseSentence(flowUpdate);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case EditorPackage.OPERATION:
+      {
+        Operation operation = (Operation)theEObject;
+        T result = caseOperation(operation);
+        if (result == null) result = caseSentence(operation);
+        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>Sentence</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>Sentence</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseSentence(Sentence object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Node</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>Node</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseNode(Node object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Node 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>Node Model</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseNodeModel(NodeModel object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Node Operating</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>Node Operating</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseNodeOperating(NodeOperating object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Connection</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>Connection</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseConnection(Connection object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Connection Update</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>Connection Update</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseConnectionUpdate(ConnectionUpdate object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Flow</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>Flow</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseFlow(Flow object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Flow Update</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>Flow Update</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseFlowUpdate(FlowUpdate object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Operation</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>Operation</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseOperation(Operation 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;
+  }
+
+} //EditorSwitch
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorAntlrTokenFileProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorAntlrTokenFileProvider.java
new file mode 100644 (file)
index 0000000..93b1020
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class EditorAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+       
+       @Override
+       public InputStream getAntlrTokenFile() {
+               ClassLoader classLoader = getClass().getClassLoader();
+       return classLoader.getResourceAsStream("org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.tokens");
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorParser.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/EditorParser.java
new file mode 100644 (file)
index 0000000..13c75cb
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+public class EditorParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+       
+       @Inject
+       private EditorGrammarAccess grammarAccess;
+       
+       @Override
+       protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+               tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+       }
+       
+       @Override
+       protected org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.internal.InternalEditorParser createParser(XtextTokenStream stream) {
+               return new org.opendaylight.nemo.tool.eclipse.plugin.parser.antlr.internal.InternalEditorParser(stream, getGrammarAccess());
+       }
+       
+       @Override 
+       protected String getDefaultRuleName() {
+               return "Model";
+       }
+       
+       public EditorGrammarAccess getGrammarAccess() {
+               return this.grammarAccess;
+       }
+       
+       public void setGrammarAccess(EditorGrammarAccess grammarAccess) {
+               this.grammarAccess = grammarAccess;
+       }
+       
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g
new file mode 100644 (file)
index 0000000..f552784
--- /dev/null
@@ -0,0 +1,1454 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalEditor;
+
+options {
+       superClass=AbstractInternalAntlrParser;
+       
+}
+
+@lexer::header {
+package org.opendaylight.nemo.tool.eclipse.plugin.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.opendaylight.nemo.tool.eclipse.plugin.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.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+}
+
+@parser::members {
+
+       private EditorGrammarAccess grammarAccess;
+       
+    public InternalEditorParser(TokenStream input, EditorGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+    
+    @Override
+    protected String getFirstRuleName() {
+       return "Model"; 
+       }
+       
+       @Override
+       protected EditorGrammarAccess 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().getSentencesSentenceParserRuleCall_0()); 
+           }
+               lv_sentences_0_0=ruleSentence           {
+               if ($current==null) {
+                   $current = createModelElementForParent(grammarAccess.getModelRule());
+               }
+                       add(
+                               $current, 
+                               "sentences",
+                       lv_sentences_0_0, 
+                       "Sentence");
+               afterParserOrEnumRuleCall();
+           }
+
+)
+)*
+;
+
+
+
+
+
+// Entry rule entryRuleSentence
+entryRuleSentence returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getSentenceRule()); }
+        iv_ruleSentence=ruleSentence 
+        { $current=$iv_ruleSentence.current; } 
+        EOF 
+;
+
+// Rule Sentence
+ruleSentence returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()); 
+    }
+ruleSenEngines
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getUserParserRuleCall_1()); 
+    }
+ruleUser
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getNodeParserRuleCall_2()); 
+    }
+    this_Node_2=ruleNode
+    { 
+        $current = $this_Node_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getNodeOperatingParserRuleCall_3()); 
+    }
+    this_NodeOperating_3=ruleNodeOperating
+    { 
+        $current = $this_NodeOperating_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getConnectionParserRuleCall_4()); 
+    }
+    this_Connection_4=ruleConnection
+    { 
+        $current = $this_Connection_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getConnectionUpdateParserRuleCall_5()); 
+    }
+    this_ConnectionUpdate_5=ruleConnectionUpdate
+    { 
+        $current = $this_ConnectionUpdate_5.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getFlowParserRuleCall_6()); 
+    }
+    this_Flow_6=ruleFlow
+    { 
+        $current = $this_Flow_6.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getFlowUpdateParserRuleCall_7()); 
+    }
+    this_FlowUpdate_7=ruleFlowUpdate
+    { 
+        $current = $this_FlowUpdate_7.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSentenceAccess().getOperationParserRuleCall_8()); 
+    }
+    this_Operation_8=ruleOperation
+    { 
+        $current = $this_Operation_8.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSenEngines
+entryRuleSenEngines returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getSenEnginesRule()); } 
+        iv_ruleSenEngines=ruleSenEngines 
+        { $current=$iv_ruleSenEngines.current.getText(); }  
+        EOF 
+;
+
+// Rule SenEngines
+ruleSenEngines returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Engines:' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getSenEnginesAccess().getEnginesKeyword_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_1()); 
+    }
+    this_Ipv4_1=ruleIpv4    {
+               $current.merge(this_Ipv4_1);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getSenEnginesAccess().getCommaKeyword_2_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_2_1()); 
+    }
+    this_Ipv4_3=ruleIpv4    {
+               $current.merge(this_Ipv4_3);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*
+       kw=';' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getSenEnginesAccess().getSemicolonKeyword_3()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleIpv4
+entryRuleIpv4 returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getIpv4Rule()); } 
+        iv_ruleIpv4=ruleIpv4 
+        { $current=$iv_ruleIpv4.current.getText(); }  
+        EOF 
+;
+
+// Rule Ipv4
+ruleIpv4 returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(    this_IPV4_SUB_0=RULE_IPV4_SUB    {
+               $current.merge(this_IPV4_SUB_0);
+    }
+
+    { 
+    newLeafNode(this_IPV4_SUB_0, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_0()); 
+    }
+
+       kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getIpv4Access().getFullStopKeyword_1()); 
+    }
+    this_IPV4_SUB_2=RULE_IPV4_SUB    {
+               $current.merge(this_IPV4_SUB_2);
+    }
+
+    { 
+    newLeafNode(this_IPV4_SUB_2, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_2()); 
+    }
+
+       kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getIpv4Access().getFullStopKeyword_3()); 
+    }
+    this_IPV4_SUB_4=RULE_IPV4_SUB    {
+               $current.merge(this_IPV4_SUB_4);
+    }
+
+    { 
+    newLeafNode(this_IPV4_SUB_4, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_4()); 
+    }
+
+       kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getIpv4Access().getFullStopKeyword_5()); 
+    }
+    this_IPV4_SUB_6=RULE_IPV4_SUB    {
+               $current.merge(this_IPV4_SUB_6);
+    }
+
+    { 
+    newLeafNode(this_IPV4_SUB_6, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_6()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleUser
+entryRuleUser returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getUserRule()); } 
+        iv_ruleUser=ruleUser 
+        { $current=$iv_ruleUser.current.getText(); }  
+        EOF 
+;
+
+// Rule User
+ruleUser returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='CREATE' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getUserAccess().getCREATEKeyword_0()); 
+    }
+    this_STRING_1=RULE_STRING    {
+               $current.merge(this_STRING_1);
+    }
+
+    { 
+    newLeafNode(this_STRING_1, grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_1()); 
+    }
+    this_STRING_2=RULE_STRING    {
+               $current.merge(this_STRING_2);
+    }
+
+    { 
+    newLeafNode(this_STRING_2, grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_2()); 
+    }
+    this_STRING_3=RULE_STRING    {
+               $current.merge(this_STRING_3);
+    }
+
+    { 
+    newLeafNode(this_STRING_3, grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_3()); 
+    }
+
+       kw=';' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getUserAccess().getSemicolonKeyword_4()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleNode
+entryRuleNode returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getNodeRule()); }
+        iv_ruleNode=ruleNode 
+        { $current=$iv_ruleNode.current; } 
+        EOF 
+;
+
+// Rule Node
+ruleNode returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getNodeAccess().getNewObjParserRuleCall_0()); 
+    }
+ruleNewObj
+    { 
+        afterParserOrEnumRuleCall();
+    }
+       otherlv_1='Node' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getNodeAccess().getNodeKeyword_1());
+    }
+(
+(
+               lv_name_2_0=RULE_NEMOID
+               {
+                       newLeafNode(lv_name_2_0, grammarAccess.getNodeAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeRule());
+               }
+                       setWithLastConsumed(
+                               $current, 
+                               "name",
+                       lv_name_2_0, 
+                       "NemoId");
+           }
+
+)
+)(     otherlv_3='Type' 
+    {
+       newLeafNode(otherlv_3, grammarAccess.getNodeAccess().getTypeKeyword_3_0());
+    }
+this_NemoId_4=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_4, grammarAccess.getNodeAccess().getNemoIdTerminalRuleCall_3_1()); 
+    }
+)(     otherlv_5='Contain' 
+    {
+       newLeafNode(otherlv_5, grammarAccess.getNodeAccess().getContainKeyword_4_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeRule());
+               }
+        }
+       otherlv_6=RULE_NEMOID
+       {
+               newLeafNode(otherlv_6, grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_1_0()); 
+       }
+
+)
+)(     otherlv_7=',' 
+    {
+       newLeafNode(otherlv_7, grammarAccess.getNodeAccess().getCommaKeyword_4_2_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeRule());
+               }
+        }
+       otherlv_8=RULE_NEMOID
+       {
+               newLeafNode(otherlv_8, grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_2_1_0()); 
+       }
+
+)
+))*)?(
+    { 
+        newCompositeNode(grammarAccess.getNodeAccess().getPropertyParserRuleCall_5()); 
+    }
+ruleProperty
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_10=';' 
+    {
+       newLeafNode(otherlv_10, grammarAccess.getNodeAccess().getSemicolonKeyword_6());
+    }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleNodeOperating
+entryRuleNodeOperating returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getNodeOperatingRule()); }
+        iv_ruleNodeOperating=ruleNodeOperating 
+        { $current=$iv_ruleNodeOperating.current; } 
+        EOF 
+;
+
+// Rule NodeOperating
+ruleNodeOperating returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((     otherlv_0='UPDATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0());
+    }
+
+    |  otherlv_1='DELETE' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1());
+    }
+)      otherlv_2='Node' 
+    {
+       newLeafNode(otherlv_2, grammarAccess.getNodeOperatingAccess().getNodeKeyword_1());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeOperatingRule());
+               }
+        }
+       otherlv_3=RULE_NEMOID
+       {
+               newLeafNode(otherlv_3, grammarAccess.getNodeOperatingAccess().getNodenameNodeCrossReference_2_0()); 
+       }
+
+)
+)(     otherlv_4='Type' 
+    {
+       newLeafNode(otherlv_4, grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0());
+    }
+this_NemoId_5=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_5, grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()); 
+    }
+)?(    otherlv_6='Contain' 
+    {
+       newLeafNode(otherlv_6, grammarAccess.getNodeOperatingAccess().getContainKeyword_4_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeOperatingRule());
+               }
+        }
+       otherlv_7=RULE_NEMOID
+       {
+               newLeafNode(otherlv_7, grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_1_0()); 
+       }
+
+)
+)(     otherlv_8=',' 
+    {
+       newLeafNode(otherlv_8, grammarAccess.getNodeOperatingAccess().getCommaKeyword_4_2_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getNodeOperatingRule());
+               }
+        }
+       otherlv_9=RULE_NEMOID
+       {
+               newLeafNode(otherlv_9, grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_2_1_0()); 
+       }
+
+)
+))*)?(
+    { 
+        newCompositeNode(grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5()); 
+    }
+ruleProperty
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_11=';' 
+    {
+       newLeafNode(otherlv_11, grammarAccess.getNodeOperatingAccess().getSemicolonKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleConnection
+entryRuleConnection returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getConnectionRule()); }
+        iv_ruleConnection=ruleConnection 
+        { $current=$iv_ruleConnection.current; } 
+        EOF 
+;
+
+// Rule Connection
+ruleConnection returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(      otherlv_0='CREATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getConnectionAccess().getCREATEKeyword_0());
+    }
+       otherlv_1='Connection' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getConnectionAccess().getConnectionKeyword_1());
+    }
+(
+(
+               lv_name_2_0=RULE_NEMOID
+               {
+                       newLeafNode(lv_name_2_0, grammarAccess.getConnectionAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionRule());
+               }
+                       setWithLastConsumed(
+                               $current, 
+                               "name",
+                       lv_name_2_0, 
+                       "NemoId");
+           }
+
+)
+)      otherlv_3='Type' 
+    {
+       newLeafNode(otherlv_3, grammarAccess.getConnectionAccess().getTypeKeyword_3());
+    }
+this_NemoId_4=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_4, grammarAccess.getConnectionAccess().getNemoIdTerminalRuleCall_4()); 
+    }
+(      otherlv_5='Endnodes' 
+    {
+       newLeafNode(otherlv_5, grammarAccess.getConnectionAccess().getEndnodesKeyword_5_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionRule());
+               }
+        }
+       otherlv_6=RULE_NEMOID
+       {
+               newLeafNode(otherlv_6, grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_1_0()); 
+       }
+
+)
+)(     otherlv_7=',' 
+    {
+       newLeafNode(otherlv_7, grammarAccess.getConnectionAccess().getCommaKeyword_5_2_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionRule());
+               }
+        }
+       otherlv_8=RULE_NEMOID
+       {
+               newLeafNode(otherlv_8, grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_2_1_0()); 
+       }
+
+)
+))*)(
+    { 
+        newCompositeNode(grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6()); 
+    }
+ruleProperty
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_10=';' 
+    {
+       newLeafNode(otherlv_10, grammarAccess.getConnectionAccess().getSemicolonKeyword_7());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleConnectionUpdate
+entryRuleConnectionUpdate returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getConnectionUpdateRule()); }
+        iv_ruleConnectionUpdate=ruleConnectionUpdate 
+        { $current=$iv_ruleConnectionUpdate.current; } 
+        EOF 
+;
+
+// Rule ConnectionUpdate
+ruleConnectionUpdate returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((     otherlv_0='UPDATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0());
+    }
+
+    |  otherlv_1='DELETE' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1());
+    }
+)      otherlv_2='Connection' 
+    {
+       newLeafNode(otherlv_2, grammarAccess.getConnectionUpdateAccess().getConnectionKeyword_1());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionUpdateRule());
+               }
+        }
+       otherlv_3=RULE_NEMOID
+       {
+               newLeafNode(otherlv_3, grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionCrossReference_2_0()); 
+       }
+
+)
+)(     otherlv_4='Type' 
+    {
+       newLeafNode(otherlv_4, grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0());
+    }
+this_NemoId_5=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_5, grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()); 
+    }
+)?(    otherlv_6='Endnodes' 
+    {
+       newLeafNode(otherlv_6, grammarAccess.getConnectionUpdateAccess().getEndnodesKeyword_4_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionUpdateRule());
+               }
+        }
+       otherlv_7=RULE_NEMOID
+       {
+               newLeafNode(otherlv_7, grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_1_0()); 
+       }
+
+)
+)(     otherlv_8=',' 
+    {
+       newLeafNode(otherlv_8, grammarAccess.getConnectionUpdateAccess().getCommaKeyword_4_2_0());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getConnectionUpdateRule());
+               }
+        }
+       otherlv_9=RULE_NEMOID
+       {
+               newLeafNode(otherlv_9, grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_2_1_0()); 
+       }
+
+)
+))*)?(
+    { 
+        newCompositeNode(grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5()); 
+    }
+ruleProperty
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_11=';' 
+    {
+       newLeafNode(otherlv_11, grammarAccess.getConnectionUpdateAccess().getSemicolonKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFlow
+entryRuleFlow returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getFlowRule()); }
+        iv_ruleFlow=ruleFlow 
+        { $current=$iv_ruleFlow.current; } 
+        EOF 
+;
+
+// Rule Flow
+ruleFlow returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(      otherlv_0='CREATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getFlowAccess().getCREATEKeyword_0());
+    }
+       otherlv_1='Flow' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getFlowAccess().getFlowKeyword_1());
+    }
+(
+(
+               lv_name_2_0=RULE_NEMOID
+               {
+                       newLeafNode(lv_name_2_0, grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getFlowRule());
+               }
+                       setWithLastConsumed(
+                               $current, 
+                               "name",
+                       lv_name_2_0, 
+                       "NemoId");
+           }
+
+)
+)(
+    { 
+        newCompositeNode(grammarAccess.getFlowAccess().getMatchesParserRuleCall_3()); 
+    }
+ruleMatches
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_4=';' 
+    {
+       newLeafNode(otherlv_4, grammarAccess.getFlowAccess().getSemicolonKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFlowUpdate
+entryRuleFlowUpdate returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getFlowUpdateRule()); }
+        iv_ruleFlowUpdate=ruleFlowUpdate 
+        { $current=$iv_ruleFlowUpdate.current; } 
+        EOF 
+;
+
+// Rule FlowUpdate
+ruleFlowUpdate returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((     otherlv_0='UPDATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0());
+    }
+
+    |  otherlv_1='DELETE' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1());
+    }
+)      otherlv_2='Flow' 
+    {
+       newLeafNode(otherlv_2, grammarAccess.getFlowUpdateAccess().getFlowKeyword_1());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getFlowUpdateRule());
+               }
+        }
+       otherlv_3=RULE_NEMOID
+       {
+               newLeafNode(otherlv_3, grammarAccess.getFlowUpdateAccess().getFlowIdFlowCrossReference_2_0()); 
+       }
+
+)
+)(
+    { 
+        newCompositeNode(grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3()); 
+    }
+ruleMatches
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_5=';' 
+    {
+       newLeafNode(otherlv_5, grammarAccess.getFlowUpdateAccess().getSemicolonKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleMatches
+entryRuleMatches returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getMatchesRule()); } 
+        iv_ruleMatches=ruleMatches 
+        { $current=$iv_ruleMatches.current.getText(); }  
+        EOF 
+;
+
+// Rule Matches
+ruleMatches returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Match' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getMatchesAccess().getMatchKeyword_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getMatchesAccess().getMatchParserRuleCall_1()); 
+    }
+    this_Match_1=ruleMatch    {
+               $current.merge(this_Match_1);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getMatchesAccess().getCommaKeyword_2_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getMatchesAccess().getMatchParserRuleCall_2_1()); 
+    }
+    this_Match_3=ruleMatch    {
+               $current.merge(this_Match_3);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleMatch
+entryRuleMatch returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getMatchRule()); } 
+        iv_ruleMatch=ruleMatch 
+        { $current=$iv_ruleMatch.current.getText(); }  
+        EOF 
+;
+
+// Rule Match
+ruleMatch returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(    this_NemoId_0=RULE_NEMOID    {
+               $current.merge(this_NemoId_0);
+    }
+
+    { 
+    newLeafNode(this_NemoId_0, grammarAccess.getMatchAccess().getNemoIdTerminalRuleCall_0()); 
+    }
+
+       kw=':' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getMatchAccess().getColonKeyword_1()); 
+    }
+    this_STRING_2=RULE_STRING    {
+               $current.merge(this_STRING_2);
+    }
+
+    { 
+    newLeafNode(this_STRING_2, grammarAccess.getMatchAccess().getSTRINGTerminalRuleCall_2()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleOperation
+entryRuleOperation returns [EObject current=null] 
+       :
+       { newCompositeNode(grammarAccess.getOperationRule()); }
+        iv_ruleOperation=ruleOperation 
+        { $current=$iv_ruleOperation.current; } 
+        EOF 
+;
+
+// Rule Operation
+ruleOperation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(      otherlv_0='CREATE' 
+    {
+       newLeafNode(otherlv_0, grammarAccess.getOperationAccess().getCREATEKeyword_0());
+    }
+       otherlv_1='Operation' 
+    {
+       newLeafNode(otherlv_1, grammarAccess.getOperationAccess().getOperationKeyword_1());
+    }
+(
+(
+               lv_name_2_0=RULE_NEMOID
+               {
+                       newLeafNode(lv_name_2_0, grammarAccess.getOperationAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getOperationRule());
+               }
+                       setWithLastConsumed(
+                               $current, 
+                               "name",
+                       lv_name_2_0, 
+                       "NemoId");
+           }
+
+)
+)(     otherlv_3='Priority' 
+    {
+       newLeafNode(otherlv_3, grammarAccess.getOperationAccess().getPriorityKeyword_3_0());
+    }
+(
+(
+               lv_value_4_0=RULE_INT
+               {
+                       newLeafNode(lv_value_4_0, grammarAccess.getOperationAccess().getValueINTTerminalRuleCall_3_1_0()); 
+               }
+               {
+               if ($current==null) {
+                   $current = createModelElement(grammarAccess.getOperationRule());
+               }
+                       addWithLastConsumed(
+                               $current, 
+                               "value",
+                       lv_value_4_0, 
+                       "INT");
+           }
+
+)
+))?    otherlv_5='Target' 
+    {
+       newLeafNode(otherlv_5, grammarAccess.getOperationAccess().getTargetKeyword_4());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getOperationRule());
+               }
+        }
+       otherlv_6=RULE_NEMOID
+       {
+               newLeafNode(otherlv_6, grammarAccess.getOperationAccess().getTargetIdFlowCrossReference_5_0()); 
+       }
+
+)
+)(
+    { 
+        newCompositeNode(grammarAccess.getOperationAccess().getConditionParserRuleCall_6()); 
+    }
+ruleCondition
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)?     otherlv_8='Action' 
+    {
+       newLeafNode(otherlv_8, grammarAccess.getOperationAccess().getActionKeyword_7());
+    }
+(this_NemoId_9=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_9, grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_0()); 
+    }
+
+    |(this_NemoId_10=RULE_NEMOID
+    { 
+    newLeafNode(this_NemoId_10, grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_1_0()); 
+    }
+       otherlv_11=':' 
+    {
+       newLeafNode(otherlv_11, grammarAccess.getOperationAccess().getColonKeyword_8_1_1());
+    }
+(
+(
+               {
+                       if ($current==null) {
+                   $current = createModelElement(grammarAccess.getOperationRule());
+               }
+        }
+       otherlv_12=RULE_NEMOID
+       {
+               newLeafNode(otherlv_12, grammarAccess.getOperationAccess().getTargetNodeNodeCrossReference_8_1_2_0()); 
+       }
+
+)
+)))    otherlv_13=';' 
+    {
+       newLeafNode(otherlv_13, grammarAccess.getOperationAccess().getSemicolonKeyword_9());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleCondition
+entryRuleCondition returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getConditionRule()); } 
+        iv_ruleCondition=ruleCondition 
+        { $current=$iv_ruleCondition.current.getText(); }  
+        EOF 
+;
+
+// Rule Condition
+ruleCondition returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Condition' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getConditionAccess().getConditionKeyword_0()); 
+    }
+    this_STRING_1=RULE_STRING    {
+               $current.merge(this_STRING_1);
+    }
+
+    { 
+    newLeafNode(this_STRING_1, grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_1()); 
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getConditionAccess().getCommaKeyword_2_0()); 
+    }
+    this_STRING_3=RULE_STRING    {
+               $current.merge(this_STRING_3);
+    }
+
+    { 
+    newLeafNode(this_STRING_3, grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_2_1()); 
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleProperty
+entryRuleProperty returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getPropertyRule()); } 
+        iv_ruleProperty=ruleProperty 
+        { $current=$iv_ruleProperty.current.getText(); }  
+        EOF 
+;
+
+// Rule Property
+ruleProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Property ' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getPropertyAccess().getPropertyKeyword_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_1()); 
+    }
+    this_OneProperty_1=ruleOneProperty    {
+               $current.merge(this_OneProperty_1);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getPropertyAccess().getCommaKeyword_2_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_2_1()); 
+    }
+    this_OneProperty_3=ruleOneProperty    {
+               $current.merge(this_OneProperty_3);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleOneProperty
+entryRuleOneProperty returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getOnePropertyRule()); } 
+        iv_ruleOneProperty=ruleOneProperty 
+        { $current=$iv_ruleOneProperty.current.getText(); }  
+        EOF 
+;
+
+// Rule OneProperty
+ruleOneProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(    this_NemoId_0=RULE_NEMOID    {
+               $current.merge(this_NemoId_0);
+    }
+
+    { 
+    newLeafNode(this_NemoId_0, grammarAccess.getOnePropertyAccess().getNemoIdTerminalRuleCall_0()); 
+    }
+
+       kw=':' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOnePropertyAccess().getColonKeyword_1()); 
+    }
+(    this_STRING_2=RULE_STRING    {
+               $current.merge(this_STRING_2);
+    }
+
+    { 
+    newLeafNode(this_STRING_2, grammarAccess.getOnePropertyAccess().getSTRINGTerminalRuleCall_2_0()); 
+    }
+
+    |    this_INT_3=RULE_INT    {
+               $current.merge(this_INT_3);
+    }
+
+    { 
+    newLeafNode(this_INT_3, grammarAccess.getOnePropertyAccess().getINTTerminalRuleCall_2_1()); 
+    }
+))
+    ;
+
+
+
+
+
+// Entry rule entryRuleModelProperty
+entryRuleModelProperty returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getModelPropertyRule()); } 
+        iv_ruleModelProperty=ruleModelProperty 
+        { $current=$iv_ruleModelProperty.current.getText(); }  
+        EOF 
+;
+
+// Rule ModelProperty
+ruleModelProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='Property' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getModelPropertyAccess().getPropertyKeyword_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_1()); 
+    }
+    this_OneModelProperty_1=ruleOneModelProperty    {
+               $current.merge(this_OneModelProperty_1);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+       kw=',' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getModelPropertyAccess().getCommaKeyword_2_0()); 
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_2_1()); 
+    }
+    this_OneModelProperty_3=ruleOneModelProperty    {
+               $current.merge(this_OneModelProperty_3);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleOneModelProperty
+entryRuleOneModelProperty returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getOneModelPropertyRule()); } 
+        iv_ruleOneModelProperty=ruleOneModelProperty 
+        { $current=$iv_ruleOneModelProperty.current.getText(); }  
+        EOF 
+;
+
+// Rule OneModelProperty
+ruleOneModelProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((    this_STRING_0=RULE_STRING    {
+               $current.merge(this_STRING_0);
+    }
+
+    { 
+    newLeafNode(this_STRING_0, grammarAccess.getOneModelPropertyAccess().getSTRINGTerminalRuleCall_0_0()); 
+    }
+
+    |    this_INT_1=RULE_INT    {
+               $current.merge(this_INT_1);
+    }
+
+    { 
+    newLeafNode(this_INT_1, grammarAccess.getOneModelPropertyAccess().getINTTerminalRuleCall_0_1()); 
+    }
+)
+       kw=':' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOneModelPropertyAccess().getColonKeyword_1()); 
+    }
+    this_NemoId_3=RULE_NEMOID    {
+               $current.merge(this_NemoId_3);
+    }
+
+    { 
+    newLeafNode(this_NemoId_3, grammarAccess.getOneModelPropertyAccess().getNemoIdTerminalRuleCall_2()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleNewObj
+entryRuleNewObj returns [String current=null] 
+       :
+       { newCompositeNode(grammarAccess.getNewObjRule()); } 
+        iv_ruleNewObj=ruleNewObj 
+        { $current=$iv_ruleNewObj.current.getText(); }  
+        EOF 
+;
+
+// Rule NewObj
+ruleNewObj returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+       kw='CREATE' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getNewObjAccess().getCREATEKeyword_0()); 
+    }
+
+    |
+       kw='IMPORT' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getNewObjAccess().getIMPORTKeyword_1()); 
+    }
+)
+    ;
+
+
+
+
+
+RULE_IPV4_SUB : ('0'..'9'|'1'..'9' '0'..'9'|'1' '0'..'9' '0'..'9'|'2' '0'..'4' '0'..'9'|'25' '0'..'5');
+
+RULE_NEMOID : ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'-'|'0'..'9')*;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.tokens b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.tokens
new file mode 100644 (file)
index 0000000..3288a26
--- /dev/null
@@ -0,0 +1,55 @@
+','=14
+'.'=16
+':'=27
+';'=15
+'Action'=31
+'CREATE'=17
+'Condition'=32
+'Connection'=23
+'Contain'=20
+'DELETE'=22
+'Endnodes'=24
+'Engines:'=13
+'Flow'=25
+'IMPORT'=35
+'Match'=26
+'Node'=18
+'Operation'=28
+'Priority'=29
+'Property '=33
+'Property'=34
+'Target'=30
+'Type'=19
+'UPDATE'=21
+RULE_ANY_OTHER=12
+RULE_ID=8
+RULE_INT=7
+RULE_IPV4_SUB=4
+RULE_ML_COMMENT=9
+RULE_NEMOID=6
+RULE_SL_COMMENT=10
+RULE_STRING=5
+RULE_WS=11
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorLexer.java
new file mode 100644 (file)
index 0000000..d0879e9
--- /dev/null
@@ -0,0 +1,1770 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.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 InternalEditorLexer extends Lexer {
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    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__33=33;
+    public static final int T__34=34;
+    public static final int T__13=13;
+    public static final int T__35=35;
+    public static final int T__14=14;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_ID=8;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int RULE_IPV4_SUB=4;
+    public static final int T__28=28;
+    public static final int RULE_INT=7;
+    public static final int T__29=29;
+    public static final int RULE_NEMOID=6;
+    public static final int T__22=22;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+
+    // delegates
+    // delegators
+
+    public InternalEditorLexer() {;} 
+    public InternalEditorLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalEditorLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g"; }
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:11:7: ( 'Engines:' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:11:9: 'Engines:'
+            {
+            match("Engines:"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__13"
+
+    // $ANTLR start "T__14"
+    public final void mT__14() throws RecognitionException {
+        try {
+            int _type = T__14;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:12:7: ( ',' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:12:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:13:7: ( ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:13:9: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:14:7: ( '.' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:14:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__16"
+
+    // $ANTLR start "T__17"
+    public final void mT__17() throws RecognitionException {
+        try {
+            int _type = T__17;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:15:7: ( 'CREATE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:15:9: 'CREATE'
+            {
+            match("CREATE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__17"
+
+    // $ANTLR start "T__18"
+    public final void mT__18() throws RecognitionException {
+        try {
+            int _type = T__18;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:16:7: ( 'Node' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:16:9: 'Node'
+            {
+            match("Node"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__18"
+
+    // $ANTLR start "T__19"
+    public final void mT__19() throws RecognitionException {
+        try {
+            int _type = T__19;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:17:7: ( 'Type' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:17:9: 'Type'
+            {
+            match("Type"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:18:7: ( 'Contain' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:18:9: 'Contain'
+            {
+            match("Contain"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:19:7: ( 'UPDATE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:19:9: 'UPDATE'
+            {
+            match("UPDATE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:20:7: ( 'DELETE' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:20:9: 'DELETE'
+            {
+            match("DELETE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__22"
+
+    // $ANTLR start "T__23"
+    public final void mT__23() throws RecognitionException {
+        try {
+            int _type = T__23;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:21:7: ( 'Connection' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:21:9: 'Connection'
+            {
+            match("Connection"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:22:7: ( 'Endnodes' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:22:9: 'Endnodes'
+            {
+            match("Endnodes"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__24"
+
+    // $ANTLR start "T__25"
+    public final void mT__25() throws RecognitionException {
+        try {
+            int _type = T__25;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:23:7: ( 'Flow' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:23:9: 'Flow'
+            {
+            match("Flow"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__25"
+
+    // $ANTLR start "T__26"
+    public final void mT__26() throws RecognitionException {
+        try {
+            int _type = T__26;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:24:7: ( 'Match' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:24:9: 'Match'
+            {
+            match("Match"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__26"
+
+    // $ANTLR start "T__27"
+    public final void mT__27() throws RecognitionException {
+        try {
+            int _type = T__27;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:25:7: ( ':' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:25:9: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__27"
+
+    // $ANTLR start "T__28"
+    public final void mT__28() throws RecognitionException {
+        try {
+            int _type = T__28;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:26:7: ( 'Operation' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:26:9: 'Operation'
+            {
+            match("Operation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__28"
+
+    // $ANTLR start "T__29"
+    public final void mT__29() throws RecognitionException {
+        try {
+            int _type = T__29;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:27:7: ( 'Priority' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:27:9: 'Priority'
+            {
+            match("Priority"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__29"
+
+    // $ANTLR start "T__30"
+    public final void mT__30() throws RecognitionException {
+        try {
+            int _type = T__30;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:28:7: ( 'Target' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:28:9: 'Target'
+            {
+            match("Target"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__30"
+
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:29:7: ( 'Action' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:29:9: 'Action'
+            {
+            match("Action"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
+    // $ANTLR start "T__32"
+    public final void mT__32() throws RecognitionException {
+        try {
+            int _type = T__32;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:30:7: ( 'Condition' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:30:9: 'Condition'
+            {
+            match("Condition"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__32"
+
+    // $ANTLR start "T__33"
+    public final void mT__33() throws RecognitionException {
+        try {
+            int _type = T__33;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:31:7: ( 'Property ' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:31:9: 'Property '
+            {
+            match("Property "); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:32:7: ( 'Property' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:32:9: 'Property'
+            {
+            match("Property"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__34"
+
+    // $ANTLR start "T__35"
+    public final void mT__35() throws RecognitionException {
+        try {
+            int _type = T__35;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:33:7: ( 'IMPORT' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:33:9: 'IMPORT'
+            {
+            match("IMPORT"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__35"
+
+    // $ANTLR start "RULE_IPV4_SUB"
+    public final void mRULE_IPV4_SUB() throws RecognitionException {
+        try {
+            int _type = RULE_IPV4_SUB;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1436:15: ( ( '0' .. '9' | '1' .. '9' '0' .. '9' | '1' '0' .. '9' '0' .. '9' | '2' '0' .. '4' '0' .. '9' | '25' '0' .. '5' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1436:17: ( '0' .. '9' | '1' .. '9' '0' .. '9' | '1' '0' .. '9' '0' .. '9' | '2' '0' .. '4' '0' .. '9' | '25' '0' .. '5' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1436:17: ( '0' .. '9' | '1' .. '9' '0' .. '9' | '1' '0' .. '9' '0' .. '9' | '2' '0' .. '4' '0' .. '9' | '25' '0' .. '5' )
+            int alt1=5;
+            alt1 = dfa1.predict(input);
+            switch (alt1) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1436:18: '0' .. '9'
+                    {
+                    matchRange('0','9'); 
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1436:27: '1' .. '9' '0' .. '9'
+                    {
+                    matchRange('1','9'); 
+                    matchRange('0','9'); 
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1436:45: '1' '0' .. '9' '0' .. '9'
+                    {
+                    match('1'); 
+                    matchRange('0','9'); 
+                    matchRange('0','9'); 
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1436:67: '2' '0' .. '4' '0' .. '9'
+                    {
+                    match('2'); 
+                    matchRange('0','4'); 
+                    matchRange('0','9'); 
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1436:89: '25' '0' .. '5'
+                    {
+                    match("25"); 
+
+                    matchRange('0','5'); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_IPV4_SUB"
+
+    // $ANTLR start "RULE_NEMOID"
+    public final void mRULE_NEMOID() throws RecognitionException {
+        try {
+            int _type = RULE_NEMOID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1438:13: ( ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '-' | '0' .. '9' )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1438:15: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '-' | '0' .. '9' )*
+            {
+            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1438:43: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '-' | '0' .. '9' )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0=='$'||LA2_0=='-'||(LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:
+                   {
+                   if ( input.LA(1)=='$'||input.LA(1)=='-'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                       input.consume();
+
+                   }
+                   else {
+                       MismatchedSetException mse = new MismatchedSetException(null,input);
+                       recover(mse);
+                       throw mse;}
+
+
+                   }
+                   break;
+
+               default :
+                   break loop2;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_NEMOID"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1440:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1440:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1440:11: ( '^' )?
+            int alt3=2;
+            int LA3_0 = input.LA(1);
+
+            if ( (LA3_0=='^') ) {
+                alt3=1;
+            }
+            switch (alt3) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1440:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1440:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            loop4:
+            do {
+                int alt4=2;
+                int LA4_0 = input.LA(1);
+
+                if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) {
+                    alt4=1;
+                }
+
+
+                switch (alt4) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:
+                   {
+                   if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                       input.consume();
+
+                   }
+                   else {
+                       MismatchedSetException mse = new MismatchedSetException(null,input);
+                       recover(mse);
+                       throw mse;}
+
+
+                   }
+                   break;
+
+               default :
+                   break loop4;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ID"
+
+    // $ANTLR start "RULE_INT"
+    public final void mRULE_INT() throws RecognitionException {
+        try {
+            int _type = RULE_INT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1442:10: ( ( '0' .. '9' )+ )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1442:12: ( '0' .. '9' )+
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1442:12: ( '0' .. '9' )+
+            int cnt5=0;
+            loop5:
+            do {
+                int alt5=2;
+                int LA5_0 = input.LA(1);
+
+                if ( ((LA5_0>='0' && LA5_0<='9')) ) {
+                    alt5=1;
+                }
+
+
+                switch (alt5) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1442:13: '0' .. '9'
+                   {
+                   matchRange('0','9'); 
+
+                   }
+                   break;
+
+               default :
+                   if ( cnt5 >= 1 ) break loop5;
+                        EarlyExitException eee =
+                            new EarlyExitException(5, input);
+                        throw eee;
+                }
+                cnt5++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_INT"
+
+    // $ANTLR start "RULE_STRING"
+    public final void mRULE_STRING() throws RecognitionException {
+        try {
+            int _type = RULE_STRING;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0=='\"') ) {
+                alt8=1;
+            }
+            else if ( (LA8_0=='\'') ) {
+                alt8=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    loop6:
+                    do {
+                        int alt6=3;
+                        int LA6_0 = input.LA(1);
+
+                        if ( (LA6_0=='\\') ) {
+                            alt6=1;
+                        }
+                        else if ( ((LA6_0>='\u0000' && LA6_0<='!')||(LA6_0>='#' && LA6_0<='[')||(LA6_0>=']' && LA6_0<='\uFFFF')) ) {
+                            alt6=2;
+                        }
+
+
+                        switch (alt6) {
+                       case 1 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444:21: '\\\\' .
+                           {
+                           match('\\'); 
+                           matchAny(); 
+
+                           }
+                           break;
+                       case 2 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444: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 loop6;
+                        }
+                    } while (true);
+
+                    match('\"'); 
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    loop7:
+                    do {
+                        int alt7=3;
+                        int LA7_0 = input.LA(1);
+
+                        if ( (LA7_0=='\\') ) {
+                            alt7=1;
+                        }
+                        else if ( ((LA7_0>='\u0000' && LA7_0<='&')||(LA7_0>='(' && LA7_0<='[')||(LA7_0>=']' && LA7_0<='\uFFFF')) ) {
+                            alt7=2;
+                        }
+
+
+                        switch (alt7) {
+                       case 1 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444:54: '\\\\' .
+                           {
+                           match('\\'); 
+                           matchAny(); 
+
+                           }
+                           break;
+                       case 2 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1444: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 loop7;
+                        }
+                    } while (true);
+
+                    match('\''); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_STRING"
+
+    // $ANTLR start "RULE_ML_COMMENT"
+    public final void mRULE_ML_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_ML_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1446:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1446:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1446:24: ( options {greedy=false; } : . )*
+            loop9:
+            do {
+                int alt9=2;
+                int LA9_0 = input.LA(1);
+
+                if ( (LA9_0=='*') ) {
+                    int LA9_1 = input.LA(2);
+
+                    if ( (LA9_1=='/') ) {
+                        alt9=2;
+                    }
+                    else if ( ((LA9_1>='\u0000' && LA9_1<='.')||(LA9_1>='0' && LA9_1<='\uFFFF')) ) {
+                        alt9=1;
+                    }
+
+
+                }
+                else if ( ((LA9_0>='\u0000' && LA9_0<=')')||(LA9_0>='+' && LA9_0<='\uFFFF')) ) {
+                    alt9=1;
+                }
+
+
+                switch (alt9) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1446:52: .
+                   {
+                   matchAny(); 
+
+                   }
+                   break;
+
+               default :
+                   break loop9;
+                }
+            } while (true);
+
+            match("*/"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ML_COMMENT"
+
+    // $ANTLR start "RULE_SL_COMMENT"
+    public final void mRULE_SL_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_SL_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1448:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1448:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1448:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            loop10:
+            do {
+                int alt10=2;
+                int LA10_0 = input.LA(1);
+
+                if ( ((LA10_0>='\u0000' && LA10_0<='\t')||(LA10_0>='\u000B' && LA10_0<='\f')||(LA10_0>='\u000E' && LA10_0<='\uFFFF')) ) {
+                    alt10=1;
+                }
+
+
+                switch (alt10) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1448:24: ~ ( ( '\\n' | '\\r' ) )
+                   {
+                   if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+                       input.consume();
+
+                   }
+                   else {
+                       MismatchedSetException mse = new MismatchedSetException(null,input);
+                       recover(mse);
+                       throw mse;}
+
+
+                   }
+                   break;
+
+               default :
+                   break loop10;
+                }
+            } while (true);
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1448:40: ( ( '\\r' )? '\\n' )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0=='\n'||LA12_0=='\r') ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1448:41: ( '\\r' )? '\\n'
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1448:41: ( '\\r' )?
+                    int alt11=2;
+                    int LA11_0 = input.LA(1);
+
+                    if ( (LA11_0=='\r') ) {
+                        alt11=1;
+                    }
+                    switch (alt11) {
+                        case 1 :
+                            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1448:41: '\\r'
+                            {
+                            match('\r'); 
+
+                            }
+                            break;
+
+                    }
+
+                    match('\n'); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_SL_COMMENT"
+
+    // $ANTLR start "RULE_WS"
+    public final void mRULE_WS() throws RecognitionException {
+        try {
+            int _type = RULE_WS;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1450:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1450:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1450:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            int cnt13=0;
+            loop13:
+            do {
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+
+                if ( ((LA13_0>='\t' && LA13_0<='\n')||LA13_0=='\r'||LA13_0==' ') ) {
+                    alt13=1;
+                }
+
+
+                switch (alt13) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:
+                   {
+                   if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+                       input.consume();
+
+                   }
+                   else {
+                       MismatchedSetException mse = new MismatchedSetException(null,input);
+                       recover(mse);
+                       throw mse;}
+
+
+                   }
+                   break;
+
+               default :
+                   if ( cnt13 >= 1 ) break loop13;
+                        EarlyExitException eee =
+                            new EarlyExitException(13, input);
+                        throw eee;
+                }
+                cnt13++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_WS"
+
+    // $ANTLR start "RULE_ANY_OTHER"
+    public final void mRULE_ANY_OTHER() throws RecognitionException {
+        try {
+            int _type = RULE_ANY_OTHER;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1452:16: ( . )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1452:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | RULE_IPV4_SUB | RULE_NEMOID | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt14=32;
+        alt14 = dfa14.predict(input);
+        switch (alt14) {
+            case 1 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:10: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 2 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:16: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 3 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:22: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 4 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:28: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 5 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:34: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 6 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:40: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 7 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:46: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 8 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:52: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 9 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:58: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 10 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:64: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 11 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:70: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 12 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:76: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 13 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:82: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 14 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:88: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 15 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:94: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 16 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:100: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 17 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:106: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 18 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:112: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 19 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:118: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 20 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:124: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 21 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:130: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 22 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:136: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 23 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:142: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 24 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:148: RULE_IPV4_SUB
+                {
+                mRULE_IPV4_SUB(); 
+
+                }
+                break;
+            case 25 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:162: RULE_NEMOID
+                {
+                mRULE_NEMOID(); 
+
+                }
+                break;
+            case 26 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:174: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 27 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:182: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 28 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:191: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 29 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:203: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 30 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:219: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 31 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:235: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 32 :
+                // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1:243: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA1 dfa1 = new DFA1(this);
+    protected DFA14 dfa14 = new DFA14(this);
+    static final String DFA1_eotS =
+        "\1\uffff\1\2\1\uffff\2\2\3\10\4\uffff";
+    static final String DFA1_eofS =
+        "\14\uffff";
+    static final String DFA1_minS =
+        "\2\60\1\uffff\5\60\4\uffff";
+    static final String DFA1_maxS =
+        "\2\71\1\uffff\4\71\1\65\4\uffff";
+    static final String DFA1_acceptS =
+        "\2\uffff\1\1\5\uffff\1\2\1\3\1\4\1\5";
+    static final String DFA1_specialS =
+        "\14\uffff}>";
+    static final String[] DFA1_transitionS = {
+            "\1\2\1\1\1\3\7\4",
+            "\12\5",
+            "",
+            "\5\6\1\7\4\10",
+            "\12\10",
+            "\12\11",
+            "\12\12",
+            "\6\13",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS);
+    static final short[] DFA1_eof = DFA.unpackEncodedString(DFA1_eofS);
+    static final char[] DFA1_min = DFA.unpackEncodedStringToUnsignedChars(DFA1_minS);
+    static final char[] DFA1_max = DFA.unpackEncodedStringToUnsignedChars(DFA1_maxS);
+    static final short[] DFA1_accept = DFA.unpackEncodedString(DFA1_acceptS);
+    static final short[] DFA1_special = DFA.unpackEncodedString(DFA1_specialS);
+    static final short[][] DFA1_transition;
+
+    static {
+        int numStates = DFA1_transitionS.length;
+        DFA1_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA1_transition[i] = DFA.unpackEncodedString(DFA1_transitionS[i]);
+        }
+    }
+
+    class DFA1 extends DFA {
+
+        public DFA1(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 1;
+            this.eot = DFA1_eot;
+            this.eof = DFA1_eof;
+            this.min = DFA1_min;
+            this.max = DFA1_max;
+            this.accept = DFA1_accept;
+            this.special = DFA1_special;
+            this.transition = DFA1_transition;
+        }
+        public String getDescription() {
+            return "1436:17: ( '0' .. '9' | '1' .. '9' '0' .. '9' | '1' '0' .. '9' '0' .. '9' | '2' '0' .. '4' '0' .. '9' | '25' '0' .. '5' )";
+        }
+    }
+    static final String DFA14_eotS =
+        "\1\uffff\1\36\3\uffff\7\36\1\uffff\4\36\4\62\1\36\1\34\1\uffff\3\34\2\uffff\1\36\1\uffff\1\36\3\uffff\11\36\1\uffff\4\36\1\62\2\uffff\3\62\5\uffff\20\36\3\62\6\36\1\147\1\150\3\36\1\154\14\36\2\uffff\3\36\1\uffff\1\174\7\36\1\u0084\3\36\1\u0088\1\u0089\1\u008a\1\uffff\3\36\1\u008e\1\u008f\2\36\1\uffff\1\u0092\2\36\3\uffff\3\36\3\uffff\1\u0098\1\uffff\3\36\1\u009c\1\u009e\1\uffff\1\36\1\u00a0\1\u00a1\3\uffff\1\u00a2\3\uffff";
+    static final String DFA14_eofS =
+        "\u00a3\uffff";
+    static final String DFA14_minS =
+        "\1\0\1\60\3\uffff\7\60\1\uffff\11\60\1\101\1\uffff\2\0\1\52\2\uffff\1\60\1\uffff\1\60\3\uffff\11\60\1\uffff\5\60\2\uffff\3\60\5\uffff\31\60\2\44\3\60\1\44\14\60\2\uffff\3\60\1\uffff\1\44\7\60\1\44\3\60\3\44\1\uffff\3\60\2\44\2\60\1\uffff\1\44\2\60\3\uffff\3\60\3\uffff\1\44\1\uffff\3\60\1\44\1\40\1\uffff\1\60\2\44\3\uffff\1\44\3\uffff";
+    static final String DFA14_maxS =
+        "\1\uffff\1\172\3\uffff\7\172\1\uffff\4\172\4\71\2\172\1\uffff\2\uffff\1\57\2\uffff\1\172\1\uffff\1\172\3\uffff\11\172\1\uffff\4\172\1\71\2\uffff\3\71\5\uffff\20\172\3\71\30\172\2\uffff\3\172\1\uffff\17\172\1\uffff\7\172\1\uffff\3\172\3\uffff\3\172\3\uffff\1\172\1\uffff\5\172\1\uffff\3\172\3\uffff\1\172\3\uffff";
+    static final String DFA14_acceptS =
+        "\2\uffff\1\2\1\3\1\4\7\uffff\1\17\12\uffff\1\31\3\uffff\1\37\1\40\1\uffff\1\31\1\uffff\1\2\1\3\1\4\11\uffff\1\17\5\uffff\1\30\1\33\3\uffff\1\32\1\34\1\35\1\36\1\37\53\uffff\1\6\1\7\3\uffff\1\15\17\uffff\1\16\7\uffff\1\5\3\uffff\1\22\1\11\1\12\3\uffff\1\23\1\27\1\1\1\uffff\1\10\5\uffff\1\14\3\uffff\1\21\1\25\1\26\1\uffff\1\24\1\20\1\13";
+    static final String DFA14_specialS =
+        "\1\0\27\uffff\1\2\1\1\u0089\uffff}>";
+    static final String[] DFA14_transitionS = {
+            "\11\34\2\33\2\34\1\33\22\34\1\33\1\34\1\30\1\34\1\27\2\34\1\31\4\34\1\2\1\34\1\4\1\32\1\22\1\21\1\23\7\24\1\14\1\3\5\34\1\17\1\25\1\5\1\11\1\1\1\12\2\25\1\20\3\25\1\13\1\6\1\15\1\16\3\25\1\7\1\10\5\25\3\34\1\26\1\25\1\34\32\25\uff85\34",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\35\14\37",
+            "",
+            "",
+            "",
+            "\12\37\7\uffff\21\37\1\43\10\37\4\uffff\1\37\1\uffff\16\37\1\44\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\45\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\1\47\27\37\1\46\1\37",
+            "\12\37\7\uffff\17\37\1\50\12\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\4\37\1\51\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\13\37\1\52\16\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\1\53\31\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\17\37\1\55\12\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\56\10\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\2\37\1\57\27\37",
+            "\12\37\7\uffff\14\37\1\60\15\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\61",
+            "\12\63",
+            "\5\64\1\65\4\66",
+            "\12\66",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\32\67\4\uffff\1\67\1\uffff\32\67",
+            "",
+            "\0\70",
+            "\0\70",
+            "\1\71\4\uffff\1\72",
+            "",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\3\37\1\75\2\37\1\74\23\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "",
+            "",
+            "\12\37\7\uffff\4\37\1\76\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\77\14\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\3\37\1\100\26\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\17\37\1\101\12\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\102\10\37",
+            "\12\37\7\uffff\3\37\1\103\26\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\13\37\1\104\16\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\105\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\106\6\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\107\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\110\5\37\1\111\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\112\6\37",
+            "\12\37\7\uffff\17\37\1\113\12\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\114",
+            "",
+            "",
+            "\12\115",
+            "\6\116\4\63",
+            "\12\63",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\117\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\120\14\37",
+            "\12\37\7\uffff\1\121\31\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\3\37\1\124\11\37\1\123\5\37\1\122\6\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\125\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\126\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\6\37\1\127\23\37",
+            "\12\37\7\uffff\1\130\31\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\4\37\1\131\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\26\37\1\132\3\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\2\37\1\133\27\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\134\10\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\135\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\17\37\1\136\12\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\137\21\37",
+            "\12\37\7\uffff\16\37\1\140\13\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\63",
+            "\12\63",
+            "\12\63",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\141\14\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\142\13\37",
+            "\12\37\7\uffff\23\37\1\143\6\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\1\144\31\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\145\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\146\21\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\151\25\37",
+            "\12\37\7\uffff\23\37\1\152\6\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\23\37\1\153\6\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\7\37\1\155\22\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\1\156\31\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\157\10\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\160\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\161\13\37",
+            "\12\37\7\uffff\21\37\1\162\10\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\163\25\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\3\37\1\164\26\37",
+            "\12\37\7\uffff\4\37\1\165\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\166\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\2\37\1\167\27\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\170\6\37",
+            "",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\171\6\37",
+            "\12\37\7\uffff\4\37\1\172\25\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\4\37\1\173\25\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\175\6\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\176\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\21\37\1\177\10\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\u0080\14\37",
+            "\12\37\7\uffff\23\37\1\u0081\6\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\22\37\1\u0082\7\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\4\37\1\u0083\25\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\u0085\14\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\u0086\6\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\u0087\21\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\u008b\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\u008c\6\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\23\37\1\u008d\6\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\1\u0090\6\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\22\37\1\u0091\7\37",
+            "",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\10\37\1\u0093\21\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\u0094\13\37",
+            "",
+            "",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\u0095\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\30\37\1\u0096\1\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\30\37\1\u0097\1\37",
+            "",
+            "",
+            "",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\u0099\13\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\u009a\14\37",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\u009b\14\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\u009d\3\uffff\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\15\37\1\u009f\14\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "",
+            "",
+            "\1\36\10\uffff\1\36\2\uffff\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
+    static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
+    static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
+    static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
+    static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
+    static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
+    static final short[][] DFA14_transition;
+
+    static {
+        int numStates = DFA14_transitionS.length;
+        DFA14_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA14_transition[i] = DFA.unpackEncodedString(DFA14_transitionS[i]);
+        }
+    }
+
+    class DFA14 extends DFA {
+
+        public DFA14(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 14;
+            this.eot = DFA14_eot;
+            this.eof = DFA14_eof;
+            this.min = DFA14_min;
+            this.max = DFA14_max;
+            this.accept = DFA14_accept;
+            this.special = DFA14_special;
+            this.transition = DFA14_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | RULE_IPV4_SUB | RULE_NEMOID | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            IntStream input = _input;
+               int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA14_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA14_0=='E') ) {s = 1;}
+
+                        else if ( (LA14_0==',') ) {s = 2;}
+
+                        else if ( (LA14_0==';') ) {s = 3;}
+
+                        else if ( (LA14_0=='.') ) {s = 4;}
+
+                        else if ( (LA14_0=='C') ) {s = 5;}
+
+                        else if ( (LA14_0=='N') ) {s = 6;}
+
+                        else if ( (LA14_0=='T') ) {s = 7;}
+
+                        else if ( (LA14_0=='U') ) {s = 8;}
+
+                        else if ( (LA14_0=='D') ) {s = 9;}
+
+                        else if ( (LA14_0=='F') ) {s = 10;}
+
+                        else if ( (LA14_0=='M') ) {s = 11;}
+
+                        else if ( (LA14_0==':') ) {s = 12;}
+
+                        else if ( (LA14_0=='O') ) {s = 13;}
+
+                        else if ( (LA14_0=='P') ) {s = 14;}
+
+                        else if ( (LA14_0=='A') ) {s = 15;}
+
+                        else if ( (LA14_0=='I') ) {s = 16;}
+
+                        else if ( (LA14_0=='1') ) {s = 17;}
+
+                        else if ( (LA14_0=='0') ) {s = 18;}
+
+                        else if ( (LA14_0=='2') ) {s = 19;}
+
+                        else if ( ((LA14_0>='3' && LA14_0<='9')) ) {s = 20;}
+
+                        else if ( (LA14_0=='B'||(LA14_0>='G' && LA14_0<='H')||(LA14_0>='J' && LA14_0<='L')||(LA14_0>='Q' && LA14_0<='S')||(LA14_0>='V' && LA14_0<='Z')||LA14_0=='_'||(LA14_0>='a' && LA14_0<='z')) ) {s = 21;}
+
+                        else if ( (LA14_0=='^') ) {s = 22;}
+
+                        else if ( (LA14_0=='$') ) {s = 23;}
+
+                        else if ( (LA14_0=='\"') ) {s = 24;}
+
+                        else if ( (LA14_0=='\'') ) {s = 25;}
+
+                        else if ( (LA14_0=='/') ) {s = 26;}
+
+                        else if ( ((LA14_0>='\t' && LA14_0<='\n')||LA14_0=='\r'||LA14_0==' ') ) {s = 27;}
+
+                        else if ( ((LA14_0>='\u0000' && LA14_0<='\b')||(LA14_0>='\u000B' && LA14_0<='\f')||(LA14_0>='\u000E' && LA14_0<='\u001F')||LA14_0=='!'||LA14_0=='#'||(LA14_0>='%' && LA14_0<='&')||(LA14_0>='(' && LA14_0<='+')||LA14_0=='-'||(LA14_0>='<' && LA14_0<='@')||(LA14_0>='[' && LA14_0<=']')||LA14_0=='`'||(LA14_0>='{' && LA14_0<='\uFFFF')) ) {s = 28;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA14_25 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA14_25>='\u0000' && LA14_25<='\uFFFF')) ) {s = 56;}
+
+                        else s = 28;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA14_24 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA14_24>='\u0000' && LA14_24<='\uFFFF')) ) {s = 56;}
+
+                        else s = 28;
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 14, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditorParser.java
new file mode 100644 (file)
index 0000000..c690a70
--- /dev/null
@@ -0,0 +1,3769 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.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.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalEditorParser extends AbstractInternalAntlrParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_IPV4_SUB", "RULE_STRING", "RULE_NEMOID", "RULE_INT", "RULE_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'Engines:'", "','", "';'", "'.'", "'CREATE'", "'Node'", "'Type'", "'Contain'", "'UPDATE'", "'DELETE'", "'Connection'", "'Endnodes'", "'Flow'", "'Match'", "':'", "'Operation'", "'Priority'", "'Target'", "'Action'", "'Condition'", "'Property '", "'Property'", "'IMPORT'"
+    };
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    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__33=33;
+    public static final int T__34=34;
+    public static final int T__13=13;
+    public static final int T__35=35;
+    public static final int T__14=14;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_ID=8;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int RULE_IPV4_SUB=4;
+    public static final int T__28=28;
+    public static final int RULE_INT=7;
+    public static final int T__29=29;
+    public static final int RULE_NEMOID=6;
+    public static final int T__22=22;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+
+    // delegates
+    // delegators
+
+
+        public InternalEditorParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalEditorParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalEditorParser.tokenNames; }
+    public String getGrammarFileName() { return "../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g"; }
+
+
+
+       private EditorGrammarAccess grammarAccess;
+       
+        public InternalEditorParser(TokenStream input, EditorGrammarAccess grammarAccess) {
+            this(input);
+            this.grammarAccess = grammarAccess;
+            registerRules(grammarAccess.getGrammar());
+        }
+        
+        @Override
+        protected String getFirstRuleName() {
+               return "Model"; 
+               }
+               
+               @Override
+               protected EditorGrammarAccess getGrammarAccess() {
+                       return grammarAccess;
+               }
+
+
+
+    // $ANTLR start "entryRuleModel"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:67:1: entryRuleModel returns [EObject current=null] : iv_ruleModel= ruleModel EOF ;
+    public final EObject entryRuleModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleModel = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:68:2: (iv_ruleModel= ruleModel EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:69:2: iv_ruleModel= ruleModel EOF
+            {
+             newCompositeNode(grammarAccess.getModelRule()); 
+            pushFollow(FOLLOW_ruleModel_in_entryRuleModel75);
+            iv_ruleModel=ruleModel();
+
+            state._fsp--;
+
+             current =iv_ruleModel; 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleModel85); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleModel"
+
+
+    // $ANTLR start "ruleModel"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:76:1: ruleModel returns [EObject current=null] : ( (lv_sentences_0_0= ruleSentence ) )* ;
+    public final EObject ruleModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_sentences_0_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:79:28: ( ( (lv_sentences_0_0= ruleSentence ) )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:80:1: ( (lv_sentences_0_0= ruleSentence ) )*
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:80:1: ( (lv_sentences_0_0= ruleSentence ) )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==13||LA1_0==17||(LA1_0>=21 && LA1_0<=22)||LA1_0==35) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:81:1: (lv_sentences_0_0= ruleSentence )
+                   {
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:81:1: (lv_sentences_0_0= ruleSentence )
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:82:3: lv_sentences_0_0= ruleSentence
+                   {
+                    
+                               newCompositeNode(grammarAccess.getModelAccess().getSentencesSentenceParserRuleCall_0()); 
+                           
+                   pushFollow(FOLLOW_ruleSentence_in_ruleModel130);
+                   lv_sentences_0_0=ruleSentence();
+
+                   state._fsp--;
+
+
+                               if (current==null) {
+                                   current = createModelElementForParent(grammarAccess.getModelRule());
+                               }
+                                       add(
+                                               current, 
+                                               "sentences",
+                                       lv_sentences_0_0, 
+                                       "Sentence");
+                               afterParserOrEnumRuleCall();
+                           
+
+                   }
+
+
+                   }
+                   break;
+
+               default :
+                   break loop1;
+                }
+            } while (true);
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleModel"
+
+
+    // $ANTLR start "entryRuleSentence"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:106:1: entryRuleSentence returns [EObject current=null] : iv_ruleSentence= ruleSentence EOF ;
+    public final EObject entryRuleSentence() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSentence = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:107:2: (iv_ruleSentence= ruleSentence EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:108:2: iv_ruleSentence= ruleSentence EOF
+            {
+             newCompositeNode(grammarAccess.getSentenceRule()); 
+            pushFollow(FOLLOW_ruleSentence_in_entryRuleSentence166);
+            iv_ruleSentence=ruleSentence();
+
+            state._fsp--;
+
+             current =iv_ruleSentence; 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSentence176); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSentence"
+
+
+    // $ANTLR start "ruleSentence"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:115:1: ruleSentence returns [EObject current=null] : ( ruleSenEngines | ruleUser | this_Node_2= ruleNode | this_NodeOperating_3= ruleNodeOperating | this_Connection_4= ruleConnection | this_ConnectionUpdate_5= ruleConnectionUpdate | this_Flow_6= ruleFlow | this_FlowUpdate_7= ruleFlowUpdate | this_Operation_8= ruleOperation ) ;
+    public final EObject ruleSentence() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_Node_2 = null;
+
+        EObject this_NodeOperating_3 = null;
+
+        EObject this_Connection_4 = null;
+
+        EObject this_ConnectionUpdate_5 = null;
+
+        EObject this_Flow_6 = null;
+
+        EObject this_FlowUpdate_7 = null;
+
+        EObject this_Operation_8 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:118:28: ( ( ruleSenEngines | ruleUser | this_Node_2= ruleNode | this_NodeOperating_3= ruleNodeOperating | this_Connection_4= ruleConnection | this_ConnectionUpdate_5= ruleConnectionUpdate | this_Flow_6= ruleFlow | this_FlowUpdate_7= ruleFlowUpdate | this_Operation_8= ruleOperation ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:119:1: ( ruleSenEngines | ruleUser | this_Node_2= ruleNode | this_NodeOperating_3= ruleNodeOperating | this_Connection_4= ruleConnection | this_ConnectionUpdate_5= ruleConnectionUpdate | this_Flow_6= ruleFlow | this_FlowUpdate_7= ruleFlowUpdate | this_Operation_8= ruleOperation )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:119:1: ( ruleSenEngines | ruleUser | this_Node_2= ruleNode | this_NodeOperating_3= ruleNodeOperating | this_Connection_4= ruleConnection | this_ConnectionUpdate_5= ruleConnectionUpdate | this_Flow_6= ruleFlow | this_FlowUpdate_7= ruleFlowUpdate | this_Operation_8= ruleOperation )
+            int alt2=9;
+            alt2 = dfa2.predict(input);
+            switch (alt2) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:120:5: ruleSenEngines
+                    {
+                     
+                            newCompositeNode(grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()); 
+                        
+                    pushFollow(FOLLOW_ruleSenEngines_in_ruleSentence217);
+                    ruleSenEngines();
+
+                    state._fsp--;
+
+                     
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:129:5: ruleUser
+                    {
+                     
+                            newCompositeNode(grammarAccess.getSentenceAccess().getUserParserRuleCall_1()); 
+                        
+                    pushFollow(FOLLOW_ruleUser_in_ruleSentence238);
+                    ruleUser();
+
+                    state._fsp--;
+
+                     
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:138:5: this_Node_2= ruleNode
+                    {
+                     
+                            newCompositeNode(grammarAccess.getSentenceAccess().getNodeParserRuleCall_2()); 
+                        
+                    pushFollow(FOLLOW_ruleNode_in_ruleSentence265);
+                    this_Node_2=ruleNode();
+
+                    state._fsp--;
+
+                     
+                            current = this_Node_2; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:148:5: this_NodeOperating_3= ruleNodeOperating
+                    {
+                     
+                            newCompositeNode(grammarAccess.getSentenceAccess().getNodeOperatingParserRuleCall_3()); 
+                        
+                    pushFollow(FOLLOW_ruleNodeOperating_in_ruleSentence292);
+                    this_NodeOperating_3=ruleNodeOperating();
+
+                    state._fsp--;
+
+                     
+                            current = this_NodeOperating_3; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:158:5: this_Connection_4= ruleConnection
+                    {
+                     
+                            newCompositeNode(grammarAccess.getSentenceAccess().getConnectionParserRuleCall_4()); 
+                        
+                    pushFollow(FOLLOW_ruleConnection_in_ruleSentence319);
+                    this_Connection_4=ruleConnection();
+
+                    state._fsp--;
+
+                     
+                            current = this_Connection_4; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:168:5: this_ConnectionUpdate_5= ruleConnectionUpdate
+                    {
+                     
+                            newCompositeNode(grammarAccess.getSentenceAccess().getConnectionUpdateParserRuleCall_5()); 
+                        
+                    pushFollow(FOLLOW_ruleConnectionUpdate_in_ruleSentence346);
+                    this_ConnectionUpdate_5=ruleConnectionUpdate();
+
+                    state._fsp--;
+
+                     
+                            current = this_ConnectionUpdate_5; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 7 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:178:5: this_Flow_6= ruleFlow
+                    {
+                     
+                            newCompositeNode(grammarAccess.getSentenceAccess().getFlowParserRuleCall_6()); 
+                        
+                    pushFollow(FOLLOW_ruleFlow_in_ruleSentence373);
+                    this_Flow_6=ruleFlow();
+
+                    state._fsp--;
+
+                     
+                            current = this_Flow_6; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 8 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:188:5: this_FlowUpdate_7= ruleFlowUpdate
+                    {
+                     
+                            newCompositeNode(grammarAccess.getSentenceAccess().getFlowUpdateParserRuleCall_7()); 
+                        
+                    pushFollow(FOLLOW_ruleFlowUpdate_in_ruleSentence400);
+                    this_FlowUpdate_7=ruleFlowUpdate();
+
+                    state._fsp--;
+
+                     
+                            current = this_FlowUpdate_7; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 9 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:198:5: this_Operation_8= ruleOperation
+                    {
+                     
+                            newCompositeNode(grammarAccess.getSentenceAccess().getOperationParserRuleCall_8()); 
+                        
+                    pushFollow(FOLLOW_ruleOperation_in_ruleSentence427);
+                    this_Operation_8=ruleOperation();
+
+                    state._fsp--;
+
+                     
+                            current = this_Operation_8; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSentence"
+
+
+    // $ANTLR start "entryRuleSenEngines"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:214:1: entryRuleSenEngines returns [String current=null] : iv_ruleSenEngines= ruleSenEngines EOF ;
+    public final String entryRuleSenEngines() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleSenEngines = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:215:2: (iv_ruleSenEngines= ruleSenEngines EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:216:2: iv_ruleSenEngines= ruleSenEngines EOF
+            {
+             newCompositeNode(grammarAccess.getSenEnginesRule()); 
+            pushFollow(FOLLOW_ruleSenEngines_in_entryRuleSenEngines463);
+            iv_ruleSenEngines=ruleSenEngines();
+
+            state._fsp--;
+
+             current =iv_ruleSenEngines.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSenEngines474); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSenEngines"
+
+
+    // $ANTLR start "ruleSenEngines"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:223:1: ruleSenEngines returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Engines:' this_Ipv4_1= ruleIpv4 (kw= ',' this_Ipv4_3= ruleIpv4 )* kw= ';' ) ;
+    public final AntlrDatatypeRuleToken ruleSenEngines() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_Ipv4_1 = null;
+
+        AntlrDatatypeRuleToken this_Ipv4_3 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:226:28: ( (kw= 'Engines:' this_Ipv4_1= ruleIpv4 (kw= ',' this_Ipv4_3= ruleIpv4 )* kw= ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:227:1: (kw= 'Engines:' this_Ipv4_1= ruleIpv4 (kw= ',' this_Ipv4_3= ruleIpv4 )* kw= ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:227:1: (kw= 'Engines:' this_Ipv4_1= ruleIpv4 (kw= ',' this_Ipv4_3= ruleIpv4 )* kw= ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:228:2: kw= 'Engines:' this_Ipv4_1= ruleIpv4 (kw= ',' this_Ipv4_3= ruleIpv4 )* kw= ';'
+            {
+            kw=(Token)match(input,13,FOLLOW_13_in_ruleSenEngines512); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getSenEnginesAccess().getEnginesKeyword_0()); 
+                
+             
+                    newCompositeNode(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_1()); 
+                
+            pushFollow(FOLLOW_ruleIpv4_in_ruleSenEngines534);
+            this_Ipv4_1=ruleIpv4();
+
+            state._fsp--;
+
+
+                       current.merge(this_Ipv4_1);
+                
+             
+                    afterParserOrEnumRuleCall();
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:244:1: (kw= ',' this_Ipv4_3= ruleIpv4 )*
+            loop3:
+            do {
+                int alt3=2;
+                int LA3_0 = input.LA(1);
+
+                if ( (LA3_0==14) ) {
+                    alt3=1;
+                }
+
+
+                switch (alt3) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:245:2: kw= ',' this_Ipv4_3= ruleIpv4
+                   {
+                   kw=(Token)match(input,14,FOLLOW_14_in_ruleSenEngines553); 
+
+                           current.merge(kw);
+                           newLeafNode(kw, grammarAccess.getSenEnginesAccess().getCommaKeyword_2_0()); 
+                       
+                    
+                           newCompositeNode(grammarAccess.getSenEnginesAccess().getIpv4ParserRuleCall_2_1()); 
+                       
+                   pushFollow(FOLLOW_ruleIpv4_in_ruleSenEngines575);
+                   this_Ipv4_3=ruleIpv4();
+
+                   state._fsp--;
+
+
+                               current.merge(this_Ipv4_3);
+                       
+                    
+                           afterParserOrEnumRuleCall();
+                       
+
+                   }
+                   break;
+
+               default :
+                   break loop3;
+                }
+            } while (true);
+
+            kw=(Token)match(input,15,FOLLOW_15_in_ruleSenEngines595); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getSenEnginesAccess().getSemicolonKeyword_3()); 
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSenEngines"
+
+
+    // $ANTLR start "entryRuleIpv4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:275:1: entryRuleIpv4 returns [String current=null] : iv_ruleIpv4= ruleIpv4 EOF ;
+    public final String entryRuleIpv4() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleIpv4 = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:276:2: (iv_ruleIpv4= ruleIpv4 EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:277:2: iv_ruleIpv4= ruleIpv4 EOF
+            {
+             newCompositeNode(grammarAccess.getIpv4Rule()); 
+            pushFollow(FOLLOW_ruleIpv4_in_entryRuleIpv4636);
+            iv_ruleIpv4=ruleIpv4();
+
+            state._fsp--;
+
+             current =iv_ruleIpv4.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleIpv4647); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleIpv4"
+
+
+    // $ANTLR start "ruleIpv4"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:284:1: ruleIpv4 returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_IPV4_SUB_0= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_2= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_4= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_6= RULE_IPV4_SUB ) ;
+    public final AntlrDatatypeRuleToken ruleIpv4() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_IPV4_SUB_0=null;
+        Token kw=null;
+        Token this_IPV4_SUB_2=null;
+        Token this_IPV4_SUB_4=null;
+        Token this_IPV4_SUB_6=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:287:28: ( (this_IPV4_SUB_0= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_2= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_4= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_6= RULE_IPV4_SUB ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:288:1: (this_IPV4_SUB_0= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_2= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_4= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_6= RULE_IPV4_SUB )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:288:1: (this_IPV4_SUB_0= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_2= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_4= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_6= RULE_IPV4_SUB )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:288:6: this_IPV4_SUB_0= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_2= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_4= RULE_IPV4_SUB kw= '.' this_IPV4_SUB_6= RULE_IPV4_SUB
+            {
+            this_IPV4_SUB_0=(Token)match(input,RULE_IPV4_SUB,FOLLOW_RULE_IPV4_SUB_in_ruleIpv4687); 
+
+                       current.merge(this_IPV4_SUB_0);
+                
+             
+                newLeafNode(this_IPV4_SUB_0, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_0()); 
+                
+            kw=(Token)match(input,16,FOLLOW_16_in_ruleIpv4705); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getIpv4Access().getFullStopKeyword_1()); 
+                
+            this_IPV4_SUB_2=(Token)match(input,RULE_IPV4_SUB,FOLLOW_RULE_IPV4_SUB_in_ruleIpv4720); 
+
+                       current.merge(this_IPV4_SUB_2);
+                
+             
+                newLeafNode(this_IPV4_SUB_2, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_2()); 
+                
+            kw=(Token)match(input,16,FOLLOW_16_in_ruleIpv4738); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getIpv4Access().getFullStopKeyword_3()); 
+                
+            this_IPV4_SUB_4=(Token)match(input,RULE_IPV4_SUB,FOLLOW_RULE_IPV4_SUB_in_ruleIpv4753); 
+
+                       current.merge(this_IPV4_SUB_4);
+                
+             
+                newLeafNode(this_IPV4_SUB_4, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_4()); 
+                
+            kw=(Token)match(input,16,FOLLOW_16_in_ruleIpv4771); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getIpv4Access().getFullStopKeyword_5()); 
+                
+            this_IPV4_SUB_6=(Token)match(input,RULE_IPV4_SUB,FOLLOW_RULE_IPV4_SUB_in_ruleIpv4786); 
+
+                       current.merge(this_IPV4_SUB_6);
+                
+             
+                newLeafNode(this_IPV4_SUB_6, grammarAccess.getIpv4Access().getIPV4_SUBTerminalRuleCall_6()); 
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleIpv4"
+
+
+    // $ANTLR start "entryRuleUser"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:342:1: entryRuleUser returns [String current=null] : iv_ruleUser= ruleUser EOF ;
+    public final String entryRuleUser() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleUser = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:343:2: (iv_ruleUser= ruleUser EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:344:2: iv_ruleUser= ruleUser EOF
+            {
+             newCompositeNode(grammarAccess.getUserRule()); 
+            pushFollow(FOLLOW_ruleUser_in_entryRuleUser832);
+            iv_ruleUser=ruleUser();
+
+            state._fsp--;
+
+             current =iv_ruleUser.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleUser843); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleUser"
+
+
+    // $ANTLR start "ruleUser"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:351:1: ruleUser returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'CREATE' this_STRING_1= RULE_STRING this_STRING_2= RULE_STRING this_STRING_3= RULE_STRING kw= ';' ) ;
+    public final AntlrDatatypeRuleToken ruleUser() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        Token this_STRING_1=null;
+        Token this_STRING_2=null;
+        Token this_STRING_3=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:354:28: ( (kw= 'CREATE' this_STRING_1= RULE_STRING this_STRING_2= RULE_STRING this_STRING_3= RULE_STRING kw= ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:355:1: (kw= 'CREATE' this_STRING_1= RULE_STRING this_STRING_2= RULE_STRING this_STRING_3= RULE_STRING kw= ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:355:1: (kw= 'CREATE' this_STRING_1= RULE_STRING this_STRING_2= RULE_STRING this_STRING_3= RULE_STRING kw= ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:356:2: kw= 'CREATE' this_STRING_1= RULE_STRING this_STRING_2= RULE_STRING this_STRING_3= RULE_STRING kw= ';'
+            {
+            kw=(Token)match(input,17,FOLLOW_17_in_ruleUser881); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getUserAccess().getCREATEKeyword_0()); 
+                
+            this_STRING_1=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleUser896); 
+
+                       current.merge(this_STRING_1);
+                
+             
+                newLeafNode(this_STRING_1, grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_1()); 
+                
+            this_STRING_2=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleUser916); 
+
+                       current.merge(this_STRING_2);
+                
+             
+                newLeafNode(this_STRING_2, grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_2()); 
+                
+            this_STRING_3=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleUser936); 
+
+                       current.merge(this_STRING_3);
+                
+             
+                newLeafNode(this_STRING_3, grammarAccess.getUserAccess().getSTRINGTerminalRuleCall_3()); 
+                
+            kw=(Token)match(input,15,FOLLOW_15_in_ruleUser954); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getUserAccess().getSemicolonKeyword_4()); 
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleUser"
+
+
+    // $ANTLR start "entryRuleNode"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:396:1: entryRuleNode returns [EObject current=null] : iv_ruleNode= ruleNode EOF ;
+    public final EObject entryRuleNode() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleNode = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:397:2: (iv_ruleNode= ruleNode EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:398:2: iv_ruleNode= ruleNode EOF
+            {
+             newCompositeNode(grammarAccess.getNodeRule()); 
+            pushFollow(FOLLOW_ruleNode_in_entryRuleNode994);
+            iv_ruleNode=ruleNode();
+
+            state._fsp--;
+
+             current =iv_ruleNode; 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNode1004); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleNode"
+
+
+    // $ANTLR start "ruleNode"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:405:1: ruleNode returns [EObject current=null] : ( ruleNewObj otherlv_1= 'Node' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID ) (otherlv_5= 'Contain' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_10= ';' ) ;
+    public final EObject ruleNode() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_name_2_0=null;
+        Token otherlv_3=null;
+        Token this_NemoId_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:408:28: ( ( ruleNewObj otherlv_1= 'Node' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID ) (otherlv_5= 'Contain' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_10= ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:409:1: ( ruleNewObj otherlv_1= 'Node' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID ) (otherlv_5= 'Contain' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_10= ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:409:1: ( ruleNewObj otherlv_1= 'Node' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID ) (otherlv_5= 'Contain' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_10= ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:410:5: ruleNewObj otherlv_1= 'Node' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID ) (otherlv_5= 'Contain' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_10= ';'
+            {
+             
+                    newCompositeNode(grammarAccess.getNodeAccess().getNewObjParserRuleCall_0()); 
+                
+            pushFollow(FOLLOW_ruleNewObj_in_ruleNode1045);
+            ruleNewObj();
+
+            state._fsp--;
+
+             
+                    afterParserOrEnumRuleCall();
+                
+            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleNode1056); 
+
+                       newLeafNode(otherlv_1, grammarAccess.getNodeAccess().getNodeKeyword_1());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:421:1: ( (lv_name_2_0= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:422:1: (lv_name_2_0= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:422:1: (lv_name_2_0= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:423:3: lv_name_2_0= RULE_NEMOID
+            {
+            lv_name_2_0=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleNode1073); 
+
+                               newLeafNode(lv_name_2_0, grammarAccess.getNodeAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+                       
+
+                       if (current==null) {
+                           current = createModelElement(grammarAccess.getNodeRule());
+                       }
+                               setWithLastConsumed(
+                                       current, 
+                                       "name",
+                               lv_name_2_0, 
+                               "NemoId");
+                   
+
+            }
+
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:439:2: (otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:439:4: otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID
+            {
+            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleNode1091); 
+
+                       newLeafNode(otherlv_3, grammarAccess.getNodeAccess().getTypeKeyword_3_0());
+                
+            this_NemoId_4=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleNode1102); 
+             
+                newLeafNode(this_NemoId_4, grammarAccess.getNodeAccess().getNemoIdTerminalRuleCall_3_1()); 
+                
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:447:2: (otherlv_5= 'Contain' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* )?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==20) ) {
+                alt5=1;
+            }
+            switch (alt5) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:447:4: otherlv_5= 'Contain' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )*
+                    {
+                    otherlv_5=(Token)match(input,20,FOLLOW_20_in_ruleNode1115); 
+
+                               newLeafNode(otherlv_5, grammarAccess.getNodeAccess().getContainKeyword_4_0());
+                        
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:451:1: ( (otherlv_6= RULE_NEMOID ) )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:452:1: (otherlv_6= RULE_NEMOID )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:452:1: (otherlv_6= RULE_NEMOID )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:453:3: otherlv_6= RULE_NEMOID
+                    {
+
+                                       if (current==null) {
+                                   current = createModelElement(grammarAccess.getNodeRule());
+                               }
+                            
+                    otherlv_6=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleNode1135); 
+
+                               newLeafNode(otherlv_6, grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_1_0()); 
+                       
+
+                    }
+
+
+                    }
+
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:464:2: (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )*
+                    loop4:
+                    do {
+                        int alt4=2;
+                        int LA4_0 = input.LA(1);
+
+                        if ( (LA4_0==14) ) {
+                            alt4=1;
+                        }
+
+
+                        switch (alt4) {
+                       case 1 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:464:4: otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) )
+                           {
+                           otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleNode1148); 
+
+                                       newLeafNode(otherlv_7, grammarAccess.getNodeAccess().getCommaKeyword_4_2_0());
+                               
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:468:1: ( (otherlv_8= RULE_NEMOID ) )
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:469:1: (otherlv_8= RULE_NEMOID )
+                           {
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:469:1: (otherlv_8= RULE_NEMOID )
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:470:3: otherlv_8= RULE_NEMOID
+                           {
+
+                                               if (current==null) {
+                                           current = createModelElement(grammarAccess.getNodeRule());
+                                       }
+                                   
+                           otherlv_8=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleNode1168); 
+
+                                       newLeafNode(otherlv_8, grammarAccess.getNodeAccess().getNodesNodeCrossReference_4_2_1_0()); 
+                               
+
+                           }
+
+
+                           }
+
+
+                           }
+                           break;
+
+                       default :
+                           break loop4;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:481:6: ( ruleProperty )?
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+
+            if ( (LA6_0==33) ) {
+                alt6=1;
+            }
+            switch (alt6) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:482:5: ruleProperty
+                    {
+                     
+                            newCompositeNode(grammarAccess.getNodeAccess().getPropertyParserRuleCall_5()); 
+                        
+                    pushFollow(FOLLOW_ruleProperty_in_ruleNode1189);
+                    ruleProperty();
+
+                    state._fsp--;
+
+                     
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_10=(Token)match(input,15,FOLLOW_15_in_ruleNode1202); 
+
+                       newLeafNode(otherlv_10, grammarAccess.getNodeAccess().getSemicolonKeyword_6());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleNode"
+
+
+    // $ANTLR start "entryRuleNodeOperating"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:503:1: entryRuleNodeOperating returns [EObject current=null] : iv_ruleNodeOperating= ruleNodeOperating EOF ;
+    public final EObject entryRuleNodeOperating() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleNodeOperating = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:504:2: (iv_ruleNodeOperating= ruleNodeOperating EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:505:2: iv_ruleNodeOperating= ruleNodeOperating EOF
+            {
+             newCompositeNode(grammarAccess.getNodeOperatingRule()); 
+            pushFollow(FOLLOW_ruleNodeOperating_in_entryRuleNodeOperating1240);
+            iv_ruleNodeOperating=ruleNodeOperating();
+
+            state._fsp--;
+
+             current =iv_ruleNodeOperating; 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNodeOperating1250); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleNodeOperating"
+
+
+    // $ANTLR start "ruleNodeOperating"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:512:1: ruleNodeOperating returns [EObject current=null] : ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Node' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Contain' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';' ) ;
+    public final EObject ruleNodeOperating() 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 this_NemoId_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_11=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:515:28: ( ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Node' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Contain' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:516:1: ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Node' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Contain' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:516:1: ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Node' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Contain' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:516:2: (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Node' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Contain' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';'
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:516:2: (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' )
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==21) ) {
+                alt7=1;
+            }
+            else if ( (LA7_0==22) ) {
+                alt7=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+            switch (alt7) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:516:4: otherlv_0= 'UPDATE'
+                    {
+                    otherlv_0=(Token)match(input,21,FOLLOW_21_in_ruleNodeOperating1288); 
+
+                               newLeafNode(otherlv_0, grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0());
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:521:7: otherlv_1= 'DELETE'
+                    {
+                    otherlv_1=(Token)match(input,22,FOLLOW_22_in_ruleNodeOperating1306); 
+
+                               newLeafNode(otherlv_1, grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_2=(Token)match(input,18,FOLLOW_18_in_ruleNodeOperating1319); 
+
+                       newLeafNode(otherlv_2, grammarAccess.getNodeOperatingAccess().getNodeKeyword_1());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:529:1: ( (otherlv_3= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:530:1: (otherlv_3= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:530:1: (otherlv_3= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:531:3: otherlv_3= RULE_NEMOID
+            {
+
+                               if (current==null) {
+                           current = createModelElement(grammarAccess.getNodeOperatingRule());
+                       }
+                    
+            otherlv_3=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleNodeOperating1339); 
+
+                       newLeafNode(otherlv_3, grammarAccess.getNodeOperatingAccess().getNodenameNodeCrossReference_2_0()); 
+               
+
+            }
+
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:542:2: (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )?
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==19) ) {
+                alt8=1;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:542:4: otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID
+                    {
+                    otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleNodeOperating1352); 
+
+                               newLeafNode(otherlv_4, grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0());
+                        
+                    this_NemoId_5=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleNodeOperating1363); 
+                     
+                        newLeafNode(this_NemoId_5, grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:550:3: (otherlv_6= 'Contain' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==20) ) {
+                alt10=1;
+            }
+            switch (alt10) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:550:5: otherlv_6= 'Contain' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )*
+                    {
+                    otherlv_6=(Token)match(input,20,FOLLOW_20_in_ruleNodeOperating1377); 
+
+                               newLeafNode(otherlv_6, grammarAccess.getNodeOperatingAccess().getContainKeyword_4_0());
+                        
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:554:1: ( (otherlv_7= RULE_NEMOID ) )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:555:1: (otherlv_7= RULE_NEMOID )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:555:1: (otherlv_7= RULE_NEMOID )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:556:3: otherlv_7= RULE_NEMOID
+                    {
+
+                                       if (current==null) {
+                                   current = createModelElement(grammarAccess.getNodeOperatingRule());
+                               }
+                            
+                    otherlv_7=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleNodeOperating1397); 
+
+                               newLeafNode(otherlv_7, grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_1_0()); 
+                       
+
+                    }
+
+
+                    }
+
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:567:2: (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )*
+                    loop9:
+                    do {
+                        int alt9=2;
+                        int LA9_0 = input.LA(1);
+
+                        if ( (LA9_0==14) ) {
+                            alt9=1;
+                        }
+
+
+                        switch (alt9) {
+                       case 1 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:567:4: otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) )
+                           {
+                           otherlv_8=(Token)match(input,14,FOLLOW_14_in_ruleNodeOperating1410); 
+
+                                       newLeafNode(otherlv_8, grammarAccess.getNodeOperatingAccess().getCommaKeyword_4_2_0());
+                               
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:571:1: ( (otherlv_9= RULE_NEMOID ) )
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:572:1: (otherlv_9= RULE_NEMOID )
+                           {
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:572:1: (otherlv_9= RULE_NEMOID )
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:573:3: otherlv_9= RULE_NEMOID
+                           {
+
+                                               if (current==null) {
+                                           current = createModelElement(grammarAccess.getNodeOperatingRule());
+                                       }
+                                   
+                           otherlv_9=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleNodeOperating1430); 
+
+                                       newLeafNode(otherlv_9, grammarAccess.getNodeOperatingAccess().getNodesNodeCrossReference_4_2_1_0()); 
+                               
+
+                           }
+
+
+                           }
+
+
+                           }
+                           break;
+
+                       default :
+                           break loop9;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:584:6: ( ruleProperty )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==33) ) {
+                alt11=1;
+            }
+            switch (alt11) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:585:5: ruleProperty
+                    {
+                     
+                            newCompositeNode(grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5()); 
+                        
+                    pushFollow(FOLLOW_ruleProperty_in_ruleNodeOperating1451);
+                    ruleProperty();
+
+                    state._fsp--;
+
+                     
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_11=(Token)match(input,15,FOLLOW_15_in_ruleNodeOperating1464); 
+
+                       newLeafNode(otherlv_11, grammarAccess.getNodeOperatingAccess().getSemicolonKeyword_6());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleNodeOperating"
+
+
+    // $ANTLR start "entryRuleConnection"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:604:1: entryRuleConnection returns [EObject current=null] : iv_ruleConnection= ruleConnection EOF ;
+    public final EObject entryRuleConnection() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleConnection = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:605:2: (iv_ruleConnection= ruleConnection EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:606:2: iv_ruleConnection= ruleConnection EOF
+            {
+             newCompositeNode(grammarAccess.getConnectionRule()); 
+            pushFollow(FOLLOW_ruleConnection_in_entryRuleConnection1500);
+            iv_ruleConnection=ruleConnection();
+
+            state._fsp--;
+
+             current =iv_ruleConnection; 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleConnection1510); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConnection"
+
+
+    // $ANTLR start "ruleConnection"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:613:1: ruleConnection returns [EObject current=null] : (otherlv_0= 'CREATE' otherlv_1= 'Connection' ( (lv_name_2_0= RULE_NEMOID ) ) otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID (otherlv_5= 'Endnodes' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* ) ( ruleProperty )? otherlv_10= ';' ) ;
+    public final EObject ruleConnection() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_name_2_0=null;
+        Token otherlv_3=null;
+        Token this_NemoId_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:616:28: ( (otherlv_0= 'CREATE' otherlv_1= 'Connection' ( (lv_name_2_0= RULE_NEMOID ) ) otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID (otherlv_5= 'Endnodes' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* ) ( ruleProperty )? otherlv_10= ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:617:1: (otherlv_0= 'CREATE' otherlv_1= 'Connection' ( (lv_name_2_0= RULE_NEMOID ) ) otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID (otherlv_5= 'Endnodes' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* ) ( ruleProperty )? otherlv_10= ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:617:1: (otherlv_0= 'CREATE' otherlv_1= 'Connection' ( (lv_name_2_0= RULE_NEMOID ) ) otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID (otherlv_5= 'Endnodes' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* ) ( ruleProperty )? otherlv_10= ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:617:3: otherlv_0= 'CREATE' otherlv_1= 'Connection' ( (lv_name_2_0= RULE_NEMOID ) ) otherlv_3= 'Type' this_NemoId_4= RULE_NEMOID (otherlv_5= 'Endnodes' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* ) ( ruleProperty )? otherlv_10= ';'
+            {
+            otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleConnection1547); 
+
+                       newLeafNode(otherlv_0, grammarAccess.getConnectionAccess().getCREATEKeyword_0());
+                
+            otherlv_1=(Token)match(input,23,FOLLOW_23_in_ruleConnection1559); 
+
+                       newLeafNode(otherlv_1, grammarAccess.getConnectionAccess().getConnectionKeyword_1());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:625:1: ( (lv_name_2_0= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:626:1: (lv_name_2_0= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:626:1: (lv_name_2_0= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:627:3: lv_name_2_0= RULE_NEMOID
+            {
+            lv_name_2_0=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleConnection1576); 
+
+                               newLeafNode(lv_name_2_0, grammarAccess.getConnectionAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+                       
+
+                       if (current==null) {
+                           current = createModelElement(grammarAccess.getConnectionRule());
+                       }
+                               setWithLastConsumed(
+                                       current, 
+                                       "name",
+                               lv_name_2_0, 
+                               "NemoId");
+                   
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleConnection1593); 
+
+                       newLeafNode(otherlv_3, grammarAccess.getConnectionAccess().getTypeKeyword_3());
+                
+            this_NemoId_4=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleConnection1604); 
+             
+                newLeafNode(this_NemoId_4, grammarAccess.getConnectionAccess().getNemoIdTerminalRuleCall_4()); 
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:651:1: (otherlv_5= 'Endnodes' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:651:3: otherlv_5= 'Endnodes' ( (otherlv_6= RULE_NEMOID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )*
+            {
+            otherlv_5=(Token)match(input,24,FOLLOW_24_in_ruleConnection1616); 
+
+                       newLeafNode(otherlv_5, grammarAccess.getConnectionAccess().getEndnodesKeyword_5_0());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:655:1: ( (otherlv_6= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:656:1: (otherlv_6= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:656:1: (otherlv_6= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:657:3: otherlv_6= RULE_NEMOID
+            {
+
+                               if (current==null) {
+                           current = createModelElement(grammarAccess.getConnectionRule());
+                       }
+                    
+            otherlv_6=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleConnection1636); 
+
+                       newLeafNode(otherlv_6, grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_1_0()); 
+               
+
+            }
+
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:668:2: (otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) ) )*
+            loop12:
+            do {
+                int alt12=2;
+                int LA12_0 = input.LA(1);
+
+                if ( (LA12_0==14) ) {
+                    alt12=1;
+                }
+
+
+                switch (alt12) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:668:4: otherlv_7= ',' ( (otherlv_8= RULE_NEMOID ) )
+                   {
+                   otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleConnection1649); 
+
+                               newLeafNode(otherlv_7, grammarAccess.getConnectionAccess().getCommaKeyword_5_2_0());
+                       
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:672:1: ( (otherlv_8= RULE_NEMOID ) )
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:673:1: (otherlv_8= RULE_NEMOID )
+                   {
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:673:1: (otherlv_8= RULE_NEMOID )
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:674:3: otherlv_8= RULE_NEMOID
+                   {
+
+                                       if (current==null) {
+                                   current = createModelElement(grammarAccess.getConnectionRule());
+                               }
+                           
+                   otherlv_8=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleConnection1669); 
+
+                               newLeafNode(otherlv_8, grammarAccess.getConnectionAccess().getEndnodeNodeCrossReference_5_2_1_0()); 
+                       
+
+                   }
+
+
+                   }
+
+
+                   }
+                   break;
+
+               default :
+                   break loop12;
+                }
+            } while (true);
+
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:685:5: ( ruleProperty )?
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0==33) ) {
+                alt13=1;
+            }
+            switch (alt13) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:686:5: ruleProperty
+                    {
+                     
+                            newCompositeNode(grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6()); 
+                        
+                    pushFollow(FOLLOW_ruleProperty_in_ruleConnection1689);
+                    ruleProperty();
+
+                    state._fsp--;
+
+                     
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_10=(Token)match(input,15,FOLLOW_15_in_ruleConnection1702); 
+
+                       newLeafNode(otherlv_10, grammarAccess.getConnectionAccess().getSemicolonKeyword_7());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleConnection"
+
+
+    // $ANTLR start "entryRuleConnectionUpdate"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:705:1: entryRuleConnectionUpdate returns [EObject current=null] : iv_ruleConnectionUpdate= ruleConnectionUpdate EOF ;
+    public final EObject entryRuleConnectionUpdate() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleConnectionUpdate = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:706:2: (iv_ruleConnectionUpdate= ruleConnectionUpdate EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:707:2: iv_ruleConnectionUpdate= ruleConnectionUpdate EOF
+            {
+             newCompositeNode(grammarAccess.getConnectionUpdateRule()); 
+            pushFollow(FOLLOW_ruleConnectionUpdate_in_entryRuleConnectionUpdate1738);
+            iv_ruleConnectionUpdate=ruleConnectionUpdate();
+
+            state._fsp--;
+
+             current =iv_ruleConnectionUpdate; 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleConnectionUpdate1748); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConnectionUpdate"
+
+
+    // $ANTLR start "ruleConnectionUpdate"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:714:1: ruleConnectionUpdate returns [EObject current=null] : ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Connection' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Endnodes' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';' ) ;
+    public final EObject ruleConnectionUpdate() 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 this_NemoId_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_11=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:717:28: ( ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Connection' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Endnodes' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:718:1: ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Connection' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Endnodes' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:718:1: ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Connection' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Endnodes' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:718:2: (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Connection' ( (otherlv_3= RULE_NEMOID ) ) (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )? (otherlv_6= 'Endnodes' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )? ( ruleProperty )? otherlv_11= ';'
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:718:2: (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' )
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+
+            if ( (LA14_0==21) ) {
+                alt14=1;
+            }
+            else if ( (LA14_0==22) ) {
+                alt14=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 14, 0, input);
+
+                throw nvae;
+            }
+            switch (alt14) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:718:4: otherlv_0= 'UPDATE'
+                    {
+                    otherlv_0=(Token)match(input,21,FOLLOW_21_in_ruleConnectionUpdate1786); 
+
+                               newLeafNode(otherlv_0, grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0());
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:723:7: otherlv_1= 'DELETE'
+                    {
+                    otherlv_1=(Token)match(input,22,FOLLOW_22_in_ruleConnectionUpdate1804); 
+
+                               newLeafNode(otherlv_1, grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_2=(Token)match(input,23,FOLLOW_23_in_ruleConnectionUpdate1817); 
+
+                       newLeafNode(otherlv_2, grammarAccess.getConnectionUpdateAccess().getConnectionKeyword_1());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:731:1: ( (otherlv_3= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:732:1: (otherlv_3= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:732:1: (otherlv_3= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:733:3: otherlv_3= RULE_NEMOID
+            {
+
+                               if (current==null) {
+                           current = createModelElement(grammarAccess.getConnectionUpdateRule());
+                       }
+                    
+            otherlv_3=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleConnectionUpdate1837); 
+
+                       newLeafNode(otherlv_3, grammarAccess.getConnectionUpdateAccess().getConnectionnameConnectionCrossReference_2_0()); 
+               
+
+            }
+
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:744:2: (otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID )?
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==19) ) {
+                alt15=1;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:744:4: otherlv_4= 'Type' this_NemoId_5= RULE_NEMOID
+                    {
+                    otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleConnectionUpdate1850); 
+
+                               newLeafNode(otherlv_4, grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0());
+                        
+                    this_NemoId_5=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleConnectionUpdate1861); 
+                     
+                        newLeafNode(this_NemoId_5, grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:752:3: (otherlv_6= 'Endnodes' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )* )?
+            int alt17=2;
+            int LA17_0 = input.LA(1);
+
+            if ( (LA17_0==24) ) {
+                alt17=1;
+            }
+            switch (alt17) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:752:5: otherlv_6= 'Endnodes' ( (otherlv_7= RULE_NEMOID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )*
+                    {
+                    otherlv_6=(Token)match(input,24,FOLLOW_24_in_ruleConnectionUpdate1875); 
+
+                               newLeafNode(otherlv_6, grammarAccess.getConnectionUpdateAccess().getEndnodesKeyword_4_0());
+                        
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:756:1: ( (otherlv_7= RULE_NEMOID ) )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:757:1: (otherlv_7= RULE_NEMOID )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:757:1: (otherlv_7= RULE_NEMOID )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:758:3: otherlv_7= RULE_NEMOID
+                    {
+
+                                       if (current==null) {
+                                   current = createModelElement(grammarAccess.getConnectionUpdateRule());
+                               }
+                            
+                    otherlv_7=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleConnectionUpdate1895); 
+
+                               newLeafNode(otherlv_7, grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_1_0()); 
+                       
+
+                    }
+
+
+                    }
+
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:769:2: (otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) ) )*
+                    loop16:
+                    do {
+                        int alt16=2;
+                        int LA16_0 = input.LA(1);
+
+                        if ( (LA16_0==14) ) {
+                            alt16=1;
+                        }
+
+
+                        switch (alt16) {
+                       case 1 :
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:769:4: otherlv_8= ',' ( (otherlv_9= RULE_NEMOID ) )
+                           {
+                           otherlv_8=(Token)match(input,14,FOLLOW_14_in_ruleConnectionUpdate1908); 
+
+                                       newLeafNode(otherlv_8, grammarAccess.getConnectionUpdateAccess().getCommaKeyword_4_2_0());
+                               
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:773:1: ( (otherlv_9= RULE_NEMOID ) )
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:774:1: (otherlv_9= RULE_NEMOID )
+                           {
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:774:1: (otherlv_9= RULE_NEMOID )
+                           // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:775:3: otherlv_9= RULE_NEMOID
+                           {
+
+                                               if (current==null) {
+                                           current = createModelElement(grammarAccess.getConnectionUpdateRule());
+                                       }
+                                   
+                           otherlv_9=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleConnectionUpdate1928); 
+
+                                       newLeafNode(otherlv_9, grammarAccess.getConnectionUpdateAccess().getEndnodeNodeCrossReference_4_2_1_0()); 
+                               
+
+                           }
+
+
+                           }
+
+
+                           }
+                           break;
+
+                       default :
+                           break loop16;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:786:6: ( ruleProperty )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0==33) ) {
+                alt18=1;
+            }
+            switch (alt18) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:787:5: ruleProperty
+                    {
+                     
+                            newCompositeNode(grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5()); 
+                        
+                    pushFollow(FOLLOW_ruleProperty_in_ruleConnectionUpdate1949);
+                    ruleProperty();
+
+                    state._fsp--;
+
+                     
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_11=(Token)match(input,15,FOLLOW_15_in_ruleConnectionUpdate1962); 
+
+                       newLeafNode(otherlv_11, grammarAccess.getConnectionUpdateAccess().getSemicolonKeyword_6());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleConnectionUpdate"
+
+
+    // $ANTLR start "entryRuleFlow"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:806:1: entryRuleFlow returns [EObject current=null] : iv_ruleFlow= ruleFlow EOF ;
+    public final EObject entryRuleFlow() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFlow = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:807:2: (iv_ruleFlow= ruleFlow EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:808:2: iv_ruleFlow= ruleFlow EOF
+            {
+             newCompositeNode(grammarAccess.getFlowRule()); 
+            pushFollow(FOLLOW_ruleFlow_in_entryRuleFlow1998);
+            iv_ruleFlow=ruleFlow();
+
+            state._fsp--;
+
+             current =iv_ruleFlow; 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFlow2008); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFlow"
+
+
+    // $ANTLR start "ruleFlow"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:815:1: ruleFlow returns [EObject current=null] : (otherlv_0= 'CREATE' otherlv_1= 'Flow' ( (lv_name_2_0= RULE_NEMOID ) ) ( ruleMatches )? otherlv_4= ';' ) ;
+    public final EObject ruleFlow() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_name_2_0=null;
+        Token otherlv_4=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:818:28: ( (otherlv_0= 'CREATE' otherlv_1= 'Flow' ( (lv_name_2_0= RULE_NEMOID ) ) ( ruleMatches )? otherlv_4= ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:819:1: (otherlv_0= 'CREATE' otherlv_1= 'Flow' ( (lv_name_2_0= RULE_NEMOID ) ) ( ruleMatches )? otherlv_4= ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:819:1: (otherlv_0= 'CREATE' otherlv_1= 'Flow' ( (lv_name_2_0= RULE_NEMOID ) ) ( ruleMatches )? otherlv_4= ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:819:3: otherlv_0= 'CREATE' otherlv_1= 'Flow' ( (lv_name_2_0= RULE_NEMOID ) ) ( ruleMatches )? otherlv_4= ';'
+            {
+            otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleFlow2045); 
+
+                       newLeafNode(otherlv_0, grammarAccess.getFlowAccess().getCREATEKeyword_0());
+                
+            otherlv_1=(Token)match(input,25,FOLLOW_25_in_ruleFlow2057); 
+
+                       newLeafNode(otherlv_1, grammarAccess.getFlowAccess().getFlowKeyword_1());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:827:1: ( (lv_name_2_0= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:828:1: (lv_name_2_0= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:828:1: (lv_name_2_0= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:829:3: lv_name_2_0= RULE_NEMOID
+            {
+            lv_name_2_0=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleFlow2074); 
+
+                               newLeafNode(lv_name_2_0, grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+                       
+
+                       if (current==null) {
+                           current = createModelElement(grammarAccess.getFlowRule());
+                       }
+                               setWithLastConsumed(
+                                       current, 
+                                       "name",
+                               lv_name_2_0, 
+                               "NemoId");
+                   
+
+            }
+
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:845:2: ( ruleMatches )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==26) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:846:5: ruleMatches
+                    {
+                     
+                            newCompositeNode(grammarAccess.getFlowAccess().getMatchesParserRuleCall_3()); 
+                        
+                    pushFollow(FOLLOW_ruleMatches_in_ruleFlow2096);
+                    ruleMatches();
+
+                    state._fsp--;
+
+                     
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleFlow2109); 
+
+                       newLeafNode(otherlv_4, grammarAccess.getFlowAccess().getSemicolonKeyword_4());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFlow"
+
+
+    // $ANTLR start "entryRuleFlowUpdate"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:865:1: entryRuleFlowUpdate returns [EObject current=null] : iv_ruleFlowUpdate= ruleFlowUpdate EOF ;
+    public final EObject entryRuleFlowUpdate() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFlowUpdate = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:866:2: (iv_ruleFlowUpdate= ruleFlowUpdate EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:867:2: iv_ruleFlowUpdate= ruleFlowUpdate EOF
+            {
+             newCompositeNode(grammarAccess.getFlowUpdateRule()); 
+            pushFollow(FOLLOW_ruleFlowUpdate_in_entryRuleFlowUpdate2145);
+            iv_ruleFlowUpdate=ruleFlowUpdate();
+
+            state._fsp--;
+
+             current =iv_ruleFlowUpdate; 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFlowUpdate2155); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFlowUpdate"
+
+
+    // $ANTLR start "ruleFlowUpdate"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:874:1: ruleFlowUpdate returns [EObject current=null] : ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Flow' ( (otherlv_3= RULE_NEMOID ) ) ( ruleMatches )? otherlv_5= ';' ) ;
+    public final EObject ruleFlowUpdate() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:877:28: ( ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Flow' ( (otherlv_3= RULE_NEMOID ) ) ( ruleMatches )? otherlv_5= ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:878:1: ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Flow' ( (otherlv_3= RULE_NEMOID ) ) ( ruleMatches )? otherlv_5= ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:878:1: ( (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Flow' ( (otherlv_3= RULE_NEMOID ) ) ( ruleMatches )? otherlv_5= ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:878:2: (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' ) otherlv_2= 'Flow' ( (otherlv_3= RULE_NEMOID ) ) ( ruleMatches )? otherlv_5= ';'
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:878:2: (otherlv_0= 'UPDATE' | otherlv_1= 'DELETE' )
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==21) ) {
+                alt20=1;
+            }
+            else if ( (LA20_0==22) ) {
+                alt20=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 20, 0, input);
+
+                throw nvae;
+            }
+            switch (alt20) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:878:4: otherlv_0= 'UPDATE'
+                    {
+                    otherlv_0=(Token)match(input,21,FOLLOW_21_in_ruleFlowUpdate2193); 
+
+                               newLeafNode(otherlv_0, grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0());
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:883:7: otherlv_1= 'DELETE'
+                    {
+                    otherlv_1=(Token)match(input,22,FOLLOW_22_in_ruleFlowUpdate2211); 
+
+                               newLeafNode(otherlv_1, grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_2=(Token)match(input,25,FOLLOW_25_in_ruleFlowUpdate2224); 
+
+                       newLeafNode(otherlv_2, grammarAccess.getFlowUpdateAccess().getFlowKeyword_1());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:891:1: ( (otherlv_3= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:892:1: (otherlv_3= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:892:1: (otherlv_3= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:893:3: otherlv_3= RULE_NEMOID
+            {
+
+                               if (current==null) {
+                           current = createModelElement(grammarAccess.getFlowUpdateRule());
+                       }
+                    
+            otherlv_3=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleFlowUpdate2244); 
+
+                       newLeafNode(otherlv_3, grammarAccess.getFlowUpdateAccess().getFlowIdFlowCrossReference_2_0()); 
+               
+
+            }
+
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:904:2: ( ruleMatches )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==26) ) {
+                alt21=1;
+            }
+            switch (alt21) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:905:5: ruleMatches
+                    {
+                     
+                            newCompositeNode(grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3()); 
+                        
+                    pushFollow(FOLLOW_ruleMatches_in_ruleFlowUpdate2261);
+                    ruleMatches();
+
+                    state._fsp--;
+
+                     
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,15,FOLLOW_15_in_ruleFlowUpdate2274); 
+
+                       newLeafNode(otherlv_5, grammarAccess.getFlowUpdateAccess().getSemicolonKeyword_4());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFlowUpdate"
+
+
+    // $ANTLR start "entryRuleMatches"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:924:1: entryRuleMatches returns [String current=null] : iv_ruleMatches= ruleMatches EOF ;
+    public final String entryRuleMatches() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleMatches = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:925:2: (iv_ruleMatches= ruleMatches EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:926:2: iv_ruleMatches= ruleMatches EOF
+            {
+             newCompositeNode(grammarAccess.getMatchesRule()); 
+            pushFollow(FOLLOW_ruleMatches_in_entryRuleMatches2311);
+            iv_ruleMatches=ruleMatches();
+
+            state._fsp--;
+
+             current =iv_ruleMatches.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMatches2322); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleMatches"
+
+
+    // $ANTLR start "ruleMatches"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:933:1: ruleMatches returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Match' this_Match_1= ruleMatch (kw= ',' this_Match_3= ruleMatch )* ) ;
+    public final AntlrDatatypeRuleToken ruleMatches() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_Match_1 = null;
+
+        AntlrDatatypeRuleToken this_Match_3 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:936:28: ( (kw= 'Match' this_Match_1= ruleMatch (kw= ',' this_Match_3= ruleMatch )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:937:1: (kw= 'Match' this_Match_1= ruleMatch (kw= ',' this_Match_3= ruleMatch )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:937:1: (kw= 'Match' this_Match_1= ruleMatch (kw= ',' this_Match_3= ruleMatch )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:938:2: kw= 'Match' this_Match_1= ruleMatch (kw= ',' this_Match_3= ruleMatch )*
+            {
+            kw=(Token)match(input,26,FOLLOW_26_in_ruleMatches2360); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getMatchesAccess().getMatchKeyword_0()); 
+                
+             
+                    newCompositeNode(grammarAccess.getMatchesAccess().getMatchParserRuleCall_1()); 
+                
+            pushFollow(FOLLOW_ruleMatch_in_ruleMatches2382);
+            this_Match_1=ruleMatch();
+
+            state._fsp--;
+
+
+                       current.merge(this_Match_1);
+                
+             
+                    afterParserOrEnumRuleCall();
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:954:1: (kw= ',' this_Match_3= ruleMatch )*
+            loop22:
+            do {
+                int alt22=2;
+                int LA22_0 = input.LA(1);
+
+                if ( (LA22_0==14) ) {
+                    alt22=1;
+                }
+
+
+                switch (alt22) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:955:2: kw= ',' this_Match_3= ruleMatch
+                   {
+                   kw=(Token)match(input,14,FOLLOW_14_in_ruleMatches2401); 
+
+                           current.merge(kw);
+                           newLeafNode(kw, grammarAccess.getMatchesAccess().getCommaKeyword_2_0()); 
+                       
+                    
+                           newCompositeNode(grammarAccess.getMatchesAccess().getMatchParserRuleCall_2_1()); 
+                       
+                   pushFollow(FOLLOW_ruleMatch_in_ruleMatches2423);
+                   this_Match_3=ruleMatch();
+
+                   state._fsp--;
+
+
+                               current.merge(this_Match_3);
+                       
+                    
+                           afterParserOrEnumRuleCall();
+                       
+
+                   }
+                   break;
+
+               default :
+                   break loop22;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleMatches"
+
+
+    // $ANTLR start "entryRuleMatch"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:979:1: entryRuleMatch returns [String current=null] : iv_ruleMatch= ruleMatch EOF ;
+    public final String entryRuleMatch() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleMatch = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:980:2: (iv_ruleMatch= ruleMatch EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:981:2: iv_ruleMatch= ruleMatch EOF
+            {
+             newCompositeNode(grammarAccess.getMatchRule()); 
+            pushFollow(FOLLOW_ruleMatch_in_entryRuleMatch2471);
+            iv_ruleMatch=ruleMatch();
+
+            state._fsp--;
+
+             current =iv_ruleMatch.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMatch2482); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleMatch"
+
+
+    // $ANTLR start "ruleMatch"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:988:1: ruleMatch returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_NemoId_0= RULE_NEMOID kw= ':' this_STRING_2= RULE_STRING ) ;
+    public final AntlrDatatypeRuleToken ruleMatch() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_NemoId_0=null;
+        Token kw=null;
+        Token this_STRING_2=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:991:28: ( (this_NemoId_0= RULE_NEMOID kw= ':' this_STRING_2= RULE_STRING ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:992:1: (this_NemoId_0= RULE_NEMOID kw= ':' this_STRING_2= RULE_STRING )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:992:1: (this_NemoId_0= RULE_NEMOID kw= ':' this_STRING_2= RULE_STRING )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:992:6: this_NemoId_0= RULE_NEMOID kw= ':' this_STRING_2= RULE_STRING
+            {
+            this_NemoId_0=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleMatch2522); 
+
+                       current.merge(this_NemoId_0);
+                
+             
+                newLeafNode(this_NemoId_0, grammarAccess.getMatchAccess().getNemoIdTerminalRuleCall_0()); 
+                
+            kw=(Token)match(input,27,FOLLOW_27_in_ruleMatch2540); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getMatchAccess().getColonKeyword_1()); 
+                
+            this_STRING_2=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleMatch2555); 
+
+                       current.merge(this_STRING_2);
+                
+             
+                newLeafNode(this_STRING_2, grammarAccess.getMatchAccess().getSTRINGTerminalRuleCall_2()); 
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleMatch"
+
+
+    // $ANTLR start "entryRuleOperation"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1020:1: entryRuleOperation returns [EObject current=null] : iv_ruleOperation= ruleOperation EOF ;
+    public final EObject entryRuleOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleOperation = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1021:2: (iv_ruleOperation= ruleOperation EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1022:2: iv_ruleOperation= ruleOperation EOF
+            {
+             newCompositeNode(grammarAccess.getOperationRule()); 
+            pushFollow(FOLLOW_ruleOperation_in_entryRuleOperation2600);
+            iv_ruleOperation=ruleOperation();
+
+            state._fsp--;
+
+             current =iv_ruleOperation; 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOperation2610); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOperation"
+
+
+    // $ANTLR start "ruleOperation"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1029:1: ruleOperation returns [EObject current=null] : (otherlv_0= 'CREATE' otherlv_1= 'Operation' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Priority' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= 'Target' ( (otherlv_6= RULE_NEMOID ) ) ( ruleCondition )? otherlv_8= 'Action' (this_NemoId_9= RULE_NEMOID | (this_NemoId_10= RULE_NEMOID otherlv_11= ':' ( (otherlv_12= RULE_NEMOID ) ) ) ) otherlv_13= ';' ) ;
+    public final EObject ruleOperation() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_name_2_0=null;
+        Token otherlv_3=null;
+        Token lv_value_4_0=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token this_NemoId_9=null;
+        Token this_NemoId_10=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1032:28: ( (otherlv_0= 'CREATE' otherlv_1= 'Operation' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Priority' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= 'Target' ( (otherlv_6= RULE_NEMOID ) ) ( ruleCondition )? otherlv_8= 'Action' (this_NemoId_9= RULE_NEMOID | (this_NemoId_10= RULE_NEMOID otherlv_11= ':' ( (otherlv_12= RULE_NEMOID ) ) ) ) otherlv_13= ';' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1033:1: (otherlv_0= 'CREATE' otherlv_1= 'Operation' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Priority' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= 'Target' ( (otherlv_6= RULE_NEMOID ) ) ( ruleCondition )? otherlv_8= 'Action' (this_NemoId_9= RULE_NEMOID | (this_NemoId_10= RULE_NEMOID otherlv_11= ':' ( (otherlv_12= RULE_NEMOID ) ) ) ) otherlv_13= ';' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1033:1: (otherlv_0= 'CREATE' otherlv_1= 'Operation' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Priority' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= 'Target' ( (otherlv_6= RULE_NEMOID ) ) ( ruleCondition )? otherlv_8= 'Action' (this_NemoId_9= RULE_NEMOID | (this_NemoId_10= RULE_NEMOID otherlv_11= ':' ( (otherlv_12= RULE_NEMOID ) ) ) ) otherlv_13= ';' )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1033:3: otherlv_0= 'CREATE' otherlv_1= 'Operation' ( (lv_name_2_0= RULE_NEMOID ) ) (otherlv_3= 'Priority' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= 'Target' ( (otherlv_6= RULE_NEMOID ) ) ( ruleCondition )? otherlv_8= 'Action' (this_NemoId_9= RULE_NEMOID | (this_NemoId_10= RULE_NEMOID otherlv_11= ':' ( (otherlv_12= RULE_NEMOID ) ) ) ) otherlv_13= ';'
+            {
+            otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleOperation2647); 
+
+                       newLeafNode(otherlv_0, grammarAccess.getOperationAccess().getCREATEKeyword_0());
+                
+            otherlv_1=(Token)match(input,28,FOLLOW_28_in_ruleOperation2659); 
+
+                       newLeafNode(otherlv_1, grammarAccess.getOperationAccess().getOperationKeyword_1());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1041:1: ( (lv_name_2_0= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1042:1: (lv_name_2_0= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1042:1: (lv_name_2_0= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1043:3: lv_name_2_0= RULE_NEMOID
+            {
+            lv_name_2_0=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleOperation2676); 
+
+                               newLeafNode(lv_name_2_0, grammarAccess.getOperationAccess().getNameNemoIdTerminalRuleCall_2_0()); 
+                       
+
+                       if (current==null) {
+                           current = createModelElement(grammarAccess.getOperationRule());
+                       }
+                               setWithLastConsumed(
+                                       current, 
+                                       "name",
+                               lv_name_2_0, 
+                               "NemoId");
+                   
+
+            }
+
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1059:2: (otherlv_3= 'Priority' ( (lv_value_4_0= RULE_INT ) ) )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==29) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1059:4: otherlv_3= 'Priority' ( (lv_value_4_0= RULE_INT ) )
+                    {
+                    otherlv_3=(Token)match(input,29,FOLLOW_29_in_ruleOperation2694); 
+
+                               newLeafNode(otherlv_3, grammarAccess.getOperationAccess().getPriorityKeyword_3_0());
+                        
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1063:1: ( (lv_value_4_0= RULE_INT ) )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1064:1: (lv_value_4_0= RULE_INT )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1064:1: (lv_value_4_0= RULE_INT )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1065:3: lv_value_4_0= RULE_INT
+                    {
+                    lv_value_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleOperation2711); 
+
+                                       newLeafNode(lv_value_4_0, grammarAccess.getOperationAccess().getValueINTTerminalRuleCall_3_1_0()); 
+                               
+
+                               if (current==null) {
+                                   current = createModelElement(grammarAccess.getOperationRule());
+                               }
+                                       addWithLastConsumed(
+                                               current, 
+                                               "value",
+                                       lv_value_4_0, 
+                                       "INT");
+                           
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,30,FOLLOW_30_in_ruleOperation2730); 
+
+                       newLeafNode(otherlv_5, grammarAccess.getOperationAccess().getTargetKeyword_4());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1085:1: ( (otherlv_6= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1086:1: (otherlv_6= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1086:1: (otherlv_6= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1087:3: otherlv_6= RULE_NEMOID
+            {
+
+                               if (current==null) {
+                           current = createModelElement(grammarAccess.getOperationRule());
+                       }
+                    
+            otherlv_6=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleOperation2750); 
+
+                       newLeafNode(otherlv_6, grammarAccess.getOperationAccess().getTargetIdFlowCrossReference_5_0()); 
+               
+
+            }
+
+
+            }
+
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1098:2: ( ruleCondition )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==32) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1099:5: ruleCondition
+                    {
+                     
+                            newCompositeNode(grammarAccess.getOperationAccess().getConditionParserRuleCall_6()); 
+                        
+                    pushFollow(FOLLOW_ruleCondition_in_ruleOperation2767);
+                    ruleCondition();
+
+                    state._fsp--;
+
+                     
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_8=(Token)match(input,31,FOLLOW_31_in_ruleOperation2780); 
+
+                       newLeafNode(otherlv_8, grammarAccess.getOperationAccess().getActionKeyword_7());
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1110:1: (this_NemoId_9= RULE_NEMOID | (this_NemoId_10= RULE_NEMOID otherlv_11= ':' ( (otherlv_12= RULE_NEMOID ) ) ) )
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==RULE_NEMOID) ) {
+                int LA25_1 = input.LA(2);
+
+                if ( (LA25_1==27) ) {
+                    alt25=2;
+                }
+                else if ( (LA25_1==15) ) {
+                    alt25=1;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 25, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 25, 0, input);
+
+                throw nvae;
+            }
+            switch (alt25) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1110:2: this_NemoId_9= RULE_NEMOID
+                    {
+                    this_NemoId_9=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleOperation2792); 
+                     
+                        newLeafNode(this_NemoId_9, grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_0()); 
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1115:6: (this_NemoId_10= RULE_NEMOID otherlv_11= ':' ( (otherlv_12= RULE_NEMOID ) ) )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1115:6: (this_NemoId_10= RULE_NEMOID otherlv_11= ':' ( (otherlv_12= RULE_NEMOID ) ) )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1115:7: this_NemoId_10= RULE_NEMOID otherlv_11= ':' ( (otherlv_12= RULE_NEMOID ) )
+                    {
+                    this_NemoId_10=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleOperation2809); 
+                     
+                        newLeafNode(this_NemoId_10, grammarAccess.getOperationAccess().getNemoIdTerminalRuleCall_8_1_0()); 
+                        
+                    otherlv_11=(Token)match(input,27,FOLLOW_27_in_ruleOperation2820); 
+
+                               newLeafNode(otherlv_11, grammarAccess.getOperationAccess().getColonKeyword_8_1_1());
+                        
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1123:1: ( (otherlv_12= RULE_NEMOID ) )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1124:1: (otherlv_12= RULE_NEMOID )
+                    {
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1124:1: (otherlv_12= RULE_NEMOID )
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1125:3: otherlv_12= RULE_NEMOID
+                    {
+
+                                       if (current==null) {
+                                   current = createModelElement(grammarAccess.getOperationRule());
+                               }
+                            
+                    otherlv_12=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleOperation2840); 
+
+                               newLeafNode(otherlv_12, grammarAccess.getOperationAccess().getTargetNodeNodeCrossReference_8_1_2_0()); 
+                       
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_13=(Token)match(input,15,FOLLOW_15_in_ruleOperation2854); 
+
+                       newLeafNode(otherlv_13, grammarAccess.getOperationAccess().getSemicolonKeyword_9());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOperation"
+
+
+    // $ANTLR start "entryRuleCondition"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1148:1: entryRuleCondition returns [String current=null] : iv_ruleCondition= ruleCondition EOF ;
+    public final String entryRuleCondition() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleCondition = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1149:2: (iv_ruleCondition= ruleCondition EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1150:2: iv_ruleCondition= ruleCondition EOF
+            {
+             newCompositeNode(grammarAccess.getConditionRule()); 
+            pushFollow(FOLLOW_ruleCondition_in_entryRuleCondition2891);
+            iv_ruleCondition=ruleCondition();
+
+            state._fsp--;
+
+             current =iv_ruleCondition.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleCondition2902); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleCondition"
+
+
+    // $ANTLR start "ruleCondition"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1157:1: ruleCondition returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Condition' this_STRING_1= RULE_STRING (kw= ',' this_STRING_3= RULE_STRING )* ) ;
+    public final AntlrDatatypeRuleToken ruleCondition() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        Token this_STRING_1=null;
+        Token this_STRING_3=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1160:28: ( (kw= 'Condition' this_STRING_1= RULE_STRING (kw= ',' this_STRING_3= RULE_STRING )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1161:1: (kw= 'Condition' this_STRING_1= RULE_STRING (kw= ',' this_STRING_3= RULE_STRING )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1161:1: (kw= 'Condition' this_STRING_1= RULE_STRING (kw= ',' this_STRING_3= RULE_STRING )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1162:2: kw= 'Condition' this_STRING_1= RULE_STRING (kw= ',' this_STRING_3= RULE_STRING )*
+            {
+            kw=(Token)match(input,32,FOLLOW_32_in_ruleCondition2940); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getConditionAccess().getConditionKeyword_0()); 
+                
+            this_STRING_1=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleCondition2955); 
+
+                       current.merge(this_STRING_1);
+                
+             
+                newLeafNode(this_STRING_1, grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_1()); 
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1174:1: (kw= ',' this_STRING_3= RULE_STRING )*
+            loop26:
+            do {
+                int alt26=2;
+                int LA26_0 = input.LA(1);
+
+                if ( (LA26_0==14) ) {
+                    alt26=1;
+                }
+
+
+                switch (alt26) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1175:2: kw= ',' this_STRING_3= RULE_STRING
+                   {
+                   kw=(Token)match(input,14,FOLLOW_14_in_ruleCondition2974); 
+
+                           current.merge(kw);
+                           newLeafNode(kw, grammarAccess.getConditionAccess().getCommaKeyword_2_0()); 
+                       
+                   this_STRING_3=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleCondition2989); 
+
+                               current.merge(this_STRING_3);
+                       
+                    
+                       newLeafNode(this_STRING_3, grammarAccess.getConditionAccess().getSTRINGTerminalRuleCall_2_1()); 
+                       
+
+                   }
+                   break;
+
+               default :
+                   break loop26;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleCondition"
+
+
+    // $ANTLR start "entryRuleProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1195:1: entryRuleProperty returns [String current=null] : iv_ruleProperty= ruleProperty EOF ;
+    public final String entryRuleProperty() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleProperty = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1196:2: (iv_ruleProperty= ruleProperty EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1197:2: iv_ruleProperty= ruleProperty EOF
+            {
+             newCompositeNode(grammarAccess.getPropertyRule()); 
+            pushFollow(FOLLOW_ruleProperty_in_entryRuleProperty3037);
+            iv_ruleProperty=ruleProperty();
+
+            state._fsp--;
+
+             current =iv_ruleProperty.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleProperty3048); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleProperty"
+
+
+    // $ANTLR start "ruleProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1204:1: ruleProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Property ' this_OneProperty_1= ruleOneProperty (kw= ',' this_OneProperty_3= ruleOneProperty )* ) ;
+    public final AntlrDatatypeRuleToken ruleProperty() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_OneProperty_1 = null;
+
+        AntlrDatatypeRuleToken this_OneProperty_3 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1207:28: ( (kw= 'Property ' this_OneProperty_1= ruleOneProperty (kw= ',' this_OneProperty_3= ruleOneProperty )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1208:1: (kw= 'Property ' this_OneProperty_1= ruleOneProperty (kw= ',' this_OneProperty_3= ruleOneProperty )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1208:1: (kw= 'Property ' this_OneProperty_1= ruleOneProperty (kw= ',' this_OneProperty_3= ruleOneProperty )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1209:2: kw= 'Property ' this_OneProperty_1= ruleOneProperty (kw= ',' this_OneProperty_3= ruleOneProperty )*
+            {
+            kw=(Token)match(input,33,FOLLOW_33_in_ruleProperty3086); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getPropertyAccess().getPropertyKeyword_0()); 
+                
+             
+                    newCompositeNode(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_1()); 
+                
+            pushFollow(FOLLOW_ruleOneProperty_in_ruleProperty3108);
+            this_OneProperty_1=ruleOneProperty();
+
+            state._fsp--;
+
+
+                       current.merge(this_OneProperty_1);
+                
+             
+                    afterParserOrEnumRuleCall();
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1225:1: (kw= ',' this_OneProperty_3= ruleOneProperty )*
+            loop27:
+            do {
+                int alt27=2;
+                int LA27_0 = input.LA(1);
+
+                if ( (LA27_0==14) ) {
+                    alt27=1;
+                }
+
+
+                switch (alt27) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1226:2: kw= ',' this_OneProperty_3= ruleOneProperty
+                   {
+                   kw=(Token)match(input,14,FOLLOW_14_in_ruleProperty3127); 
+
+                           current.merge(kw);
+                           newLeafNode(kw, grammarAccess.getPropertyAccess().getCommaKeyword_2_0()); 
+                       
+                    
+                           newCompositeNode(grammarAccess.getPropertyAccess().getOnePropertyParserRuleCall_2_1()); 
+                       
+                   pushFollow(FOLLOW_ruleOneProperty_in_ruleProperty3149);
+                   this_OneProperty_3=ruleOneProperty();
+
+                   state._fsp--;
+
+
+                               current.merge(this_OneProperty_3);
+                       
+                    
+                           afterParserOrEnumRuleCall();
+                       
+
+                   }
+                   break;
+
+               default :
+                   break loop27;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleProperty"
+
+
+    // $ANTLR start "entryRuleOneProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1250:1: entryRuleOneProperty returns [String current=null] : iv_ruleOneProperty= ruleOneProperty EOF ;
+    public final String entryRuleOneProperty() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOneProperty = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1251:2: (iv_ruleOneProperty= ruleOneProperty EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1252:2: iv_ruleOneProperty= ruleOneProperty EOF
+            {
+             newCompositeNode(grammarAccess.getOnePropertyRule()); 
+            pushFollow(FOLLOW_ruleOneProperty_in_entryRuleOneProperty3197);
+            iv_ruleOneProperty=ruleOneProperty();
+
+            state._fsp--;
+
+             current =iv_ruleOneProperty.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOneProperty3208); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOneProperty"
+
+
+    // $ANTLR start "ruleOneProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1259:1: ruleOneProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_NemoId_0= RULE_NEMOID kw= ':' (this_STRING_2= RULE_STRING | this_INT_3= RULE_INT ) ) ;
+    public final AntlrDatatypeRuleToken ruleOneProperty() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_NemoId_0=null;
+        Token kw=null;
+        Token this_STRING_2=null;
+        Token this_INT_3=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1262:28: ( (this_NemoId_0= RULE_NEMOID kw= ':' (this_STRING_2= RULE_STRING | this_INT_3= RULE_INT ) ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1263:1: (this_NemoId_0= RULE_NEMOID kw= ':' (this_STRING_2= RULE_STRING | this_INT_3= RULE_INT ) )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1263:1: (this_NemoId_0= RULE_NEMOID kw= ':' (this_STRING_2= RULE_STRING | this_INT_3= RULE_INT ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1263:6: this_NemoId_0= RULE_NEMOID kw= ':' (this_STRING_2= RULE_STRING | this_INT_3= RULE_INT )
+            {
+            this_NemoId_0=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleOneProperty3248); 
+
+                       current.merge(this_NemoId_0);
+                
+             
+                newLeafNode(this_NemoId_0, grammarAccess.getOnePropertyAccess().getNemoIdTerminalRuleCall_0()); 
+                
+            kw=(Token)match(input,27,FOLLOW_27_in_ruleOneProperty3266); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getOnePropertyAccess().getColonKeyword_1()); 
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1276:1: (this_STRING_2= RULE_STRING | this_INT_3= RULE_INT )
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==RULE_STRING) ) {
+                alt28=1;
+            }
+            else if ( (LA28_0==RULE_INT) ) {
+                alt28=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 28, 0, input);
+
+                throw nvae;
+            }
+            switch (alt28) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1276:6: this_STRING_2= RULE_STRING
+                    {
+                    this_STRING_2=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleOneProperty3282); 
+
+                               current.merge(this_STRING_2);
+                        
+                     
+                        newLeafNode(this_STRING_2, grammarAccess.getOnePropertyAccess().getSTRINGTerminalRuleCall_2_0()); 
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1284:10: this_INT_3= RULE_INT
+                    {
+                    this_INT_3=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleOneProperty3308); 
+
+                               current.merge(this_INT_3);
+                        
+                     
+                        newLeafNode(this_INT_3, grammarAccess.getOnePropertyAccess().getINTTerminalRuleCall_2_1()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOneProperty"
+
+
+    // $ANTLR start "entryRuleModelProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1299:1: entryRuleModelProperty returns [String current=null] : iv_ruleModelProperty= ruleModelProperty EOF ;
+    public final String entryRuleModelProperty() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleModelProperty = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1300:2: (iv_ruleModelProperty= ruleModelProperty EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1301:2: iv_ruleModelProperty= ruleModelProperty EOF
+            {
+             newCompositeNode(grammarAccess.getModelPropertyRule()); 
+            pushFollow(FOLLOW_ruleModelProperty_in_entryRuleModelProperty3355);
+            iv_ruleModelProperty=ruleModelProperty();
+
+            state._fsp--;
+
+             current =iv_ruleModelProperty.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleModelProperty3366); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleModelProperty"
+
+
+    // $ANTLR start "ruleModelProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1308:1: ruleModelProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Property' this_OneModelProperty_1= ruleOneModelProperty (kw= ',' this_OneModelProperty_3= ruleOneModelProperty )* ) ;
+    public final AntlrDatatypeRuleToken ruleModelProperty() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_OneModelProperty_1 = null;
+
+        AntlrDatatypeRuleToken this_OneModelProperty_3 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1311:28: ( (kw= 'Property' this_OneModelProperty_1= ruleOneModelProperty (kw= ',' this_OneModelProperty_3= ruleOneModelProperty )* ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1312:1: (kw= 'Property' this_OneModelProperty_1= ruleOneModelProperty (kw= ',' this_OneModelProperty_3= ruleOneModelProperty )* )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1312:1: (kw= 'Property' this_OneModelProperty_1= ruleOneModelProperty (kw= ',' this_OneModelProperty_3= ruleOneModelProperty )* )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1313:2: kw= 'Property' this_OneModelProperty_1= ruleOneModelProperty (kw= ',' this_OneModelProperty_3= ruleOneModelProperty )*
+            {
+            kw=(Token)match(input,34,FOLLOW_34_in_ruleModelProperty3404); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getModelPropertyAccess().getPropertyKeyword_0()); 
+                
+             
+                    newCompositeNode(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_1()); 
+                
+            pushFollow(FOLLOW_ruleOneModelProperty_in_ruleModelProperty3426);
+            this_OneModelProperty_1=ruleOneModelProperty();
+
+            state._fsp--;
+
+
+                       current.merge(this_OneModelProperty_1);
+                
+             
+                    afterParserOrEnumRuleCall();
+                
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1329:1: (kw= ',' this_OneModelProperty_3= ruleOneModelProperty )*
+            loop29:
+            do {
+                int alt29=2;
+                int LA29_0 = input.LA(1);
+
+                if ( (LA29_0==14) ) {
+                    alt29=1;
+                }
+
+
+                switch (alt29) {
+               case 1 :
+                   // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1330:2: kw= ',' this_OneModelProperty_3= ruleOneModelProperty
+                   {
+                   kw=(Token)match(input,14,FOLLOW_14_in_ruleModelProperty3445); 
+
+                           current.merge(kw);
+                           newLeafNode(kw, grammarAccess.getModelPropertyAccess().getCommaKeyword_2_0()); 
+                       
+                    
+                           newCompositeNode(grammarAccess.getModelPropertyAccess().getOneModelPropertyParserRuleCall_2_1()); 
+                       
+                   pushFollow(FOLLOW_ruleOneModelProperty_in_ruleModelProperty3467);
+                   this_OneModelProperty_3=ruleOneModelProperty();
+
+                   state._fsp--;
+
+
+                               current.merge(this_OneModelProperty_3);
+                       
+                    
+                           afterParserOrEnumRuleCall();
+                       
+
+                   }
+                   break;
+
+               default :
+                   break loop29;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleModelProperty"
+
+
+    // $ANTLR start "entryRuleOneModelProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1354:1: entryRuleOneModelProperty returns [String current=null] : iv_ruleOneModelProperty= ruleOneModelProperty EOF ;
+    public final String entryRuleOneModelProperty() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOneModelProperty = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1355:2: (iv_ruleOneModelProperty= ruleOneModelProperty EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1356:2: iv_ruleOneModelProperty= ruleOneModelProperty EOF
+            {
+             newCompositeNode(grammarAccess.getOneModelPropertyRule()); 
+            pushFollow(FOLLOW_ruleOneModelProperty_in_entryRuleOneModelProperty3515);
+            iv_ruleOneModelProperty=ruleOneModelProperty();
+
+            state._fsp--;
+
+             current =iv_ruleOneModelProperty.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOneModelProperty3526); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOneModelProperty"
+
+
+    // $ANTLR start "ruleOneModelProperty"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1363:1: ruleOneModelProperty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (this_STRING_0= RULE_STRING | this_INT_1= RULE_INT ) kw= ':' this_NemoId_3= RULE_NEMOID ) ;
+    public final AntlrDatatypeRuleToken ruleOneModelProperty() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_STRING_0=null;
+        Token this_INT_1=null;
+        Token kw=null;
+        Token this_NemoId_3=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1366:28: ( ( (this_STRING_0= RULE_STRING | this_INT_1= RULE_INT ) kw= ':' this_NemoId_3= RULE_NEMOID ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1367:1: ( (this_STRING_0= RULE_STRING | this_INT_1= RULE_INT ) kw= ':' this_NemoId_3= RULE_NEMOID )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1367:1: ( (this_STRING_0= RULE_STRING | this_INT_1= RULE_INT ) kw= ':' this_NemoId_3= RULE_NEMOID )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1367:2: (this_STRING_0= RULE_STRING | this_INT_1= RULE_INT ) kw= ':' this_NemoId_3= RULE_NEMOID
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1367:2: (this_STRING_0= RULE_STRING | this_INT_1= RULE_INT )
+            int alt30=2;
+            int LA30_0 = input.LA(1);
+
+            if ( (LA30_0==RULE_STRING) ) {
+                alt30=1;
+            }
+            else if ( (LA30_0==RULE_INT) ) {
+                alt30=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 30, 0, input);
+
+                throw nvae;
+            }
+            switch (alt30) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1367:7: this_STRING_0= RULE_STRING
+                    {
+                    this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleOneModelProperty3567); 
+
+                               current.merge(this_STRING_0);
+                        
+                     
+                        newLeafNode(this_STRING_0, grammarAccess.getOneModelPropertyAccess().getSTRINGTerminalRuleCall_0_0()); 
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1375:10: this_INT_1= RULE_INT
+                    {
+                    this_INT_1=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleOneModelProperty3593); 
+
+                               current.merge(this_INT_1);
+                        
+                     
+                        newLeafNode(this_INT_1, grammarAccess.getOneModelPropertyAccess().getINTTerminalRuleCall_0_1()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+            kw=(Token)match(input,27,FOLLOW_27_in_ruleOneModelProperty3612); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getOneModelPropertyAccess().getColonKeyword_1()); 
+                
+            this_NemoId_3=(Token)match(input,RULE_NEMOID,FOLLOW_RULE_NEMOID_in_ruleOneModelProperty3627); 
+
+                       current.merge(this_NemoId_3);
+                
+             
+                newLeafNode(this_NemoId_3, grammarAccess.getOneModelPropertyAccess().getNemoIdTerminalRuleCall_2()); 
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOneModelProperty"
+
+
+    // $ANTLR start "entryRuleNewObj"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1403:1: entryRuleNewObj returns [String current=null] : iv_ruleNewObj= ruleNewObj EOF ;
+    public final String entryRuleNewObj() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleNewObj = null;
+
+
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1404:2: (iv_ruleNewObj= ruleNewObj EOF )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1405:2: iv_ruleNewObj= ruleNewObj EOF
+            {
+             newCompositeNode(grammarAccess.getNewObjRule()); 
+            pushFollow(FOLLOW_ruleNewObj_in_entryRuleNewObj3673);
+            iv_ruleNewObj=ruleNewObj();
+
+            state._fsp--;
+
+             current =iv_ruleNewObj.getText(); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNewObj3684); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleNewObj"
+
+
+    // $ANTLR start "ruleNewObj"
+    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1412:1: ruleNewObj returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'CREATE' | kw= 'IMPORT' ) ;
+    public final AntlrDatatypeRuleToken ruleNewObj() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1415:28: ( (kw= 'CREATE' | kw= 'IMPORT' ) )
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1416:1: (kw= 'CREATE' | kw= 'IMPORT' )
+            {
+            // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1416:1: (kw= 'CREATE' | kw= 'IMPORT' )
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==17) ) {
+                alt31=1;
+            }
+            else if ( (LA31_0==35) ) {
+                alt31=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 31, 0, input);
+
+                throw nvae;
+            }
+            switch (alt31) {
+                case 1 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1417:2: kw= 'CREATE'
+                    {
+                    kw=(Token)match(input,17,FOLLOW_17_in_ruleNewObj3722); 
+
+                            current.merge(kw);
+                            newLeafNode(kw, grammarAccess.getNewObjAccess().getCREATEKeyword_0()); 
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/parser/antlr/internal/InternalEditor.g:1424:2: kw= 'IMPORT'
+                    {
+                    kw=(Token)match(input,35,FOLLOW_35_in_ruleNewObj3741); 
+
+                            current.merge(kw);
+                            newLeafNode(kw, grammarAccess.getNewObjAccess().getIMPORTKeyword_1()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleNewObj"
+
+    // Delegated rules
+
+
+    protected DFA2 dfa2 = new DFA2(this);
+    static final String DFA2_eotS =
+        "\15\uffff";
+    static final String DFA2_eofS =
+        "\15\uffff";
+    static final String DFA2_minS =
+        "\1\15\1\uffff\1\5\1\uffff\2\22\7\uffff";
+    static final String DFA2_maxS =
+        "\1\43\1\uffff\1\34\1\uffff\2\31\7\uffff";
+    static final String DFA2_acceptS =
+        "\1\uffff\1\1\1\uffff\1\3\2\uffff\1\2\1\7\1\5\1\11\1\10\1\4\1\6";
+    static final String DFA2_specialS =
+        "\15\uffff}>";
+    static final String[] DFA2_transitionS = {
+            "\1\1\3\uffff\1\2\3\uffff\1\4\1\5\14\uffff\1\3",
+            "",
+            "\1\6\14\uffff\1\3\4\uffff\1\10\1\uffff\1\7\2\uffff\1\11",
+            "",
+            "\1\13\4\uffff\1\14\1\uffff\1\12",
+            "\1\13\4\uffff\1\14\1\uffff\1\12",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
+    static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
+    static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
+    static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
+    static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
+    static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
+    static final short[][] DFA2_transition;
+
+    static {
+        int numStates = DFA2_transitionS.length;
+        DFA2_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA2_transition[i] = DFA.unpackEncodedString(DFA2_transitionS[i]);
+        }
+    }
+
+    class DFA2 extends DFA {
+
+        public DFA2(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 2;
+            this.eot = DFA2_eot;
+            this.eof = DFA2_eof;
+            this.min = DFA2_min;
+            this.max = DFA2_max;
+            this.accept = DFA2_accept;
+            this.special = DFA2_special;
+            this.transition = DFA2_transition;
+        }
+        public String getDescription() {
+            return "119:1: ( ruleSenEngines | ruleUser | this_Node_2= ruleNode | this_NodeOperating_3= ruleNodeOperating | this_Connection_4= ruleConnection | this_ConnectionUpdate_5= ruleConnectionUpdate | this_Flow_6= ruleFlow | this_FlowUpdate_7= ruleFlowUpdate | this_Operation_8= ruleOperation )";
+        }
+    }
+
+    public static final BitSet FOLLOW_ruleModel_in_entryRuleModel75 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleModel85 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSentence_in_ruleModel130 = new BitSet(new long[]{0x0000000800622002L});
+    public static final BitSet FOLLOW_ruleSentence_in_entryRuleSentence166 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSentence176 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSenEngines_in_ruleSentence217 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleUser_in_ruleSentence238 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNode_in_ruleSentence265 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNodeOperating_in_ruleSentence292 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleConnection_in_ruleSentence319 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleConnectionUpdate_in_ruleSentence346 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFlow_in_ruleSentence373 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFlowUpdate_in_ruleSentence400 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOperation_in_ruleSentence427 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSenEngines_in_entryRuleSenEngines463 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSenEngines474 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_ruleSenEngines512 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleIpv4_in_ruleSenEngines534 = new BitSet(new long[]{0x000000000000C000L});
+    public static final BitSet FOLLOW_14_in_ruleSenEngines553 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleIpv4_in_ruleSenEngines575 = new BitSet(new long[]{0x000000000000C000L});
+    public static final BitSet FOLLOW_15_in_ruleSenEngines595 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleIpv4_in_entryRuleIpv4636 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleIpv4647 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_IPV4_SUB_in_ruleIpv4687 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleIpv4705 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_IPV4_SUB_in_ruleIpv4720 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleIpv4738 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_IPV4_SUB_in_ruleIpv4753 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleIpv4771 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_IPV4_SUB_in_ruleIpv4786 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleUser_in_entryRuleUser832 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleUser843 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_ruleUser881 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleUser896 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleUser916 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleUser936 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleUser954 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNode_in_entryRuleNode994 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleNode1004 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNewObj_in_ruleNode1045 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_18_in_ruleNode1056 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleNode1073 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_ruleNode1091 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleNode1102 = new BitSet(new long[]{0x0000000200108000L});
+    public static final BitSet FOLLOW_20_in_ruleNode1115 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleNode1135 = new BitSet(new long[]{0x000000020000C000L});
+    public static final BitSet FOLLOW_14_in_ruleNode1148 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleNode1168 = new BitSet(new long[]{0x000000020000C000L});
+    public static final BitSet FOLLOW_ruleProperty_in_ruleNode1189 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleNode1202 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNodeOperating_in_entryRuleNodeOperating1240 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleNodeOperating1250 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_21_in_ruleNodeOperating1288 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_22_in_ruleNodeOperating1306 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_18_in_ruleNodeOperating1319 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleNodeOperating1339 = new BitSet(new long[]{0x0000000200188000L});
+    public static final BitSet FOLLOW_19_in_ruleNodeOperating1352 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleNodeOperating1363 = new BitSet(new long[]{0x0000000200108000L});
+    public static final BitSet FOLLOW_20_in_ruleNodeOperating1377 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleNodeOperating1397 = new BitSet(new long[]{0x000000020000C000L});
+    public static final BitSet FOLLOW_14_in_ruleNodeOperating1410 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleNodeOperating1430 = new BitSet(new long[]{0x000000020000C000L});
+    public static final BitSet FOLLOW_ruleProperty_in_ruleNodeOperating1451 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleNodeOperating1464 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleConnection_in_entryRuleConnection1500 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleConnection1510 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_ruleConnection1547 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_ruleConnection1559 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleConnection1576 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_ruleConnection1593 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleConnection1604 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_ruleConnection1616 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleConnection1636 = new BitSet(new long[]{0x000000020000C000L});
+    public static final BitSet FOLLOW_14_in_ruleConnection1649 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleConnection1669 = new BitSet(new long[]{0x000000020000C000L});
+    public static final BitSet FOLLOW_ruleProperty_in_ruleConnection1689 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleConnection1702 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleConnectionUpdate_in_entryRuleConnectionUpdate1738 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleConnectionUpdate1748 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_21_in_ruleConnectionUpdate1786 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_22_in_ruleConnectionUpdate1804 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_ruleConnectionUpdate1817 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleConnectionUpdate1837 = new BitSet(new long[]{0x0000000201088000L});
+    public static final BitSet FOLLOW_19_in_ruleConnectionUpdate1850 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleConnectionUpdate1861 = new BitSet(new long[]{0x0000000201008000L});
+    public static final BitSet FOLLOW_24_in_ruleConnectionUpdate1875 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleConnectionUpdate1895 = new BitSet(new long[]{0x000000020000C000L});
+    public static final BitSet FOLLOW_14_in_ruleConnectionUpdate1908 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleConnectionUpdate1928 = new BitSet(new long[]{0x000000020000C000L});
+    public static final BitSet FOLLOW_ruleProperty_in_ruleConnectionUpdate1949 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleConnectionUpdate1962 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFlow_in_entryRuleFlow1998 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleFlow2008 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_ruleFlow2045 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_ruleFlow2057 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleFlow2074 = new BitSet(new long[]{0x0000000004008000L});
+    public static final BitSet FOLLOW_ruleMatches_in_ruleFlow2096 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleFlow2109 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFlowUpdate_in_entryRuleFlowUpdate2145 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleFlowUpdate2155 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_21_in_ruleFlowUpdate2193 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_22_in_ruleFlowUpdate2211 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_ruleFlowUpdate2224 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleFlowUpdate2244 = new BitSet(new long[]{0x0000000004008000L});
+    public static final BitSet FOLLOW_ruleMatches_in_ruleFlowUpdate2261 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleFlowUpdate2274 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMatches_in_entryRuleMatches2311 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleMatches2322 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_26_in_ruleMatches2360 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_ruleMatch_in_ruleMatches2382 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_14_in_ruleMatches2401 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_ruleMatch_in_ruleMatches2423 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_ruleMatch_in_entryRuleMatch2471 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleMatch2482 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleMatch2522 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_27_in_ruleMatch2540 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleMatch2555 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOperation_in_entryRuleOperation2600 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleOperation2610 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_ruleOperation2647 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_28_in_ruleOperation2659 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleOperation2676 = new BitSet(new long[]{0x0000000060000000L});
+    public static final BitSet FOLLOW_29_in_ruleOperation2694 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleOperation2711 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_30_in_ruleOperation2730 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleOperation2750 = new BitSet(new long[]{0x0000000180000000L});
+    public static final BitSet FOLLOW_ruleCondition_in_ruleOperation2767 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_31_in_ruleOperation2780 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleOperation2792 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleOperation2809 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_27_in_ruleOperation2820 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleOperation2840 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleOperation2854 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleCondition_in_entryRuleCondition2891 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleCondition2902 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_32_in_ruleCondition2940 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleCondition2955 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_14_in_ruleCondition2974 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleCondition2989 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_ruleProperty_in_entryRuleProperty3037 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleProperty3048 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_ruleProperty3086 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_ruleOneProperty_in_ruleProperty3108 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_14_in_ruleProperty3127 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_ruleOneProperty_in_ruleProperty3149 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_ruleOneProperty_in_entryRuleOneProperty3197 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleOneProperty3208 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleOneProperty3248 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_27_in_ruleOneProperty3266 = new BitSet(new long[]{0x00000000000000A0L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleOneProperty3282 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleOneProperty3308 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleModelProperty_in_entryRuleModelProperty3355 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleModelProperty3366 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_34_in_ruleModelProperty3404 = new BitSet(new long[]{0x00000000000000A0L});
+    public static final BitSet FOLLOW_ruleOneModelProperty_in_ruleModelProperty3426 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_14_in_ruleModelProperty3445 = new BitSet(new long[]{0x00000000000000A0L});
+    public static final BitSet FOLLOW_ruleOneModelProperty_in_ruleModelProperty3467 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_ruleOneModelProperty_in_entryRuleOneModelProperty3515 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleOneModelProperty3526 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleOneModelProperty3567 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleOneModelProperty3593 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_27_in_ruleOneModelProperty3612 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_NEMOID_in_ruleOneModelProperty3627 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNewObj_in_entryRuleNewObj3673 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleNewObj3684 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_ruleNewObj3722 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_ruleNewObj3741 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSemanticSequencer.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSemanticSequencer.java
new file mode 100644 (file)
index 0000000..ba50e92
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.serializer;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider;
+import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
+import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.GenericSequencer;
+import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider;
+import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Connection;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.ConnectionUpdate;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Flow;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.FlowUpdate;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Model;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Node;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeModel;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.NodeOperating;
+import org.opendaylight.nemo.tool.eclipse.plugin.editor.Operation;
+import org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+@SuppressWarnings("all")
+public class EditorSemanticSequencer extends AbstractDelegatingSemanticSequencer {
+
+       @Inject
+       private EditorGrammarAccess grammarAccess;
+       
+       @Override
+       public void createSequence(EObject context, EObject semanticObject) {
+               if(semanticObject.eClass().getEPackage() == EditorPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+                       case EditorPackage.CONNECTION:
+                               sequence_Connection(context, (Connection) semanticObject); 
+                               return; 
+                       case EditorPackage.CONNECTION_UPDATE:
+                               sequence_ConnectionUpdate(context, (ConnectionUpdate) semanticObject); 
+                               return; 
+                       case EditorPackage.FLOW:
+                               sequence_Flow(context, (Flow) semanticObject); 
+                               return; 
+                       case EditorPackage.FLOW_UPDATE:
+                               sequence_FlowUpdate(context, (FlowUpdate) semanticObject); 
+                               return; 
+                       case EditorPackage.MODEL:
+                               sequence_Model(context, (Model) semanticObject); 
+                               return; 
+                       case EditorPackage.NODE:
+                               sequence_Node(context, (Node) semanticObject); 
+                               return; 
+                       case EditorPackage.NODE_MODEL:
+                               sequence_NodeModel(context, (NodeModel) semanticObject); 
+                               return; 
+                       case EditorPackage.NODE_OPERATING:
+                               sequence_NodeOperating(context, (NodeOperating) semanticObject); 
+                               return; 
+                       case EditorPackage.OPERATION:
+                               sequence_Operation(context, (Operation) semanticObject); 
+                               return; 
+                       }
+               if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+       }
+       
+       /**
+        * Constraint:
+        *     (connectionname+=[Connection|NemoId] (endnode+=[Node|NemoId] endnode+=[Node|NemoId]*)?)
+        */
+       protected void sequence_ConnectionUpdate(EObject context, ConnectionUpdate semanticObject) {
+               genericSequencer.createSequence(context, semanticObject);
+       }
+       
+       
+       /**
+        * Constraint:
+        *     (name=NemoId endnode+=[Node|NemoId] endnode+=[Node|NemoId]*)
+        */
+       protected void sequence_Connection(EObject context, Connection semanticObject) {
+               genericSequencer.createSequence(context, semanticObject);
+       }
+       
+       
+       /**
+        * Constraint:
+        *     flowId+=[Flow|NemoId]
+        */
+       protected void sequence_FlowUpdate(EObject context, FlowUpdate semanticObject) {
+               genericSequencer.createSequence(context, semanticObject);
+       }
+       
+       
+       /**
+        * Constraint:
+        *     name=NemoId
+        */
+       protected void sequence_Flow(EObject context, Flow semanticObject) {
+               if(errorAcceptor != null) {
+                       if(transientValues.isValueTransient(semanticObject, EditorPackage.Literals.FLOW__NAME) == ValueTransient.YES)
+                               errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, EditorPackage.Literals.FLOW__NAME));
+               }
+               INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+               SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+               feeder.accept(grammarAccess.getFlowAccess().getNameNemoIdTerminalRuleCall_2_0(), semanticObject.getName());
+               feeder.finish();
+       }
+       
+       
+       /**
+        * Constraint:
+        *     sentences+=Sentence*
+        */
+       protected void sequence_Model(EObject context, Model semanticObject) {
+               genericSequencer.createSequence(context, semanticObject);
+       }
+       
+       
+       /**
+        * Constraint:
+        *     name=NemoId
+        */
+       protected void sequence_NodeModel(EObject context, NodeModel semanticObject) {
+               if(errorAcceptor != null) {
+                       if(transientValues.isValueTransient(semanticObject, EditorPackage.Literals.NODE_MODEL__NAME) == ValueTransient.YES)
+                               errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, EditorPackage.Literals.NODE_MODEL__NAME));
+               }
+               INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+               SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+               feeder.accept(grammarAccess.getNodeModelAccess().getNameNemoIdTerminalRuleCall_1_0(), semanticObject.getName());
+               feeder.finish();
+       }
+       
+       
+       /**
+        * Constraint:
+        *     (nodename+=[Node|NemoId] (nodes+=[Node|NemoId] nodes+=[Node|NemoId]*)?)
+        */
+       protected void sequence_NodeOperating(EObject context, NodeOperating semanticObject) {
+               genericSequencer.createSequence(context, semanticObject);
+       }
+       
+       
+       /**
+        * Constraint:
+        *     (name=NemoId (nodes+=[Node|NemoId] nodes+=[Node|NemoId]*)?)
+        */
+       protected void sequence_Node(EObject context, Node semanticObject) {
+               genericSequencer.createSequence(context, semanticObject);
+       }
+       
+       
+       /**
+        * Constraint:
+        *     (name=NemoId value+=INT? targetId=[Flow|NemoId] targetNode=[Node|NemoId]?)
+        */
+       protected void sequence_Operation(EObject context, Operation semanticObject) {
+               genericSequencer.createSequence(context, semanticObject);
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSyntacticSequencer.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/serializer/EditorSyntacticSequencer.java
new file mode 100644 (file)
index 0000000..55587fc
--- /dev/null
@@ -0,0 +1,351 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+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.AlternativeAlias;
+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;
+import org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess;
+
+@SuppressWarnings("all")
+public class EditorSyntacticSequencer extends AbstractSyntacticSequencer {
+
+       protected EditorGrammarAccess grammarAccess;
+       protected AbstractElementAlias match_ConnectionUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0;
+       protected AbstractElementAlias match_ConnectionUpdate_PropertyParserRuleCall_5_q;
+       protected AbstractElementAlias match_ConnectionUpdate___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q;
+       protected AbstractElementAlias match_Connection_PropertyParserRuleCall_6_q;
+       protected AbstractElementAlias match_FlowUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0;
+       protected AbstractElementAlias match_FlowUpdate_MatchesParserRuleCall_3_q;
+       protected AbstractElementAlias match_Flow_MatchesParserRuleCall_3_q;
+       protected AbstractElementAlias match_NodeModel_ModelPropertyParserRuleCall_2_q;
+       protected AbstractElementAlias match_NodeOperating_DELETEKeyword_0_1_or_UPDATEKeyword_0_0;
+       protected AbstractElementAlias match_NodeOperating_PropertyParserRuleCall_5_q;
+       protected AbstractElementAlias match_NodeOperating___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q;
+       protected AbstractElementAlias match_Node_PropertyParserRuleCall_5_q;
+       protected AbstractElementAlias match_Operation_ConditionParserRuleCall_6_q;
+       protected AbstractElementAlias match_Sentence_SenEnginesParserRuleCall_0_or_UserParserRuleCall_1;
+       
+       @Inject
+       protected void init(IGrammarAccess access) {
+               grammarAccess = (EditorGrammarAccess) access;
+               match_ConnectionUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getConnectionUpdateAccess().getDELETEKeyword_0_1()), new TokenAlias(false, false, grammarAccess.getConnectionUpdateAccess().getUPDATEKeyword_0_0()));
+               match_ConnectionUpdate_PropertyParserRuleCall_5_q = new TokenAlias(false, true, grammarAccess.getConnectionUpdateAccess().getPropertyParserRuleCall_5());
+               match_ConnectionUpdate___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getConnectionUpdateAccess().getTypeKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getConnectionUpdateAccess().getNemoIdTerminalRuleCall_3_1()));
+               match_Connection_PropertyParserRuleCall_6_q = new TokenAlias(false, true, grammarAccess.getConnectionAccess().getPropertyParserRuleCall_6());
+               match_FlowUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getFlowUpdateAccess().getDELETEKeyword_0_1()), new TokenAlias(false, false, grammarAccess.getFlowUpdateAccess().getUPDATEKeyword_0_0()));
+               match_FlowUpdate_MatchesParserRuleCall_3_q = new TokenAlias(false, true, grammarAccess.getFlowUpdateAccess().getMatchesParserRuleCall_3());
+               match_Flow_MatchesParserRuleCall_3_q = new TokenAlias(false, true, grammarAccess.getFlowAccess().getMatchesParserRuleCall_3());
+               match_NodeModel_ModelPropertyParserRuleCall_2_q = new TokenAlias(false, true, grammarAccess.getNodeModelAccess().getModelPropertyParserRuleCall_2());
+               match_NodeOperating_DELETEKeyword_0_1_or_UPDATEKeyword_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getNodeOperatingAccess().getDELETEKeyword_0_1()), new TokenAlias(false, false, grammarAccess.getNodeOperatingAccess().getUPDATEKeyword_0_0()));
+               match_NodeOperating_PropertyParserRuleCall_5_q = new TokenAlias(false, true, grammarAccess.getNodeOperatingAccess().getPropertyParserRuleCall_5());
+               match_NodeOperating___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getNodeOperatingAccess().getTypeKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getNodeOperatingAccess().getNemoIdTerminalRuleCall_3_1()));
+               match_Node_PropertyParserRuleCall_5_q = new TokenAlias(false, true, grammarAccess.getNodeAccess().getPropertyParserRuleCall_5());
+               match_Operation_ConditionParserRuleCall_6_q = new TokenAlias(false, true, grammarAccess.getOperationAccess().getConditionParserRuleCall_6());
+               match_Sentence_SenEnginesParserRuleCall_0_or_UserParserRuleCall_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getSentenceAccess().getSenEnginesParserRuleCall_0()), new TokenAlias(false, false, grammarAccess.getSentenceAccess().getUserParserRuleCall_1()));
+       }
+       
+       @Override
+       protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+               if(ruleCall.getRule() == grammarAccess.getConditionRule())
+                       return getConditionToken(semanticObject, ruleCall, node);
+               else if(ruleCall.getRule() == grammarAccess.getMatchesRule())
+                       return getMatchesToken(semanticObject, ruleCall, node);
+               else if(ruleCall.getRule() == grammarAccess.getModelPropertyRule())
+                       return getModelPropertyToken(semanticObject, ruleCall, node);
+               else if(ruleCall.getRule() == grammarAccess.getNemoIdRule())
+                       return getNemoIdToken(semanticObject, ruleCall, node);
+               else if(ruleCall.getRule() == grammarAccess.getNewObjRule())
+                       return getNewObjToken(semanticObject, ruleCall, node);
+               else if(ruleCall.getRule() == grammarAccess.getPropertyRule())
+                       return getPropertyToken(semanticObject, ruleCall, node);
+               else if(ruleCall.getRule() == grammarAccess.getSenEnginesRule())
+                       return getSenEnginesToken(semanticObject, ruleCall, node);
+               else if(ruleCall.getRule() == grammarAccess.getUserRule())
+                       return getUserToken(semanticObject, ruleCall, node);
+               return "";
+       }
+       
+       /**
+        * Condition: 'Condition' STRING(','STRING)*;
+        */
+       protected String getConditionToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+               if (node != null)
+                       return getTokenText(node);
+               return "Condition\"\"";
+       }
+       
+       /**
+        * Matches:   'Match'   Match (',' Match)*;
+        */
+       protected String getMatchesToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+               if (node != null)
+                       return getTokenText(node);
+               return "Match:\"\"";
+       }
+       
+       /**
+        * ModelProperty: 'Property' OneModelProperty (',' OneModelProperty)*;
+        */
+       protected String getModelPropertyToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+               if (node != null)
+                       return getTokenText(node);
+               return "Property\"\":";
+       }
+       
+       /**
+        * terminal NemoId: ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'-'|'0'..'9')*;
+        */
+       protected String getNemoIdToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+               if (node != null)
+                       return getTokenText(node);
+               return "";
+       }
+       
+       /**
+        * NewObj:'CREATE'|'IMPORT';
+        */
+       protected String getNewObjToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+               if (node != null)
+                       return getTokenText(node);
+               return "CREATE";
+       }
+       
+       /**
+        * Property: 'Property ' OneProperty(',' OneProperty)*;
+        */
+       protected String getPropertyToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+               if (node != null)
+                       return getTokenText(node);
+               return "Property :\"\"";
+       }
+       
+       /**
+        * SenEngines:
+        *      'Engines:' Ipv4 (',' Ipv4)* ';';
+        */
+       protected String getSenEnginesToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+               if (node != null)
+                       return getTokenText(node);
+               return "Engines:...;";
+       }
+       
+       /**
+        * User:'CREATE'  (STRING) (STRING) (STRING)   ';' ;
+        */
+       protected String getUserToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+               if (node != null)
+                       return getTokenText(node);
+               return "CREATE\"\";";
+       }
+       
+       @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_ConnectionUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0.equals(syntax))
+                               emit_ConnectionUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_ConnectionUpdate_PropertyParserRuleCall_5_q.equals(syntax))
+                               emit_ConnectionUpdate_PropertyParserRuleCall_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_ConnectionUpdate___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q.equals(syntax))
+                               emit_ConnectionUpdate___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_Connection_PropertyParserRuleCall_6_q.equals(syntax))
+                               emit_Connection_PropertyParserRuleCall_6_q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_FlowUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0.equals(syntax))
+                               emit_FlowUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_FlowUpdate_MatchesParserRuleCall_3_q.equals(syntax))
+                               emit_FlowUpdate_MatchesParserRuleCall_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_Flow_MatchesParserRuleCall_3_q.equals(syntax))
+                               emit_Flow_MatchesParserRuleCall_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_NodeModel_ModelPropertyParserRuleCall_2_q.equals(syntax))
+                               emit_NodeModel_ModelPropertyParserRuleCall_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_NodeOperating_DELETEKeyword_0_1_or_UPDATEKeyword_0_0.equals(syntax))
+                               emit_NodeOperating_DELETEKeyword_0_1_or_UPDATEKeyword_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_NodeOperating_PropertyParserRuleCall_5_q.equals(syntax))
+                               emit_NodeOperating_PropertyParserRuleCall_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_NodeOperating___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q.equals(syntax))
+                               emit_NodeOperating___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_Node_PropertyParserRuleCall_5_q.equals(syntax))
+                               emit_Node_PropertyParserRuleCall_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_Operation_ConditionParserRuleCall_6_q.equals(syntax))
+                               emit_Operation_ConditionParserRuleCall_6_q(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else if(match_Sentence_SenEnginesParserRuleCall_0_or_UserParserRuleCall_1.equals(syntax))
+                               emit_Sentence_SenEnginesParserRuleCall_0_or_UserParserRuleCall_1(semanticObject, getLastNavigableState(), syntaxNodes);
+                       else acceptNodes(getLastNavigableState(), syntaxNodes);
+               }
+       }
+
+       /**
+        * Ambiguous syntax:
+        *     'UPDATE' | 'DELETE'
+        *
+        * This ambiguous syntax occurs at:
+        *     (rule start) (ambiguity) 'Connection' connectionname+=[Connection|NemoId]
+        */
+       protected void emit_ConnectionUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     Property?
+        *
+        * This ambiguous syntax occurs at:
+        *     connectionname+=[Connection|NemoId] ('Type' NemoId)? (ambiguity) ';' (rule end)
+        *     endnode+=[Node|NemoId] (ambiguity) ';' (rule end)
+        */
+       protected void emit_ConnectionUpdate_PropertyParserRuleCall_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     ('Type' NemoId)?
+        *
+        * This ambiguous syntax occurs at:
+        *     connectionname+=[Connection|NemoId] (ambiguity) 'Endnodes' endnode+=[Node|NemoId]
+        *     connectionname+=[Connection|NemoId] (ambiguity) Property? ';' (rule end)
+        */
+       protected void emit_ConnectionUpdate___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     Property?
+        *
+        * This ambiguous syntax occurs at:
+        *     endnode+=[Node|NemoId] (ambiguity) ';' (rule end)
+        */
+       protected void emit_Connection_PropertyParserRuleCall_6_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     'UPDATE' | 'DELETE'
+        *
+        * This ambiguous syntax occurs at:
+        *     (rule start) (ambiguity) 'Flow' flowId+=[Flow|NemoId]
+        */
+       protected void emit_FlowUpdate_DELETEKeyword_0_1_or_UPDATEKeyword_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     Matches?
+        *
+        * This ambiguous syntax occurs at:
+        *     flowId+=[Flow|NemoId] (ambiguity) ';' (rule end)
+        */
+       protected void emit_FlowUpdate_MatchesParserRuleCall_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     Matches?
+        *
+        * This ambiguous syntax occurs at:
+        *     name=NemoId (ambiguity) ';' (rule end)
+        */
+       protected void emit_Flow_MatchesParserRuleCall_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     ModelProperty?
+        *
+        * This ambiguous syntax occurs at:
+        *     name=NemoId (ambiguity) (rule end)
+        */
+       protected void emit_NodeModel_ModelPropertyParserRuleCall_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     'UPDATE' | 'DELETE'
+        *
+        * This ambiguous syntax occurs at:
+        *     (rule start) (ambiguity) 'Node' nodename+=[Node|NemoId]
+        */
+       protected void emit_NodeOperating_DELETEKeyword_0_1_or_UPDATEKeyword_0_0(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     Property?
+        *
+        * This ambiguous syntax occurs at:
+        *     nodename+=[Node|NemoId] ('Type' NemoId)? (ambiguity) ';' (rule end)
+        *     nodes+=[Node|NemoId] (ambiguity) ';' (rule end)
+        */
+       protected void emit_NodeOperating_PropertyParserRuleCall_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     ('Type' NemoId)?
+        *
+        * This ambiguous syntax occurs at:
+        *     nodename+=[Node|NemoId] (ambiguity) 'Contain' nodes+=[Node|NemoId]
+        *     nodename+=[Node|NemoId] (ambiguity) Property? ';' (rule end)
+        */
+       protected void emit_NodeOperating___TypeKeyword_3_0_NemoIdTerminalRuleCall_3_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     Property?
+        *
+        * This ambiguous syntax occurs at:
+        *     name=NemoId 'Type' NemoId (ambiguity) ';' (rule end)
+        *     nodes+=[Node|NemoId] (ambiguity) ';' (rule end)
+        */
+       protected void emit_Node_PropertyParserRuleCall_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     Condition?
+        *
+        * This ambiguous syntax occurs at:
+        *     targetId=[Flow|NemoId] (ambiguity) 'Action' NemoId ':' targetNode=[Node|NemoId]
+        *     targetId=[Flow|NemoId] (ambiguity) 'Action' NemoId ';' (rule end)
+        */
+       protected void emit_Operation_ConditionParserRuleCall_6_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+       /**
+        * Ambiguous syntax:
+        *     SenEngines | User
+        *
+        * This ambiguous syntax occurs at:
+        *     (rule start) (ambiguity) (rule start)
+        */
+       protected void emit_Sentence_SenEnginesParserRuleCall_0_or_UserParserRuleCall_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+               acceptNodes(transition, nodes);
+       }
+       
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/services/EditorGrammarAccess.java
new file mode 100644 (file)
index 0000000..666d972
--- /dev/null
@@ -0,0 +1,1415 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import java.util.List;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class EditorGrammarAccess extends AbstractGrammarElementFinder {
+       
+       
+       public class ModelElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Model");
+               private final Assignment cSentencesAssignment = (Assignment)rule.eContents().get(1);
+               private final RuleCall cSentencesSentenceParserRuleCall_0 = (RuleCall)cSentencesAssignment.eContents().get(0);
+               
+               //Model:
+               //      sentences+=Sentence*;
+               @Override public ParserRule getRule() { return rule; }
+
+               //sentences+=Sentence*
+               public Assignment getSentencesAssignment() { return cSentencesAssignment; }
+
+               //Sentence
+               public RuleCall getSentencesSentenceParserRuleCall_0() { return cSentencesSentenceParserRuleCall_0; }
+       }
+
+       public class SentenceElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Sentence");
+               private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+               private final RuleCall cSenEnginesParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+               private final RuleCall cUserParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+               private final RuleCall cNodeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+               private final RuleCall cNodeOperatingParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+               private final RuleCall cConnectionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+               private final RuleCall cConnectionUpdateParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+               private final RuleCall cFlowParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+               private final RuleCall cFlowUpdateParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+               private final RuleCall cOperationParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
+               
+               //Sentence:
+               //      SenEngines | User | Node | NodeOperating | Connection | ConnectionUpdate | Flow | FlowUpdate | Operation;
+               @Override public ParserRule getRule() { return rule; }
+
+               //SenEngines | User | Node | NodeOperating | Connection | ConnectionUpdate | Flow | FlowUpdate | Operation
+               public Alternatives getAlternatives() { return cAlternatives; }
+
+               //SenEngines
+               public RuleCall getSenEnginesParserRuleCall_0() { return cSenEnginesParserRuleCall_0; }
+
+               //User
+               public RuleCall getUserParserRuleCall_1() { return cUserParserRuleCall_1; }
+
+               //Node
+               public RuleCall getNodeParserRuleCall_2() { return cNodeParserRuleCall_2; }
+
+               //NodeOperating
+               public RuleCall getNodeOperatingParserRuleCall_3() { return cNodeOperatingParserRuleCall_3; }
+
+               //Connection
+               public RuleCall getConnectionParserRuleCall_4() { return cConnectionParserRuleCall_4; }
+
+               //ConnectionUpdate
+               public RuleCall getConnectionUpdateParserRuleCall_5() { return cConnectionUpdateParserRuleCall_5; }
+
+               //Flow
+               public RuleCall getFlowParserRuleCall_6() { return cFlowParserRuleCall_6; }
+
+               //FlowUpdate
+               public RuleCall getFlowUpdateParserRuleCall_7() { return cFlowUpdateParserRuleCall_7; }
+
+               //Operation
+               public RuleCall getOperationParserRuleCall_8() { return cOperationParserRuleCall_8; }
+       }
+
+       public class SenEnginesElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SenEngines");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cEnginesKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final RuleCall cIpv4ParserRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
+               private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+               private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+               private final RuleCall cIpv4ParserRuleCall_2_1 = (RuleCall)cGroup_2.eContents().get(1);
+               private final Keyword cSemicolonKeyword_3 = (Keyword)cGroup.eContents().get(3);
+               
+               ////Engines sentence
+               //SenEngines:
+               //      "Engines:" Ipv4 ("," Ipv4)* ";";
+               @Override public ParserRule getRule() { return rule; }
+
+               //"Engines:" Ipv4 ("," Ipv4)* ";"
+               public Group getGroup() { return cGroup; }
+
+               //"Engines:"
+               public Keyword getEnginesKeyword_0() { return cEnginesKeyword_0; }
+
+               //Ipv4
+               public RuleCall getIpv4ParserRuleCall_1() { return cIpv4ParserRuleCall_1; }
+
+               //("," Ipv4)*
+               public Group getGroup_2() { return cGroup_2; }
+
+               //","
+               public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
+
+               //Ipv4
+               public RuleCall getIpv4ParserRuleCall_2_1() { return cIpv4ParserRuleCall_2_1; }
+
+               //";"
+               public Keyword getSemicolonKeyword_3() { return cSemicolonKeyword_3; }
+       }
+
+       public class Ipv4Elements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Ipv4");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final RuleCall cIPV4_SUBTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+               private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final RuleCall cIPV4_SUBTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+               private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
+               private final RuleCall cIPV4_SUBTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+               private final Keyword cFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5);
+               private final RuleCall cIPV4_SUBTerminalRuleCall_6 = (RuleCall)cGroup.eContents().get(6);
+               
+               //Ipv4:
+               //      IPV4_SUB "." IPV4_SUB "." IPV4_SUB "." IPV4_SUB;
+               @Override public ParserRule getRule() { return rule; }
+
+               //IPV4_SUB "." IPV4_SUB "." IPV4_SUB "." IPV4_SUB
+               public Group getGroup() { return cGroup; }
+
+               //IPV4_SUB
+               public RuleCall getIPV4_SUBTerminalRuleCall_0() { return cIPV4_SUBTerminalRuleCall_0; }
+
+               //"."
+               public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
+
+               //IPV4_SUB
+               public RuleCall getIPV4_SUBTerminalRuleCall_2() { return cIPV4_SUBTerminalRuleCall_2; }
+
+               //"."
+               public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }
+
+               //IPV4_SUB
+               public RuleCall getIPV4_SUBTerminalRuleCall_4() { return cIPV4_SUBTerminalRuleCall_4; }
+
+               //"."
+               public Keyword getFullStopKeyword_5() { return cFullStopKeyword_5; }
+
+               //IPV4_SUB
+               public RuleCall getIPV4_SUBTerminalRuleCall_6() { return cIPV4_SUBTerminalRuleCall_6; }
+       }
+
+       public class UserElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "User");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cCREATEKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final RuleCall cSTRINGTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
+               private final RuleCall cSTRINGTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+               private final RuleCall cSTRINGTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
+               private final Keyword cSemicolonKeyword_4 = (Keyword)cGroup.eContents().get(4);
+               
+               ////User
+               //User:
+               //      "CREATE" STRING STRING STRING ";";
+               @Override public ParserRule getRule() { return rule; }
+
+               //"CREATE" STRING STRING STRING ";"
+               public Group getGroup() { return cGroup; }
+
+               //"CREATE"
+               public Keyword getCREATEKeyword_0() { return cCREATEKeyword_0; }
+
+               //STRING
+               public RuleCall getSTRINGTerminalRuleCall_1() { return cSTRINGTerminalRuleCall_1; }
+
+               //STRING
+               public RuleCall getSTRINGTerminalRuleCall_2() { return cSTRINGTerminalRuleCall_2; }
+
+               //STRING
+               public RuleCall getSTRINGTerminalRuleCall_3() { return cSTRINGTerminalRuleCall_3; }
+
+               //";"
+               public Keyword getSemicolonKeyword_4() { return cSemicolonKeyword_4; }
+       }
+
+       public class NodeElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Node");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final RuleCall cNewObjParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+               private final Keyword cNodeKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+               private final RuleCall cNameNemoIdTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+               private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+               private final Keyword cTypeKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+               private final RuleCall cNemoIdTerminalRuleCall_3_1 = (RuleCall)cGroup_3.eContents().get(1);
+               private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+               private final Keyword cContainKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+               private final Assignment cNodesAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+               private final CrossReference cNodesNodeCrossReference_4_1_0 = (CrossReference)cNodesAssignment_4_1.eContents().get(0);
+               private final RuleCall cNodesNodeNemoIdTerminalRuleCall_4_1_0_1 = (RuleCall)cNodesNodeCrossReference_4_1_0.eContents().get(1);
+               private final Group cGroup_4_2 = (Group)cGroup_4.eContents().get(2);
+               private final Keyword cCommaKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
+               private final Assignment cNodesAssignment_4_2_1 = (Assignment)cGroup_4_2.eContents().get(1);
+               private final CrossReference cNodesNodeCrossReference_4_2_1_0 = (CrossReference)cNodesAssignment_4_2_1.eContents().get(0);
+               private final RuleCall cNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1 = (RuleCall)cNodesNodeCrossReference_4_2_1_0.eContents().get(1);
+               private final RuleCall cPropertyParserRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+               private final Keyword cSemicolonKeyword_6 = (Keyword)cGroup.eContents().get(6);
+               
+               //////Node
+               //Node:
+               //      NewObj "Node" name=NemoId ("Type" NemoId) ("Contain" nodes+=[Node|NemoId] ("," nodes+=[Node|NemoId])*)? Property? ";";
+               @Override public ParserRule getRule() { return rule; }
+
+               //NewObj "Node" name=NemoId ("Type" NemoId) ("Contain" nodes+=[Node|NemoId] ("," nodes+=[Node|NemoId])*)? Property? ";"
+               public Group getGroup() { return cGroup; }
+
+               //NewObj
+               public RuleCall getNewObjParserRuleCall_0() { return cNewObjParserRuleCall_0; }
+
+               //"Node"
+               public Keyword getNodeKeyword_1() { return cNodeKeyword_1; }
+
+               //name=NemoId
+               public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+               //NemoId
+               public RuleCall getNameNemoIdTerminalRuleCall_2_0() { return cNameNemoIdTerminalRuleCall_2_0; }
+
+               //"Type" NemoId
+               public Group getGroup_3() { return cGroup_3; }
+
+               //"Type"
+               public Keyword getTypeKeyword_3_0() { return cTypeKeyword_3_0; }
+
+               //NemoId
+               public RuleCall getNemoIdTerminalRuleCall_3_1() { return cNemoIdTerminalRuleCall_3_1; }
+
+               //("Contain" nodes+=[Node|NemoId] ("," nodes+=[Node|NemoId])*)?
+               public Group getGroup_4() { return cGroup_4; }
+
+               //"Contain"
+               public Keyword getContainKeyword_4_0() { return cContainKeyword_4_0; }
+
+               //nodes+=[Node|NemoId]
+               public Assignment getNodesAssignment_4_1() { return cNodesAssignment_4_1; }
+
+               //[Node|NemoId]
+               public CrossReference getNodesNodeCrossReference_4_1_0() { return cNodesNodeCrossReference_4_1_0; }
+
+               //NemoId
+               public RuleCall getNodesNodeNemoIdTerminalRuleCall_4_1_0_1() { return cNodesNodeNemoIdTerminalRuleCall_4_1_0_1; }
+
+               //("," nodes+=[Node|NemoId])*
+               public Group getGroup_4_2() { return cGroup_4_2; }
+
+               //","
+               public Keyword getCommaKeyword_4_2_0() { return cCommaKeyword_4_2_0; }
+
+               //nodes+=[Node|NemoId]
+               public Assignment getNodesAssignment_4_2_1() { return cNodesAssignment_4_2_1; }
+
+               //[Node|NemoId]
+               public CrossReference getNodesNodeCrossReference_4_2_1_0() { return cNodesNodeCrossReference_4_2_1_0; }
+
+               //NemoId
+               public RuleCall getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1() { return cNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1; }
+
+               //Property?
+               public RuleCall getPropertyParserRuleCall_5() { return cPropertyParserRuleCall_5; }
+
+               //";"
+               public Keyword getSemicolonKeyword_6() { return cSemicolonKeyword_6; }
+       }
+
+       public class NodeModelElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NodeModel");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cNodeModelKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+               private final RuleCall cNameNemoIdTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+               private final RuleCall cModelPropertyParserRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+               
+               ////NodeModel
+               //NodeModel:
+               //      "NodeModel" name=NemoId ModelProperty?;
+               @Override public ParserRule getRule() { return rule; }
+
+               //"NodeModel" name=NemoId ModelProperty?
+               public Group getGroup() { return cGroup; }
+
+               //"NodeModel"
+               public Keyword getNodeModelKeyword_0() { return cNodeModelKeyword_0; }
+
+               //name=NemoId
+               public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+               //NemoId
+               public RuleCall getNameNemoIdTerminalRuleCall_1_0() { return cNameNemoIdTerminalRuleCall_1_0; }
+
+               //ModelProperty?
+               public RuleCall getModelPropertyParserRuleCall_2() { return cModelPropertyParserRuleCall_2; }
+       }
+
+       public class NodeOperatingElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NodeOperating");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
+               private final Keyword cUPDATEKeyword_0_0 = (Keyword)cAlternatives_0.eContents().get(0);
+               private final Keyword cDELETEKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
+               private final Keyword cNodeKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final Assignment cNodenameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+               private final CrossReference cNodenameNodeCrossReference_2_0 = (CrossReference)cNodenameAssignment_2.eContents().get(0);
+               private final RuleCall cNodenameNodeNemoIdTerminalRuleCall_2_0_1 = (RuleCall)cNodenameNodeCrossReference_2_0.eContents().get(1);
+               private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+               private final Keyword cTypeKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+               private final RuleCall cNemoIdTerminalRuleCall_3_1 = (RuleCall)cGroup_3.eContents().get(1);
+               private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+               private final Keyword cContainKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+               private final Assignment cNodesAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+               private final CrossReference cNodesNodeCrossReference_4_1_0 = (CrossReference)cNodesAssignment_4_1.eContents().get(0);
+               private final RuleCall cNodesNodeNemoIdTerminalRuleCall_4_1_0_1 = (RuleCall)cNodesNodeCrossReference_4_1_0.eContents().get(1);
+               private final Group cGroup_4_2 = (Group)cGroup_4.eContents().get(2);
+               private final Keyword cCommaKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
+               private final Assignment cNodesAssignment_4_2_1 = (Assignment)cGroup_4_2.eContents().get(1);
+               private final CrossReference cNodesNodeCrossReference_4_2_1_0 = (CrossReference)cNodesAssignment_4_2_1.eContents().get(0);
+               private final RuleCall cNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1 = (RuleCall)cNodesNodeCrossReference_4_2_1_0.eContents().get(1);
+               private final RuleCall cPropertyParserRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+               private final Keyword cSemicolonKeyword_6 = (Keyword)cGroup.eContents().get(6);
+               
+               //NodeOperating:
+               //      ("UPDATE" | "DELETE") "Node" nodename+=[Node|NemoId] ("Type" NemoId)? ("Contain" nodes+=[Node|NemoId] (","
+               //      nodes+=[Node|NemoId])*)? Property? ";";
+               @Override public ParserRule getRule() { return rule; }
+
+               //("UPDATE" | "DELETE") "Node" nodename+=[Node|NemoId] ("Type" NemoId)? ("Contain" nodes+=[Node|NemoId] (","
+               //nodes+=[Node|NemoId])*)? Property? ";"
+               public Group getGroup() { return cGroup; }
+
+               //"UPDATE" | "DELETE"
+               public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+               //"UPDATE"
+               public Keyword getUPDATEKeyword_0_0() { return cUPDATEKeyword_0_0; }
+
+               //"DELETE"
+               public Keyword getDELETEKeyword_0_1() { return cDELETEKeyword_0_1; }
+
+               //"Node"
+               public Keyword getNodeKeyword_1() { return cNodeKeyword_1; }
+
+               //nodename+=[Node|NemoId]
+               public Assignment getNodenameAssignment_2() { return cNodenameAssignment_2; }
+
+               //[Node|NemoId]
+               public CrossReference getNodenameNodeCrossReference_2_0() { return cNodenameNodeCrossReference_2_0; }
+
+               //NemoId
+               public RuleCall getNodenameNodeNemoIdTerminalRuleCall_2_0_1() { return cNodenameNodeNemoIdTerminalRuleCall_2_0_1; }
+
+               //("Type" NemoId)?
+               public Group getGroup_3() { return cGroup_3; }
+
+               //"Type"
+               public Keyword getTypeKeyword_3_0() { return cTypeKeyword_3_0; }
+
+               //NemoId
+               public RuleCall getNemoIdTerminalRuleCall_3_1() { return cNemoIdTerminalRuleCall_3_1; }
+
+               //("Contain" nodes+=[Node|NemoId] ("," nodes+=[Node|NemoId])*)?
+               public Group getGroup_4() { return cGroup_4; }
+
+               //"Contain"
+               public Keyword getContainKeyword_4_0() { return cContainKeyword_4_0; }
+
+               //nodes+=[Node|NemoId]
+               public Assignment getNodesAssignment_4_1() { return cNodesAssignment_4_1; }
+
+               //[Node|NemoId]
+               public CrossReference getNodesNodeCrossReference_4_1_0() { return cNodesNodeCrossReference_4_1_0; }
+
+               //NemoId
+               public RuleCall getNodesNodeNemoIdTerminalRuleCall_4_1_0_1() { return cNodesNodeNemoIdTerminalRuleCall_4_1_0_1; }
+
+               //("," nodes+=[Node|NemoId])*
+               public Group getGroup_4_2() { return cGroup_4_2; }
+
+               //","
+               public Keyword getCommaKeyword_4_2_0() { return cCommaKeyword_4_2_0; }
+
+               //nodes+=[Node|NemoId]
+               public Assignment getNodesAssignment_4_2_1() { return cNodesAssignment_4_2_1; }
+
+               //[Node|NemoId]
+               public CrossReference getNodesNodeCrossReference_4_2_1_0() { return cNodesNodeCrossReference_4_2_1_0; }
+
+               //NemoId
+               public RuleCall getNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1() { return cNodesNodeNemoIdTerminalRuleCall_4_2_1_0_1; }
+
+               //Property?
+               public RuleCall getPropertyParserRuleCall_5() { return cPropertyParserRuleCall_5; }
+
+               //";"
+               public Keyword getSemicolonKeyword_6() { return cSemicolonKeyword_6; }
+       }
+
+       public class ConnectionElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Connection");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cCREATEKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final Keyword cConnectionKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+               private final RuleCall cNameNemoIdTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+               private final Keyword cTypeKeyword_3 = (Keyword)cGroup.eContents().get(3);
+               private final RuleCall cNemoIdTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+               private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+               private final Keyword cEndnodesKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+               private final Assignment cEndnodeAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+               private final CrossReference cEndnodeNodeCrossReference_5_1_0 = (CrossReference)cEndnodeAssignment_5_1.eContents().get(0);
+               private final RuleCall cEndnodeNodeNemoIdTerminalRuleCall_5_1_0_1 = (RuleCall)cEndnodeNodeCrossReference_5_1_0.eContents().get(1);
+               private final Group cGroup_5_2 = (Group)cGroup_5.eContents().get(2);
+               private final Keyword cCommaKeyword_5_2_0 = (Keyword)cGroup_5_2.eContents().get(0);
+               private final Assignment cEndnodeAssignment_5_2_1 = (Assignment)cGroup_5_2.eContents().get(1);
+               private final CrossReference cEndnodeNodeCrossReference_5_2_1_0 = (CrossReference)cEndnodeAssignment_5_2_1.eContents().get(0);
+               private final RuleCall cEndnodeNodeNemoIdTerminalRuleCall_5_2_1_0_1 = (RuleCall)cEndnodeNodeCrossReference_5_2_1_0.eContents().get(1);
+               private final RuleCall cPropertyParserRuleCall_6 = (RuleCall)cGroup.eContents().get(6);
+               private final Keyword cSemicolonKeyword_7 = (Keyword)cGroup.eContents().get(7);
+               
+               ////Connection
+               //Connection:
+               //      "CREATE" "Connection" name=NemoId "Type" NemoId ("Endnodes" endnode+=[Node|NemoId] ("," endnode+=[Node|NemoId])*)
+               //      Property? ";";
+               @Override public ParserRule getRule() { return rule; }
+
+               //"CREATE" "Connection" name=NemoId "Type" NemoId ("Endnodes" endnode+=[Node|NemoId] ("," endnode+=[Node|NemoId])*)
+               //Property? ";"
+               public Group getGroup() { return cGroup; }
+
+               //"CREATE"
+               public Keyword getCREATEKeyword_0() { return cCREATEKeyword_0; }
+
+               //"Connection"
+               public Keyword getConnectionKeyword_1() { return cConnectionKeyword_1; }
+
+               //name=NemoId
+               public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+               //NemoId
+               public RuleCall getNameNemoIdTerminalRuleCall_2_0() { return cNameNemoIdTerminalRuleCall_2_0; }
+
+               //"Type"
+               public Keyword getTypeKeyword_3() { return cTypeKeyword_3; }
+
+               //NemoId
+               public RuleCall getNemoIdTerminalRuleCall_4() { return cNemoIdTerminalRuleCall_4; }
+
+               //"Endnodes" endnode+=[Node|NemoId] ("," endnode+=[Node|NemoId])*
+               public Group getGroup_5() { return cGroup_5; }
+
+               //"Endnodes"
+               public Keyword getEndnodesKeyword_5_0() { return cEndnodesKeyword_5_0; }
+
+               //endnode+=[Node|NemoId]
+               public Assignment getEndnodeAssignment_5_1() { return cEndnodeAssignment_5_1; }
+
+               //[Node|NemoId]
+               public CrossReference getEndnodeNodeCrossReference_5_1_0() { return cEndnodeNodeCrossReference_5_1_0; }
+
+               //NemoId
+               public RuleCall getEndnodeNodeNemoIdTerminalRuleCall_5_1_0_1() { return cEndnodeNodeNemoIdTerminalRuleCall_5_1_0_1; }
+
+               //("," endnode+=[Node|NemoId])*
+               public Group getGroup_5_2() { return cGroup_5_2; }
+
+               //","
+               public Keyword getCommaKeyword_5_2_0() { return cCommaKeyword_5_2_0; }
+
+               //endnode+=[Node|NemoId]
+               public Assignment getEndnodeAssignment_5_2_1() { return cEndnodeAssignment_5_2_1; }
+
+               //[Node|NemoId]
+               public CrossReference getEndnodeNodeCrossReference_5_2_1_0() { return cEndnodeNodeCrossReference_5_2_1_0; }
+
+               //NemoId
+               public RuleCall getEndnodeNodeNemoIdTerminalRuleCall_5_2_1_0_1() { return cEndnodeNodeNemoIdTerminalRuleCall_5_2_1_0_1; }
+
+               //Property?
+               public RuleCall getPropertyParserRuleCall_6() { return cPropertyParserRuleCall_6; }
+
+               //";"
+               public Keyword getSemicolonKeyword_7() { return cSemicolonKeyword_7; }
+       }
+
+       public class ConnectionUpdateElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ConnectionUpdate");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
+               private final Keyword cUPDATEKeyword_0_0 = (Keyword)cAlternatives_0.eContents().get(0);
+               private final Keyword cDELETEKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
+               private final Keyword cConnectionKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final Assignment cConnectionnameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+               private final CrossReference cConnectionnameConnectionCrossReference_2_0 = (CrossReference)cConnectionnameAssignment_2.eContents().get(0);
+               private final RuleCall cConnectionnameConnectionNemoIdTerminalRuleCall_2_0_1 = (RuleCall)cConnectionnameConnectionCrossReference_2_0.eContents().get(1);
+               private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+               private final Keyword cTypeKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+               private final RuleCall cNemoIdTerminalRuleCall_3_1 = (RuleCall)cGroup_3.eContents().get(1);
+               private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+               private final Keyword cEndnodesKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+               private final Assignment cEndnodeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+               private final CrossReference cEndnodeNodeCrossReference_4_1_0 = (CrossReference)cEndnodeAssignment_4_1.eContents().get(0);
+               private final RuleCall cEndnodeNodeNemoIdTerminalRuleCall_4_1_0_1 = (RuleCall)cEndnodeNodeCrossReference_4_1_0.eContents().get(1);
+               private final Group cGroup_4_2 = (Group)cGroup_4.eContents().get(2);
+               private final Keyword cCommaKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
+               private final Assignment cEndnodeAssignment_4_2_1 = (Assignment)cGroup_4_2.eContents().get(1);
+               private final CrossReference cEndnodeNodeCrossReference_4_2_1_0 = (CrossReference)cEndnodeAssignment_4_2_1.eContents().get(0);
+               private final RuleCall cEndnodeNodeNemoIdTerminalRuleCall_4_2_1_0_1 = (RuleCall)cEndnodeNodeCrossReference_4_2_1_0.eContents().get(1);
+               private final RuleCall cPropertyParserRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+               private final Keyword cSemicolonKeyword_6 = (Keyword)cGroup.eContents().get(6);
+               
+               ////Connection operating
+               //ConnectionUpdate:
+               //      ("UPDATE" | "DELETE") "Connection" connectionname+=[Connection|NemoId] ("Type" NemoId)? ("Endnodes"
+               //      endnode+=[Node|NemoId] ("," endnode+=[Node|NemoId])*)? Property? ";";
+               @Override public ParserRule getRule() { return rule; }
+
+               //("UPDATE" | "DELETE") "Connection" connectionname+=[Connection|NemoId] ("Type" NemoId)? ("Endnodes"
+               //endnode+=[Node|NemoId] ("," endnode+=[Node|NemoId])*)? Property? ";"
+               public Group getGroup() { return cGroup; }
+
+               //"UPDATE" | "DELETE"
+               public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+               //"UPDATE"
+               public Keyword getUPDATEKeyword_0_0() { return cUPDATEKeyword_0_0; }
+
+               //"DELETE"
+               public Keyword getDELETEKeyword_0_1() { return cDELETEKeyword_0_1; }
+
+               //"Connection"
+               public Keyword getConnectionKeyword_1() { return cConnectionKeyword_1; }
+
+               //connectionname+=[Connection|NemoId]
+               public Assignment getConnectionnameAssignment_2() { return cConnectionnameAssignment_2; }
+
+               //[Connection|NemoId]
+               public CrossReference getConnectionnameConnectionCrossReference_2_0() { return cConnectionnameConnectionCrossReference_2_0; }
+
+               //NemoId
+               public RuleCall getConnectionnameConnectionNemoIdTerminalRuleCall_2_0_1() { return cConnectionnameConnectionNemoIdTerminalRuleCall_2_0_1; }
+
+               //("Type" NemoId)?
+               public Group getGroup_3() { return cGroup_3; }
+
+               //"Type"
+               public Keyword getTypeKeyword_3_0() { return cTypeKeyword_3_0; }
+
+               //NemoId
+               public RuleCall getNemoIdTerminalRuleCall_3_1() { return cNemoIdTerminalRuleCall_3_1; }
+
+               //("Endnodes" endnode+=[Node|NemoId] ("," endnode+=[Node|NemoId])*)?
+               public Group getGroup_4() { return cGroup_4; }
+
+               //"Endnodes"
+               public Keyword getEndnodesKeyword_4_0() { return cEndnodesKeyword_4_0; }
+
+               //endnode+=[Node|NemoId]
+               public Assignment getEndnodeAssignment_4_1() { return cEndnodeAssignment_4_1; }
+
+               //[Node|NemoId]
+               public CrossReference getEndnodeNodeCrossReference_4_1_0() { return cEndnodeNodeCrossReference_4_1_0; }
+
+               //NemoId
+               public RuleCall getEndnodeNodeNemoIdTerminalRuleCall_4_1_0_1() { return cEndnodeNodeNemoIdTerminalRuleCall_4_1_0_1; }
+
+               //("," endnode+=[Node|NemoId])*
+               public Group getGroup_4_2() { return cGroup_4_2; }
+
+               //","
+               public Keyword getCommaKeyword_4_2_0() { return cCommaKeyword_4_2_0; }
+
+               //endnode+=[Node|NemoId]
+               public Assignment getEndnodeAssignment_4_2_1() { return cEndnodeAssignment_4_2_1; }
+
+               //[Node|NemoId]
+               public CrossReference getEndnodeNodeCrossReference_4_2_1_0() { return cEndnodeNodeCrossReference_4_2_1_0; }
+
+               //NemoId
+               public RuleCall getEndnodeNodeNemoIdTerminalRuleCall_4_2_1_0_1() { return cEndnodeNodeNemoIdTerminalRuleCall_4_2_1_0_1; }
+
+               //Property?
+               public RuleCall getPropertyParserRuleCall_5() { return cPropertyParserRuleCall_5; }
+
+               //";"
+               public Keyword getSemicolonKeyword_6() { return cSemicolonKeyword_6; }
+       }
+
+       public class FlowElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Flow");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cCREATEKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final Keyword cFlowKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+               private final RuleCall cNameNemoIdTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+               private final RuleCall cMatchesParserRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
+               private final Keyword cSemicolonKeyword_4 = (Keyword)cGroup.eContents().get(4);
+               
+               ////flow
+               //Flow:
+               //      "CREATE" "Flow" name=NemoId Matches? ";";
+               @Override public ParserRule getRule() { return rule; }
+
+               //"CREATE" "Flow" name=NemoId Matches? ";"
+               public Group getGroup() { return cGroup; }
+
+               //"CREATE"
+               public Keyword getCREATEKeyword_0() { return cCREATEKeyword_0; }
+
+               //"Flow"
+               public Keyword getFlowKeyword_1() { return cFlowKeyword_1; }
+
+               //name=NemoId
+               public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+               //NemoId
+               public RuleCall getNameNemoIdTerminalRuleCall_2_0() { return cNameNemoIdTerminalRuleCall_2_0; }
+
+               //Matches?
+               public RuleCall getMatchesParserRuleCall_3() { return cMatchesParserRuleCall_3; }
+
+               //";"
+               public Keyword getSemicolonKeyword_4() { return cSemicolonKeyword_4; }
+       }
+
+       public class FlowUpdateElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FlowUpdate");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
+               private final Keyword cUPDATEKeyword_0_0 = (Keyword)cAlternatives_0.eContents().get(0);
+               private final Keyword cDELETEKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
+               private final Keyword cFlowKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final Assignment cFlowIdAssignment_2 = (Assignment)cGroup.eContents().get(2);
+               private final CrossReference cFlowIdFlowCrossReference_2_0 = (CrossReference)cFlowIdAssignment_2.eContents().get(0);
+               private final RuleCall cFlowIdFlowNemoIdTerminalRuleCall_2_0_1 = (RuleCall)cFlowIdFlowCrossReference_2_0.eContents().get(1);
+               private final RuleCall cMatchesParserRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
+               private final Keyword cSemicolonKeyword_4 = (Keyword)cGroup.eContents().get(4);
+               
+               //FlowUpdate:
+               //      ("UPDATE" | "DELETE") "Flow" flowId+=[Flow|NemoId] Matches? ";";
+               @Override public ParserRule getRule() { return rule; }
+
+               //("UPDATE" | "DELETE") "Flow" flowId+=[Flow|NemoId] Matches? ";"
+               public Group getGroup() { return cGroup; }
+
+               //"UPDATE" | "DELETE"
+               public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+               //"UPDATE"
+               public Keyword getUPDATEKeyword_0_0() { return cUPDATEKeyword_0_0; }
+
+               //"DELETE"
+               public Keyword getDELETEKeyword_0_1() { return cDELETEKeyword_0_1; }
+
+               //"Flow"
+               public Keyword getFlowKeyword_1() { return cFlowKeyword_1; }
+
+               //flowId+=[Flow|NemoId]
+               public Assignment getFlowIdAssignment_2() { return cFlowIdAssignment_2; }
+
+               //[Flow|NemoId]
+               public CrossReference getFlowIdFlowCrossReference_2_0() { return cFlowIdFlowCrossReference_2_0; }
+
+               //NemoId
+               public RuleCall getFlowIdFlowNemoIdTerminalRuleCall_2_0_1() { return cFlowIdFlowNemoIdTerminalRuleCall_2_0_1; }
+
+               //Matches?
+               public RuleCall getMatchesParserRuleCall_3() { return cMatchesParserRuleCall_3; }
+
+               //";"
+               public Keyword getSemicolonKeyword_4() { return cSemicolonKeyword_4; }
+       }
+
+       public class MatchesElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Matches");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cMatchKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final RuleCall cMatchParserRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
+               private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+               private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+               private final RuleCall cMatchParserRuleCall_2_1 = (RuleCall)cGroup_2.eContents().get(1);
+               
+               //Matches:
+               //      "Match" Match ("," Match)*;
+               @Override public ParserRule getRule() { return rule; }
+
+               //"Match" Match ("," Match)*
+               public Group getGroup() { return cGroup; }
+
+               //"Match"
+               public Keyword getMatchKeyword_0() { return cMatchKeyword_0; }
+
+               //Match
+               public RuleCall getMatchParserRuleCall_1() { return cMatchParserRuleCall_1; }
+
+               //("," Match)*
+               public Group getGroup_2() { return cGroup_2; }
+
+               //","
+               public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
+
+               //Match
+               public RuleCall getMatchParserRuleCall_2_1() { return cMatchParserRuleCall_2_1; }
+       }
+
+       public class MatchElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Match");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final RuleCall cNemoIdTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+               private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final RuleCall cSTRINGTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+               
+               //Match:
+               //      NemoId ":" STRING;
+               @Override public ParserRule getRule() { return rule; }
+
+               //NemoId ":" STRING
+               public Group getGroup() { return cGroup; }
+
+               //NemoId
+               public RuleCall getNemoIdTerminalRuleCall_0() { return cNemoIdTerminalRuleCall_0; }
+
+               //":"
+               public Keyword getColonKeyword_1() { return cColonKeyword_1; }
+
+               //STRING
+               public RuleCall getSTRINGTerminalRuleCall_2() { return cSTRINGTerminalRuleCall_2; }
+       }
+
+       public class OperationElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Operation");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cCREATEKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final Keyword cOperationKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+               private final RuleCall cNameNemoIdTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+               private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+               private final Keyword cPriorityKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+               private final Assignment cValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+               private final RuleCall cValueINTTerminalRuleCall_3_1_0 = (RuleCall)cValueAssignment_3_1.eContents().get(0);
+               private final Keyword cTargetKeyword_4 = (Keyword)cGroup.eContents().get(4);
+               private final Assignment cTargetIdAssignment_5 = (Assignment)cGroup.eContents().get(5);
+               private final CrossReference cTargetIdFlowCrossReference_5_0 = (CrossReference)cTargetIdAssignment_5.eContents().get(0);
+               private final RuleCall cTargetIdFlowNemoIdTerminalRuleCall_5_0_1 = (RuleCall)cTargetIdFlowCrossReference_5_0.eContents().get(1);
+               private final RuleCall cConditionParserRuleCall_6 = (RuleCall)cGroup.eContents().get(6);
+               private final Keyword cActionKeyword_7 = (Keyword)cGroup.eContents().get(7);
+               private final Alternatives cAlternatives_8 = (Alternatives)cGroup.eContents().get(8);
+               private final RuleCall cNemoIdTerminalRuleCall_8_0 = (RuleCall)cAlternatives_8.eContents().get(0);
+               private final Group cGroup_8_1 = (Group)cAlternatives_8.eContents().get(1);
+               private final RuleCall cNemoIdTerminalRuleCall_8_1_0 = (RuleCall)cGroup_8_1.eContents().get(0);
+               private final Keyword cColonKeyword_8_1_1 = (Keyword)cGroup_8_1.eContents().get(1);
+               private final Assignment cTargetNodeAssignment_8_1_2 = (Assignment)cGroup_8_1.eContents().get(2);
+               private final CrossReference cTargetNodeNodeCrossReference_8_1_2_0 = (CrossReference)cTargetNodeAssignment_8_1_2.eContents().get(0);
+               private final RuleCall cTargetNodeNodeNemoIdTerminalRuleCall_8_1_2_0_1 = (RuleCall)cTargetNodeNodeCrossReference_8_1_2_0.eContents().get(1);
+               private final Keyword cSemicolonKeyword_9 = (Keyword)cGroup.eContents().get(9);
+               
+               ////Operation
+               //Operation:
+               //      "CREATE" "Operation" name=NemoId ("Priority" value+=INT)? "Target" targetId=[Flow|NemoId] Condition? "Action" (NemoId
+               //      | NemoId ":" targetNode=[Node|NemoId]) ";";
+               @Override public ParserRule getRule() { return rule; }
+
+               //"CREATE" "Operation" name=NemoId ("Priority" value+=INT)? "Target" targetId=[Flow|NemoId] Condition? "Action" (NemoId |
+               //NemoId ":" targetNode=[Node|NemoId]) ";"
+               public Group getGroup() { return cGroup; }
+
+               //"CREATE"
+               public Keyword getCREATEKeyword_0() { return cCREATEKeyword_0; }
+
+               //"Operation"
+               public Keyword getOperationKeyword_1() { return cOperationKeyword_1; }
+
+               //name=NemoId
+               public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+               //NemoId
+               public RuleCall getNameNemoIdTerminalRuleCall_2_0() { return cNameNemoIdTerminalRuleCall_2_0; }
+
+               //("Priority" value+=INT)?
+               public Group getGroup_3() { return cGroup_3; }
+
+               //"Priority"
+               public Keyword getPriorityKeyword_3_0() { return cPriorityKeyword_3_0; }
+
+               //value+=INT
+               public Assignment getValueAssignment_3_1() { return cValueAssignment_3_1; }
+
+               //INT
+               public RuleCall getValueINTTerminalRuleCall_3_1_0() { return cValueINTTerminalRuleCall_3_1_0; }
+
+               //"Target"
+               public Keyword getTargetKeyword_4() { return cTargetKeyword_4; }
+
+               //targetId=[Flow|NemoId]
+               public Assignment getTargetIdAssignment_5() { return cTargetIdAssignment_5; }
+
+               //[Flow|NemoId]
+               public CrossReference getTargetIdFlowCrossReference_5_0() { return cTargetIdFlowCrossReference_5_0; }
+
+               //NemoId
+               public RuleCall getTargetIdFlowNemoIdTerminalRuleCall_5_0_1() { return cTargetIdFlowNemoIdTerminalRuleCall_5_0_1; }
+
+               //Condition?
+               public RuleCall getConditionParserRuleCall_6() { return cConditionParserRuleCall_6; }
+
+               //"Action"
+               public Keyword getActionKeyword_7() { return cActionKeyword_7; }
+
+               //NemoId | NemoId ":" targetNode=[Node|NemoId]
+               public Alternatives getAlternatives_8() { return cAlternatives_8; }
+
+               //NemoId
+               public RuleCall getNemoIdTerminalRuleCall_8_0() { return cNemoIdTerminalRuleCall_8_0; }
+
+               //NemoId ":" targetNode=[Node|NemoId]
+               public Group getGroup_8_1() { return cGroup_8_1; }
+
+               //NemoId
+               public RuleCall getNemoIdTerminalRuleCall_8_1_0() { return cNemoIdTerminalRuleCall_8_1_0; }
+
+               //":"
+               public Keyword getColonKeyword_8_1_1() { return cColonKeyword_8_1_1; }
+
+               //targetNode=[Node|NemoId]
+               public Assignment getTargetNodeAssignment_8_1_2() { return cTargetNodeAssignment_8_1_2; }
+
+               //[Node|NemoId]
+               public CrossReference getTargetNodeNodeCrossReference_8_1_2_0() { return cTargetNodeNodeCrossReference_8_1_2_0; }
+
+               //NemoId
+               public RuleCall getTargetNodeNodeNemoIdTerminalRuleCall_8_1_2_0_1() { return cTargetNodeNodeNemoIdTerminalRuleCall_8_1_2_0_1; }
+
+               //";"
+               public Keyword getSemicolonKeyword_9() { return cSemicolonKeyword_9; }
+       }
+
+       public class ConditionElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Condition");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cConditionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final RuleCall cSTRINGTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
+               private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+               private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+               private final RuleCall cSTRINGTerminalRuleCall_2_1 = (RuleCall)cGroup_2.eContents().get(1);
+               
+               //Condition:
+               //      "Condition" STRING ("," STRING)*;
+               @Override public ParserRule getRule() { return rule; }
+
+               //"Condition" STRING ("," STRING)*
+               public Group getGroup() { return cGroup; }
+
+               //"Condition"
+               public Keyword getConditionKeyword_0() { return cConditionKeyword_0; }
+
+               //STRING
+               public RuleCall getSTRINGTerminalRuleCall_1() { return cSTRINGTerminalRuleCall_1; }
+
+               //("," STRING)*
+               public Group getGroup_2() { return cGroup_2; }
+
+               //","
+               public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
+
+               //STRING
+               public RuleCall getSTRINGTerminalRuleCall_2_1() { return cSTRINGTerminalRuleCall_2_1; }
+       }
+
+       public class PropertyElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Property");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cPropertyKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final RuleCall cOnePropertyParserRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
+               private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+               private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+               private final RuleCall cOnePropertyParserRuleCall_2_1 = (RuleCall)cGroup_2.eContents().get(1);
+               
+               //Property:
+               //      "Property " OneProperty ("," OneProperty)*;
+               @Override public ParserRule getRule() { return rule; }
+
+               //"Property " OneProperty ("," OneProperty)*
+               public Group getGroup() { return cGroup; }
+
+               //"Property "
+               public Keyword getPropertyKeyword_0() { return cPropertyKeyword_0; }
+
+               //OneProperty
+               public RuleCall getOnePropertyParserRuleCall_1() { return cOnePropertyParserRuleCall_1; }
+
+               //("," OneProperty)*
+               public Group getGroup_2() { return cGroup_2; }
+
+               //","
+               public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
+
+               //OneProperty
+               public RuleCall getOnePropertyParserRuleCall_2_1() { return cOnePropertyParserRuleCall_2_1; }
+       }
+
+       public class OnePropertyElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "OneProperty");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final RuleCall cNemoIdTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+               private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
+               private final RuleCall cSTRINGTerminalRuleCall_2_0 = (RuleCall)cAlternatives_2.eContents().get(0);
+               private final RuleCall cINTTerminalRuleCall_2_1 = (RuleCall)cAlternatives_2.eContents().get(1);
+               
+               //OneProperty:
+               //      NemoId ":" (STRING | INT);
+               @Override public ParserRule getRule() { return rule; }
+
+               //NemoId ":" (STRING | INT)
+               public Group getGroup() { return cGroup; }
+
+               //NemoId
+               public RuleCall getNemoIdTerminalRuleCall_0() { return cNemoIdTerminalRuleCall_0; }
+
+               //":"
+               public Keyword getColonKeyword_1() { return cColonKeyword_1; }
+
+               //STRING | INT
+               public Alternatives getAlternatives_2() { return cAlternatives_2; }
+
+               //STRING
+               public RuleCall getSTRINGTerminalRuleCall_2_0() { return cSTRINGTerminalRuleCall_2_0; }
+
+               //INT
+               public RuleCall getINTTerminalRuleCall_2_1() { return cINTTerminalRuleCall_2_1; }
+       }
+
+       public class ModelPropertyElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModelProperty");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Keyword cPropertyKeyword_0 = (Keyword)cGroup.eContents().get(0);
+               private final RuleCall cOneModelPropertyParserRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
+               private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+               private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+               private final RuleCall cOneModelPropertyParserRuleCall_2_1 = (RuleCall)cGroup_2.eContents().get(1);
+               
+               //ModelProperty:
+               //      "Property" OneModelProperty ("," OneModelProperty)*;
+               @Override public ParserRule getRule() { return rule; }
+
+               //"Property" OneModelProperty ("," OneModelProperty)*
+               public Group getGroup() { return cGroup; }
+
+               //"Property"
+               public Keyword getPropertyKeyword_0() { return cPropertyKeyword_0; }
+
+               //OneModelProperty
+               public RuleCall getOneModelPropertyParserRuleCall_1() { return cOneModelPropertyParserRuleCall_1; }
+
+               //("," OneModelProperty)*
+               public Group getGroup_2() { return cGroup_2; }
+
+               //","
+               public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
+
+               //OneModelProperty
+               public RuleCall getOneModelPropertyParserRuleCall_2_1() { return cOneModelPropertyParserRuleCall_2_1; }
+       }
+
+       public class OneModelPropertyElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "OneModelProperty");
+               private final Group cGroup = (Group)rule.eContents().get(1);
+               private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
+               private final RuleCall cSTRINGTerminalRuleCall_0_0 = (RuleCall)cAlternatives_0.eContents().get(0);
+               private final RuleCall cINTTerminalRuleCall_0_1 = (RuleCall)cAlternatives_0.eContents().get(1);
+               private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+               private final RuleCall cNemoIdTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+               
+               //OneModelProperty:
+               //      (STRING | INT) ":" NemoId;
+               @Override public ParserRule getRule() { return rule; }
+
+               //(STRING | INT) ":" NemoId
+               public Group getGroup() { return cGroup; }
+
+               //STRING | INT
+               public Alternatives getAlternatives_0() { return cAlternatives_0; }
+
+               //STRING
+               public RuleCall getSTRINGTerminalRuleCall_0_0() { return cSTRINGTerminalRuleCall_0_0; }
+
+               //INT
+               public RuleCall getINTTerminalRuleCall_0_1() { return cINTTerminalRuleCall_0_1; }
+
+               //":"
+               public Keyword getColonKeyword_1() { return cColonKeyword_1; }
+
+               //NemoId
+               public RuleCall getNemoIdTerminalRuleCall_2() { return cNemoIdTerminalRuleCall_2; }
+       }
+
+       public class NewObjElements extends AbstractParserRuleElementFinder {
+               private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NewObj");
+               private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+               private final Keyword cCREATEKeyword_0 = (Keyword)cAlternatives.eContents().get(0);
+               private final Keyword cIMPORTKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
+               
+               ////PropertyType:'location'|'ip-prifix'|'is-enable'|'ac-info-network';
+               ////terminal Mac_sub: (('0'..'9')|('a'..'f'))(('0'..'9')|('a'..'f'));
+               ////Mac: Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub;
+               ////Query
+               ////Query:'Query' BLANK Condition BLANK 'From' BLANK (tar=[Node])|(tar=[Operation])|(tar=[Flow])|(tar=[Connection]);
+               //NewObj:
+               //      "CREATE" | "IMPORT";
+               @Override public ParserRule getRule() { return rule; }
+
+               //"CREATE" //PropertyType:'location'|'ip-prifix'|'is-enable'|'ac-info-network';
+               ////terminal Mac_sub: (('0'..'9')|('a'..'f'))(('0'..'9')|('a'..'f'));
+               ////Mac: Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub;
+               ////Query
+               ////Query:'Query' BLANK Condition BLANK 'From' BLANK (tar=[Node])|(tar=[Operation])|(tar=[Flow])|(tar=[Connection]); |
+               //"IMPORT"
+               public Alternatives getAlternatives() { return cAlternatives; }
+
+               //"CREATE"
+               public Keyword getCREATEKeyword_0() { return cCREATEKeyword_0; }
+
+               ////PropertyType:'location'|'ip-prifix'|'is-enable'|'ac-info-network';
+               ////terminal Mac_sub: (('0'..'9')|('a'..'f'))(('0'..'9')|('a'..'f'));
+               ////Mac: Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub;
+               ////Query
+               ////Query:'Query' BLANK Condition BLANK 'From' BLANK (tar=[Node])|(tar=[Operation])|(tar=[Flow])|(tar=[Connection]);
+               //"IMPORT"
+               public Keyword getIMPORTKeyword_1() { return cIMPORTKeyword_1; }
+       }
+       
+       
+       private final ModelElements pModel;
+       private final SentenceElements pSentence;
+       private final SenEnginesElements pSenEngines;
+       private final Ipv4Elements pIpv4;
+       private final TerminalRule tIPV4_SUB;
+       private final TerminalRule tNemoId;
+       private final UserElements pUser;
+       private final NodeElements pNode;
+       private final NodeModelElements pNodeModel;
+       private final NodeOperatingElements pNodeOperating;
+       private final ConnectionElements pConnection;
+       private final ConnectionUpdateElements pConnectionUpdate;
+       private final FlowElements pFlow;
+       private final FlowUpdateElements pFlowUpdate;
+       private final MatchesElements pMatches;
+       private final MatchElements pMatch;
+       private final OperationElements pOperation;
+       private final ConditionElements pCondition;
+       private final PropertyElements pProperty;
+       private final OnePropertyElements pOneProperty;
+       private final ModelPropertyElements pModelProperty;
+       private final OneModelPropertyElements pOneModelProperty;
+       private final NewObjElements pNewObj;
+       
+       private final Grammar grammar;
+
+       private final TerminalsGrammarAccess gaTerminals;
+
+       @Inject
+       public EditorGrammarAccess(GrammarProvider grammarProvider,
+               TerminalsGrammarAccess gaTerminals) {
+               this.grammar = internalFindGrammar(grammarProvider);
+               this.gaTerminals = gaTerminals;
+               this.pModel = new ModelElements();
+               this.pSentence = new SentenceElements();
+               this.pSenEngines = new SenEnginesElements();
+               this.pIpv4 = new Ipv4Elements();
+               this.tIPV4_SUB = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "IPV4_SUB");
+               this.tNemoId = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "NemoId");
+               this.pUser = new UserElements();
+               this.pNode = new NodeElements();
+               this.pNodeModel = new NodeModelElements();
+               this.pNodeOperating = new NodeOperatingElements();
+               this.pConnection = new ConnectionElements();
+               this.pConnectionUpdate = new ConnectionUpdateElements();
+               this.pFlow = new FlowElements();
+               this.pFlowUpdate = new FlowUpdateElements();
+               this.pMatches = new MatchesElements();
+               this.pMatch = new MatchElements();
+               this.pOperation = new OperationElements();
+               this.pCondition = new ConditionElements();
+               this.pProperty = new PropertyElements();
+               this.pOneProperty = new OnePropertyElements();
+               this.pModelProperty = new ModelPropertyElements();
+               this.pOneModelProperty = new OneModelPropertyElements();
+               this.pNewObj = new NewObjElements();
+       }
+       
+       protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+               Grammar grammar = grammarProvider.getGrammar(this);
+               while (grammar != null) {
+                       if ("org.opendaylight.nemo.tool.eclipse.plugin.Editor".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:
+       //      sentences+=Sentence*;
+       public ModelElements getModelAccess() {
+               return pModel;
+       }
+       
+       public ParserRule getModelRule() {
+               return getModelAccess().getRule();
+       }
+
+       //Sentence:
+       //      SenEngines | User | Node | NodeOperating | Connection | ConnectionUpdate | Flow | FlowUpdate | Operation;
+       public SentenceElements getSentenceAccess() {
+               return pSentence;
+       }
+       
+       public ParserRule getSentenceRule() {
+               return getSentenceAccess().getRule();
+       }
+
+       ////Engines sentence
+       //SenEngines:
+       //      "Engines:" Ipv4 ("," Ipv4)* ";";
+       public SenEnginesElements getSenEnginesAccess() {
+               return pSenEngines;
+       }
+       
+       public ParserRule getSenEnginesRule() {
+               return getSenEnginesAccess().getRule();
+       }
+
+       //Ipv4:
+       //      IPV4_SUB "." IPV4_SUB "." IPV4_SUB "." IPV4_SUB;
+       public Ipv4Elements getIpv4Access() {
+               return pIpv4;
+       }
+       
+       public ParserRule getIpv4Rule() {
+               return getIpv4Access().getRule();
+       }
+
+       //terminal IPV4_SUB:
+       //      "0".."9" | "1".."9" "0".."9" | "1" "0".."9" "0".."9" | "2" "0".."4" "0".."9" | "25" "0".."5";
+       public TerminalRule getIPV4_SUBRule() {
+               return tIPV4_SUB;
+       } 
+
+       //terminal NemoId:
+       //      ("a".."z" | "A".."Z" | "$" | "_") ("a".."z" | "A".."Z" | "$" | "_" | "-" | "0".."9")*;
+       public TerminalRule getNemoIdRule() {
+               return tNemoId;
+       } 
+
+       ////User
+       //User:
+       //      "CREATE" STRING STRING STRING ";";
+       public UserElements getUserAccess() {
+               return pUser;
+       }
+       
+       public ParserRule getUserRule() {
+               return getUserAccess().getRule();
+       }
+
+       //////Node
+       //Node:
+       //      NewObj "Node" name=NemoId ("Type" NemoId) ("Contain" nodes+=[Node|NemoId] ("," nodes+=[Node|NemoId])*)? Property? ";";
+       public NodeElements getNodeAccess() {
+               return pNode;
+       }
+       
+       public ParserRule getNodeRule() {
+               return getNodeAccess().getRule();
+       }
+
+       ////NodeModel
+       //NodeModel:
+       //      "NodeModel" name=NemoId ModelProperty?;
+       public NodeModelElements getNodeModelAccess() {
+               return pNodeModel;
+       }
+       
+       public ParserRule getNodeModelRule() {
+               return getNodeModelAccess().getRule();
+       }
+
+       //NodeOperating:
+       //      ("UPDATE" | "DELETE") "Node" nodename+=[Node|NemoId] ("Type" NemoId)? ("Contain" nodes+=[Node|NemoId] (","
+       //      nodes+=[Node|NemoId])*)? Property? ";";
+       public NodeOperatingElements getNodeOperatingAccess() {
+               return pNodeOperating;
+       }
+       
+       public ParserRule getNodeOperatingRule() {
+               return getNodeOperatingAccess().getRule();
+       }
+
+       ////Connection
+       //Connection:
+       //      "CREATE" "Connection" name=NemoId "Type" NemoId ("Endnodes" endnode+=[Node|NemoId] ("," endnode+=[Node|NemoId])*)
+       //      Property? ";";
+       public ConnectionElements getConnectionAccess() {
+               return pConnection;
+       }
+       
+       public ParserRule getConnectionRule() {
+               return getConnectionAccess().getRule();
+       }
+
+       ////Connection operating
+       //ConnectionUpdate:
+       //      ("UPDATE" | "DELETE") "Connection" connectionname+=[Connection|NemoId] ("Type" NemoId)? ("Endnodes"
+       //      endnode+=[Node|NemoId] ("," endnode+=[Node|NemoId])*)? Property? ";";
+       public ConnectionUpdateElements getConnectionUpdateAccess() {
+               return pConnectionUpdate;
+       }
+       
+       public ParserRule getConnectionUpdateRule() {
+               return getConnectionUpdateAccess().getRule();
+       }
+
+       ////flow
+       //Flow:
+       //      "CREATE" "Flow" name=NemoId Matches? ";";
+       public FlowElements getFlowAccess() {
+               return pFlow;
+       }
+       
+       public ParserRule getFlowRule() {
+               return getFlowAccess().getRule();
+       }
+
+       //FlowUpdate:
+       //      ("UPDATE" | "DELETE") "Flow" flowId+=[Flow|NemoId] Matches? ";";
+       public FlowUpdateElements getFlowUpdateAccess() {
+               return pFlowUpdate;
+       }
+       
+       public ParserRule getFlowUpdateRule() {
+               return getFlowUpdateAccess().getRule();
+       }
+
+       //Matches:
+       //      "Match" Match ("," Match)*;
+       public MatchesElements getMatchesAccess() {
+               return pMatches;
+       }
+       
+       public ParserRule getMatchesRule() {
+               return getMatchesAccess().getRule();
+       }
+
+       //Match:
+       //      NemoId ":" STRING;
+       public MatchElements getMatchAccess() {
+               return pMatch;
+       }
+       
+       public ParserRule getMatchRule() {
+               return getMatchAccess().getRule();
+       }
+
+       ////Operation
+       //Operation:
+       //      "CREATE" "Operation" name=NemoId ("Priority" value+=INT)? "Target" targetId=[Flow|NemoId] Condition? "Action" (NemoId
+       //      | NemoId ":" targetNode=[Node|NemoId]) ";";
+       public OperationElements getOperationAccess() {
+               return pOperation;
+       }
+       
+       public ParserRule getOperationRule() {
+               return getOperationAccess().getRule();
+       }
+
+       //Condition:
+       //      "Condition" STRING ("," STRING)*;
+       public ConditionElements getConditionAccess() {
+               return pCondition;
+       }
+       
+       public ParserRule getConditionRule() {
+               return getConditionAccess().getRule();
+       }
+
+       //Property:
+       //      "Property " OneProperty ("," OneProperty)*;
+       public PropertyElements getPropertyAccess() {
+               return pProperty;
+       }
+       
+       public ParserRule getPropertyRule() {
+               return getPropertyAccess().getRule();
+       }
+
+       //OneProperty:
+       //      NemoId ":" (STRING | INT);
+       public OnePropertyElements getOnePropertyAccess() {
+               return pOneProperty;
+       }
+       
+       public ParserRule getOnePropertyRule() {
+               return getOnePropertyAccess().getRule();
+       }
+
+       //ModelProperty:
+       //      "Property" OneModelProperty ("," OneModelProperty)*;
+       public ModelPropertyElements getModelPropertyAccess() {
+               return pModelProperty;
+       }
+       
+       public ParserRule getModelPropertyRule() {
+               return getModelPropertyAccess().getRule();
+       }
+
+       //OneModelProperty:
+       //      (STRING | INT) ":" NemoId;
+       public OneModelPropertyElements getOneModelPropertyAccess() {
+               return pOneModelProperty;
+       }
+       
+       public ParserRule getOneModelPropertyRule() {
+               return getOneModelPropertyAccess().getRule();
+       }
+
+       ////PropertyType:'location'|'ip-prifix'|'is-enable'|'ac-info-network';
+       ////terminal Mac_sub: (('0'..'9')|('a'..'f'))(('0'..'9')|('a'..'f'));
+       ////Mac: Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub;
+       ////Query
+       ////Query:'Query' BLANK Condition BLANK 'From' BLANK (tar=[Node])|(tar=[Operation])|(tar=[Flow])|(tar=[Connection]);
+       //NewObj:
+       //      "CREATE" | "IMPORT";
+       public NewObjElements getNewObjAccess() {
+               return pNewObj;
+       }
+       
+       public ParserRule getNewObjRule() {
+               return getNewObjAccess().getRule();
+       }
+
+       //terminal ID:
+       //      "^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
+       public TerminalRule getIDRule() {
+               return gaTerminals.getIDRule();
+       } 
+
+       //terminal INT returns ecore::EInt:
+       //      "0".."9"+;
+       public TerminalRule getINTRule() {
+               return gaTerminals.getINTRule();
+       } 
+
+       //terminal STRING:
+       //      "\"" ("\\" . / * 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' * / | !("\\" | "\""))* "\"" | "\'" ("\\" .
+       //      / * 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' * / | !("\\" | "\'"))* "\'";
+       public TerminalRule getSTRINGRule() {
+               return gaTerminals.getSTRINGRule();
+       } 
+
+       //terminal ML_COMMENT:
+       //      "/ *"->"* /";
+       public TerminalRule getML_COMMENTRule() {
+               return gaTerminals.getML_COMMENTRule();
+       } 
+
+       //terminal SL_COMMENT:
+       //      "//" !("\n" | "\r")* ("\r"? "\n")?;
+       public TerminalRule getSL_COMMENTRule() {
+               return gaTerminals.getSL_COMMENTRule();
+       } 
+
+       //terminal WS:
+       //      (" " | "\t" | "\r" | "\n")+;
+       public TerminalRule getWSRule() {
+               return gaTerminals.getWSRule();
+       } 
+
+       //terminal ANY_OTHER:
+       //      .;
+       public TerminalRule getANY_OTHERRule() {
+               return gaTerminals.getANY_OTHERRule();
+       } 
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/AbstractEditorValidator.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/AbstractEditorValidator.java
new file mode 100644 (file)
index 0000000..6ebc250
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.ecore.EPackage;
+
+public class AbstractEditorValidator extends org.eclipse.xtext.validation.AbstractDeclarativeValidator {
+
+       @Override
+       protected List<EPackage> getEPackages() {
+           List<EPackage> result = new ArrayList<EPackage>();
+           result.add(org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage.eINSTANCE);
+               return result;
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtext b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtext
new file mode 100644 (file)
index 0000000..b3ef240
--- /dev/null
@@ -0,0 +1,74 @@
+
+grammar org.opendaylight.nemo.tool.eclipse.plugin.Editor with org.eclipse.xtext.common.Terminals
+
+generate editor "http://www.huawei.com/nemo/Editor"
+
+Model:
+       sentences+=Sentence*;
+
+Sentence:
+       SenEngines | User| Node | NodeOperating | Connection|ConnectionUpdate|Flow|FlowUpdate|Operation;
+       
+       
+       
+//Engines sentence
+SenEngines:
+       'Engines:' Ipv4 (',' Ipv4)* ';';
+
+Ipv4:
+       IPV4_SUB '.' IPV4_SUB '.' IPV4_SUB '.' IPV4_SUB ;
+
+terminal IPV4_SUB:
+       ('0'..'9') | ('1'..'9') ('0'..'9') | '1' ('0'..'9') ('0'..'9') | '2' ('0'..'4') ('0'..'9') | '25' ('0'..'5');
+terminal NemoId: ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'-'|'0'..'9')*;
+
+
+//User
+User:'CREATE'  (STRING) (STRING) (STRING)   ';' ;      
+       
+////Node
+Node:NewObj  'Node'  name=NemoId   ('Type'  NemoId) ('Contain' nodes+=[Node|NemoId] (',' nodes+=[Node|NemoId])*)? (Property)?  ';' ;
+
+//NodeModel
+NodeModel: 'NodeModel' name=NemoId (ModelProperty)?;
+
+
+NodeOperating:('UPDATE'|'DELETE')  'Node'  nodename+=[Node|NemoId] ('Type'  NemoId)? ('Contain' nodes+=[Node|NemoId] (',' nodes+=[Node|NemoId])*)? (Property)?  ';';
+
+//Connection
+Connection:'CREATE' 'Connection' name=NemoId 'Type' NemoId  ('Endnodes' endnode+=[Node|NemoId] (',' endnode+=[Node|NemoId])*) (Property)?  ';';
+
+//Connection operating
+ConnectionUpdate:('UPDATE'|'DELETE') 'Connection'  connectionname+=[Connection|NemoId]   ('Type'   NemoId)? ('Endnodes' endnode+=[Node|NemoId] (',' endnode+=[Node|NemoId])*)? (Property)?  ';';
+
+//flow
+Flow:'CREATE' 'Flow' name=NemoId (Matches)? ';';
+FlowUpdate: ('UPDATE'|'DELETE') 'Flow' flowId+=[Flow|NemoId] (Matches)? ';';
+Matches:   'Match'   Match (',' Match)*;
+Match: NemoId ':' STRING ;
+
+
+
+
+//Operation
+Operation:'CREATE'   'Operation'   name=NemoId (  'Priority' value+=INT)?   'Target'   targetId=[Flow|NemoId] (Condition)?   'Action'   (NemoId|(NemoId ':' targetNode=[Node|NemoId])) ';';
+
+
+
+
+Condition: 'Condition' STRING(','STRING)*;
+Property: 'Property ' OneProperty(',' OneProperty)*;
+OneProperty:NemoId ':' (STRING|INT);
+ModelProperty: 'Property' OneModelProperty (',' OneModelProperty)*;
+OneModelProperty: (STRING|INT)':'NemoId;
+
+NewObj:'CREATE'|'IMPORT';
+
+
+
+//PropertyType:'location'|'ip-prifix'|'is-enable'|'ac-info-network';
+//terminal Mac_sub: (('0'..'9')|('a'..'f'))(('0'..'9')|('a'..'f'));
+//Mac: Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub;
+
+//Query
+//Query:'Query' BLANK Condition BLANK 'From' BLANK (tar=[Node])|(tar=[Operation])|(tar=[Flow])|(tar=[Connection]);
\ No newline at end of file
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/EditorRuntimeModule.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/EditorRuntimeModule.java
new file mode 100644 (file)
index 0000000..4f69b63
--- /dev/null
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class EditorRuntimeModule extends org.opendaylight.nemo.tool.eclipse.plugin.AbstractEditorRuntimeModule {
+
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetup.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/EditorStandaloneSetup.java
new file mode 100644 (file)
index 0000000..fad6989
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin;
+
+/**
+ * Initialization support for running Xtext languages 
+ * without equinox extension registry
+ */
+public class EditorStandaloneSetup extends EditorStandaloneSetupGenerated{
+
+       public static void doSetup() {
+               new EditorStandaloneSetup().createInjectorAndDoEMFRegistration();
+       }
+}
+
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/GenerateEditor.mwe2 b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/GenerateEditor.mwe2
new file mode 100644 (file)
index 0000000..843f3e7
--- /dev/null
@@ -0,0 +1,133 @@
+module org.opendaylight.nemo.tool.eclipse.plugin.GenerateEditor
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/org/opendaylight/nemo/tool/eclipse/plugin/Editor.xtext"
+var fileExtensions = "nemo"
+var projectName = "org.opendaylight.nemo.tool.eclipse.plugin.editor"
+var runtimeProject = "../${projectName}"
+var generateXtendStub = true
+var encoding = "UTF-8"
+
+Workflow {
+    bean = StandaloneSetup {
+       scanClassPath = true
+       platformUri = "${runtimeProject}/.."
+       // The following two lines can be removed, if Xbase is not used.
+       registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
+       registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
+    }
+    
+    component = DirectoryCleaner {
+       directory = "${runtimeProject}/src-gen"
+    }
+    
+    component = DirectoryCleaner {
+       directory = "${runtimeProject}/model/generated"
+    }
+    
+    component = DirectoryCleaner {
+       directory = "${runtimeProject}.ui/src-gen"
+    }
+    
+    component = DirectoryCleaner {
+       directory = "${runtimeProject}.tests/src-gen"
+    }
+    
+    component = Generator {
+       pathRtProject = runtimeProject
+       pathUiProject = "${runtimeProject}.ui"
+       pathTestProject = "${runtimeProject}.tests"
+       projectNameRt = projectName
+       projectNameUi = "${projectName}.ui"
+       encoding = encoding
+       language = auto-inject {
+               uri = grammarURI
+    
+               // Java API to access grammar elements (required by several other fragments)
+               fragment = grammarAccess.GrammarAccessFragment auto-inject {}
+    
+               // generates Java API for the generated EPackages
+               fragment = ecore.EMFGeneratorFragment auto-inject {}
+    
+               // the old serialization component
+               // fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}    
+    
+               // serializer 2.0
+               fragment = serializer.SerializerFragment auto-inject {
+                       generateStub = false
+               }
+    
+               // a custom ResourceFactory for use with EMF
+               fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
+    
+               // The antlr parser generator fragment.
+               fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
+               //  options = {
+               //      backtrack = true
+               //  }
+               }
+    
+               // Xtend-based API for validation
+               fragment = validation.ValidatorFragment auto-inject {
+               //    composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+               //    composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+               }
+    
+               // old scoping and exporting API
+               // fragment = scoping.ImportURIScopingFragment auto-inject {}
+               // fragment = exporting.SimpleNamesFragment auto-inject {}
+    
+               // scoping and exporting API
+               fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
+               fragment = exporting.QualifiedNamesFragment auto-inject {}
+               fragment = builder.BuilderIntegrationFragment auto-inject {}
+    
+               // generator API
+               fragment = generator.GeneratorFragment auto-inject {}
+    
+               // formatter API
+               fragment = formatting.FormatterFragment auto-inject {}
+    
+               // labeling API
+               fragment = labeling.LabelProviderFragment auto-inject {}
+    
+               // outline API
+               fragment = outline.OutlineTreeProviderFragment auto-inject {}
+               fragment = outline.QuickOutlineFragment auto-inject {}
+    
+               // quickfix API
+               fragment = quickfix.QuickfixProviderFragment auto-inject {}
+    
+               // content assist API
+               fragment = contentAssist.ContentAssistFragment auto-inject {}
+    
+               // generates a more lightweight Antlr parser and lexer tailored for content assist
+               fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}
+    
+               // generates junit test support classes into Generator#pathTestProject
+               fragment = junit.Junit4Fragment auto-inject {}
+    
+               // rename refactoring
+               fragment = refactoring.RefactorElementNameFragment auto-inject {}
+    
+               // provides the necessary bindings for java types integration
+               fragment = types.TypesGeneratorFragment auto-inject {}
+    
+               // generates the required bindings only if the grammar inherits from Xbase
+               fragment = xbase.XbaseGeneratorFragment auto-inject {}
+               
+               // generates the required bindings only if the grammar inherits from Xtype
+               fragment = xbase.XtypeGeneratorFragment auto-inject {}
+    
+               // provides a preference page for template proposals
+               fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
+    
+               // provides a compare view
+               fragment = compare.CompareFragment auto-inject {}
+       }
+    }
+}
+
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.xtend
new file mode 100644 (file)
index 0000000..5652459
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.formatting
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter
+import org.eclipse.xtext.formatting.impl.FormattingConfig
+// import com.google.inject.Inject;
+// import org.opendaylight.nemo.tool.eclipse.plugin.services.EditorGrammarAccess
+
+/**
+ * This class contains custom formatting declarations.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#formatting
+ * on how and when to use it.
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+class EditorFormatter extends AbstractDeclarativeFormatter {
+
+//     @Inject extension EditorGrammarAccess
+       
+       override protected void configureFormatting(FormattingConfig c) {
+// It's usually a good idea to activate the following three statements.
+// They will add and preserve newlines around comments
+//             c.setLinewrap(0, 1, 2).before(SL_COMMENTRule)
+//             c.setLinewrap(0, 1, 2).before(ML_COMMENTRule)
+//             c.setLinewrap(0, 1, 1).after(ML_COMMENTRule)
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.xtend
new file mode 100644 (file)
index 0000000..e2b689f
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess
+
+/**
+ * Generates code from your model files on save.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
+ */
+class EditorGenerator implements IGenerator {
+       
+       override void doGenerate(Resource resource, IFileSystemAccess fsa) {
+//             fsa.generateFile('greetings.txt', 'People to greet: ' + 
+//                     resource.allContents
+//                             .filter(typeof(Greeting))
+//                             .map[name]
+//                             .join(', '))
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.xtend
new file mode 100644 (file)
index 0000000..896c743
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.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 EditorScopeProvider extends org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider {
+
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.xtend b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/src/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.xtend
new file mode 100644 (file)
index 0000000..458ab25
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.validation
+
+//import org.eclipse.xtext.validation.Check
+
+/**
+ * This class contains custom validation rules. 
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
+ */
+class EditorValidator extends AbstractEditorValidator {
+
+//  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', 
+//                                     MyDslPackage.Literals.GREETING__NAME,
+//                                     INVALID_NAME)
+//             }
+//     }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.java._trace
new file mode 100644 (file)
index 0000000..9c12f0c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.xtendbin
new file mode 100644 (file)
index 0000000..bc93729
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/.EditorFormatter.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/formatting/EditorFormatter.java
new file mode 100644 (file)
index 0000000..0c12ded
--- /dev/null
@@ -0,0 +1,22 @@
+/**
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.formatting;
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+
+/**
+ * This class contains custom formatting declarations.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#formatting
+ * on how and when to use it.
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+@SuppressWarnings("all")
+public class EditorFormatter extends AbstractDeclarativeFormatter {
+  @Override
+  protected void configureFormatting(final FormattingConfig c) {
+  }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.java._trace
new file mode 100644 (file)
index 0000000..df12aed
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.xtendbin
new file mode 100644 (file)
index 0000000..a4106ef
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/.EditorGenerator.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/generator/EditorGenerator.java
new file mode 100644 (file)
index 0000000..e53e4c5
--- /dev/null
@@ -0,0 +1,20 @@
+/**
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.generator;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IGenerator;
+
+/**
+ * Generates code from your model files on save.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
+ */
+@SuppressWarnings("all")
+public class EditorGenerator implements IGenerator {
+  @Override
+  public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
+  }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.java._trace
new file mode 100644 (file)
index 0000000..291376c
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.xtendbin
new file mode 100644 (file)
index 0000000..39cb6b2
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/.EditorScopeProvider.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/scoping/EditorScopeProvider.java
new file mode 100644 (file)
index 0000000..d5b3167
--- /dev/null
@@ -0,0 +1,16 @@
+/**
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.scoping;
+
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+
+/**
+ * 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.
+ */
+@SuppressWarnings("all")
+public class EditorScopeProvider extends AbstractDeclarativeScopeProvider {
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.java._trace b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.java._trace
new file mode 100644 (file)
index 0000000..569a20a
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.java._trace differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.xtendbin b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.xtendbin
new file mode 100644 (file)
index 0000000..7e316c5
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/.EditorValidator.xtendbin differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.java b/nemo-tools/eclipse-plugin-project/nemo-editor/org.opendaylight.nemo.tool.eclipse.plugin.editor/xtend-gen/org/opendaylight/nemo/tool/eclipse/plugin/validation/EditorValidator.java
new file mode 100644 (file)
index 0000000..12bdb8c
--- /dev/null
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package org.opendaylight.nemo.tool.eclipse.plugin.validation;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.validation.AbstractEditorValidator;
+
+/**
+ * This class contains custom validation rules.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
+ */
+@SuppressWarnings("all")
+public class EditorValidator extends AbstractEditorValidator {
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/Grammer.text b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/Grammer.text
new file mode 100644 (file)
index 0000000..9599dc7
--- /dev/null
@@ -0,0 +1,74 @@
+
+grammar com.huawei.nemo.Editor with org.eclipse.xtext.common.Terminals
+
+generate editor "http://www.huawei.com/nemo/Editor"
+
+Model:
+       sentences+=Sentence*;
+
+Sentence:
+       SenEngines | User| Node | NodeOperating | Connection|ConnectionUpdate|Flow|FlowUpdate|Operation;
+       
+       
+       
+//Engines sentence
+SenEngines:
+       'Engines:' Ipv4 (',' Ipv4)* ';';
+
+Ipv4:
+       IPV4_SUB '.' IPV4_SUB '.' IPV4_SUB '.' IPV4_SUB ;
+
+terminal IPV4_SUB:
+       ('0'..'9') | ('1'..'9') ('0'..'9') | '1' ('0'..'9') ('0'..'9') | '2' ('0'..'4') ('0'..'9') | '25' ('0'..'5');
+terminal NemoId: ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'-'|'0'..'9')*;
+
+
+//User
+User:'CREATE'  (STRING) (STRING) (STRING)   ';' ;      
+       
+////Node
+Node:NewObj  'Node'  name=NemoId   ('Type'  NemoId) ('Contain' nodes+=[Node|NemoId] (',' nodes+=[Node|NemoId])*)? (Property)?  ';' ;
+
+//NodeModel
+NodeModel: 'NodeModel' name=NemoId (ModelProperty)?;
+
+
+NodeOperating:('UPDATE'|'DELETE')  'Node'  nodename+=[Node|NemoId] ('Type'  NemoId)? ('Contain' nodes+=[Node|NemoId] (',' nodes+=[Node|NemoId])*)? (Property)?  ';';
+
+//Connection
+Connection:'CREATE' 'Connection' name=NemoId 'Type' NemoId  ('Endnodes' endnode+=[Node|NemoId] (',' endnode+=[Node|NemoId])*) (Property)?  ';';
+
+//Connection operating
+ConnectionUpdate:('UPDATE'|'DELETE') 'Connection'  connectionname+=[Connection|NemoId]   ('Type'   NemoId)? ('Endnodes' endnode+=[Node|NemoId] (',' endnode+=[Node|NemoId])*)? (Property)?  ';';
+
+//flow
+Flow:'CREATE' 'Flow' name=NemoId (Matches)? ';';
+FlowUpdate: ('UPDATE'|'DELETE') 'Flow' flowId+=[Flow|NemoId] (Matches)? ';';
+Matches:   'Match'   Match (',' Match)*;
+Match: NemoId ':' STRING ;
+
+
+
+
+//Operation
+Operation:'CREATE'   'Operation'   name=NemoId (  'Priority' value+=INT)?   'Target'   targetId=[Flow|NemoId] (Condition)?   'Action'   (NemoId|(NemoId ':' targetNode=[Node|NemoId])) ';';
+
+
+
+
+Condition: 'Condition' STRING(','STRING)*;
+Property: 'Property ' OneProperty(',' OneProperty)*;
+OneProperty:NemoId ':' (STRING|INT);
+ModelProperty: 'Property' OneModelProperty (',' OneModelProperty)*;
+OneModelProperty: (STRING|INT)':'NemoId;
+
+NewObj:'CREATE'|'IMPORT';
+
+
+
+//PropertyType:'location'|'ip-prifix'|'is-enable'|'ac-info-network';
+//terminal Mac_sub: (('0'..'9')|('a'..'f'))(('0'..'9')|('a'..'f'));
+//Mac: Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub ':' Mac_sub;
+
+//Query
+//Query:'Query' BLANK Condition BLANK 'From' BLANK (tar=[Node])|(tar=[Operation])|(tar=[Flow])|(tar=[Connection]);
\ No newline at end of file
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/META-INF/MANIFEST.MF b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..7afc72a
--- /dev/null
@@ -0,0 +1,76 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Rest
+Bundle-SymbolicName: org.opendaylight.nemo.tool.eclipse.plugin.rest;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.opendaylight.nemo.tool.eclipse.plugin.rest.Activator
+Bundle-Vendor: HUAWEI
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.ide;bundle-version="3.10.1"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: lib/commons-codec-1.6.jar,
+ lib/commons-logging-1.1.3.jar,
+ lib/httpclient-4.3.5.jar,
+ lib/httpclient-cache-4.3.5.jar,
+ lib/httpcore-4.3.2.jar,
+ lib/httpmime-4.3.5.jar,
+ lib/json-20140107.jar,
+ .
+Export-Package: org.apache.commons.codec,
+ org.apache.commons.codec.binary,
+ org.apache.commons.codec.digest,
+ org.apache.commons.codec.language,
+ org.apache.commons.codec.language.bm,
+ org.apache.commons.codec.net,
+ org.apache.commons.logging,
+ org.apache.commons.logging.impl,
+ org.apache.http,
+ org.apache.http.annotation,
+ org.apache.http.auth,
+ org.apache.http.auth.params,
+ org.apache.http.client,
+ org.apache.http.client.cache,
+ org.apache.http.client.config,
+ org.apache.http.client.entity,
+ org.apache.http.client.methods,
+ org.apache.http.client.params,
+ org.apache.http.client.protocol,
+ org.apache.http.client.utils,
+ org.apache.http.concurrent,
+ org.apache.http.config,
+ org.apache.http.conn,
+ org.apache.http.conn.params,
+ org.apache.http.conn.routing,
+ org.apache.http.conn.scheme,
+ org.apache.http.conn.socket,
+ org.apache.http.conn.ssl,
+ org.apache.http.conn.util,
+ org.apache.http.cookie,
+ org.apache.http.cookie.params,
+ org.apache.http.entity,
+ org.apache.http.entity.mime,
+ org.apache.http.entity.mime.content,
+ org.apache.http.impl,
+ org.apache.http.impl.auth,
+ org.apache.http.impl.client,
+ org.apache.http.impl.client.cache,
+ org.apache.http.impl.client.cache.ehcache,
+ org.apache.http.impl.client.cache.memcached,
+ org.apache.http.impl.conn,
+ org.apache.http.impl.conn.tsccm,
+ org.apache.http.impl.cookie,
+ org.apache.http.impl.entity,
+ org.apache.http.impl.execchain,
+ org.apache.http.impl.io,
+ org.apache.http.impl.pool,
+ org.apache.http.io,
+ org.apache.http.message,
+ org.apache.http.params,
+ org.apache.http.pool,
+ org.apache.http.protocol,
+ org.apache.http.util,
+ org.json,
+ org.json.zip
+Import-Package: org.eclipse.core.resources
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/Activator.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/Activator.class
new file mode 100644 (file)
index 0000000..6506e4f
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/Activator.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/INemoParser.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/INemoParser.class
new file mode 100644 (file)
index 0000000..0e245b1
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/INemoParser.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoAction.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoAction.class
new file mode 100644 (file)
index 0000000..68efc65
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoAction.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoClient.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoClient.class
new file mode 100644 (file)
index 0000000..fbbf664
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoClient.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl.class
new file mode 100644 (file)
index 0000000..c11bdc7
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl2.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl2.class
new file mode 100644 (file)
index 0000000..ed20c2d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl2.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserUtils.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserUtils.class
new file mode 100644 (file)
index 0000000..6e5d7b3
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserUtils.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoType.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoType.class
new file mode 100644 (file)
index 0000000..f6ddfe1
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoType.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/PostType.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/PostType.class
new file mode 100644 (file)
index 0000000..66e03ea
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/PostType.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/UUIDUtils.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/UUIDUtils.class
new file mode 100644 (file)
index 0000000..c85747b
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/UUIDUtils.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Action.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Action.class
new file mode 100644 (file)
index 0000000..5468104
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Action.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/ActionValue.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/ActionValue.class
new file mode 100644 (file)
index 0000000..cc7cc84
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/ActionValue.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Connection.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Connection.class
new file mode 100644 (file)
index 0000000..3ec45e8
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Connection.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Flow.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Flow.class
new file mode 100644 (file)
index 0000000..268726a
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Flow.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoInput.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoInput.class
new file mode 100644 (file)
index 0000000..aaf5e66
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoInput.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoItem.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoItem.class
new file mode 100644 (file)
index 0000000..b8157c3
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoItem.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Match.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Match.class
new file mode 100644 (file)
index 0000000..2b30f5f
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Match.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/MatchValue.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/MatchValue.class
new file mode 100644 (file)
index 0000000..5f57159
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/MatchValue.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput.class
new file mode 100644 (file)
index 0000000..7a12912
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput2.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput2.class
new file mode 100644 (file)
index 0000000..74b0322
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput2.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Node.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Node.class
new file mode 100644 (file)
index 0000000..b49ac7a
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Node.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Operation.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Operation.class
new file mode 100644 (file)
index 0000000..d6eff19
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Operation.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Property.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Property.class
new file mode 100644 (file)
index 0000000..85c0357
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Property.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/User.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/User.class
new file mode 100644 (file)
index 0000000..711fb27
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/User.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/collectinfo/GetContent.class b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/collectinfo/GetContent.class
new file mode 100644 (file)
index 0000000..375239e
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/bin/org/opendaylight/nemo/tool/eclipse/plugin/rest/collectinfo/GetContent.class differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/build.properties b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/build.properties
new file mode 100644 (file)
index 0000000..7a8a203
--- /dev/null
@@ -0,0 +1,13 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/,\
+               lib/commons-codec-1.6.jar,\
+               lib/commons-logging-1.1.3.jar,\
+               lib/httpclient-4.3.5.jar,\
+               lib/httpclient-cache-4.3.5.jar,\
+               lib/httpcore-4.3.2.jar,\
+               lib/httpmime-4.3.5.jar,\
+               lib/json-20140107.jar
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/icons/nemo.gif b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/icons/nemo.gif
new file mode 100644 (file)
index 0000000..b4b4272
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/icons/nemo.gif differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/commons-codec-1.6.jar b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/commons-codec-1.6.jar
new file mode 100644 (file)
index 0000000..ee1bc49
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/commons-codec-1.6.jar differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/commons-logging-1.1.3.jar b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/commons-logging-1.1.3.jar
new file mode 100644 (file)
index 0000000..ab51254
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/commons-logging-1.1.3.jar differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpclient-4.3.5.jar b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpclient-4.3.5.jar
new file mode 100644 (file)
index 0000000..1db1225
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpclient-4.3.5.jar differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpclient-cache-4.3.5.jar b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpclient-cache-4.3.5.jar
new file mode 100644 (file)
index 0000000..8f923b5
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpclient-cache-4.3.5.jar differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpcore-4.3.2.jar b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpcore-4.3.2.jar
new file mode 100644 (file)
index 0000000..813ec23
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpcore-4.3.2.jar differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpmime-4.3.5.jar b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpmime-4.3.5.jar
new file mode 100644 (file)
index 0000000..8a02dd2
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/httpmime-4.3.5.jar differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/json-20140107.jar b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/json-20140107.jar
new file mode 100644 (file)
index 0000000..40a325d
Binary files /dev/null and b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/lib/json-20140107.jar differ
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/plugin.xml b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/plugin.xml
new file mode 100644 (file)
index 0000000..e4dc970
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.actionSets">
+      <actionSet
+            label="Sample Action Set"
+            visible="true"
+            id="com.huawei.nemo.rest.actionSet">
+         <action
+               label="&amp;Sample Action"
+               icon="icons/nemo.gif"
+               class="org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.NemoAction"
+               tooltip="nemo"
+               toolbarPath="sampleGroup"
+               id="com.huawei.nemo.rest.actions.NemoAction">
+         </action>
+      </actionSet>
+   </extension>
+
+</plugin>
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/Activator.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/Activator.java
new file mode 100644 (file)
index 0000000..c7234d6
--- /dev/null
@@ -0,0 +1,61 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+       // The plug-in ID
+       public static final String PLUGIN_ID = "com.huawei.nemo.rest"; //$NON-NLS-1$
+
+       // The shared instance
+       private static Activator plugin;
+       
+       /**
+        * The constructor
+        */
+       public Activator() {
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+        */
+       public void start(BundleContext context) throws Exception {
+               super.start(context);
+               plugin = this;
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+        */
+       public void stop(BundleContext context) throws Exception {
+               plugin = null;
+               super.stop(context);
+       }
+
+       /**
+        * Returns the shared instance
+        *
+        * @return the shared instance
+        */
+       public static Activator getDefault() {
+               return plugin;
+       }
+
+       /**
+        * Returns an image descriptor for the image file at the given
+        * plug-in relative path
+        *
+        * @param path the path
+        * @return the image descriptor
+        */
+       public static ImageDescriptor getImageDescriptor(String path) {
+               return imageDescriptorFromPlugin(PLUGIN_ID, path);
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/INemoParser.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/INemoParser.java
new file mode 100644 (file)
index 0000000..331d989
--- /dev/null
@@ -0,0 +1,15 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
+
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public interface INemoParser {
+    public void format(String content);
+
+    public boolean findRest();
+
+    public boolean findUser();
+
+    public boolean send();
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoAction.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoAction.java
new file mode 100644 (file)
index 0000000..f471bc9
--- /dev/null
@@ -0,0 +1,90 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
+
+import java.io.IOException;
+
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.opendaylight.nemo.tool.eclipse.plugin.rest.collectinfo.GetContent;
+import org.eclipse.jface.dialogs.MessageDialog;
+
+/**
+ * Our sample action implements workbench action delegate. The action proxy will
+ * be created by the workbench and shown in the UI. When the user tries to use
+ * the action, this delegate will be created and execution will be delegated to
+ * it.
+ *
+ * @see IWorkbenchWindowActionDelegate
+ */
+public class NemoAction implements IWorkbenchWindowActionDelegate {
+       private IWorkbenchWindow window;
+
+       /**
+        * The constructor.
+        */
+       public NemoAction() {
+       }
+
+       /**
+        * The action has been activated. The argument of the method represents the
+        * 'real' action sitting in the workbench UI.
+        *
+        * @see IWorkbenchWindowActionDelegate#run
+        */
+       public void run(IAction action) {
+               String content = GetContent.activeContent();
+               NemoParserImpl2 parserImpl = new NemoParserImpl2();
+               parserImpl.format(content);
+               boolean en = parserImpl.findRest();
+               if (!en) {
+             showDialog("Please add engine info.");
+               }else{
+                       boolean us = parserImpl.findUser();
+                       if(!us){
+                               showDialog("Please add user info.");
+                       }else{
+                               boolean result = parserImpl.send();
+                               showDialog(parserImpl.getErrorInfo()+"\r\n"+parserImpl.getKeepResult());
+                       }
+               }
+
+       }
+
+       private void showDialog(String log) {
+               MessageDialog.openInformation(window.getShell(), "Run", log);
+       }
+
+       /**
+        * Selection in the workbench has been changed. We can change the state of
+        * the 'real' action here if we want, but this can only happen after the
+        * delegate has been created.
+        *
+        * @see IWorkbenchWindowActionDelegate#selectionChanged
+        */
+       public void selectionChanged(IAction action, ISelection selection) {
+       }
+
+       /**
+        * We can use this method to dispose of any system resources we previously
+        * allocated.
+        *
+        * @see IWorkbenchWindowActionDelegate#dispose
+        */
+       public void dispose() {
+       }
+
+       /**
+        * We will cache window object in order to be able to provide parent shell
+        * for the message dialog.
+        *
+        * @see IWorkbenchWindowActionDelegate#init
+        */
+       public void init(IWorkbenchWindow window) {
+               this.window = window;
+       }
+}
\ No newline at end of file
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoClient.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoClient.java
new file mode 100644 (file)
index 0000000..619a7b2
--- /dev/null
@@ -0,0 +1,116 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.ConnectException;
+import java.util.AbstractMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.NoHttpResponseException;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.message.BasicNameValuePair;
+import org.json.JSONObject;
+
+public class NemoClient {
+       private static final String COMMAND_PROMPT = "";
+       private static final String COMMAND_EXIT = "exit";
+
+       private static final String URI_PATH_USER = "user";
+       // private static final String URI_PATH_NEMO = "nemo";
+
+       private static final String JSON_KEY_USERNAME = "username";
+       private static final String JSON_KEY_PASSWORD = "password";
+       // private static final String JSON_KEY_USERROLE = "UserRole";
+       private static final String JSON_KEY_NEMO = "NEMO";
+
+       private static final String INFO_PROMPT_INFO = "Info: ";
+       private static final String INFO_PROMPT_ERROR = "Error: ";
+
+       private static final String RESPONSE_CONTENT_USER_SUCCEEDED = "User Creation Succeeded!";
+       private static final String RESPONSE_CONTENT_USER_NOT_EXIST = "User Does Not Exists!";
+       private static final String RESPONSE_CONTENT_USER_PWD_WRONG = "User Pwd Error!";
+       private static final String RESPONSE_CONTENT_NEMO_SUCCEEDED = "NEMO Executation Succeeded!";
+       private static final String RESPONSE_CONTENT_UNKNOWN_EXCEPTION = "<html>";
+
+       public static String generateBaseURIOfNEMOEngine(String ipAddrOfNEMOEngine) {
+               return "http://" + ipAddrOfNEMOEngine + ":10081/hyp/vn";
+       }
+
+       private static HttpPost generateHttpPostRequest_User(
+                       String baseURIOfNEMOEngine, String username, String password,
+                       String userRole) {
+               HttpPost httpPost = new HttpPost(baseURIOfNEMOEngine + URI_PATH_USER);
+               JSONObject jsonObject = new JSONObject();
+
+               jsonObject.put(JSON_KEY_USERNAME, username);
+               jsonObject.put(JSON_KEY_PASSWORD, password);
+               // jsonObject.put(JSON_KEY_USERROLE, userRole);
+
+               try {
+                       httpPost.setHeader("Content-type", "application/json");
+                       httpPost.setEntity(new StringEntity(jsonObject.toString()));
+               } catch (UnsupportedEncodingException exception) {
+
+               }
+
+               return httpPost;
+       }
+
+
+       public static String send(String url, String content) {
+               
+               DefaultHttpClient httpClient = new DefaultHttpClient();
+               AuthScope authScope = new AuthScope(AuthScope.ANY_HOST,
+                               AuthScope.ANY_PORT);
+               UsernamePasswordCredentials usernamePasswordCredentials = new UsernamePasswordCredentials(
+                               "admin", "admin");
+               CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
+               credentialsProvider.setCredentials(authScope,
+                               usernamePasswordCredentials);
+               httpClient.setCredentialsProvider(credentialsProvider);
+               HttpPost post = new HttpPost(url);
+               post.setHeader("Content-type", "application/json");
+               try {
+                       post.setEntity(new StringEntity(content, ContentType
+                                       .create("application/json")));
+
+                       BufferedReader reader;
+
+                       HttpResponse response = httpClient.execute(post);
+
+                       reader = new BufferedReader(new InputStreamReader(response
+                                       .getEntity().getContent()));
+                       return reader.readLine();
+               } catch (UnsupportedEncodingException e1) {
+                       // TODO Auto-generated catch block
+                       e1.printStackTrace();
+               } catch (IllegalStateException e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
+               } catch (ClientProtocolException e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
+               } catch (IOException e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
+               }
+               return "Exception while send : " + url + "\r\n" + content;
+       }
+
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl.java
new file mode 100644 (file)
index 0000000..78523ce
--- /dev/null
@@ -0,0 +1,226 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model.*;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class NemoParserImpl implements INemoParser {
+       private static final String BEGIN = "Transaction Begin";
+       private static final String END = "Transaction ends";
+       private static final String INTENT = "successfully";
+       private String keepResult = "";
+       private String errorInfo = "";
+
+       private List<String> commands;
+       private String targetIpv4;
+       private String baseUrl;
+       private String TRANSACTION_BEGIN = "begin-transaction";
+       private String TRANSACTION_END = "end-transaction";
+       private String REGISTER_USER = "register-user";
+       private String STRUCTURE_UPDATE_USERS = "structure-style-nemo-update";
+       private String STRUCTURE_DELETE_USERS = "structure-style-nemo-delete";
+       private User user;
+
+       public NemoParserImpl() {
+
+               this.commands = new ArrayList<String>();
+       }
+
+       public String getErrorInfo() {
+               return errorInfo;
+       }
+
+       public void setErrorInfo(String errorInfo) {
+               this.errorInfo = errorInfo;
+       }
+
+       public String getKeepResult() {
+               return keepResult;
+       }
+
+       public void setKeepResult(String keepResult) {
+               this.keepResult = keepResult;
+       }
+
+       @Override
+       public void format(String content) {
+
+               String[] comArray = content.split(";");
+               for (String command : comArray) {
+                       String com = command.trim();
+                       if (!com.equals(""))
+                               commands.add(com);
+               }
+       }
+
+       @Override
+       public boolean findRest() {
+               for (String command : commands) {
+                       NemoType type = getType(command);
+                       if (type.equals(NemoType.ENGINE)) {
+                               targetIpv4 = NemoParserUtils.getIpv4(command);
+                               if (targetIpv4 != null) {
+                                       baseUrl = "http://" + targetIpv4
+                                                       + ":8181/restconf/operations/nemo-intent:";
+                                       TRANSACTION_BEGIN = baseUrl + TRANSACTION_BEGIN;
+                                       TRANSACTION_END = baseUrl + TRANSACTION_END;
+                                       REGISTER_USER = baseUrl + REGISTER_USER;
+                                       STRUCTURE_UPDATE_USERS = baseUrl + STRUCTURE_UPDATE_USERS;
+                                       STRUCTURE_DELETE_USERS = baseUrl + STRUCTURE_DELETE_USERS;
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
+
+       @Override
+       public boolean findUser() {
+               for (String command : commands) {
+                       NemoType type = getType(command);
+                       if (type.equals(NemoType.USER)) {
+                               user = NemoParserUtils.getUser(command);
+                               if (user != null) {
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
+
+       @Override
+       public boolean send() {
+               // TODO:begin
+               String register = NemoClient.send(REGISTER_USER, new NemoInput(user).toJsonFormatString());
+//             String register2 = NemoClient.send("http://191.4.3.31:10081/hello", new NemoInput(user,null).toJsonFormatString());
+
+               String begin = NemoClient.send(TRANSACTION_BEGIN, new NemoInput(user,null).toJsonFormatString());
+               // if(!BEGIN.equals(begin)){
+               // errorInfo = "Begin failed : "+ user.toString();
+               // return false;
+               // }
+               for (String nemo : commands) {
+                       String result = handleOne(nemo);
+                       if (result.indexOf(INTENT) < 0) {
+                               errorInfo += result;
+                               // return false;
+                       } else {
+                               keepResult += ("\r\n" + result);
+                       }
+               }
+
+               // TODO:end
+                String end = NemoClient.send(TRANSACTION_END,new
+                NemoInput(user,null).toJsonFormatString());
+                keepResult+=("\r\n" + end);
+               // if(!BEGIN.equals(end)){
+               // errorInfo = "End failed : "+ user.toString();
+               // return false;
+               // }
+               return true;
+       }
+
+       private String handleOne(String command) {
+               String url = STRUCTURE_UPDATE_USERS;
+               NemoType type = getType(command);
+               switch (type) {
+               case CREATE_NODE:
+               case DELETE_NODE:
+               case UPDATE_NODE:
+                       Node node = NemoParserUtils.getNode(command);
+                       if (type.equals(NemoType.DELETE_NODE)) {
+                               url = STRUCTURE_DELETE_USERS;
+                       }
+                       return NemoClient.send(url,
+                                       new NemoInput(user, node).toJsonFormatString());
+               case CREATE_CONN:
+               case UPDATE_CONN:
+               case DELETE_CONN:
+                       Connection connection = NemoParserUtils.getConnection(command);
+                       if (type.equals(NemoType.DELETE_CONN)) {
+                               url = STRUCTURE_DELETE_USERS;
+                       }
+                       return NemoClient.send(url,
+                                       new NemoInput(user, connection).toJsonFormatString());
+               case CREATE_FLOW:
+               case UPDATE_FLOW:
+                       Flow flow = NemoParserUtils.getFlow(command);
+                       return NemoClient.send(url,
+                                       new NemoInput(user, flow).toJsonFormatString());
+               case CREATE_OPERATION:
+                       Operation operation = NemoParserUtils.getOperation(command);
+                       return NemoClient.send(url,
+                                       new NemoInput(user, operation).toJsonFormatString());
+               case ENGINE:
+               case USER:
+                       return INTENT;
+
+               }
+               return "Unknown type fail";
+       }
+
+       private NemoType getType(String nemo) {
+               if (nemo.startsWith("Engines:"))
+                       return NemoType.ENGINE;
+               if (nemo.startsWith("IMPORT")) {
+                       return NemoType.CREATE_NODE;
+               }
+               if (nemo.startsWith("CREATE")) {
+                       return createType(nemo);
+               }
+               if (nemo.startsWith("UPDATE")) {
+                       return updateType(nemo);
+               }
+               if (nemo.startsWith("DELETE")) {
+                       return deleteType(nemo);
+               }
+               return NemoType.UNKNOWN;
+       }
+
+       private NemoType createType(String nemo) {
+               nemo = nemo.replace("CREATE", "").trim();
+               if (nemo.startsWith("Node")) {
+                       return NemoType.CREATE_NODE;
+               }
+               if (nemo.startsWith("Connection")) {
+                       return NemoType.CREATE_CONN;
+               }
+               if (nemo.startsWith("Operation")) {
+                       return NemoType.CREATE_OPERATION;
+               }
+               if (nemo.startsWith("Flow")) {
+                       return NemoType.CREATE_FLOW;
+               }
+               return NemoType.USER;
+       }
+
+       private NemoType updateType(String nemo) {
+               nemo = nemo.replace("UPDATE", "").trim();
+               if (nemo.startsWith("Node")) {
+                       return NemoType.UPDATE_NODE;
+               }
+               if (nemo.startsWith("Connection")) {
+                       return NemoType.UPDATE_CONN;
+               }
+               if (nemo.startsWith("Flow")) {
+                       return NemoType.UPDATE_FLOW;
+               }
+               return null;
+       }
+
+       private NemoType deleteType(String nemo) {
+               nemo = nemo.replace("DELETE", "").trim();
+               if (nemo.startsWith("Node")) {
+                       return NemoType.DELETE_NODE;
+               }
+               if (nemo.startsWith("Connection")) {
+                       return NemoType.DELETE_CONN;
+               }
+               return null;
+       }
+
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl2.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserImpl2.java
new file mode 100644 (file)
index 0000000..14793de
--- /dev/null
@@ -0,0 +1,189 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model.*;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class NemoParserImpl2 implements INemoParser {
+       private static final String BEGIN = "Transaction Begin";
+       private static final String END = "Transaction ends";
+       private static final String INTENT = "successfully";
+       private String keepResult = "";
+       private String errorInfo = "";
+
+       private List<String> commands;
+       private String targetIpv4;
+       private String targetUrl = "language-style-nemo-request";
+       private String baseUrl;
+       private String TRANSACTION_BEGIN = "begin-transaction";
+       private String TRANSACTION_END = "end-transaction";
+       private String REGISTER_USER = "register-user";
+
+       private User user;
+
+       public NemoParserImpl2() {
+
+               this.commands = new ArrayList<String>();
+       }
+
+       public String getErrorInfo() {
+               return errorInfo;
+       }
+
+       public void setErrorInfo(String errorInfo) {
+               this.errorInfo = errorInfo;
+       }
+
+       public String getKeepResult() {
+               return keepResult;
+       }
+
+       public void setKeepResult(String keepResult) {
+               this.keepResult = keepResult;
+       }
+
+       @Override
+       public void format(String content) {
+
+               String[] comArray = content.split(";");
+               for (String command : comArray) {
+                       String com = command.trim();
+                       if (!com.equals(""))
+                               commands.add(com);
+               }
+       }
+
+       @Override
+       public boolean findRest() {
+               for (int i = 0; i < commands.size(); i++) {
+                       String command = commands.get(i);
+                       NemoType type = getType(command);
+                       if (type.equals(NemoType.ENGINE)) {
+                               targetIpv4 = NemoParserUtils.getIpv4(command);
+                               if (targetIpv4 != null) {
+
+                                       baseUrl = "http://" + targetIpv4 + ":8181/restconf/operations/nemo-intent:";
+                                       TRANSACTION_BEGIN = baseUrl + TRANSACTION_BEGIN;
+                                       TRANSACTION_END = baseUrl + TRANSACTION_END;
+                                       REGISTER_USER = baseUrl + REGISTER_USER;
+                                       targetUrl = baseUrl + targetUrl;
+
+                                       commands.remove(i);
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
+
+       @Override
+       public boolean findUser() {
+
+               for (int i = 0; i < commands.size(); i++) {
+                       String command = commands.get(i);
+                       NemoType type = getType(command);
+                       if (type.equals(NemoType.USER)) {
+                               user = NemoParserUtils.getUser(command);
+                               if (user != null) {
+                                       commands.remove(i);
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
+
+       @Override
+       public boolean send() {
+               String register = NemoClient.send(REGISTER_USER, new NemoInput(user).toJsonFormatString());
+               // String register2 = NemoClient.send("http://191.4.3.31:10081/hello",
+               // new NemoInput(user,null).toJsonFormatString());
+
+               String begin = NemoClient.send(TRANSACTION_BEGIN, new NemoInput(user, null).toJsonFormatString());
+
+               for (String nemo : commands) {
+                       String result = handleOne(nemo);
+                       if (result.indexOf(INTENT) < 0) {
+                               errorInfo = result;
+
+                       } else {
+                               keepResult += ("\r\n" + result);
+                       }
+               }
+
+               // TODO:end
+               String end = NemoClient.send(TRANSACTION_END, new NemoInput(user, null).toJsonFormatString());
+               keepResult += ("\r\n" + end);
+
+               return true;
+       }
+
+       private String handleOne(String command) {
+               return NemoClient.send(targetUrl, new NemoInput2(user, command).toJsonFormatString());
+       }
+
+       private NemoType getType(String nemo) {
+               if (nemo.startsWith("Engines:"))
+                       return NemoType.ENGINE;
+               if (nemo.startsWith("IMPORT")) {
+                       return NemoType.CREATE_NODE;
+               }
+               if (nemo.startsWith("CREATE")) {
+                       return createType(nemo);
+               }
+               if (nemo.startsWith("UPDATE")) {
+                       return updateType(nemo);
+               }
+               if (nemo.startsWith("DELETE")) {
+                       return deleteType(nemo);
+               }
+               return NemoType.UNKNOWN;
+       }
+
+       private NemoType createType(String nemo) {
+               nemo = nemo.replace("CREATE", "").trim();
+               if (nemo.startsWith("Node")) {
+                       return NemoType.CREATE_NODE;
+               }
+               if (nemo.startsWith("Connection")) {
+                       return NemoType.CREATE_CONN;
+               }
+               if (nemo.startsWith("Operation")) {
+                       return NemoType.CREATE_OPERATION;
+               }
+               if (nemo.startsWith("Flow")) {
+                       return NemoType.CREATE_FLOW;
+               }
+               return NemoType.USER;
+       }
+
+       private NemoType updateType(String nemo) {
+               nemo = nemo.replace("UPDATE", "").trim();
+               if (nemo.startsWith("Node")) {
+                       return NemoType.UPDATE_NODE;
+               }
+               if (nemo.startsWith("Connection")) {
+                       return NemoType.UPDATE_CONN;
+               }
+               if (nemo.startsWith("Flow")) {
+                       return NemoType.UPDATE_FLOW;
+               }
+               return null;
+       }
+
+       private NemoType deleteType(String nemo) {
+               nemo = nemo.replace("DELETE", "").trim();
+               if (nemo.startsWith("Node")) {
+                       return NemoType.DELETE_NODE;
+               }
+               if (nemo.startsWith("Connection")) {
+                       return NemoType.DELETE_CONN;
+               }
+               return null;
+       }
+
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserUtils.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoParserUtils.java
new file mode 100644 (file)
index 0000000..509b27c
--- /dev/null
@@ -0,0 +1,219 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model.*;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class NemoParserUtils {
+       public static String getIpv4(String engine) {
+               engine = engine.replace("Engines:", "").trim();
+               engine = engine.replace(";", "").trim();
+               String[] ipv4s = engine.split(",");
+               String[] ipv4_sub = ipv4s[0].split("\\.");
+               if (ipv4_sub.length == 4) {
+                       return ipv4_sub[0].trim() + "." + ipv4_sub[1].trim() + "."
+                                       + ipv4_sub[2].trim() + "." + ipv4_sub[3].trim();
+               }
+               return null;
+       }
+
+       public static User getUser(String user_create) {
+               user_create = user_create.replace("CREATE", "").trim();
+               String[] param = user_create.split(" ");
+               if (param.length == 3) {
+                       User user = new User(param[0], param[1], param[2]);
+                       user.setUser_id(UUIDUtils.getUUId(user.getUser_name()));
+                       return user;
+               }
+               return null;
+       }
+
+       public static Node getNode(String node) {
+               String nodeName = getNodeName(node);
+               String nodeId = UUIDUtils.getUUId(nodeName);
+               String nodeType = getType(node);
+               List<String> contains = getContains(node);
+               List<Property> properties = getProperties(node);
+               return new Node(nodeId, nodeName, nodeType, properties, contains);
+       }
+
+       public static Connection getConnection(String connection) {
+               String conName = getConnectionName(connection);
+               String conId = UUIDUtils.getUUId(conName);
+               String conType = getType(connection);
+               List<String> endNodes = getEndNodes(connection);
+               List<Property> properties = getProperties(connection);
+               return new Connection(conId, conName, conType, endNodes, properties);
+       }
+
+       public static Flow getFlow(String flow) {
+               String flowName = getFlowName(flow);
+               String flowId = UUIDUtils.getUUId(flowName);
+               List<Match> matches = getMatches(flow);
+               return new Flow(flowId, flowName, matches);
+       }
+
+       public static Operation getOperation(String operation) {
+               String opName = getOpName(operation);
+               String opId = UUIDUtils.getUUId(opName);
+               String targetObject = getTargetObj(operation);
+               String priority = getPriority(operation);
+               List<Action> actions = getActions(operation);
+               return new Operation(opId, opName, targetObject, priority, actions);
+       }
+
+       private static String getNodeName(String node) {
+               return getParam("Node", node);
+       }
+
+       private static String getConnectionName(String node) {
+               return getParam("Connection", node);
+       }
+
+       private static String getFlowName(String node) {
+               return getParam("Flow", node);
+       }
+
+       private static String getOpName(String node) {
+               return getParam("Operation", node);
+       }
+
+       private static String getTargetObj(String node) {
+               return getParam("Target", node);
+       }
+
+       private static String getPriority(String node) {
+               return getParam("Priority", node);
+       }
+
+       private static String getType(String node) {
+               return getParam("Type", node);
+       }
+
+       private static List<String> getContains(String node) {
+               if (node.indexOf("Contain") < 0)
+                       return null;
+               String str = node.substring(node.indexOf("Contain"));
+               String sub = null;
+               if (str.indexOf("Property") > 0) {
+                       sub = str.substring(0, str.indexOf("Property"));
+               } else {
+                       sub = str.replaceAll(";", "").trim();
+               }
+               String[] params = sub.split(" ");
+               String[] nodes = params[1].split(",");
+               List<String> nodeList = new ArrayList<String>();
+               for (String nodeName : nodes) {
+                       String uuId = UUIDUtils.getUUId(nodeName.trim());
+                       nodeList.add(uuId);
+               }
+               return nodeList;
+       }
+
+       private static List<String> getEndNodes(String node) {
+               if (node.indexOf("Endnodes") < 0)
+                       return null;
+               String str = node.substring(node.indexOf("Endnodes"));
+               String sub = null;
+               if (str.indexOf("Property") > 0) {
+                       sub = str.substring(0, str.indexOf("Property"));
+               } else {
+                       sub = str.replaceAll(";", "").trim();
+               }
+               String[] params = sub.split(" ");
+               String[] nodes = params[1].split(",");
+               List<String> nodeList = new ArrayList<String>();
+               for (String nodeName : nodes) {
+                       String uuId = UUIDUtils.getUUId(nodeName.trim());
+                       nodeList.add(uuId);
+               }
+               return nodeList;
+       }
+
+       private static List<Property> getProperties(String node) {
+               if (node.indexOf("Property") < 0)
+                       return null;
+               String str = node.substring(node.indexOf("Property"))
+                               .replaceAll(";", "").trim();
+
+
+               String[] properties = str.replaceAll("Property","").trim().split(",");
+               List<Property> propertyList = new ArrayList<Property>();
+               for (String property : properties) {
+                       String pName = property.substring(0, property.indexOf(":"));
+                       List<String> pValues = new ArrayList<String>();
+                       pValues.add(property.substring(property.indexOf(":") + 1).trim());
+                       propertyList.add(new Property(pName, pValues));
+
+               }
+               return propertyList;
+       }
+
+       private static List<Action> getActions(String node) {
+               if (node.indexOf("Action") < 0)
+                       return null;
+               String str = node.substring(node.indexOf("Action")).replaceAll(";", "")
+                               .trim();
+
+
+               String[] actions_str = str.replaceAll("Action","").trim().split(",");
+               List<Action> actionList = new ArrayList<Action>();
+               for (String action_s : actions_str) {
+                       String[] ss = action_s.split(":");
+                       if (ss.length == 1) {
+                               actionList.add(new Action(ss[0].trim(), null));
+                       }
+                       if (ss.length == 2) {
+                               String aName = ss[0].trim();
+                               List<String> aValues = new ArrayList<String>();
+                               String[] vss = ss[1].trim().split(",");
+                               for (String v : vss) {
+                                       aValues.add(v.trim());
+                               }
+                               ActionValue actionValue = new ActionValue(aValues);
+                               actionList.add(new Action(aName, actionValue));
+                       }
+               }
+               return actionList;
+       }
+
+       private static List<Match> getMatches(String flow) {
+               if (flow.indexOf("Match") < 0)
+                       return null;
+               String str = flow.substring(flow.indexOf("Match")).replaceAll(";", "")
+                               .trim();
+
+               String[] matches_str = str.replaceAll("Match","").trim().split(",");
+               List<Match> matches = new ArrayList<Match>();
+               for (String match : matches_str) {
+                       String[] ss = match.split(":");
+                       if (ss.length == 2) {
+                               String matchName = ss[0].trim();
+                               MatchValue matchValue = new MatchValue(ss[1].trim());
+                               matches.add(new Match(matchName, matchValue));
+                       }
+               }
+               return matches;
+       }
+
+       private static String getParam(String paramName, String nemo) {
+               if (nemo.indexOf(paramName) < 0) {
+                       return null;
+               }
+               String str = nemo.substring(nemo.indexOf(paramName));
+               String[] params = str.split(" ");
+               if (params.length < 2)
+                       return null;
+               return params[1].trim();
+       }
+
+       public static void main(String[] args) {
+               String s = "IMPORT Node branch Type ext-group Property location:openflow:3:4,ac-info-network:layer3,ip-prifix:192.168.12.0/24,ac-info-protocol:static ;";
+               List<Property> pL = getProperties(s);
+               System.out.println(pL);
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoType.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/NemoType.java
new file mode 100644 (file)
index 0000000..425095d
--- /dev/null
@@ -0,0 +1,19 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public enum NemoType {
+    ENGINE,
+    USER,
+    CREATE_NODE,
+    UPDATE_NODE,
+    DELETE_NODE,
+    CREATE_CONN,
+    UPDATE_CONN,
+    DELETE_CONN,
+    CREATE_OPERATION,
+    CREATE_FLOW,
+    UPDATE_FLOW,
+    UNKNOWN;
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/PostType.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/PostType.java
new file mode 100644 (file)
index 0000000..3566e1a
--- /dev/null
@@ -0,0 +1,8 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public enum PostType {
+    ADD,DELETE
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/UUIDUtils.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/UUIDUtils.java
new file mode 100644 (file)
index 0000000..3f15a76
--- /dev/null
@@ -0,0 +1,21 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions;
+
+
+import java.util.HashMap;
+import java.util.UUID;
+
+/**
+ * Created by hj on 10/29/15.
+ * Not concurrent safe.
+ */
+public class UUIDUtils {
+    private static HashMap<String/**/,String/*uuid*/> uuidMap = new HashMap<String, String>();
+
+    public static String getUUId(String name){
+        if(!uuidMap.containsKey(name)){
+            uuidMap.put(name, UUID.randomUUID().toString());
+        }
+        return uuidMap.get(name);
+        
+    }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Action.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Action.java
new file mode 100644 (file)
index 0000000..f57d011
--- /dev/null
@@ -0,0 +1,28 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONObject;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class Action implements INemoItem {
+    private String action_name;
+    private ActionValue value;
+
+    public Action(String action_name, ActionValue value) {
+        this.action_name = action_name;
+        this.value = value;
+    }
+
+    @Override
+    public JSONObject toJSONObject() {
+        JSONObject actionJs = new JSONObject();
+        actionJs.put("action-name", action_name);
+        if (value != null){
+               JSONObject js = new JSONObject();
+            js.put("string-value", value.getJs());
+            actionJs.put("parameter-values", js);
+        }
+        return actionJs;
+    }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/ActionValue.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/ActionValue.java
new file mode 100644 (file)
index 0000000..5c2b159
--- /dev/null
@@ -0,0 +1,42 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.UUIDUtils;
+
+import java.util.List;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class ActionValue implements INemoItem {
+    private List<String> values;
+
+    public ActionValue(List<String> values) {
+        this.values = values;
+    }
+    public JSONArray getJs(){
+       JSONArray valueArrayJs =new  JSONArray();
+        for (int i=0;i<values.size();i++){
+            String value = values.get(i);
+            JSONObject valueJs = new JSONObject();
+            valueJs.put("value",UUIDUtils.getUUId(value));
+            valueJs.put("order",i+"");
+            valueArrayJs.put(i,valueJs);
+        }
+        return valueArrayJs;
+    }
+    @Override
+    public JSONObject toJSONObject() {
+            //js array,values
+//        JSONArray valueArrayJs =new  JSONArray();
+//        for (int i=0;i<values.size();i++){
+//            String value = values.get(i);
+//            JSONObject valueJs = new JSONObject();
+//            valueJs.put("value",value);
+//            valueJs.put("order",i+"");
+//            valueArrayJs.put(i,valueJs);
+//        }
+        return null;
+    }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Connection.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Connection.java
new file mode 100644 (file)
index 0000000..335579c
--- /dev/null
@@ -0,0 +1,62 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.UUIDUtils;
+
+import java.util.List;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class Connection implements INemoItem {
+    private String connection_id;
+    private String connection_name;
+    private String connection_type;
+    private List<String> end_nodes;
+    private List<Property> properties;
+
+    public Connection(String connection_id, String connection_name, String connection_type, List<String> end_nodes, List<Property> properties) {
+        this.connection_id = connection_id;
+        this.connection_name = connection_name;
+        this.connection_type = connection_type;
+        this.end_nodes = end_nodes;
+        this.properties = properties;
+    }
+
+    @Override
+    public JSONObject toJSONObject() {
+        JSONObject jsonConnection = new JSONObject();
+        jsonConnection.put("connection-id", connection_id);
+        jsonConnection.put("connection-name", connection_name);
+        jsonConnection.put("connection-type", connection_type);
+
+        if(end_nodes!=null&&end_nodes.size()>0){
+            //JS array,sub nodes
+            JSONArray jsonEndNodeArray = new JSONArray();
+            for (int i=0;i<end_nodes.size();i++){
+                String value = end_nodes.get(i);
+                
+                JSONObject jsonEndNode = new JSONObject();
+                jsonEndNode.put("order", i + "");
+                jsonEndNode.put("node-id", value);
+                jsonEndNodeArray.put(i, jsonEndNode);
+            }
+            jsonConnection.put("end-node", jsonEndNodeArray);
+        }
+
+
+        if(properties!=null&&properties.size()>0){
+            //JS array,properties
+            JSONArray jsonPropertyArray = new JSONArray();
+            for (int i=0;i<properties.size();i++){
+                JSONObject jsonProperty= properties.get(i).toJSONObject();
+                jsonPropertyArray.put(i,jsonProperty);
+            }
+            jsonConnection.put("property", jsonPropertyArray);
+        }
+
+
+        return jsonConnection;
+    }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Flow.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Flow.java
new file mode 100644 (file)
index 0000000..aee2b27
--- /dev/null
@@ -0,0 +1,64 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.util.List;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class Flow implements INemoItem {
+    private String flow_id;
+    private String flow_name;
+    private List<Match> matches;
+    public Flow(String flow_id, String flow_name, List<Match> matches) {
+        this.flow_id = flow_id;
+        this.flow_name = flow_name;
+        this.matches = matches;
+    }
+
+    @Override
+    public JSONObject toJSONObject() {
+        JSONObject flowJs = new JSONObject();
+        flowJs.put("flow-id", flow_id);
+        flowJs.put("flow-name", flow_name);
+
+        if (matches != null && matches.size() > 0) {
+            //Js array,matches
+            JSONArray jsonMatchArray = new JSONArray();
+            for (int i = 0; i < matches.size(); i++){
+                Match match = matches.get(i);
+                jsonMatchArray.put(i,match.toJSONObject());
+            }
+            flowJs.put("match-item",jsonMatchArray);
+        }
+        return flowJs;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        Flow flow = (Flow) o;
+
+        if (flow_id != null ? !flow_id.equals(flow.flow_id) : flow.flow_id != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return flow_id != null ? flow_id.hashCode() : 0;
+    }
+
+    @Override
+    public String toString() {
+        return "Flow{" +
+                "flow_id='" + flow_id + '\'' +
+                ", flow_name='" + flow_name + '\'' +
+                ", matches=" + matches +
+                '}';
+    }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoInput.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoInput.java
new file mode 100644 (file)
index 0000000..9c3b04b
--- /dev/null
@@ -0,0 +1,8 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public interface INemoInput {
+    public String toJsonFormatString();
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoItem.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/INemoItem.java
new file mode 100644 (file)
index 0000000..4ce857e
--- /dev/null
@@ -0,0 +1,10 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONObject;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public interface INemoItem {
+    public JSONObject toJSONObject();
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Match.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Match.java
new file mode 100644 (file)
index 0000000..a8402a0
--- /dev/null
@@ -0,0 +1,26 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONObject;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class Match implements INemoItem{
+    private String matchName;
+    private MatchValue value;
+
+    public Match(String matchName, MatchValue value) {
+        this.matchName = matchName;
+        this.value = value;
+    }
+
+    @Override
+    public JSONObject toJSONObject() {
+        JSONObject matchJs = new JSONObject();
+        matchJs.put("match-item-name",matchName);
+        JSONObject js = new JSONObject();
+        js.put("string-value", value.getValue());
+        matchJs.put("match-item-value",js);
+        return matchJs;
+    }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/MatchValue.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/MatchValue.java
new file mode 100644 (file)
index 0000000..6601b12
--- /dev/null
@@ -0,0 +1,23 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONObject;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class MatchValue implements INemoItem {
+    private String value;
+    public String getValue(){
+       return value;
+    }
+    public MatchValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public JSONObject toJSONObject() {
+        JSONObject valueJson = new JSONObject();
+        valueJson.put("match-item-value",value);
+        return valueJson;
+    }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput.java
new file mode 100644 (file)
index 0000000..03946b0
--- /dev/null
@@ -0,0 +1,65 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class NemoInput implements INemoInput {
+       private User user;
+       private INemoItem iNemoItem;
+       private boolean begin;
+
+       public NemoInput(User user, INemoItem iNemoItem) {
+               this.user = user;
+               this.iNemoItem = iNemoItem;
+       }
+       public NemoInput(User user) {
+               this.user = user;
+               this.iNemoItem = null;
+               begin = true;
+       }
+       @Override
+       public String toJsonFormatString() {
+               JSONObject dataJs = new JSONObject();
+               JSONObject inputValueJson = new JSONObject();
+               inputValueJson.put("user-id", user.getUser_id());
+               
+               if (iNemoItem == null&&begin) {
+                       inputValueJson.put("user-name", user.getUser_name());
+                       inputValueJson.put("user-password", user.getUser_password());
+                       inputValueJson.put("user-role", user.getUser_role());
+                       dataJs.put("input", inputValueJson);
+                       return dataJs.toString();
+               }
+               if (iNemoItem == null) {
+                       dataJs.put("input", inputValueJson);
+                       return dataJs.toString();
+               }
+               // item js array;
+               JSONArray itemJsArray = new JSONArray();
+               String key = "node";
+               if (iNemoItem instanceof Node) {
+                       key = "node";
+               }
+               if (iNemoItem instanceof Connection) {
+                       key = "connection";
+               }
+               if (iNemoItem instanceof Flow) {
+                       key = "flow";
+               }
+               if (iNemoItem instanceof Operation) {
+                       key = "operation";
+               }
+               itemJsArray.put(0, iNemoItem.toJSONObject());
+               JSONObject objectsJs = new JSONObject();
+               objectsJs.put(key, itemJsArray);
+               if (iNemoItem instanceof Operation)
+                       inputValueJson.put("operations", objectsJs);
+               else
+                       inputValueJson.put("objects", objectsJs);
+               dataJs.put("input", inputValueJson);
+               return dataJs.toString();
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput2.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/NemoInput2.java
new file mode 100644 (file)
index 0000000..c3e1807
--- /dev/null
@@ -0,0 +1,28 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class NemoInput2 implements INemoInput {
+       private User user;
+       private String nemo;
+
+       public NemoInput2(User user, String nemo) {
+               this.user = user;
+               this.nemo = nemo;
+       }
+
+       @Override
+       public String toJsonFormatString() {
+               JSONObject dataJs = new JSONObject();
+               JSONObject inputValueJson = new JSONObject();
+               inputValueJson.put("user-id", user.getUser_id());
+               inputValueJson.put("nemo-statement", nemo);
+               dataJs.put("input", inputValueJson);
+               return dataJs.toString();
+
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Node.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Node.java
new file mode 100644 (file)
index 0000000..8b4df5b
--- /dev/null
@@ -0,0 +1,89 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.UUIDUtils;
+
+import java.util.List;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class Node implements INemoItem{
+    private String node_id;
+    private String node_name;
+    private String node_type;
+    private List<Property> properties;
+    private List<String> sub_nodes;
+
+    public Node(String node_id, String node_name, String node_type, List<Property> properties, List<String> sub_nodes) {
+        this.node_id = node_id;
+        this.node_name = node_name;
+        this.node_type = node_type;
+        this.properties = properties;
+        this.sub_nodes = sub_nodes;
+    }
+
+    @Override
+    public JSONObject toJSONObject() {
+        JSONObject jsonNode = new JSONObject();
+        jsonNode.put("node-id",node_id);
+        jsonNode.put("node-name",node_name);
+        if(node_type!=null){
+            jsonNode.put("node-type",node_type);
+        }
+        if(properties!=null&&properties.size()>0){
+            //JS array,properties
+            JSONArray jsonPropertyArray = new JSONArray();
+            for (int i=0;i<properties.size();i++){
+                JSONObject jsonProperty= properties.get(i).toJSONObject();
+                jsonPropertyArray.put(i,jsonProperty);
+            }
+            jsonNode.put("property",jsonPropertyArray);
+        }
+
+        if(sub_nodes!=null&&sub_nodes.size()>0){
+            //JS array,sub nodes
+            JSONArray jsonSubNodeArray = new JSONArray();
+            for (int i=0;i<sub_nodes.size();i++){
+                String value = sub_nodes.get(i);
+                
+                JSONObject jsonSubNode = new JSONObject();
+                jsonSubNode.put("order",i+"");
+                jsonSubNode.put("node-id",value);
+                jsonSubNodeArray.put(i,jsonSubNode);
+            }
+            jsonNode.put("sub-node",jsonSubNodeArray);
+        }
+
+        return jsonNode;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        Node node = (Node) o;
+
+        if (node_id != null ? !node_id.equals(node.node_id) : node.node_id != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return node_id != null ? node_id.hashCode() : 0;
+    }
+
+    @Override
+    public String toString() {
+        return "Node{" +
+                "node_id='" + node_id + '\'' +
+                ", node_name='" + node_name + '\'' +
+                ", node_type='" + node_type + '\'' +
+                ", properties=" + properties +
+                ", sub_nodes=" + sub_nodes +
+                '}';
+    }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Operation.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Operation.java
new file mode 100644 (file)
index 0000000..4b83bca
--- /dev/null
@@ -0,0 +1,56 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.UUIDUtils;
+
+import java.util.List;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class Operation implements INemoItem {
+       private String operation_id;
+       private String operation_name;
+       private String target_object;
+       private String priority = "0";
+       private List<Action> actions;
+
+       public Operation(String operation_id, String operation_name,
+                       String target_object, String priority, List<Action> actions) {
+               this.operation_id = operation_id;
+               this.operation_name = operation_name;
+               this.target_object = UUIDUtils.getUUId(target_object);
+               if (priority != null)
+                       this.priority = priority;
+               this.actions = actions;
+       }
+
+       @Override
+       public JSONObject toJSONObject() {
+               JSONObject operationJs = new JSONObject();
+               operationJs.put("operation-id", operation_id);
+               operationJs.put("operation-name", operation_name);
+               if (target_object != null) {
+                       operationJs.put("target-object", target_object);
+               }
+               if (priority != null) {
+                       operationJs.put("priority", priority);
+               }
+
+               if (actions != null && actions.size() > 0) {
+                       // JS array,actions array.
+                       JSONArray actionJsArray = new JSONArray();
+                       // remember add order to each action;
+                       for (int i = 0; i < actions.size(); i++) {
+                               Action action = actions.get(i);
+                               JSONObject actionJs = action.toJSONObject();
+                               actionJs.put("order", i + "");
+                               actionJsArray.put(i, actionJs);
+                       }
+                       operationJs.put("action", actionJsArray);
+               }
+
+               return operationJs;
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Property.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/Property.java
new file mode 100644 (file)
index 0000000..b7eacf3
--- /dev/null
@@ -0,0 +1,75 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.util.List;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class Property implements INemoItem {
+       private String propertyName;
+       private List<String> propertyValues;
+
+       public Property(String propertyName, List<String> propertyValues) {
+               this.propertyName = propertyName;
+               this.propertyValues = propertyValues;
+       }
+
+       @Override
+       public JSONObject toJSONObject() {
+               if (propertyName == null || propertyValues == null) {
+                       throw new IllegalStateException("Illegal Property: " + toString());
+               }
+               JSONObject jsProperty = new JSONObject();
+               jsProperty.put("property-name", propertyName);
+
+               // JS array,property values
+               JSONArray jsonValuesArray = new JSONArray();
+               for (int i = 0; i < propertyValues.size(); i++) {
+                       String value = propertyValues.get(i);
+                       JSONObject jsonValue = new JSONObject();
+                       jsonValue.put("order", i + "");
+                       jsonValue.put("value", value);
+                       jsonValuesArray.put(i, jsonValue);
+               }
+               JSONObject pJs = new JSONObject();
+               if (propertyName.equals("bandwidth"))
+                       pJs.put("int-value", jsonValuesArray);
+               else
+                       pJs.put("string-value", jsonValuesArray);
+               jsProperty.put("property-values", pJs);
+
+               return jsProperty;
+       }
+
+       @Override
+       public boolean equals(Object o) {
+               if (this == o)
+                       return true;
+               if (o == null || getClass() != o.getClass())
+                       return false;
+
+               Property property = (Property) o;
+
+               if (propertyName != null ? !propertyName.equals(property.propertyName) : property.propertyName != null)
+                       return false;
+               if (propertyValues != null ? !propertyValues.equals(property.propertyValues) : property.propertyValues != null)
+                       return false;
+
+               return true;
+       }
+
+       @Override
+       public int hashCode() {
+               int result = propertyName != null ? propertyName.hashCode() : 0;
+               result = 31 * result + (propertyValues != null ? propertyValues.hashCode() : 0);
+               return result;
+       }
+
+       @Override
+       public String toString() {
+               return "Property{" + "propertyName='" + propertyName + '\'' + ", propertyValues=" + propertyValues + '}';
+       }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/User.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/actions/model/User.java
new file mode 100644 (file)
index 0000000..e35c754
--- /dev/null
@@ -0,0 +1,84 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.actions.model;
+
+/**
+ * Created by hj on 10/29/15.
+ */
+public class User {
+    private String user_id;
+    private String user_name;
+    private String user_role;
+    private String user_password;
+
+    public User(String user_name, String user_password, String user_role) {
+        this.user_name = user_name;
+        this.user_role = user_role;
+        this.user_password = user_password;
+    }
+
+    public String getUser_id() {
+        return user_id;
+    }
+
+    public void setUser_id(String user_id) {
+        this.user_id = user_id;
+    }
+
+    public String getUser_name() {
+        return user_name;
+    }
+
+    public void setUser_name(String user_name) {
+        this.user_name = user_name;
+    }
+
+    public String getUser_role() {
+        return user_role;
+    }
+
+    public void setUser_role(String user_role) {
+        this.user_role = user_role;
+    }
+
+    public String getUser_password() {
+        return user_password;
+    }
+
+    public void setUser_password(String user_password) {
+        this.user_password = user_password;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        User user = (User) o;
+
+        if (user_id != null ? !user_id.equals(user.user_id) : user.user_id != null) return false;
+        if (user_name != null ? !user_name.equals(user.user_name) : user.user_name != null) return false;
+        if (user_password != null ? !user_password.equals(user.user_password) : user.user_password != null)
+            return false;
+        if (user_role != null ? !user_role.equals(user.user_role) : user.user_role != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = user_id != null ? user_id.hashCode() : 0;
+        result = 31 * result + (user_name != null ? user_name.hashCode() : 0);
+        result = 31 * result + (user_role != null ? user_role.hashCode() : 0);
+        result = 31 * result + (user_password != null ? user_password.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "User{" +
+                "user_id='" + user_id + '\'' +
+                ", user_name='" + user_name + '\'' +
+                ", user_role='" + user_role + '\'' +
+                ", user_password='" + user_password + '\'' +
+                '}';
+    }
+}
diff --git a/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/collectinfo/GetContent.java b/nemo-tools/eclipse-plugin-project/nemo-rest/org.opendaylight.nemo.tool.eclipse.plugin.rest/src/org/opendaylight/nemo/tool/eclipse/plugin/rest/collectinfo/GetContent.java
new file mode 100644 (file)
index 0000000..7527c8e
--- /dev/null
@@ -0,0 +1,78 @@
+package org.opendaylight.nemo.tool.eclipse.plugin.rest.collectinfo;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.FileEditorInput;
+
+public class GetContent {
+
+       public static String activeContent() {
+               IEditorPart aditorPart = PlatformUI.getWorkbench()
+                               .getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+               if (aditorPart == null) {
+                       return null;
+               }
+               String result = null;
+               IEditorInput input = aditorPart.getEditorInput();
+               if (input instanceof FileEditorInput) {
+                       IFile file = ((FileEditorInput) input).getFile();
+                       String name = file.getName();
+                       if (!name.endsWith(".nemo")) {
+                               return null;
+                       }
+                       try {
+                               InputStream is = file.getContents();
+                               result = getContent(is);
+                       } catch (CoreException e) {
+                               // TODO Auto-generated catch block
+                               e.printStackTrace();
+                       }
+               }
+               return result;
+       }
+
+       private static String getContent(InputStream input) {
+               BufferedReader br = null;
+               StringBuilder builder = new StringBuilder();
+
+               String line;
+               try {
+                       br = new BufferedReader(new InputStreamReader(input));
+                       while ((line = br.readLine()) != null) {
+                               if(line.indexOf("//")>=0)
+                                       line = line.substring(0,line.indexOf("//"));
+                               line = line.replaceAll("\"", " ");
+                               String ss[] = line.split(" ");
+                               line = "";
+                               for(String s:ss){
+                                       if(!s.trim().equals("")){
+                                               line += (" "+s.trim());
+                                       }
+                               }
+                               if (!line.trim().equals(""))
+                                       builder.append(line);
+                       }
+               } catch (IOException e) {
+                       e.printStackTrace();
+               } finally {
+                       if (br != null) {
+                               try {
+                                       br.close();
+                               } catch (IOException e) {
+                                       e.printStackTrace();
+                               }
+                       }
+               }
+
+               return builder.toString();
+       }
+}