Initial commit
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.classpath b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.classpath
new file mode 100644
index 0000000..59cf397
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.project b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.project
new file mode 100644
index 0000000..f454577
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.core.resources.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..52164b2
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Aug 18 18:37:57 CEST 2009
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.jdt.core.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0804042
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,366 @@
+#Wed Oct 14 22:36:22 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=disabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.jdt.launching.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..cd7271f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.jdt.ui.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..f6caf59
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,118 @@
+#Wed Oct 14 22:36:24 CEST 2009
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=false
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_Xtext
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_'Xtext'
+formatter_settings_version=11
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"></template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"></template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"></template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} itemis AG (http\://www.itemis.eu) and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *******************************************************************************/</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user} - Initial contribution and API\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"></template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"></template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"></template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"></template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-JSDoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=false
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.pde.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..2bd5814
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,25 @@
+#Wed Aug 12 21:14:13 CEST 2009
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/META-INF/MANIFEST.MF b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a512d49
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EclipseCon 2011 Tutorial Xtext States with Embedded OCL Editor UI
+Bundle-SymbolicName: org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui;singleton:=true
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-Version: 1.0.0
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.ocl.tutorial.eclipsecon2011.oclstates,
+ org.eclipse.xtext.ui;bundle-version="2.0.0",
+ org.eclipse.ui.editors,
+ org.eclipse.ui,
+ org.eclipse.xtext.ui.shared;bundle-version="2.0.0",
+ org.antlr.runtime
+Bundle-Activator: org.eclipse.ocl.tutorial.eclipsecon2011.OCLStatesActivator
+Bundle-ActivationPolicy: lazy
+Import-Package: org.apache.log4j
+Export-Package: org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/about.html b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/about.html
new file mode 100644
index 0000000..1b8f940
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/build.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/build.properties
new file mode 100644
index 0000000..6beed05
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/,\
+ src-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ templates/,\
+ about.html
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/icons/editor.gif b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/icons/editor.gif
new file mode 100644
index 0000000..2a2b4b6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/icons/editor.gif
Binary files differ
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/plugin.xml b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/plugin.xml
new file mode 100644
index 0000000..9d6cf03
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/plugin.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="oclstates"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates"
+ name="OCLStates Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates"
+ name="OCLStates">
+ <keywordReference id="org.eclipse.ocl.tutorial.eclipsecon2011.ui.keyword_OCLStates"/>
+ </page>
+ <page
+ category="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates"
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.ocl.tutorial.eclipsecon2011.ui.keyword_OCLStates"/>
+ </page>
+ <page
+ category="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates"
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.ocl.tutorial.eclipsecon2011.ui.keyword_OCLStates"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.ui.keyword_OCLStates"
+ label="OCLStates"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.validate"
+ name="Validate">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="oclstates">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="oclstates">
+ </resourceServiceProvider>
+ </extension>
+
+
+
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+
+</plugin>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/AbstractOCLStatesUiModule.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/AbstractOCLStatesUiModule.java
new file mode 100644
index 0000000..b30d9f6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/AbstractOCLStatesUiModule.java
@@ -0,0 +1,87 @@
+
+/*
+ * generated by Xtext
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractOCLStatesUiModule extends DefaultUiModule {
+
+ public AbstractOCLStatesUiModule(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.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalOCLStatesLexer.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.ui.generator.labeling.LabelProviderFragment
+ public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.labeling.OCLStatesLabelProvider.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.eclipse.ocl.tutorial.eclipsecon2011.ui.labeling.OCLStatesDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.outline.OCLStatesOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.outline.OCLStatesOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.contentAssist.JavaBasedContentAssistFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.OCLStatesProposalProvider.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.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.OCLStatesParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalOCLStatesLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalOCLStatesLexer.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.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalOCLStatesLexer.class);
+ }
+
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/OCLStatesExecutableExtensionFactory.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/OCLStatesExecutableExtensionFactory.java
new file mode 100644
index 0000000..38731c3
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/OCLStatesExecutableExtensionFactory.java
@@ -0,0 +1,27 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class OCLStatesExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.internal.OCLStatesActivator.getInstance().getBundle();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.ui.internal.OCLStatesActivator.getInstance().getInjector("org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates");
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/AbstractOCLStatesProposalProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/AbstractOCLStatesProposalProvider.java
new file mode 100644
index 0000000..7cd9de0
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/AbstractOCLStatesProposalProvider.java
@@ -0,0 +1,96 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of interface {@link IProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them
+ * with a more concrete subtype.
+ */
+@SuppressWarnings("all")
+public class AbstractOCLStatesProposalProvider extends TerminalsProposalProvider {
+
+ public void completeModule_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_Machines(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_Initial(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void completeStatemachine_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_Events(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_States(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeEvent_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSimpleState_Initial(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void completeSimpleState_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSimpleState_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSimpleState_Transitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompoundState_Initial(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void completeCompoundState_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompoundState_Machine(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompoundState_Transitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransition_Event(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransition_State(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+
+ public void complete_Module(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Statemachine(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Event(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_State(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SimpleState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CompoundState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Transition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/OCLStatesParser.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/OCLStatesParser.java
new file mode 100644
index 0000000..90d6feb
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/OCLStatesParser.java
@@ -0,0 +1,95 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.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.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess;
+
+public class OCLStatesParser extends AbstractContentAssistParser {
+
+ @Inject
+ private OCLStatesGrammarAccess grammarAccess;
+
+ private Map<AbstractElement, String> nameMappings;
+
+ @Override
+ protected org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalOCLStatesParser createParser() {
+ org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalOCLStatesParser result = new org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalOCLStatesParser(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.getStateAccess().getAlternatives(), "rule__State__Alternatives");
+ put(grammarAccess.getModuleAccess().getGroup(), "rule__Module__Group__0");
+ put(grammarAccess.getStatemachineAccess().getGroup(), "rule__Statemachine__Group__0");
+ put(grammarAccess.getStatemachineAccess().getGroup_3(), "rule__Statemachine__Group_3__0");
+ put(grammarAccess.getSimpleStateAccess().getGroup(), "rule__SimpleState__Group__0");
+ put(grammarAccess.getSimpleStateAccess().getGroup_3(), "rule__SimpleState__Group_3__0");
+ put(grammarAccess.getCompoundStateAccess().getGroup(), "rule__CompoundState__Group__0");
+ put(grammarAccess.getTransitionAccess().getGroup(), "rule__Transition__Group__0");
+ put(grammarAccess.getModuleAccess().getNameAssignment_1(), "rule__Module__NameAssignment_1");
+ put(grammarAccess.getModuleAccess().getMachinesAssignment_2(), "rule__Module__MachinesAssignment_2");
+ put(grammarAccess.getStatemachineAccess().getInitialAssignment_0(), "rule__Statemachine__InitialAssignment_0");
+ put(grammarAccess.getStatemachineAccess().getNameAssignment_2(), "rule__Statemachine__NameAssignment_2");
+ put(grammarAccess.getStatemachineAccess().getValueAssignment_3_1(), "rule__Statemachine__ValueAssignment_3_1");
+ put(grammarAccess.getStatemachineAccess().getEventsAssignment_6(), "rule__Statemachine__EventsAssignment_6");
+ put(grammarAccess.getStatemachineAccess().getStatesAssignment_8(), "rule__Statemachine__StatesAssignment_8");
+ put(grammarAccess.getEventAccess().getNameAssignment(), "rule__Event__NameAssignment");
+ put(grammarAccess.getSimpleStateAccess().getInitialAssignment_0(), "rule__SimpleState__InitialAssignment_0");
+ put(grammarAccess.getSimpleStateAccess().getNameAssignment_2(), "rule__SimpleState__NameAssignment_2");
+ put(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1(), "rule__SimpleState__ValueAssignment_3_1");
+ put(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5(), "rule__SimpleState__TransitionsAssignment_5");
+ put(grammarAccess.getCompoundStateAccess().getInitialAssignment_1(), "rule__CompoundState__InitialAssignment_1");
+ put(grammarAccess.getCompoundStateAccess().getNameAssignment_3(), "rule__CompoundState__NameAssignment_3");
+ put(grammarAccess.getCompoundStateAccess().getMachineAssignment_5(), "rule__CompoundState__MachineAssignment_5");
+ put(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7(), "rule__CompoundState__TransitionsAssignment_7");
+ put(grammarAccess.getTransitionAccess().getEventAssignment_0(), "rule__Transition__EventAssignment_0");
+ put(grammarAccess.getTransitionAccess().getStateAssignment_2(), "rule__Transition__StateAssignment_2");
+ }
+ };
+ }
+ return nameMappings.get(element);
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ try {
+ org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalOCLStatesParser typedParser = (org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.antlr.internal.InternalOCLStatesParser) parser;
+ typedParser.entryRuleModule();
+ 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 OCLStatesGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(OCLStatesGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g
new file mode 100644
index 0000000..4469b08
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g
@@ -0,0 +1,1746 @@
+/*
+* generated by Xtext
+*/
+grammar InternalOCLStates;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+
+}
+
+@lexer::header {
+package org.eclipse.ocl.tutorial.eclipsecon2011.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.eclipse.ocl.tutorial.eclipsecon2011.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.xtext.parsetree.*;
+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.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess;
+
+}
+
+@parser::members {
+
+ private OCLStatesGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(OCLStatesGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+}
+
+
+
+
+// Entry rule entryRuleModule
+entryRuleModule
+:
+{ before(grammarAccess.getModuleRule()); }
+ ruleModule
+{ after(grammarAccess.getModuleRule()); }
+ EOF
+;
+
+// Rule Module
+ruleModule
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getModuleAccess().getGroup()); }
+(rule__Module__Group__0)
+{ after(grammarAccess.getModuleAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStatemachine
+entryRuleStatemachine
+:
+{ before(grammarAccess.getStatemachineRule()); }
+ ruleStatemachine
+{ after(grammarAccess.getStatemachineRule()); }
+ EOF
+;
+
+// Rule Statemachine
+ruleStatemachine
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getStatemachineAccess().getGroup()); }
+(rule__Statemachine__Group__0)
+{ after(grammarAccess.getStatemachineAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent
+:
+{ before(grammarAccess.getEventRule()); }
+ ruleEvent
+{ after(grammarAccess.getEventRule()); }
+ EOF
+;
+
+// Rule Event
+ruleEvent
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getEventAccess().getNameAssignment()); }
+(rule__Event__NameAssignment)
+{ after(grammarAccess.getEventAccess().getNameAssignment()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleState
+entryRuleState
+:
+{ before(grammarAccess.getStateRule()); }
+ ruleState
+{ after(grammarAccess.getStateRule()); }
+ EOF
+;
+
+// Rule State
+ruleState
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getStateAccess().getAlternatives()); }
+(rule__State__Alternatives)
+{ after(grammarAccess.getStateAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSimpleState
+entryRuleSimpleState
+:
+{ before(grammarAccess.getSimpleStateRule()); }
+ ruleSimpleState
+{ after(grammarAccess.getSimpleStateRule()); }
+ EOF
+;
+
+// Rule SimpleState
+ruleSimpleState
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getSimpleStateAccess().getGroup()); }
+(rule__SimpleState__Group__0)
+{ after(grammarAccess.getSimpleStateAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleCompoundState
+entryRuleCompoundState
+:
+{ before(grammarAccess.getCompoundStateRule()); }
+ ruleCompoundState
+{ after(grammarAccess.getCompoundStateRule()); }
+ EOF
+;
+
+// Rule CompoundState
+ruleCompoundState
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getCompoundStateAccess().getGroup()); }
+(rule__CompoundState__Group__0)
+{ after(grammarAccess.getCompoundStateAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTransition
+entryRuleTransition
+:
+{ before(grammarAccess.getTransitionRule()); }
+ ruleTransition
+{ after(grammarAccess.getTransitionRule()); }
+ EOF
+;
+
+// Rule Transition
+ruleTransition
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getTransitionAccess().getGroup()); }
+(rule__Transition__Group__0)
+{ after(grammarAccess.getTransitionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__State__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0()); }
+ ruleSimpleState
+{ after(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1()); }
+ ruleCompoundState
+{ after(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+rule__Module__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__0__Impl
+ rule__Module__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getModuleKeyword_0()); }
+
+ 'module'
+
+{ after(grammarAccess.getModuleAccess().getModuleKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__1__Impl
+ rule__Module__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getNameAssignment_1()); }
+(rule__Module__NameAssignment_1)
+{ after(grammarAccess.getModuleAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getMachinesAssignment_2()); }
+(rule__Module__MachinesAssignment_2)*
+{ after(grammarAccess.getModuleAccess().getMachinesAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Statemachine__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__0__Impl
+ rule__Statemachine__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getInitialAssignment_0()); }
+(rule__Statemachine__InitialAssignment_0)?
+{ after(grammarAccess.getStatemachineAccess().getInitialAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__1__Impl
+ rule__Statemachine__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getStatemachineKeyword_1()); }
+
+ 'statemachine'
+
+{ after(grammarAccess.getStatemachineAccess().getStatemachineKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__2__Impl
+ rule__Statemachine__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getNameAssignment_2()); }
+(rule__Statemachine__NameAssignment_2)
+{ after(grammarAccess.getStatemachineAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__3__Impl
+ rule__Statemachine__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getGroup_3()); }
+(rule__Statemachine__Group_3__0)?
+{ after(grammarAccess.getStatemachineAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__4__Impl
+ rule__Statemachine__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4()); }
+
+ '{'
+
+{ after(grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__5__Impl
+ rule__Statemachine__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsKeyword_5()); }
+
+ 'events'
+
+{ after(grammarAccess.getStatemachineAccess().getEventsKeyword_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__6__Impl
+ rule__Statemachine__Group__7
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsAssignment_6()); }
+(rule__Statemachine__EventsAssignment_6)*
+{ after(grammarAccess.getStatemachineAccess().getEventsAssignment_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__7__Impl
+ rule__Statemachine__Group__8
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__7__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getSemicolonKeyword_7()); }
+
+ ';'
+
+{ after(grammarAccess.getStatemachineAccess().getSemicolonKeyword_7()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__8
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__8__Impl
+ rule__Statemachine__Group__9
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__8__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getStatesAssignment_8()); }
+(rule__Statemachine__StatesAssignment_8)*
+{ after(grammarAccess.getStatemachineAccess().getStatesAssignment_8()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__9
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__9__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__9__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9()); }
+
+ '}'
+
+{ after(grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Statemachine__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_3__0__Impl
+ rule__Statemachine__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getValueKeyword_3_0()); }
+
+ 'value'
+
+{ after(grammarAccess.getStatemachineAccess().getValueKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getValueAssignment_3_1()); }
+(rule__Statemachine__ValueAssignment_3_1)
+{ after(grammarAccess.getStatemachineAccess().getValueAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SimpleState__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__0__Impl
+ rule__SimpleState__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getInitialAssignment_0()); }
+(rule__SimpleState__InitialAssignment_0)?
+{ after(grammarAccess.getSimpleStateAccess().getInitialAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__1__Impl
+ rule__SimpleState__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getStateKeyword_1()); }
+
+ 'state'
+
+{ after(grammarAccess.getSimpleStateAccess().getStateKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__2__Impl
+ rule__SimpleState__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getNameAssignment_2()); }
+(rule__SimpleState__NameAssignment_2)
+{ after(grammarAccess.getSimpleStateAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__3__Impl
+ rule__SimpleState__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getGroup_3()); }
+(rule__SimpleState__Group_3__0)?
+{ after(grammarAccess.getSimpleStateAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__4__Impl
+ rule__SimpleState__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4()); }
+
+ '{'
+
+{ after(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__5__Impl
+ rule__SimpleState__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5()); }
+(rule__SimpleState__TransitionsAssignment_5)*
+{ after(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6()); }
+
+ '}'
+
+{ after(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SimpleState__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group_3__0__Impl
+ rule__SimpleState__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getValueKeyword_3_0()); }
+
+ 'value'
+
+{ after(grammarAccess.getSimpleStateAccess().getValueKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__SimpleState__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__SimpleState__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1()); }
+(rule__SimpleState__ValueAssignment_3_1)
+{ after(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__CompoundState__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__0__Impl
+ rule__CompoundState__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getCompoundKeyword_0()); }
+
+ 'compound'
+
+{ after(grammarAccess.getCompoundStateAccess().getCompoundKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__1__Impl
+ rule__CompoundState__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getInitialAssignment_1()); }
+(rule__CompoundState__InitialAssignment_1)?
+{ after(grammarAccess.getCompoundStateAccess().getInitialAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__2__Impl
+ rule__CompoundState__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getStateKeyword_2()); }
+
+ 'state'
+
+{ after(grammarAccess.getCompoundStateAccess().getStateKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__3__Impl
+ rule__CompoundState__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getNameAssignment_3()); }
+(rule__CompoundState__NameAssignment_3)
+{ after(grammarAccess.getCompoundStateAccess().getNameAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__4__Impl
+ rule__CompoundState__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getMachineKeyword_4()); }
+
+ 'machine'
+
+{ after(grammarAccess.getCompoundStateAccess().getMachineKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__5__Impl
+ rule__CompoundState__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getMachineAssignment_5()); }
+(rule__CompoundState__MachineAssignment_5)
+{ after(grammarAccess.getCompoundStateAccess().getMachineAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__6__Impl
+ rule__CompoundState__Group__7
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6()); }
+
+ '{'
+
+{ after(grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__7__Impl
+ rule__CompoundState__Group__8
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__7__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7()); }
+(rule__CompoundState__TransitionsAssignment_7)*
+{ after(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__CompoundState__Group__8
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__CompoundState__Group__8__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__Group__8__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8()); }
+
+ '}'
+
+{ after(grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Transition__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__0__Impl
+ rule__Transition__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getEventAssignment_0()); }
+(rule__Transition__EventAssignment_0)
+{ after(grammarAccess.getTransitionAccess().getEventAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Transition__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__1__Impl
+ rule__Transition__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+
+ '=>'
+
+{ after(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Transition__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getStateAssignment_2()); }
+(rule__Transition__StateAssignment_2)
+{ after(grammarAccess.getTransitionAccess().getStateAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+rule__Module__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0()); }
+ RULE_STRING{ after(grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__MachinesAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0()); }
+ ruleStatemachine{ after(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__InitialAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0()); }
+(
+{ before(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0()); }
+
+ 'initial'
+
+{ after(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0()); }
+ RULE_ID{ after(grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__ValueAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0()); }
+ RULE_INT{ after(grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__EventsAssignment_6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0()); }
+ ruleEvent{ after(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__StatesAssignment_8
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0()); }
+ ruleState{ after(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Event__NameAssignment
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0()); }
+ RULE_ID{ after(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__InitialAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0()); }
+(
+{ before(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0()); }
+
+ 'initial'
+
+{ after(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__NameAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0()); }
+ RULE_ID{ after(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__ValueAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0()); }
+ RULE_INT{ after(grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__SimpleState__TransitionsAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0()); }
+ ruleTransition{ after(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__InitialAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0()); }
+(
+{ before(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0()); }
+
+ 'initial'
+
+{ after(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0()); }
+)
+
+{ after(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__NameAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0()); }
+ RULE_ID{ after(grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__MachineAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0()); }
+(
+{ before(grammarAccess.getCompoundStateAccess().getMachineStatemachineIDTerminalRuleCall_5_0_1()); }
+ RULE_ID{ after(grammarAccess.getCompoundStateAccess().getMachineStatemachineIDTerminalRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__CompoundState__TransitionsAssignment_7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0()); }
+ ruleTransition{ after(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__EventAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0()); }
+(
+{ before(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1()); }
+ RULE_ID{ after(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1()); }
+)
+{ after(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__StateAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0()); }
+(
+{ before(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1()); }
+ RULE_ID{ after(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.tokens b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.tokens
new file mode 100644
index 0000000..3b8877f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.tokens
@@ -0,0 +1,31 @@
+RULE_ML_COMMENT=7
+T__12=12
+RULE_ID=5
+T__20=20
+T__13=13
+RULE_STRING=4
+T__21=21
+T__19=19
+T__14=14
+T__11=11
+T__22=22
+RULE_WS=9
+T__17=17
+RULE_INT=6
+T__16=16
+RULE_ANY_OTHER=10
+RULE_SL_COMMENT=8
+T__18=18
+T__15=15
+'statemachine'=12
+'module'=11
+'initial'=22
+'value'=17
+'compound'=19
+'events'=14
+'=>'=21
+'state'=18
+'machine'=20
+'}'=16
+';'=15
+'{'=13
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStatesLexer.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStatesLexer.java
new file mode 100644
index 0000000..ab50c40
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStatesLexer.java
@@ -0,0 +1,1183 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.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 InternalOCLStatesLexer extends Lexer {
+ public static final int RULE_ML_COMMENT=7;
+ public static final int RULE_ID=5;
+ public static final int T__12=12;
+ public static final int T__20=20;
+ public static final int T__13=13;
+ public static final int RULE_STRING=4;
+ public static final int T__21=21;
+ public static final int T__19=19;
+ public static final int T__14=14;
+ public static final int T__11=11;
+ public static final int T__22=22;
+ public static final int RULE_WS=9;
+ public static final int T__17=17;
+ public static final int EOF=-1;
+ public static final int RULE_INT=6;
+ public static final int T__16=16;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__18=18;
+ public static final int T__15=15;
+
+ // delegates
+ // delegators
+
+ public InternalOCLStatesLexer() {;}
+ public InternalOCLStatesLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalOCLStatesLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:11:7: ( 'module' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:11:9: 'module'
+ {
+ match("module");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__11"
+
+ // $ANTLR start "T__12"
+ public final void mT__12() throws RecognitionException {
+ try {
+ int _type = T__12;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:12:7: ( 'statemachine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:12:9: 'statemachine'
+ {
+ match("statemachine");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__12"
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:13:7: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:13:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:14:7: ( 'events' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:14:9: 'events'
+ {
+ match("events");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:15:7: ( ';' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:15:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:16:7: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:16:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:17:7: ( 'value' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:17:9: 'value'
+ {
+ match("value");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:18:7: ( 'state' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:18:9: 'state'
+ {
+ match("state");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:19:7: ( 'compound' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:19:9: 'compound'
+ {
+ match("compound");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "T__20"
+ public final void mT__20() throws RecognitionException {
+ try {
+ int _type = T__20;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:20:7: ( 'machine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:20:9: 'machine'
+ {
+ match("machine");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "T__21"
+ public final void mT__21() throws RecognitionException {
+ try {
+ int _type = T__21;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:21:7: ( '=>' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:21:9: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__21"
+
+ // $ANTLR start "T__22"
+ public final void mT__22() throws RecognitionException {
+ try {
+ int _type = T__22;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:22:7: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:22:9: 'initial'
+ {
+ match("initial");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__22"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1732:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1732:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1732:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1732:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1732:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1734:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1734:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1734:12: ( '0' .. '9' )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1734:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\"') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='\'') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop4:
+ do {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='\\') ) {
+ alt4=1;
+ }
+ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+ alt4=2;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:66: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop5:
+ do {
+ int alt5=3;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\\') ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+ alt5=2;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1736:137: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1738:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1738:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1738:24: ( options {greedy=false; } : . )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='*') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1=='/') ) {
+ alt7=2;
+ }
+ else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1738:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1740:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1740:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1740:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1740:24: ~ ( ( '\\n' | '\\r' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1740:40: ( ( '\\r' )? '\\n' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1740:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1740:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1740:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1742:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1742:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1742:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt11=0;
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt11 >= 1 ) break loop11;
+ EarlyExitException eee =
+ new EarlyExitException(11, input);
+ throw eee;
+ }
+ cnt11++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1744:16: ( . )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1744:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=19;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:70: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:76: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:82: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:90: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:99: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:111: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:127: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:143: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1:151: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\2\25\1\uffff\1\25\2\uffff\2\25\1\22\1\25\1\22\2\uffff"+
+ "\3\22\2\uffff\2\25\1\uffff\1\25\1\uffff\1\25\2\uffff\2\25\1\uffff"+
+ "\1\25\5\uffff\20\25\1\74\1\25\1\76\2\25\1\101\2\25\1\uffff\1\104"+
+ "\1\uffff\2\25\1\uffff\1\107\1\25\1\uffff\1\25\1\112\1\uffff\1\25"+
+ "\1\114\1\uffff\1\25\1\uffff\2\25\1\120\1\uffff";
+ static final String DFA12_eofS =
+ "\121\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\141\1\164\1\uffff\1\166\2\uffff\1\141\1\157\1\76\1\156\1"+
+ "\101\2\uffff\2\0\1\52\2\uffff\1\144\1\143\1\uffff\1\141\1\uffff"+
+ "\1\145\2\uffff\1\154\1\155\1\uffff\1\151\5\uffff\1\165\1\150\1\164"+
+ "\1\156\1\165\1\160\1\164\1\154\1\151\1\145\1\164\1\145\1\157\1\151"+
+ "\1\145\1\156\1\60\1\163\1\60\1\165\1\141\1\60\1\145\1\141\1\uffff"+
+ "\1\60\1\uffff\1\156\1\154\1\uffff\1\60\1\143\1\uffff\1\144\1\60"+
+ "\1\uffff\1\150\1\60\1\uffff\1\151\1\uffff\1\156\1\145\1\60\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\157\1\164\1\uffff\1\166\2\uffff\1\141\1\157\1\76\1\156"+
+ "\1\172\2\uffff\2\uffff\1\57\2\uffff\1\144\1\143\1\uffff\1\141\1"+
+ "\uffff\1\145\2\uffff\1\154\1\155\1\uffff\1\151\5\uffff\1\165\1\150"+
+ "\1\164\1\156\1\165\1\160\1\164\1\154\1\151\1\145\1\164\1\145\1\157"+
+ "\1\151\1\145\1\156\1\172\1\163\1\172\1\165\1\141\1\172\1\145\1\141"+
+ "\1\uffff\1\172\1\uffff\1\156\1\154\1\uffff\1\172\1\143\1\uffff\1"+
+ "\144\1\172\1\uffff\1\150\1\172\1\uffff\1\151\1\uffff\1\156\1\145"+
+ "\1\172\1\uffff";
+ static final String DFA12_acceptS =
+ "\3\uffff\1\3\1\uffff\1\5\1\6\5\uffff\1\15\1\16\3\uffff\1\22\1\23"+
+ "\2\uffff\1\15\1\uffff\1\3\1\uffff\1\5\1\6\2\uffff\1\13\1\uffff\1"+
+ "\16\1\17\1\20\1\21\1\22\30\uffff\1\10\1\uffff\1\7\2\uffff\1\1\2"+
+ "\uffff\1\4\2\uffff\1\12\2\uffff\1\14\1\uffff\1\11\3\uffff\1\2";
+ static final String DFA12_specialS =
+ "\1\1\15\uffff\1\2\1\0\101\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\22\2\21\2\22\1\21\22\22\1\21\1\22\1\16\4\22\1\17\7\22\1"+
+ "\20\12\15\1\22\1\5\1\22\1\11\3\22\32\14\3\22\1\13\1\14\1\22"+
+ "\2\14\1\10\1\14\1\4\3\14\1\12\3\14\1\1\5\14\1\2\2\14\1\7\4\14"+
+ "\1\3\1\22\1\6\uff82\22",
+ "\1\24\15\uffff\1\23",
+ "\1\26",
+ "",
+ "\1\30",
+ "",
+ "",
+ "\1\33",
+ "\1\34",
+ "\1\35",
+ "\1\36",
+ "\32\25\4\uffff\1\25\1\uffff\32\25",
+ "",
+ "",
+ "\0\40",
+ "\0\40",
+ "\1\41\4\uffff\1\42",
+ "",
+ "",
+ "\1\44",
+ "\1\45",
+ "",
+ "\1\46",
+ "",
+ "\1\47",
+ "",
+ "",
+ "\1\50",
+ "\1\51",
+ "",
+ "\1\52",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\53",
+ "\1\54",
+ "\1\55",
+ "\1\56",
+ "\1\57",
+ "\1\60",
+ "\1\61",
+ "\1\62",
+ "\1\63",
+ "\1\64",
+ "\1\65",
+ "\1\66",
+ "\1\67",
+ "\1\70",
+ "\1\71",
+ "\1\72",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\14\25\1\73\15\25",
+ "\1\75",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "\1\77",
+ "\1\100",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "\1\102",
+ "\1\103",
+ "",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "",
+ "\1\105",
+ "\1\106",
+ "",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "\1\110",
+ "",
+ "\1\111",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "",
+ "\1\113",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "",
+ "\1\115",
+ "",
+ "\1\116",
+ "\1\117",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ ""
+ };
+
+ static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+ static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+ static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+ static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+ static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+ static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+ static final short[][] DFA12_transition;
+
+ static {
+ int numStates = DFA12_transitionS.length;
+ DFA12_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+ }
+ }
+
+ class DFA12 extends DFA {
+
+ public DFA12(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 12;
+ this.eot = DFA12_eot;
+ this.eof = DFA12_eof;
+ this.min = DFA12_min;
+ this.max = DFA12_max;
+ this.accept = DFA12_accept;
+ this.special = DFA12_special;
+ this.transition = DFA12_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ IntStream input = _input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA12_15 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_15>='\u0000' && LA12_15<='\uFFFF')) ) {s = 32;}
+
+ else s = 18;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='m') ) {s = 1;}
+
+ else if ( (LA12_0=='s') ) {s = 2;}
+
+ else if ( (LA12_0=='{') ) {s = 3;}
+
+ else if ( (LA12_0=='e') ) {s = 4;}
+
+ else if ( (LA12_0==';') ) {s = 5;}
+
+ else if ( (LA12_0=='}') ) {s = 6;}
+
+ else if ( (LA12_0=='v') ) {s = 7;}
+
+ else if ( (LA12_0=='c') ) {s = 8;}
+
+ else if ( (LA12_0=='=') ) {s = 9;}
+
+ else if ( (LA12_0=='i') ) {s = 10;}
+
+ else if ( (LA12_0=='^') ) {s = 11;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='b')||LA12_0=='d'||(LA12_0>='f' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='l')||(LA12_0>='n' && LA12_0<='r')||(LA12_0>='t' && LA12_0<='u')||(LA12_0>='w' && LA12_0<='z')) ) {s = 12;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 13;}
+
+ else if ( (LA12_0=='\"') ) {s = 14;}
+
+ else if ( (LA12_0=='\'') ) {s = 15;}
+
+ else if ( (LA12_0=='/') ) {s = 16;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 17;}
+
+ else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='.')||LA12_0==':'||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 18;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_14 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_14>='\u0000' && LA12_14<='\uFFFF')) ) {s = 32;}
+
+ else s = 18;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 12, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStatesParser.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStatesParser.java
new file mode 100644
index 0000000..635c012
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStatesParser.java
@@ -0,0 +1,4585 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.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.xtext.parsetree.*;
+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.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalOCLStatesParser extends AbstractInternalContentAssistParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'module'", "'statemachine'", "'{'", "'events'", "';'", "'}'", "'value'", "'state'", "'compound'", "'machine'", "'=>'", "'initial'"
+ };
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__12=12;
+ public static final int RULE_ID=5;
+ public static final int T__20=20;
+ public static final int T__13=13;
+ public static final int RULE_STRING=4;
+ public static final int T__21=21;
+ public static final int T__19=19;
+ public static final int T__14=14;
+ public static final int T__11=11;
+ public static final int T__22=22;
+ public static final int RULE_WS=9;
+ public static final int T__17=17;
+ public static final int EOF=-1;
+ public static final int RULE_INT=6;
+ public static final int T__16=16;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__18=18;
+ public static final int T__15=15;
+
+ // delegates
+ // delegators
+
+
+ public InternalOCLStatesParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalOCLStatesParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalOCLStatesParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g"; }
+
+
+
+ private OCLStatesGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(OCLStatesGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+
+
+
+ // $ANTLR start "entryRuleModule"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:61:1: entryRuleModule : ruleModule EOF ;
+ public final void entryRuleModule() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:62:1: ( ruleModule EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:63:1: ruleModule EOF
+ {
+ before(grammarAccess.getModuleRule());
+ pushFollow(FOLLOW_ruleModule_in_entryRuleModule61);
+ ruleModule();
+
+ state._fsp--;
+
+ after(grammarAccess.getModuleRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModule68);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleModule"
+
+
+ // $ANTLR start "ruleModule"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:70:1: ruleModule : ( ( rule__Module__Group__0 ) ) ;
+ public final void ruleModule() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:74:2: ( ( ( rule__Module__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:75:1: ( ( rule__Module__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:75:1: ( ( rule__Module__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:76:1: ( rule__Module__Group__0 )
+ {
+ before(grammarAccess.getModuleAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:77:1: ( rule__Module__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:77:2: rule__Module__Group__0
+ {
+ pushFollow(FOLLOW_rule__Module__Group__0_in_ruleModule94);
+ rule__Module__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getModuleAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleModule"
+
+
+ // $ANTLR start "entryRuleStatemachine"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:89:1: entryRuleStatemachine : ruleStatemachine EOF ;
+ public final void entryRuleStatemachine() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:90:1: ( ruleStatemachine EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:91:1: ruleStatemachine EOF
+ {
+ before(grammarAccess.getStatemachineRule());
+ pushFollow(FOLLOW_ruleStatemachine_in_entryRuleStatemachine121);
+ ruleStatemachine();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStatemachine128);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleStatemachine"
+
+
+ // $ANTLR start "ruleStatemachine"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:98:1: ruleStatemachine : ( ( rule__Statemachine__Group__0 ) ) ;
+ public final void ruleStatemachine() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:102:2: ( ( ( rule__Statemachine__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:103:1: ( ( rule__Statemachine__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:103:1: ( ( rule__Statemachine__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:104:1: ( rule__Statemachine__Group__0 )
+ {
+ before(grammarAccess.getStatemachineAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:105:1: ( rule__Statemachine__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:105:2: rule__Statemachine__Group__0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__0_in_ruleStatemachine154);
+ rule__Statemachine__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleStatemachine"
+
+
+ // $ANTLR start "entryRuleEvent"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:117:1: entryRuleEvent : ruleEvent EOF ;
+ public final void entryRuleEvent() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:118:1: ( ruleEvent EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:119:1: ruleEvent EOF
+ {
+ before(grammarAccess.getEventRule());
+ pushFollow(FOLLOW_ruleEvent_in_entryRuleEvent181);
+ ruleEvent();
+
+ state._fsp--;
+
+ after(grammarAccess.getEventRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEvent188);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleEvent"
+
+
+ // $ANTLR start "ruleEvent"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:126:1: ruleEvent : ( ( rule__Event__NameAssignment ) ) ;
+ public final void ruleEvent() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:130:2: ( ( ( rule__Event__NameAssignment ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:131:1: ( ( rule__Event__NameAssignment ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:131:1: ( ( rule__Event__NameAssignment ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:132:1: ( rule__Event__NameAssignment )
+ {
+ before(grammarAccess.getEventAccess().getNameAssignment());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:133:1: ( rule__Event__NameAssignment )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:133:2: rule__Event__NameAssignment
+ {
+ pushFollow(FOLLOW_rule__Event__NameAssignment_in_ruleEvent214);
+ rule__Event__NameAssignment();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getEventAccess().getNameAssignment());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleEvent"
+
+
+ // $ANTLR start "entryRuleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:145:1: entryRuleState : ruleState EOF ;
+ public final void entryRuleState() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:146:1: ( ruleState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:147:1: ruleState EOF
+ {
+ before(grammarAccess.getStateRule());
+ pushFollow(FOLLOW_ruleState_in_entryRuleState241);
+ ruleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleState248);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleState"
+
+
+ // $ANTLR start "ruleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:154:1: ruleState : ( ( rule__State__Alternatives ) ) ;
+ public final void ruleState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:158:2: ( ( ( rule__State__Alternatives ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:159:1: ( ( rule__State__Alternatives ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:159:1: ( ( rule__State__Alternatives ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:160:1: ( rule__State__Alternatives )
+ {
+ before(grammarAccess.getStateAccess().getAlternatives());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:161:1: ( rule__State__Alternatives )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:161:2: rule__State__Alternatives
+ {
+ pushFollow(FOLLOW_rule__State__Alternatives_in_ruleState274);
+ rule__State__Alternatives();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStateAccess().getAlternatives());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleState"
+
+
+ // $ANTLR start "entryRuleSimpleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:173:1: entryRuleSimpleState : ruleSimpleState EOF ;
+ public final void entryRuleSimpleState() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:174:1: ( ruleSimpleState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:175:1: ruleSimpleState EOF
+ {
+ before(grammarAccess.getSimpleStateRule());
+ pushFollow(FOLLOW_ruleSimpleState_in_entryRuleSimpleState301);
+ ruleSimpleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getSimpleStateRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleState308);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSimpleState"
+
+
+ // $ANTLR start "ruleSimpleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:182:1: ruleSimpleState : ( ( rule__SimpleState__Group__0 ) ) ;
+ public final void ruleSimpleState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:186:2: ( ( ( rule__SimpleState__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:187:1: ( ( rule__SimpleState__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:187:1: ( ( rule__SimpleState__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:188:1: ( rule__SimpleState__Group__0 )
+ {
+ before(grammarAccess.getSimpleStateAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:189:1: ( rule__SimpleState__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:189:2: rule__SimpleState__Group__0
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__0_in_ruleSimpleState334);
+ rule__SimpleState__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSimpleState"
+
+
+ // $ANTLR start "entryRuleCompoundState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:201:1: entryRuleCompoundState : ruleCompoundState EOF ;
+ public final void entryRuleCompoundState() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:202:1: ( ruleCompoundState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:203:1: ruleCompoundState EOF
+ {
+ before(grammarAccess.getCompoundStateRule());
+ pushFollow(FOLLOW_ruleCompoundState_in_entryRuleCompoundState361);
+ ruleCompoundState();
+
+ state._fsp--;
+
+ after(grammarAccess.getCompoundStateRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleCompoundState368);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCompoundState"
+
+
+ // $ANTLR start "ruleCompoundState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:210:1: ruleCompoundState : ( ( rule__CompoundState__Group__0 ) ) ;
+ public final void ruleCompoundState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:214:2: ( ( ( rule__CompoundState__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:215:1: ( ( rule__CompoundState__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:215:1: ( ( rule__CompoundState__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:216:1: ( rule__CompoundState__Group__0 )
+ {
+ before(grammarAccess.getCompoundStateAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:217:1: ( rule__CompoundState__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:217:2: rule__CompoundState__Group__0
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__0_in_ruleCompoundState394);
+ rule__CompoundState__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCompoundState"
+
+
+ // $ANTLR start "entryRuleTransition"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:229:1: entryRuleTransition : ruleTransition EOF ;
+ public final void entryRuleTransition() throws RecognitionException {
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:230:1: ( ruleTransition EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:231:1: ruleTransition EOF
+ {
+ before(grammarAccess.getTransitionRule());
+ pushFollow(FOLLOW_ruleTransition_in_entryRuleTransition421);
+ ruleTransition();
+
+ state._fsp--;
+
+ after(grammarAccess.getTransitionRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTransition428);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleTransition"
+
+
+ // $ANTLR start "ruleTransition"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:238:1: ruleTransition : ( ( rule__Transition__Group__0 ) ) ;
+ public final void ruleTransition() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:242:2: ( ( ( rule__Transition__Group__0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:243:1: ( ( rule__Transition__Group__0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:243:1: ( ( rule__Transition__Group__0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:244:1: ( rule__Transition__Group__0 )
+ {
+ before(grammarAccess.getTransitionAccess().getGroup());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:245:1: ( rule__Transition__Group__0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:245:2: rule__Transition__Group__0
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__0_in_ruleTransition454);
+ rule__Transition__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleTransition"
+
+
+ // $ANTLR start "rule__State__Alternatives"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:257:1: rule__State__Alternatives : ( ( ruleSimpleState ) | ( ruleCompoundState ) );
+ public final void rule__State__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:261:1: ( ( ruleSimpleState ) | ( ruleCompoundState ) )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==18||LA1_0==22) ) {
+ alt1=1;
+ }
+ else if ( (LA1_0==19) ) {
+ alt1=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:262:1: ( ruleSimpleState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:262:1: ( ruleSimpleState )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:263:1: ruleSimpleState
+ {
+ before(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0());
+ pushFollow(FOLLOW_ruleSimpleState_in_rule__State__Alternatives490);
+ ruleSimpleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0());
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:268:6: ( ruleCompoundState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:268:6: ( ruleCompoundState )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:269:1: ruleCompoundState
+ {
+ before(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1());
+ pushFollow(FOLLOW_ruleCompoundState_in_rule__State__Alternatives507);
+ ruleCompoundState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1());
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Alternatives"
+
+
+ // $ANTLR start "rule__Module__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:281:1: rule__Module__Group__0 : rule__Module__Group__0__Impl rule__Module__Group__1 ;
+ public final void rule__Module__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:285:1: ( rule__Module__Group__0__Impl rule__Module__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:286:2: rule__Module__Group__0__Impl rule__Module__Group__1
+ {
+ pushFollow(FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__0537);
+ rule__Module__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Module__Group__1_in_rule__Module__Group__0540);
+ rule__Module__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__0"
+
+
+ // $ANTLR start "rule__Module__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:293:1: rule__Module__Group__0__Impl : ( 'module' ) ;
+ public final void rule__Module__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:297:1: ( ( 'module' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:298:1: ( 'module' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:298:1: ( 'module' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:299:1: 'module'
+ {
+ before(grammarAccess.getModuleAccess().getModuleKeyword_0());
+ match(input,11,FOLLOW_11_in_rule__Module__Group__0__Impl568);
+ after(grammarAccess.getModuleAccess().getModuleKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:312:1: rule__Module__Group__1 : rule__Module__Group__1__Impl rule__Module__Group__2 ;
+ public final void rule__Module__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:316:1: ( rule__Module__Group__1__Impl rule__Module__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:317:2: rule__Module__Group__1__Impl rule__Module__Group__2
+ {
+ pushFollow(FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__1599);
+ rule__Module__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Module__Group__2_in_rule__Module__Group__1602);
+ rule__Module__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__1"
+
+
+ // $ANTLR start "rule__Module__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:324:1: rule__Module__Group__1__Impl : ( ( rule__Module__NameAssignment_1 ) ) ;
+ public final void rule__Module__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:328:1: ( ( ( rule__Module__NameAssignment_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:329:1: ( ( rule__Module__NameAssignment_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:329:1: ( ( rule__Module__NameAssignment_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:330:1: ( rule__Module__NameAssignment_1 )
+ {
+ before(grammarAccess.getModuleAccess().getNameAssignment_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:331:1: ( rule__Module__NameAssignment_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:331:2: rule__Module__NameAssignment_1
+ {
+ pushFollow(FOLLOW_rule__Module__NameAssignment_1_in_rule__Module__Group__1__Impl629);
+ rule__Module__NameAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getModuleAccess().getNameAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:341:1: rule__Module__Group__2 : rule__Module__Group__2__Impl ;
+ public final void rule__Module__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:345:1: ( rule__Module__Group__2__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:346:2: rule__Module__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__2659);
+ rule__Module__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__2"
+
+
+ // $ANTLR start "rule__Module__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:352:1: rule__Module__Group__2__Impl : ( ( rule__Module__MachinesAssignment_2 )* ) ;
+ public final void rule__Module__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:356:1: ( ( ( rule__Module__MachinesAssignment_2 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:357:1: ( ( rule__Module__MachinesAssignment_2 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:357:1: ( ( rule__Module__MachinesAssignment_2 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:358:1: ( rule__Module__MachinesAssignment_2 )*
+ {
+ before(grammarAccess.getModuleAccess().getMachinesAssignment_2());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:359:1: ( rule__Module__MachinesAssignment_2 )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==12||LA2_0==22) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:359:2: rule__Module__MachinesAssignment_2
+ {
+ pushFollow(FOLLOW_rule__Module__MachinesAssignment_2_in_rule__Module__Group__2__Impl686);
+ rule__Module__MachinesAssignment_2();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+ after(grammarAccess.getModuleAccess().getMachinesAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:375:1: rule__Statemachine__Group__0 : rule__Statemachine__Group__0__Impl rule__Statemachine__Group__1 ;
+ public final void rule__Statemachine__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:379:1: ( rule__Statemachine__Group__0__Impl rule__Statemachine__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:380:2: rule__Statemachine__Group__0__Impl rule__Statemachine__Group__1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__0__Impl_in_rule__Statemachine__Group__0723);
+ rule__Statemachine__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__1_in_rule__Statemachine__Group__0726);
+ rule__Statemachine__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__0"
+
+
+ // $ANTLR start "rule__Statemachine__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:387:1: rule__Statemachine__Group__0__Impl : ( ( rule__Statemachine__InitialAssignment_0 )? ) ;
+ public final void rule__Statemachine__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:391:1: ( ( ( rule__Statemachine__InitialAssignment_0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:392:1: ( ( rule__Statemachine__InitialAssignment_0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:392:1: ( ( rule__Statemachine__InitialAssignment_0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:393:1: ( rule__Statemachine__InitialAssignment_0 )?
+ {
+ before(grammarAccess.getStatemachineAccess().getInitialAssignment_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:394:1: ( rule__Statemachine__InitialAssignment_0 )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==22) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:394:2: rule__Statemachine__InitialAssignment_0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__InitialAssignment_0_in_rule__Statemachine__Group__0__Impl753);
+ rule__Statemachine__InitialAssignment_0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getInitialAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:404:1: rule__Statemachine__Group__1 : rule__Statemachine__Group__1__Impl rule__Statemachine__Group__2 ;
+ public final void rule__Statemachine__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:408:1: ( rule__Statemachine__Group__1__Impl rule__Statemachine__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:409:2: rule__Statemachine__Group__1__Impl rule__Statemachine__Group__2
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__1__Impl_in_rule__Statemachine__Group__1784);
+ rule__Statemachine__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__2_in_rule__Statemachine__Group__1787);
+ rule__Statemachine__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__1"
+
+
+ // $ANTLR start "rule__Statemachine__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:416:1: rule__Statemachine__Group__1__Impl : ( 'statemachine' ) ;
+ public final void rule__Statemachine__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:420:1: ( ( 'statemachine' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:421:1: ( 'statemachine' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:421:1: ( 'statemachine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:422:1: 'statemachine'
+ {
+ before(grammarAccess.getStatemachineAccess().getStatemachineKeyword_1());
+ match(input,12,FOLLOW_12_in_rule__Statemachine__Group__1__Impl815);
+ after(grammarAccess.getStatemachineAccess().getStatemachineKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:435:1: rule__Statemachine__Group__2 : rule__Statemachine__Group__2__Impl rule__Statemachine__Group__3 ;
+ public final void rule__Statemachine__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:439:1: ( rule__Statemachine__Group__2__Impl rule__Statemachine__Group__3 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:440:2: rule__Statemachine__Group__2__Impl rule__Statemachine__Group__3
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__2__Impl_in_rule__Statemachine__Group__2846);
+ rule__Statemachine__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__3_in_rule__Statemachine__Group__2849);
+ rule__Statemachine__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__2"
+
+
+ // $ANTLR start "rule__Statemachine__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:447:1: rule__Statemachine__Group__2__Impl : ( ( rule__Statemachine__NameAssignment_2 ) ) ;
+ public final void rule__Statemachine__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:451:1: ( ( ( rule__Statemachine__NameAssignment_2 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:452:1: ( ( rule__Statemachine__NameAssignment_2 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:452:1: ( ( rule__Statemachine__NameAssignment_2 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:453:1: ( rule__Statemachine__NameAssignment_2 )
+ {
+ before(grammarAccess.getStatemachineAccess().getNameAssignment_2());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:454:1: ( rule__Statemachine__NameAssignment_2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:454:2: rule__Statemachine__NameAssignment_2
+ {
+ pushFollow(FOLLOW_rule__Statemachine__NameAssignment_2_in_rule__Statemachine__Group__2__Impl876);
+ rule__Statemachine__NameAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getNameAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__3"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:464:1: rule__Statemachine__Group__3 : rule__Statemachine__Group__3__Impl rule__Statemachine__Group__4 ;
+ public final void rule__Statemachine__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:468:1: ( rule__Statemachine__Group__3__Impl rule__Statemachine__Group__4 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:469:2: rule__Statemachine__Group__3__Impl rule__Statemachine__Group__4
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__3__Impl_in_rule__Statemachine__Group__3906);
+ rule__Statemachine__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__4_in_rule__Statemachine__Group__3909);
+ rule__Statemachine__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__3"
+
+
+ // $ANTLR start "rule__Statemachine__Group__3__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:476:1: rule__Statemachine__Group__3__Impl : ( ( rule__Statemachine__Group_3__0 )? ) ;
+ public final void rule__Statemachine__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:480:1: ( ( ( rule__Statemachine__Group_3__0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:481:1: ( ( rule__Statemachine__Group_3__0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:481:1: ( ( rule__Statemachine__Group_3__0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:482:1: ( rule__Statemachine__Group_3__0 )?
+ {
+ before(grammarAccess.getStatemachineAccess().getGroup_3());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:483:1: ( rule__Statemachine__Group_3__0 )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==17) ) {
+ alt4=1;
+ }
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:483:2: rule__Statemachine__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__0_in_rule__Statemachine__Group__3__Impl936);
+ rule__Statemachine__Group_3__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getGroup_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__4"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:493:1: rule__Statemachine__Group__4 : rule__Statemachine__Group__4__Impl rule__Statemachine__Group__5 ;
+ public final void rule__Statemachine__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:497:1: ( rule__Statemachine__Group__4__Impl rule__Statemachine__Group__5 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:498:2: rule__Statemachine__Group__4__Impl rule__Statemachine__Group__5
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__4__Impl_in_rule__Statemachine__Group__4967);
+ rule__Statemachine__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__5_in_rule__Statemachine__Group__4970);
+ rule__Statemachine__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__4"
+
+
+ // $ANTLR start "rule__Statemachine__Group__4__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:505:1: rule__Statemachine__Group__4__Impl : ( '{' ) ;
+ public final void rule__Statemachine__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:509:1: ( ( '{' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:510:1: ( '{' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:510:1: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:511:1: '{'
+ {
+ before(grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4());
+ match(input,13,FOLLOW_13_in_rule__Statemachine__Group__4__Impl998);
+ after(grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:524:1: rule__Statemachine__Group__5 : rule__Statemachine__Group__5__Impl rule__Statemachine__Group__6 ;
+ public final void rule__Statemachine__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:528:1: ( rule__Statemachine__Group__5__Impl rule__Statemachine__Group__6 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:529:2: rule__Statemachine__Group__5__Impl rule__Statemachine__Group__6
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__5__Impl_in_rule__Statemachine__Group__51029);
+ rule__Statemachine__Group__5__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__6_in_rule__Statemachine__Group__51032);
+ rule__Statemachine__Group__6();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__5"
+
+
+ // $ANTLR start "rule__Statemachine__Group__5__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:536:1: rule__Statemachine__Group__5__Impl : ( 'events' ) ;
+ public final void rule__Statemachine__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:540:1: ( ( 'events' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:541:1: ( 'events' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:541:1: ( 'events' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:542:1: 'events'
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsKeyword_5());
+ match(input,14,FOLLOW_14_in_rule__Statemachine__Group__5__Impl1060);
+ after(grammarAccess.getStatemachineAccess().getEventsKeyword_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__6"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:555:1: rule__Statemachine__Group__6 : rule__Statemachine__Group__6__Impl rule__Statemachine__Group__7 ;
+ public final void rule__Statemachine__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:559:1: ( rule__Statemachine__Group__6__Impl rule__Statemachine__Group__7 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:560:2: rule__Statemachine__Group__6__Impl rule__Statemachine__Group__7
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__6__Impl_in_rule__Statemachine__Group__61091);
+ rule__Statemachine__Group__6__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__7_in_rule__Statemachine__Group__61094);
+ rule__Statemachine__Group__7();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__6"
+
+
+ // $ANTLR start "rule__Statemachine__Group__6__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:567:1: rule__Statemachine__Group__6__Impl : ( ( rule__Statemachine__EventsAssignment_6 )* ) ;
+ public final void rule__Statemachine__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:571:1: ( ( ( rule__Statemachine__EventsAssignment_6 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:572:1: ( ( rule__Statemachine__EventsAssignment_6 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:572:1: ( ( rule__Statemachine__EventsAssignment_6 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:573:1: ( rule__Statemachine__EventsAssignment_6 )*
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsAssignment_6());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:574:1: ( rule__Statemachine__EventsAssignment_6 )*
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_ID) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:574:2: rule__Statemachine__EventsAssignment_6
+ {
+ pushFollow(FOLLOW_rule__Statemachine__EventsAssignment_6_in_rule__Statemachine__Group__6__Impl1121);
+ rule__Statemachine__EventsAssignment_6();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ after(grammarAccess.getStatemachineAccess().getEventsAssignment_6());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__6__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__7"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:584:1: rule__Statemachine__Group__7 : rule__Statemachine__Group__7__Impl rule__Statemachine__Group__8 ;
+ public final void rule__Statemachine__Group__7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:588:1: ( rule__Statemachine__Group__7__Impl rule__Statemachine__Group__8 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:589:2: rule__Statemachine__Group__7__Impl rule__Statemachine__Group__8
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__7__Impl_in_rule__Statemachine__Group__71152);
+ rule__Statemachine__Group__7__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__8_in_rule__Statemachine__Group__71155);
+ rule__Statemachine__Group__8();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__7"
+
+
+ // $ANTLR start "rule__Statemachine__Group__7__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:596:1: rule__Statemachine__Group__7__Impl : ( ';' ) ;
+ public final void rule__Statemachine__Group__7__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:600:1: ( ( ';' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:601:1: ( ';' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:601:1: ( ';' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:602:1: ';'
+ {
+ before(grammarAccess.getStatemachineAccess().getSemicolonKeyword_7());
+ match(input,15,FOLLOW_15_in_rule__Statemachine__Group__7__Impl1183);
+ after(grammarAccess.getStatemachineAccess().getSemicolonKeyword_7());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__7__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__8"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:615:1: rule__Statemachine__Group__8 : rule__Statemachine__Group__8__Impl rule__Statemachine__Group__9 ;
+ public final void rule__Statemachine__Group__8() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:619:1: ( rule__Statemachine__Group__8__Impl rule__Statemachine__Group__9 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:620:2: rule__Statemachine__Group__8__Impl rule__Statemachine__Group__9
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__8__Impl_in_rule__Statemachine__Group__81214);
+ rule__Statemachine__Group__8__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__9_in_rule__Statemachine__Group__81217);
+ rule__Statemachine__Group__9();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__8"
+
+
+ // $ANTLR start "rule__Statemachine__Group__8__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:627:1: rule__Statemachine__Group__8__Impl : ( ( rule__Statemachine__StatesAssignment_8 )* ) ;
+ public final void rule__Statemachine__Group__8__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:631:1: ( ( ( rule__Statemachine__StatesAssignment_8 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:632:1: ( ( rule__Statemachine__StatesAssignment_8 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:632:1: ( ( rule__Statemachine__StatesAssignment_8 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:633:1: ( rule__Statemachine__StatesAssignment_8 )*
+ {
+ before(grammarAccess.getStatemachineAccess().getStatesAssignment_8());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:634:1: ( rule__Statemachine__StatesAssignment_8 )*
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( ((LA6_0>=18 && LA6_0<=19)||LA6_0==22) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:634:2: rule__Statemachine__StatesAssignment_8
+ {
+ pushFollow(FOLLOW_rule__Statemachine__StatesAssignment_8_in_rule__Statemachine__Group__8__Impl1244);
+ rule__Statemachine__StatesAssignment_8();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ } while (true);
+
+ after(grammarAccess.getStatemachineAccess().getStatesAssignment_8());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__8__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__9"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:644:1: rule__Statemachine__Group__9 : rule__Statemachine__Group__9__Impl ;
+ public final void rule__Statemachine__Group__9() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:648:1: ( rule__Statemachine__Group__9__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:649:2: rule__Statemachine__Group__9__Impl
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__9__Impl_in_rule__Statemachine__Group__91275);
+ rule__Statemachine__Group__9__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__9"
+
+
+ // $ANTLR start "rule__Statemachine__Group__9__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:655:1: rule__Statemachine__Group__9__Impl : ( '}' ) ;
+ public final void rule__Statemachine__Group__9__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:659:1: ( ( '}' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:660:1: ( '}' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:660:1: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:661:1: '}'
+ {
+ before(grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9());
+ match(input,16,FOLLOW_16_in_rule__Statemachine__Group__9__Impl1303);
+ after(grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__9__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:694:1: rule__Statemachine__Group_3__0 : rule__Statemachine__Group_3__0__Impl rule__Statemachine__Group_3__1 ;
+ public final void rule__Statemachine__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:698:1: ( rule__Statemachine__Group_3__0__Impl rule__Statemachine__Group_3__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:699:2: rule__Statemachine__Group_3__0__Impl rule__Statemachine__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__0__Impl_in_rule__Statemachine__Group_3__01354);
+ rule__Statemachine__Group_3__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__1_in_rule__Statemachine__Group_3__01357);
+ rule__Statemachine__Group_3__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__0"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:706:1: rule__Statemachine__Group_3__0__Impl : ( 'value' ) ;
+ public final void rule__Statemachine__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:710:1: ( ( 'value' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:711:1: ( 'value' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:711:1: ( 'value' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:712:1: 'value'
+ {
+ before(grammarAccess.getStatemachineAccess().getValueKeyword_3_0());
+ match(input,17,FOLLOW_17_in_rule__Statemachine__Group_3__0__Impl1385);
+ after(grammarAccess.getStatemachineAccess().getValueKeyword_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:725:1: rule__Statemachine__Group_3__1 : rule__Statemachine__Group_3__1__Impl ;
+ public final void rule__Statemachine__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:729:1: ( rule__Statemachine__Group_3__1__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:730:2: rule__Statemachine__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__1__Impl_in_rule__Statemachine__Group_3__11416);
+ rule__Statemachine__Group_3__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__1"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:736:1: rule__Statemachine__Group_3__1__Impl : ( ( rule__Statemachine__ValueAssignment_3_1 ) ) ;
+ public final void rule__Statemachine__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:740:1: ( ( ( rule__Statemachine__ValueAssignment_3_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:741:1: ( ( rule__Statemachine__ValueAssignment_3_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:741:1: ( ( rule__Statemachine__ValueAssignment_3_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:742:1: ( rule__Statemachine__ValueAssignment_3_1 )
+ {
+ before(grammarAccess.getStatemachineAccess().getValueAssignment_3_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:743:1: ( rule__Statemachine__ValueAssignment_3_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:743:2: rule__Statemachine__ValueAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__ValueAssignment_3_1_in_rule__Statemachine__Group_3__1__Impl1443);
+ rule__Statemachine__ValueAssignment_3_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getValueAssignment_3_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:757:1: rule__SimpleState__Group__0 : rule__SimpleState__Group__0__Impl rule__SimpleState__Group__1 ;
+ public final void rule__SimpleState__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:761:1: ( rule__SimpleState__Group__0__Impl rule__SimpleState__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:762:2: rule__SimpleState__Group__0__Impl rule__SimpleState__Group__1
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__0__Impl_in_rule__SimpleState__Group__01477);
+ rule__SimpleState__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__1_in_rule__SimpleState__Group__01480);
+ rule__SimpleState__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__0"
+
+
+ // $ANTLR start "rule__SimpleState__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:769:1: rule__SimpleState__Group__0__Impl : ( ( rule__SimpleState__InitialAssignment_0 )? ) ;
+ public final void rule__SimpleState__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:773:1: ( ( ( rule__SimpleState__InitialAssignment_0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:774:1: ( ( rule__SimpleState__InitialAssignment_0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:774:1: ( ( rule__SimpleState__InitialAssignment_0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:775:1: ( rule__SimpleState__InitialAssignment_0 )?
+ {
+ before(grammarAccess.getSimpleStateAccess().getInitialAssignment_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:776:1: ( rule__SimpleState__InitialAssignment_0 )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==22) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:776:2: rule__SimpleState__InitialAssignment_0
+ {
+ pushFollow(FOLLOW_rule__SimpleState__InitialAssignment_0_in_rule__SimpleState__Group__0__Impl1507);
+ rule__SimpleState__InitialAssignment_0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getInitialAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__0__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:786:1: rule__SimpleState__Group__1 : rule__SimpleState__Group__1__Impl rule__SimpleState__Group__2 ;
+ public final void rule__SimpleState__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:790:1: ( rule__SimpleState__Group__1__Impl rule__SimpleState__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:791:2: rule__SimpleState__Group__1__Impl rule__SimpleState__Group__2
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__1__Impl_in_rule__SimpleState__Group__11538);
+ rule__SimpleState__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__2_in_rule__SimpleState__Group__11541);
+ rule__SimpleState__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__1"
+
+
+ // $ANTLR start "rule__SimpleState__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:798:1: rule__SimpleState__Group__1__Impl : ( 'state' ) ;
+ public final void rule__SimpleState__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:802:1: ( ( 'state' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:803:1: ( 'state' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:803:1: ( 'state' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:804:1: 'state'
+ {
+ before(grammarAccess.getSimpleStateAccess().getStateKeyword_1());
+ match(input,18,FOLLOW_18_in_rule__SimpleState__Group__1__Impl1569);
+ after(grammarAccess.getSimpleStateAccess().getStateKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__1__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:817:1: rule__SimpleState__Group__2 : rule__SimpleState__Group__2__Impl rule__SimpleState__Group__3 ;
+ public final void rule__SimpleState__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:821:1: ( rule__SimpleState__Group__2__Impl rule__SimpleState__Group__3 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:822:2: rule__SimpleState__Group__2__Impl rule__SimpleState__Group__3
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__2__Impl_in_rule__SimpleState__Group__21600);
+ rule__SimpleState__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__3_in_rule__SimpleState__Group__21603);
+ rule__SimpleState__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__2"
+
+
+ // $ANTLR start "rule__SimpleState__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:829:1: rule__SimpleState__Group__2__Impl : ( ( rule__SimpleState__NameAssignment_2 ) ) ;
+ public final void rule__SimpleState__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:833:1: ( ( ( rule__SimpleState__NameAssignment_2 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:834:1: ( ( rule__SimpleState__NameAssignment_2 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:834:1: ( ( rule__SimpleState__NameAssignment_2 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:835:1: ( rule__SimpleState__NameAssignment_2 )
+ {
+ before(grammarAccess.getSimpleStateAccess().getNameAssignment_2());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:836:1: ( rule__SimpleState__NameAssignment_2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:836:2: rule__SimpleState__NameAssignment_2
+ {
+ pushFollow(FOLLOW_rule__SimpleState__NameAssignment_2_in_rule__SimpleState__Group__2__Impl1630);
+ rule__SimpleState__NameAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getNameAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__2__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__3"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:846:1: rule__SimpleState__Group__3 : rule__SimpleState__Group__3__Impl rule__SimpleState__Group__4 ;
+ public final void rule__SimpleState__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:850:1: ( rule__SimpleState__Group__3__Impl rule__SimpleState__Group__4 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:851:2: rule__SimpleState__Group__3__Impl rule__SimpleState__Group__4
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__3__Impl_in_rule__SimpleState__Group__31660);
+ rule__SimpleState__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__4_in_rule__SimpleState__Group__31663);
+ rule__SimpleState__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__3"
+
+
+ // $ANTLR start "rule__SimpleState__Group__3__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:858:1: rule__SimpleState__Group__3__Impl : ( ( rule__SimpleState__Group_3__0 )? ) ;
+ public final void rule__SimpleState__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:862:1: ( ( ( rule__SimpleState__Group_3__0 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:863:1: ( ( rule__SimpleState__Group_3__0 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:863:1: ( ( rule__SimpleState__Group_3__0 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:864:1: ( rule__SimpleState__Group_3__0 )?
+ {
+ before(grammarAccess.getSimpleStateAccess().getGroup_3());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:865:1: ( rule__SimpleState__Group_3__0 )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==17) ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:865:2: rule__SimpleState__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group_3__0_in_rule__SimpleState__Group__3__Impl1690);
+ rule__SimpleState__Group_3__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getGroup_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__3__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__4"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:875:1: rule__SimpleState__Group__4 : rule__SimpleState__Group__4__Impl rule__SimpleState__Group__5 ;
+ public final void rule__SimpleState__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:879:1: ( rule__SimpleState__Group__4__Impl rule__SimpleState__Group__5 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:880:2: rule__SimpleState__Group__4__Impl rule__SimpleState__Group__5
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__4__Impl_in_rule__SimpleState__Group__41721);
+ rule__SimpleState__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__5_in_rule__SimpleState__Group__41724);
+ rule__SimpleState__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__4"
+
+
+ // $ANTLR start "rule__SimpleState__Group__4__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:887:1: rule__SimpleState__Group__4__Impl : ( '{' ) ;
+ public final void rule__SimpleState__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:891:1: ( ( '{' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:892:1: ( '{' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:892:1: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:893:1: '{'
+ {
+ before(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4());
+ match(input,13,FOLLOW_13_in_rule__SimpleState__Group__4__Impl1752);
+ after(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__4__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:906:1: rule__SimpleState__Group__5 : rule__SimpleState__Group__5__Impl rule__SimpleState__Group__6 ;
+ public final void rule__SimpleState__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:910:1: ( rule__SimpleState__Group__5__Impl rule__SimpleState__Group__6 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:911:2: rule__SimpleState__Group__5__Impl rule__SimpleState__Group__6
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__5__Impl_in_rule__SimpleState__Group__51783);
+ rule__SimpleState__Group__5__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group__6_in_rule__SimpleState__Group__51786);
+ rule__SimpleState__Group__6();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__5"
+
+
+ // $ANTLR start "rule__SimpleState__Group__5__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:918:1: rule__SimpleState__Group__5__Impl : ( ( rule__SimpleState__TransitionsAssignment_5 )* ) ;
+ public final void rule__SimpleState__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:922:1: ( ( ( rule__SimpleState__TransitionsAssignment_5 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:923:1: ( ( rule__SimpleState__TransitionsAssignment_5 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:923:1: ( ( rule__SimpleState__TransitionsAssignment_5 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:924:1: ( rule__SimpleState__TransitionsAssignment_5 )*
+ {
+ before(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:925:1: ( rule__SimpleState__TransitionsAssignment_5 )*
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==RULE_ID) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:925:2: rule__SimpleState__TransitionsAssignment_5
+ {
+ pushFollow(FOLLOW_rule__SimpleState__TransitionsAssignment_5_in_rule__SimpleState__Group__5__Impl1813);
+ rule__SimpleState__TransitionsAssignment_5();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+ after(grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__5__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group__6"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:935:1: rule__SimpleState__Group__6 : rule__SimpleState__Group__6__Impl ;
+ public final void rule__SimpleState__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:939:1: ( rule__SimpleState__Group__6__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:940:2: rule__SimpleState__Group__6__Impl
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group__6__Impl_in_rule__SimpleState__Group__61844);
+ rule__SimpleState__Group__6__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__6"
+
+
+ // $ANTLR start "rule__SimpleState__Group__6__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:946:1: rule__SimpleState__Group__6__Impl : ( '}' ) ;
+ public final void rule__SimpleState__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:950:1: ( ( '}' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:951:1: ( '}' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:951:1: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:952:1: '}'
+ {
+ before(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6());
+ match(input,16,FOLLOW_16_in_rule__SimpleState__Group__6__Impl1872);
+ after(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group__6__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group_3__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:979:1: rule__SimpleState__Group_3__0 : rule__SimpleState__Group_3__0__Impl rule__SimpleState__Group_3__1 ;
+ public final void rule__SimpleState__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:983:1: ( rule__SimpleState__Group_3__0__Impl rule__SimpleState__Group_3__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:984:2: rule__SimpleState__Group_3__0__Impl rule__SimpleState__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group_3__0__Impl_in_rule__SimpleState__Group_3__01917);
+ rule__SimpleState__Group_3__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__SimpleState__Group_3__1_in_rule__SimpleState__Group_3__01920);
+ rule__SimpleState__Group_3__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_3__0"
+
+
+ // $ANTLR start "rule__SimpleState__Group_3__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:991:1: rule__SimpleState__Group_3__0__Impl : ( 'value' ) ;
+ public final void rule__SimpleState__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:995:1: ( ( 'value' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:996:1: ( 'value' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:996:1: ( 'value' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:997:1: 'value'
+ {
+ before(grammarAccess.getSimpleStateAccess().getValueKeyword_3_0());
+ match(input,17,FOLLOW_17_in_rule__SimpleState__Group_3__0__Impl1948);
+ after(grammarAccess.getSimpleStateAccess().getValueKeyword_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__SimpleState__Group_3__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1010:1: rule__SimpleState__Group_3__1 : rule__SimpleState__Group_3__1__Impl ;
+ public final void rule__SimpleState__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1014:1: ( rule__SimpleState__Group_3__1__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1015:2: rule__SimpleState__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_rule__SimpleState__Group_3__1__Impl_in_rule__SimpleState__Group_3__11979);
+ rule__SimpleState__Group_3__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_3__1"
+
+
+ // $ANTLR start "rule__SimpleState__Group_3__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1021:1: rule__SimpleState__Group_3__1__Impl : ( ( rule__SimpleState__ValueAssignment_3_1 ) ) ;
+ public final void rule__SimpleState__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1025:1: ( ( ( rule__SimpleState__ValueAssignment_3_1 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1026:1: ( ( rule__SimpleState__ValueAssignment_3_1 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1026:1: ( ( rule__SimpleState__ValueAssignment_3_1 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1027:1: ( rule__SimpleState__ValueAssignment_3_1 )
+ {
+ before(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1028:1: ( rule__SimpleState__ValueAssignment_3_1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1028:2: rule__SimpleState__ValueAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__SimpleState__ValueAssignment_3_1_in_rule__SimpleState__Group_3__1__Impl2006);
+ rule__SimpleState__ValueAssignment_3_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getValueAssignment_3_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1042:1: rule__CompoundState__Group__0 : rule__CompoundState__Group__0__Impl rule__CompoundState__Group__1 ;
+ public final void rule__CompoundState__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1046:1: ( rule__CompoundState__Group__0__Impl rule__CompoundState__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1047:2: rule__CompoundState__Group__0__Impl rule__CompoundState__Group__1
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__0__Impl_in_rule__CompoundState__Group__02040);
+ rule__CompoundState__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__1_in_rule__CompoundState__Group__02043);
+ rule__CompoundState__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__0"
+
+
+ // $ANTLR start "rule__CompoundState__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1054:1: rule__CompoundState__Group__0__Impl : ( 'compound' ) ;
+ public final void rule__CompoundState__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1058:1: ( ( 'compound' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1059:1: ( 'compound' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1059:1: ( 'compound' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1060:1: 'compound'
+ {
+ before(grammarAccess.getCompoundStateAccess().getCompoundKeyword_0());
+ match(input,19,FOLLOW_19_in_rule__CompoundState__Group__0__Impl2071);
+ after(grammarAccess.getCompoundStateAccess().getCompoundKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__0__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1073:1: rule__CompoundState__Group__1 : rule__CompoundState__Group__1__Impl rule__CompoundState__Group__2 ;
+ public final void rule__CompoundState__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1077:1: ( rule__CompoundState__Group__1__Impl rule__CompoundState__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1078:2: rule__CompoundState__Group__1__Impl rule__CompoundState__Group__2
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__1__Impl_in_rule__CompoundState__Group__12102);
+ rule__CompoundState__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__2_in_rule__CompoundState__Group__12105);
+ rule__CompoundState__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__1"
+
+
+ // $ANTLR start "rule__CompoundState__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1085:1: rule__CompoundState__Group__1__Impl : ( ( rule__CompoundState__InitialAssignment_1 )? ) ;
+ public final void rule__CompoundState__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1089:1: ( ( ( rule__CompoundState__InitialAssignment_1 )? ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1090:1: ( ( rule__CompoundState__InitialAssignment_1 )? )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1090:1: ( ( rule__CompoundState__InitialAssignment_1 )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1091:1: ( rule__CompoundState__InitialAssignment_1 )?
+ {
+ before(grammarAccess.getCompoundStateAccess().getInitialAssignment_1());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1092:1: ( rule__CompoundState__InitialAssignment_1 )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==22) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1092:2: rule__CompoundState__InitialAssignment_1
+ {
+ pushFollow(FOLLOW_rule__CompoundState__InitialAssignment_1_in_rule__CompoundState__Group__1__Impl2132);
+ rule__CompoundState__InitialAssignment_1();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getInitialAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__1__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1102:1: rule__CompoundState__Group__2 : rule__CompoundState__Group__2__Impl rule__CompoundState__Group__3 ;
+ public final void rule__CompoundState__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1106:1: ( rule__CompoundState__Group__2__Impl rule__CompoundState__Group__3 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1107:2: rule__CompoundState__Group__2__Impl rule__CompoundState__Group__3
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__2__Impl_in_rule__CompoundState__Group__22163);
+ rule__CompoundState__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__3_in_rule__CompoundState__Group__22166);
+ rule__CompoundState__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__2"
+
+
+ // $ANTLR start "rule__CompoundState__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1114:1: rule__CompoundState__Group__2__Impl : ( 'state' ) ;
+ public final void rule__CompoundState__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1118:1: ( ( 'state' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1119:1: ( 'state' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1119:1: ( 'state' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1120:1: 'state'
+ {
+ before(grammarAccess.getCompoundStateAccess().getStateKeyword_2());
+ match(input,18,FOLLOW_18_in_rule__CompoundState__Group__2__Impl2194);
+ after(grammarAccess.getCompoundStateAccess().getStateKeyword_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__2__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__3"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1133:1: rule__CompoundState__Group__3 : rule__CompoundState__Group__3__Impl rule__CompoundState__Group__4 ;
+ public final void rule__CompoundState__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1137:1: ( rule__CompoundState__Group__3__Impl rule__CompoundState__Group__4 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1138:2: rule__CompoundState__Group__3__Impl rule__CompoundState__Group__4
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__3__Impl_in_rule__CompoundState__Group__32225);
+ rule__CompoundState__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__4_in_rule__CompoundState__Group__32228);
+ rule__CompoundState__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__3"
+
+
+ // $ANTLR start "rule__CompoundState__Group__3__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1145:1: rule__CompoundState__Group__3__Impl : ( ( rule__CompoundState__NameAssignment_3 ) ) ;
+ public final void rule__CompoundState__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1149:1: ( ( ( rule__CompoundState__NameAssignment_3 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1150:1: ( ( rule__CompoundState__NameAssignment_3 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1150:1: ( ( rule__CompoundState__NameAssignment_3 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1151:1: ( rule__CompoundState__NameAssignment_3 )
+ {
+ before(grammarAccess.getCompoundStateAccess().getNameAssignment_3());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1152:1: ( rule__CompoundState__NameAssignment_3 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1152:2: rule__CompoundState__NameAssignment_3
+ {
+ pushFollow(FOLLOW_rule__CompoundState__NameAssignment_3_in_rule__CompoundState__Group__3__Impl2255);
+ rule__CompoundState__NameAssignment_3();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getNameAssignment_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__3__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__4"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1162:1: rule__CompoundState__Group__4 : rule__CompoundState__Group__4__Impl rule__CompoundState__Group__5 ;
+ public final void rule__CompoundState__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1166:1: ( rule__CompoundState__Group__4__Impl rule__CompoundState__Group__5 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1167:2: rule__CompoundState__Group__4__Impl rule__CompoundState__Group__5
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__4__Impl_in_rule__CompoundState__Group__42285);
+ rule__CompoundState__Group__4__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__5_in_rule__CompoundState__Group__42288);
+ rule__CompoundState__Group__5();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__4"
+
+
+ // $ANTLR start "rule__CompoundState__Group__4__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1174:1: rule__CompoundState__Group__4__Impl : ( 'machine' ) ;
+ public final void rule__CompoundState__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1178:1: ( ( 'machine' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1179:1: ( 'machine' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1179:1: ( 'machine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1180:1: 'machine'
+ {
+ before(grammarAccess.getCompoundStateAccess().getMachineKeyword_4());
+ match(input,20,FOLLOW_20_in_rule__CompoundState__Group__4__Impl2316);
+ after(grammarAccess.getCompoundStateAccess().getMachineKeyword_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__4__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1193:1: rule__CompoundState__Group__5 : rule__CompoundState__Group__5__Impl rule__CompoundState__Group__6 ;
+ public final void rule__CompoundState__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1197:1: ( rule__CompoundState__Group__5__Impl rule__CompoundState__Group__6 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1198:2: rule__CompoundState__Group__5__Impl rule__CompoundState__Group__6
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__5__Impl_in_rule__CompoundState__Group__52347);
+ rule__CompoundState__Group__5__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__6_in_rule__CompoundState__Group__52350);
+ rule__CompoundState__Group__6();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__5"
+
+
+ // $ANTLR start "rule__CompoundState__Group__5__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1205:1: rule__CompoundState__Group__5__Impl : ( ( rule__CompoundState__MachineAssignment_5 ) ) ;
+ public final void rule__CompoundState__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1209:1: ( ( ( rule__CompoundState__MachineAssignment_5 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1210:1: ( ( rule__CompoundState__MachineAssignment_5 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1210:1: ( ( rule__CompoundState__MachineAssignment_5 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1211:1: ( rule__CompoundState__MachineAssignment_5 )
+ {
+ before(grammarAccess.getCompoundStateAccess().getMachineAssignment_5());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1212:1: ( rule__CompoundState__MachineAssignment_5 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1212:2: rule__CompoundState__MachineAssignment_5
+ {
+ pushFollow(FOLLOW_rule__CompoundState__MachineAssignment_5_in_rule__CompoundState__Group__5__Impl2377);
+ rule__CompoundState__MachineAssignment_5();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getMachineAssignment_5());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__5__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__6"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1222:1: rule__CompoundState__Group__6 : rule__CompoundState__Group__6__Impl rule__CompoundState__Group__7 ;
+ public final void rule__CompoundState__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1226:1: ( rule__CompoundState__Group__6__Impl rule__CompoundState__Group__7 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1227:2: rule__CompoundState__Group__6__Impl rule__CompoundState__Group__7
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__6__Impl_in_rule__CompoundState__Group__62407);
+ rule__CompoundState__Group__6__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__7_in_rule__CompoundState__Group__62410);
+ rule__CompoundState__Group__7();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__6"
+
+
+ // $ANTLR start "rule__CompoundState__Group__6__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1234:1: rule__CompoundState__Group__6__Impl : ( '{' ) ;
+ public final void rule__CompoundState__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1238:1: ( ( '{' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1239:1: ( '{' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1239:1: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1240:1: '{'
+ {
+ before(grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6());
+ match(input,13,FOLLOW_13_in_rule__CompoundState__Group__6__Impl2438);
+ after(grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__6__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__7"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1253:1: rule__CompoundState__Group__7 : rule__CompoundState__Group__7__Impl rule__CompoundState__Group__8 ;
+ public final void rule__CompoundState__Group__7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1257:1: ( rule__CompoundState__Group__7__Impl rule__CompoundState__Group__8 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1258:2: rule__CompoundState__Group__7__Impl rule__CompoundState__Group__8
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__7__Impl_in_rule__CompoundState__Group__72469);
+ rule__CompoundState__Group__7__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__CompoundState__Group__8_in_rule__CompoundState__Group__72472);
+ rule__CompoundState__Group__8();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__7"
+
+
+ // $ANTLR start "rule__CompoundState__Group__7__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1265:1: rule__CompoundState__Group__7__Impl : ( ( rule__CompoundState__TransitionsAssignment_7 )* ) ;
+ public final void rule__CompoundState__Group__7__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1269:1: ( ( ( rule__CompoundState__TransitionsAssignment_7 )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1270:1: ( ( rule__CompoundState__TransitionsAssignment_7 )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1270:1: ( ( rule__CompoundState__TransitionsAssignment_7 )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1271:1: ( rule__CompoundState__TransitionsAssignment_7 )*
+ {
+ before(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1272:1: ( rule__CompoundState__TransitionsAssignment_7 )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==RULE_ID) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1272:2: rule__CompoundState__TransitionsAssignment_7
+ {
+ pushFollow(FOLLOW_rule__CompoundState__TransitionsAssignment_7_in_rule__CompoundState__Group__7__Impl2499);
+ rule__CompoundState__TransitionsAssignment_7();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ after(grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__7__Impl"
+
+
+ // $ANTLR start "rule__CompoundState__Group__8"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1282:1: rule__CompoundState__Group__8 : rule__CompoundState__Group__8__Impl ;
+ public final void rule__CompoundState__Group__8() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1286:1: ( rule__CompoundState__Group__8__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1287:2: rule__CompoundState__Group__8__Impl
+ {
+ pushFollow(FOLLOW_rule__CompoundState__Group__8__Impl_in_rule__CompoundState__Group__82530);
+ rule__CompoundState__Group__8__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__8"
+
+
+ // $ANTLR start "rule__CompoundState__Group__8__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1293:1: rule__CompoundState__Group__8__Impl : ( '}' ) ;
+ public final void rule__CompoundState__Group__8__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1297:1: ( ( '}' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1298:1: ( '}' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1298:1: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1299:1: '}'
+ {
+ before(grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8());
+ match(input,16,FOLLOW_16_in_rule__CompoundState__Group__8__Impl2558);
+ after(grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__Group__8__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1330:1: rule__Transition__Group__0 : rule__Transition__Group__0__Impl rule__Transition__Group__1 ;
+ public final void rule__Transition__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1334:1: ( rule__Transition__Group__0__Impl rule__Transition__Group__1 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1335:2: rule__Transition__Group__0__Impl rule__Transition__Group__1
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__0__Impl_in_rule__Transition__Group__02607);
+ rule__Transition__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Transition__Group__1_in_rule__Transition__Group__02610);
+ rule__Transition__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__0"
+
+
+ // $ANTLR start "rule__Transition__Group__0__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1342:1: rule__Transition__Group__0__Impl : ( ( rule__Transition__EventAssignment_0 ) ) ;
+ public final void rule__Transition__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1346:1: ( ( ( rule__Transition__EventAssignment_0 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1347:1: ( ( rule__Transition__EventAssignment_0 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1347:1: ( ( rule__Transition__EventAssignment_0 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1348:1: ( rule__Transition__EventAssignment_0 )
+ {
+ before(grammarAccess.getTransitionAccess().getEventAssignment_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1349:1: ( rule__Transition__EventAssignment_0 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1349:2: rule__Transition__EventAssignment_0
+ {
+ pushFollow(FOLLOW_rule__Transition__EventAssignment_0_in_rule__Transition__Group__0__Impl2637);
+ rule__Transition__EventAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getEventAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1359:1: rule__Transition__Group__1 : rule__Transition__Group__1__Impl rule__Transition__Group__2 ;
+ public final void rule__Transition__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1363:1: ( rule__Transition__Group__1__Impl rule__Transition__Group__2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1364:2: rule__Transition__Group__1__Impl rule__Transition__Group__2
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__1__Impl_in_rule__Transition__Group__12667);
+ rule__Transition__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Transition__Group__2_in_rule__Transition__Group__12670);
+ rule__Transition__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__1"
+
+
+ // $ANTLR start "rule__Transition__Group__1__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1371:1: rule__Transition__Group__1__Impl : ( '=>' ) ;
+ public final void rule__Transition__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1375:1: ( ( '=>' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1376:1: ( '=>' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1376:1: ( '=>' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1377:1: '=>'
+ {
+ before(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+ match(input,21,FOLLOW_21_in_rule__Transition__Group__1__Impl2698);
+ after(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1390:1: rule__Transition__Group__2 : rule__Transition__Group__2__Impl ;
+ public final void rule__Transition__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1394:1: ( rule__Transition__Group__2__Impl )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1395:2: rule__Transition__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__2__Impl_in_rule__Transition__Group__22729);
+ rule__Transition__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__2"
+
+
+ // $ANTLR start "rule__Transition__Group__2__Impl"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1401:1: rule__Transition__Group__2__Impl : ( ( rule__Transition__StateAssignment_2 ) ) ;
+ public final void rule__Transition__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1405:1: ( ( ( rule__Transition__StateAssignment_2 ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1406:1: ( ( rule__Transition__StateAssignment_2 ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1406:1: ( ( rule__Transition__StateAssignment_2 ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1407:1: ( rule__Transition__StateAssignment_2 )
+ {
+ before(grammarAccess.getTransitionAccess().getStateAssignment_2());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1408:1: ( rule__Transition__StateAssignment_2 )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1408:2: rule__Transition__StateAssignment_2
+ {
+ pushFollow(FOLLOW_rule__Transition__StateAssignment_2_in_rule__Transition__Group__2__Impl2756);
+ rule__Transition__StateAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getStateAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Module__NameAssignment_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1425:1: rule__Module__NameAssignment_1 : ( RULE_STRING ) ;
+ public final void rule__Module__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1429:1: ( ( RULE_STRING ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1430:1: ( RULE_STRING )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1430:1: ( RULE_STRING )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1431:1: RULE_STRING
+ {
+ before(grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0());
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Module__NameAssignment_12797);
+ after(grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__NameAssignment_1"
+
+
+ // $ANTLR start "rule__Module__MachinesAssignment_2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1440:1: rule__Module__MachinesAssignment_2 : ( ruleStatemachine ) ;
+ public final void rule__Module__MachinesAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1444:1: ( ( ruleStatemachine ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1445:1: ( ruleStatemachine )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1445:1: ( ruleStatemachine )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1446:1: ruleStatemachine
+ {
+ before(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0());
+ pushFollow(FOLLOW_ruleStatemachine_in_rule__Module__MachinesAssignment_22828);
+ ruleStatemachine();
+
+ state._fsp--;
+
+ after(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__MachinesAssignment_2"
+
+
+ // $ANTLR start "rule__Statemachine__InitialAssignment_0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1455:1: rule__Statemachine__InitialAssignment_0 : ( ( 'initial' ) ) ;
+ public final void rule__Statemachine__InitialAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1459:1: ( ( ( 'initial' ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1460:1: ( ( 'initial' ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1460:1: ( ( 'initial' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1461:1: ( 'initial' )
+ {
+ before(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1462:1: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1463:1: 'initial'
+ {
+ before(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+ match(input,22,FOLLOW_22_in_rule__Statemachine__InitialAssignment_02864);
+ after(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__InitialAssignment_0"
+
+
+ // $ANTLR start "rule__Statemachine__NameAssignment_2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1478:1: rule__Statemachine__NameAssignment_2 : ( RULE_ID ) ;
+ public final void rule__Statemachine__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1482:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1483:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1483:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1484:1: RULE_ID
+ {
+ before(grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Statemachine__NameAssignment_22903);
+ after(grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__NameAssignment_2"
+
+
+ // $ANTLR start "rule__Statemachine__ValueAssignment_3_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1493:1: rule__Statemachine__ValueAssignment_3_1 : ( RULE_INT ) ;
+ public final void rule__Statemachine__ValueAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1497:1: ( ( RULE_INT ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1498:1: ( RULE_INT )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1498:1: ( RULE_INT )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1499:1: RULE_INT
+ {
+ before(grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0());
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Statemachine__ValueAssignment_3_12934);
+ after(grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__ValueAssignment_3_1"
+
+
+ // $ANTLR start "rule__Statemachine__EventsAssignment_6"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1508:1: rule__Statemachine__EventsAssignment_6 : ( ruleEvent ) ;
+ public final void rule__Statemachine__EventsAssignment_6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1512:1: ( ( ruleEvent ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1513:1: ( ruleEvent )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1513:1: ( ruleEvent )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1514:1: ruleEvent
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0());
+ pushFollow(FOLLOW_ruleEvent_in_rule__Statemachine__EventsAssignment_62965);
+ ruleEvent();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__EventsAssignment_6"
+
+
+ // $ANTLR start "rule__Statemachine__StatesAssignment_8"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1523:1: rule__Statemachine__StatesAssignment_8 : ( ruleState ) ;
+ public final void rule__Statemachine__StatesAssignment_8() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1527:1: ( ( ruleState ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1528:1: ( ruleState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1528:1: ( ruleState )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1529:1: ruleState
+ {
+ before(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0());
+ pushFollow(FOLLOW_ruleState_in_rule__Statemachine__StatesAssignment_82996);
+ ruleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__StatesAssignment_8"
+
+
+ // $ANTLR start "rule__Event__NameAssignment"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1538:1: rule__Event__NameAssignment : ( RULE_ID ) ;
+ public final void rule__Event__NameAssignment() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1542:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1543:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1543:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1544:1: RULE_ID
+ {
+ before(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Event__NameAssignment3027);
+ after(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Event__NameAssignment"
+
+
+ // $ANTLR start "rule__SimpleState__InitialAssignment_0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1553:1: rule__SimpleState__InitialAssignment_0 : ( ( 'initial' ) ) ;
+ public final void rule__SimpleState__InitialAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1557:1: ( ( ( 'initial' ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1558:1: ( ( 'initial' ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1558:1: ( ( 'initial' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1559:1: ( 'initial' )
+ {
+ before(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1560:1: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1561:1: 'initial'
+ {
+ before(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+ match(input,22,FOLLOW_22_in_rule__SimpleState__InitialAssignment_03063);
+ after(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+
+ }
+
+ after(grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__InitialAssignment_0"
+
+
+ // $ANTLR start "rule__SimpleState__NameAssignment_2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1576:1: rule__SimpleState__NameAssignment_2 : ( RULE_ID ) ;
+ public final void rule__SimpleState__NameAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1580:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1581:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1581:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1582:1: RULE_ID
+ {
+ before(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SimpleState__NameAssignment_23102);
+ after(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__NameAssignment_2"
+
+
+ // $ANTLR start "rule__SimpleState__ValueAssignment_3_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1591:1: rule__SimpleState__ValueAssignment_3_1 : ( RULE_INT ) ;
+ public final void rule__SimpleState__ValueAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1595:1: ( ( RULE_INT ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1596:1: ( RULE_INT )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1596:1: ( RULE_INT )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1597:1: RULE_INT
+ {
+ before(grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0());
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__SimpleState__ValueAssignment_3_13133);
+ after(grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__ValueAssignment_3_1"
+
+
+ // $ANTLR start "rule__SimpleState__TransitionsAssignment_5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1606:1: rule__SimpleState__TransitionsAssignment_5 : ( ruleTransition ) ;
+ public final void rule__SimpleState__TransitionsAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1610:1: ( ( ruleTransition ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1611:1: ( ruleTransition )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1611:1: ( ruleTransition )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1612:1: ruleTransition
+ {
+ before(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0());
+ pushFollow(FOLLOW_ruleTransition_in_rule__SimpleState__TransitionsAssignment_53164);
+ ruleTransition();
+
+ state._fsp--;
+
+ after(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__SimpleState__TransitionsAssignment_5"
+
+
+ // $ANTLR start "rule__CompoundState__InitialAssignment_1"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1621:1: rule__CompoundState__InitialAssignment_1 : ( ( 'initial' ) ) ;
+ public final void rule__CompoundState__InitialAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1625:1: ( ( ( 'initial' ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1626:1: ( ( 'initial' ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1626:1: ( ( 'initial' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1627:1: ( 'initial' )
+ {
+ before(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1628:1: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1629:1: 'initial'
+ {
+ before(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+ match(input,22,FOLLOW_22_in_rule__CompoundState__InitialAssignment_13200);
+ after(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__InitialAssignment_1"
+
+
+ // $ANTLR start "rule__CompoundState__NameAssignment_3"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1644:1: rule__CompoundState__NameAssignment_3 : ( RULE_ID ) ;
+ public final void rule__CompoundState__NameAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1648:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1649:1: ( RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1649:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1650:1: RULE_ID
+ {
+ before(grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CompoundState__NameAssignment_33239);
+ after(grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__NameAssignment_3"
+
+
+ // $ANTLR start "rule__CompoundState__MachineAssignment_5"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1659:1: rule__CompoundState__MachineAssignment_5 : ( ( RULE_ID ) ) ;
+ public final void rule__CompoundState__MachineAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1663:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1664:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1664:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1665:1: ( RULE_ID )
+ {
+ before(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1666:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1667:1: RULE_ID
+ {
+ before(grammarAccess.getCompoundStateAccess().getMachineStatemachineIDTerminalRuleCall_5_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CompoundState__MachineAssignment_53274);
+ after(grammarAccess.getCompoundStateAccess().getMachineStatemachineIDTerminalRuleCall_5_0_1());
+
+ }
+
+ after(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__MachineAssignment_5"
+
+
+ // $ANTLR start "rule__CompoundState__TransitionsAssignment_7"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1678:1: rule__CompoundState__TransitionsAssignment_7 : ( ruleTransition ) ;
+ public final void rule__CompoundState__TransitionsAssignment_7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1682:1: ( ( ruleTransition ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1683:1: ( ruleTransition )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1683:1: ( ruleTransition )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1684:1: ruleTransition
+ {
+ before(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0());
+ pushFollow(FOLLOW_ruleTransition_in_rule__CompoundState__TransitionsAssignment_73309);
+ ruleTransition();
+
+ state._fsp--;
+
+ after(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__CompoundState__TransitionsAssignment_7"
+
+
+ // $ANTLR start "rule__Transition__EventAssignment_0"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1693:1: rule__Transition__EventAssignment_0 : ( ( RULE_ID ) ) ;
+ public final void rule__Transition__EventAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1697:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1698:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1698:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1699:1: ( RULE_ID )
+ {
+ before(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1700:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1701:1: RULE_ID
+ {
+ before(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transition__EventAssignment_03344);
+ after(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1());
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__EventAssignment_0"
+
+
+ // $ANTLR start "rule__Transition__StateAssignment_2"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1712:1: rule__Transition__StateAssignment_2 : ( ( RULE_ID ) ) ;
+ public final void rule__Transition__StateAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1716:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1717:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1717:1: ( ( RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1718:1: ( RULE_ID )
+ {
+ before(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1719:1: ( RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/antlr/internal/InternalOCLStates.g:1720:1: RULE_ID
+ {
+ before(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transition__StateAssignment_23383);
+ after(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1());
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__StateAssignment_2"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_ruleModule_in_entryRuleModule61 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModule68 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__0_in_ruleModule94 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleStatemachine_in_entryRuleStatemachine121 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStatemachine128 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__0_in_ruleStatemachine154 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent181 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEvent188 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Event__NameAssignment_in_ruleEvent214 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_entryRuleState241 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleState248 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Alternatives_in_ruleState274 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSimpleState_in_entryRuleSimpleState301 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSimpleState308 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__0_in_ruleSimpleState334 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundState_in_entryRuleCompoundState361 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleCompoundState368 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__0_in_ruleCompoundState394 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_entryRuleTransition421 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTransition428 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__0_in_ruleTransition454 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSimpleState_in_rule__State__Alternatives490 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundState_in_rule__State__Alternatives507 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__0537 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__Module__Group__1_in_rule__Module__Group__0540 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_rule__Module__Group__0__Impl568 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__1599 = new BitSet(new long[]{0x0000000000401000L});
+ public static final BitSet FOLLOW_rule__Module__Group__2_in_rule__Module__Group__1602 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__NameAssignment_1_in_rule__Module__Group__1__Impl629 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__2659 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__MachinesAssignment_2_in_rule__Module__Group__2__Impl686 = new BitSet(new long[]{0x0000000000401002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__0__Impl_in_rule__Statemachine__Group__0723 = new BitSet(new long[]{0x0000000000401000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__1_in_rule__Statemachine__Group__0726 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__InitialAssignment_0_in_rule__Statemachine__Group__0__Impl753 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__1__Impl_in_rule__Statemachine__Group__1784 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__2_in_rule__Statemachine__Group__1787 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_rule__Statemachine__Group__1__Impl815 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__2__Impl_in_rule__Statemachine__Group__2846 = new BitSet(new long[]{0x0000000000022000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__3_in_rule__Statemachine__Group__2849 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__NameAssignment_2_in_rule__Statemachine__Group__2__Impl876 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__3__Impl_in_rule__Statemachine__Group__3906 = new BitSet(new long[]{0x0000000000022000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__4_in_rule__Statemachine__Group__3909 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__0_in_rule__Statemachine__Group__3__Impl936 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__4__Impl_in_rule__Statemachine__Group__4967 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__5_in_rule__Statemachine__Group__4970 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__Statemachine__Group__4__Impl998 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__5__Impl_in_rule__Statemachine__Group__51029 = new BitSet(new long[]{0x0000000000008020L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__6_in_rule__Statemachine__Group__51032 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_14_in_rule__Statemachine__Group__5__Impl1060 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__6__Impl_in_rule__Statemachine__Group__61091 = new BitSet(new long[]{0x0000000000008020L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__7_in_rule__Statemachine__Group__61094 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__EventsAssignment_6_in_rule__Statemachine__Group__6__Impl1121 = new BitSet(new long[]{0x0000000000000022L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__7__Impl_in_rule__Statemachine__Group__71152 = new BitSet(new long[]{0x00000000004D0000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__8_in_rule__Statemachine__Group__71155 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_rule__Statemachine__Group__7__Impl1183 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__8__Impl_in_rule__Statemachine__Group__81214 = new BitSet(new long[]{0x00000000004D0000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__9_in_rule__Statemachine__Group__81217 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__StatesAssignment_8_in_rule__Statemachine__Group__8__Impl1244 = new BitSet(new long[]{0x00000000004C0002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__9__Impl_in_rule__Statemachine__Group__91275 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_rule__Statemachine__Group__9__Impl1303 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__0__Impl_in_rule__Statemachine__Group_3__01354 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__1_in_rule__Statemachine__Group_3__01357 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_rule__Statemachine__Group_3__0__Impl1385 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__1__Impl_in_rule__Statemachine__Group_3__11416 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__ValueAssignment_3_1_in_rule__Statemachine__Group_3__1__Impl1443 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__0__Impl_in_rule__SimpleState__Group__01477 = new BitSet(new long[]{0x0000000000440000L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__1_in_rule__SimpleState__Group__01480 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__InitialAssignment_0_in_rule__SimpleState__Group__0__Impl1507 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__1__Impl_in_rule__SimpleState__Group__11538 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__2_in_rule__SimpleState__Group__11541 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rule__SimpleState__Group__1__Impl1569 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__2__Impl_in_rule__SimpleState__Group__21600 = new BitSet(new long[]{0x0000000000022000L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__3_in_rule__SimpleState__Group__21603 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__NameAssignment_2_in_rule__SimpleState__Group__2__Impl1630 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__3__Impl_in_rule__SimpleState__Group__31660 = new BitSet(new long[]{0x0000000000022000L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__4_in_rule__SimpleState__Group__31663 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_3__0_in_rule__SimpleState__Group__3__Impl1690 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__4__Impl_in_rule__SimpleState__Group__41721 = new BitSet(new long[]{0x0000000000010020L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__5_in_rule__SimpleState__Group__41724 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__SimpleState__Group__4__Impl1752 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__5__Impl_in_rule__SimpleState__Group__51783 = new BitSet(new long[]{0x0000000000010020L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__6_in_rule__SimpleState__Group__51786 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__TransitionsAssignment_5_in_rule__SimpleState__Group__5__Impl1813 = new BitSet(new long[]{0x0000000000000022L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group__6__Impl_in_rule__SimpleState__Group__61844 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_rule__SimpleState__Group__6__Impl1872 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_3__0__Impl_in_rule__SimpleState__Group_3__01917 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_3__1_in_rule__SimpleState__Group_3__01920 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_rule__SimpleState__Group_3__0__Impl1948 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__Group_3__1__Impl_in_rule__SimpleState__Group_3__11979 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__SimpleState__ValueAssignment_3_1_in_rule__SimpleState__Group_3__1__Impl2006 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__0__Impl_in_rule__CompoundState__Group__02040 = new BitSet(new long[]{0x0000000000440000L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__1_in_rule__CompoundState__Group__02043 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_19_in_rule__CompoundState__Group__0__Impl2071 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__1__Impl_in_rule__CompoundState__Group__12102 = new BitSet(new long[]{0x0000000000440000L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__2_in_rule__CompoundState__Group__12105 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__InitialAssignment_1_in_rule__CompoundState__Group__1__Impl2132 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__2__Impl_in_rule__CompoundState__Group__22163 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__3_in_rule__CompoundState__Group__22166 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rule__CompoundState__Group__2__Impl2194 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__3__Impl_in_rule__CompoundState__Group__32225 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__4_in_rule__CompoundState__Group__32228 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__NameAssignment_3_in_rule__CompoundState__Group__3__Impl2255 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__4__Impl_in_rule__CompoundState__Group__42285 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__5_in_rule__CompoundState__Group__42288 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_20_in_rule__CompoundState__Group__4__Impl2316 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__5__Impl_in_rule__CompoundState__Group__52347 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__6_in_rule__CompoundState__Group__52350 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__MachineAssignment_5_in_rule__CompoundState__Group__5__Impl2377 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__6__Impl_in_rule__CompoundState__Group__62407 = new BitSet(new long[]{0x0000000000010020L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__7_in_rule__CompoundState__Group__62410 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__CompoundState__Group__6__Impl2438 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__7__Impl_in_rule__CompoundState__Group__72469 = new BitSet(new long[]{0x0000000000010020L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__8_in_rule__CompoundState__Group__72472 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__CompoundState__TransitionsAssignment_7_in_rule__CompoundState__Group__7__Impl2499 = new BitSet(new long[]{0x0000000000000022L});
+ public static final BitSet FOLLOW_rule__CompoundState__Group__8__Impl_in_rule__CompoundState__Group__82530 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_rule__CompoundState__Group__8__Impl2558 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__0__Impl_in_rule__Transition__Group__02607 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_rule__Transition__Group__1_in_rule__Transition__Group__02610 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__EventAssignment_0_in_rule__Transition__Group__0__Impl2637 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__1__Impl_in_rule__Transition__Group__12667 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__Transition__Group__2_in_rule__Transition__Group__12670 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_21_in_rule__Transition__Group__1__Impl2698 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__2__Impl_in_rule__Transition__Group__22729 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__StateAssignment_2_in_rule__Transition__Group__2__Impl2756 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_rule__Module__NameAssignment_12797 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleStatemachine_in_rule__Module__MachinesAssignment_22828 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_22_in_rule__Statemachine__InitialAssignment_02864 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Statemachine__NameAssignment_22903 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rule__Statemachine__ValueAssignment_3_12934 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEvent_in_rule__Statemachine__EventsAssignment_62965 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_rule__Statemachine__StatesAssignment_82996 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Event__NameAssignment3027 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_22_in_rule__SimpleState__InitialAssignment_03063 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__SimpleState__NameAssignment_23102 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rule__SimpleState__ValueAssignment_3_13133 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_rule__SimpleState__TransitionsAssignment_53164 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_22_in_rule__CompoundState__InitialAssignment_13200 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__CompoundState__NameAssignment_33239 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__CompoundState__MachineAssignment_53274 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_rule__CompoundState__TransitionsAssignment_73309 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Transition__EventAssignment_03344 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Transition__StateAssignment_23383 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/internal/OCLStatesActivator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/internal/OCLStatesActivator.java
new file mode 100644
index 0000000..dee2af7
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/ui/internal/OCLStatesActivator.java
@@ -0,0 +1,82 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui.internal;
+
+import static com.google.inject.util.Modules.override;
+import static com.google.inject.Guice.createInjector;
+
+import org.apache.log4j.Logger;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class OCLStatesActivator extends AbstractUIPlugin {
+
+ private Map<String,Injector> injectors = new HashMap<String,Injector>();
+ private static OCLStatesActivator INSTANCE;
+
+ public Injector getInjector(String languageName) {
+ return injectors.get(languageName);
+ }
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ INSTANCE = this;
+ try {
+ registerInjectorFor("org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates");
+
+ } catch (Exception e) {
+ Logger.getLogger(getClass()).error(e.getMessage(), e);
+ throw e;
+ }
+ }
+
+ protected void registerInjectorFor(String language) throws Exception {
+ injectors.put(language, createInjector(
+ override(override(getRuntimeModule(language)).with(getSharedStateModule())).with(getUiModule(language))));
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ injectors.clear();
+ INSTANCE = null;
+ super.stop(context);
+ }
+
+ public static OCLStatesActivator getInstance() {
+ return INSTANCE;
+ }
+
+ protected Module getRuntimeModule(String grammar) {
+ if ("org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates".equals(grammar)) {
+ return new org.eclipse.ocl.tutorial.eclipsecon2011.OCLStatesRuntimeModule();
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if ("org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates".equals(grammar)) {
+ return new org.eclipse.ocl.tutorial.eclipsecon2011.ui.OCLStatesUiModule(this);
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new org.eclipse.xtext.ui.shared.SharedStateModule();
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesActivator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesActivator.java
new file mode 100644
index 0000000..cdf4baf
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesActivator.java
@@ -0,0 +1,204 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: OCLStatesActivator.java,v 1.1 2011/03/15 07:51:50 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+import java.io.IOException;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.text.templates.ContextTypeRegistry;
+import org.eclipse.jface.text.templates.persistence.TemplateStore;
+import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry;
+import org.eclipse.ui.editors.text.templates.ContributionTemplateStore;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class OCLStatesActivator extends org.eclipse.ocl.tutorial.eclipsecon2011.ui.internal.OCLStatesActivator {
+
+ Logger logger = Logger.getLogger(OCLStatesActivator.class);
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.ocl.tutorial.eclipsecon2011.states.ui";
+
+ private static final String RESOURCE_NAME = PLUGIN_ID + ".messages";
+
+
+ /** Key to store our templates. */
+ private static final String TEMPLATES_KEY = PLUGIN_ID + ".templates";
+
+ public static final String PREFIX = OCLStatesActivator.PLUGIN_ID + ".templates.contextType.";
+
+ public static final String EVENTS = PREFIX + "events";
+ public static final String EVENT = PREFIX + "Event";
+ public static final String COMMAND = PREFIX + "Command";
+ public static final String TRANSITION = PREFIX + "Transition";
+ public static final String ACTIONS = PREFIX + "actions";
+ public static final String STATE = PREFIX + "state";
+ // The shared instance
+ private static OCLStatesActivator plugin;
+
+ private ResourceBundle resourceBundle;
+ private ContextTypeRegistry contextTypeRegistry;
+ private TemplateStore templateStore;
+
+ /**
+ * The constructor
+ */
+ public OCLStatesActivator() {
+ try {
+ resourceBundle = ResourceBundle.getBundle(RESOURCE_NAME);
+ } catch (MissingResourceException e) {
+ resourceBundle = null;
+ }
+
+ }
+
+ public ResourceBundle getResourceBundle() {
+ return resourceBundle;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+ * )
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ setDefault(this);
+ logger.debug("Starting fowlerdsl.ui activator: " + this.getClass().getName());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+ * )
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ setDefault(null);
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static OCLStatesActivator getDefault() {
+ return plugin;
+ }
+
+ private static void setDefault(OCLStatesActivator activator) {
+ plugin = activator;
+ }
+
+ /**
+ * Returns the template context type registry for the Fowler-Dsl editor.
+ *
+ * @return the template context type registry for the Fowler-Dsl editor
+ */
+ public ContextTypeRegistry getTemplateContextRegistry() {
+ if (contextTypeRegistry == null) {
+ ContributionContextTypeRegistry registry = new ContributionContextTypeRegistry();
+ registry.addContextType(EVENTS);
+ registry.addContextType(ACTIONS);
+ registry.addContextType(TRANSITION);
+ registry.addContextType(EVENT);
+ registry.addContextType(COMMAND);
+ registry.addContextType(STATE);
+ contextTypeRegistry = registry;
+ }
+ return contextTypeRegistry;
+ }
+
+ /**
+ * Returns the template store for the Fowler-Dsl editor.
+ *
+ * @return the template store for the Fowler-Dsl editor
+ */
+ public TemplateStore getTemplateStore() {
+ if (templateStore == null) {
+ templateStore = new ContributionTemplateStore(getTemplateContextRegistry(), getPreferenceStore(),
+ TEMPLATES_KEY);
+ try {
+ templateStore.load();
+ }
+ catch (IOException e) {
+ logger.error(e);
+ }
+ }
+ return templateStore;
+ }
+
+ public static void log(IStatus status) {
+ getDefault().getLog().log(status);
+ }
+
+ /**
+ * Writes the message to the plug-in's log
+ *
+ * @param message the text to write to the log
+ */
+ public static void log(String message, Throwable exception) {
+ IStatus status = createErrorStatus(message, exception);
+ getDefault().getLog().log(status);
+ }
+
+ public static void log(Throwable exception) {
+ getDefault().getLog().log(createErrorStatus(
+ getResourceString("Plugin.internal_error"), exception));
+ }
+ /**
+ * Returns a new <code>IStatus</code> for this plug-in
+ */
+ public static IStatus createErrorStatus(String message,
+ Throwable exception) {
+ return new Status(IStatus.ERROR, PLUGIN_ID, 0, message == null ? "" : message, exception);
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle,
+ * or 'key' if not found.
+ */
+ public static String getResourceString(String key) {
+ String bundleString;
+ ResourceBundle bundle = getDefault().getResourceBundle();
+ if (bundle != null) {
+ try {
+ bundleString = bundle.getString(key);
+ } catch (MissingResourceException e) {
+ log(e);
+ bundleString = "!" + key + "!";
+ }
+ } else {
+ bundleString = "!" + key + "!";
+ }
+ return bundleString;
+ }
+
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/OCLStatesUiModule.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/OCLStatesUiModule.java
new file mode 100644
index 0000000..aa4cdba
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/OCLStatesUiModule.java
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class OCLStatesUiModule extends org.eclipse.ocl.tutorial.eclipsecon2011.ui.AbstractOCLStatesUiModule {
+ public OCLStatesUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/OCLStatesProposalProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/OCLStatesProposalProvider.java
new file mode 100644
index 0000000..01fb249
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/contentassist/OCLStatesProposalProvider.java
@@ -0,0 +1,12 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.ui.contentassist.AbstractOCLStatesProposalProvider;
+/**
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#contentAssist on how to customize content assistant
+ */
+public class OCLStatesProposalProvider extends AbstractOCLStatesProposalProvider {
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/OCLStatesDescriptionLabelProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/OCLStatesDescriptionLabelProvider.java
new file mode 100644
index 0000000..5fd593e
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/OCLStatesDescriptionLabelProvider.java
@@ -0,0 +1,27 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui.labeling;
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider;
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ *
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class OCLStatesDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+
+/*
+ //Labels and icons can be computed like this:
+
+ String text(IEObjectDescription ele) {
+ return "my "+ele.getName();
+ }
+
+ String image(IEObjectDescription ele) {
+ return ele.getEClass().getName() + ".gif";
+ }
+*/
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/OCLStatesLabelProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/OCLStatesLabelProvider.java
new file mode 100644
index 0000000..9ea9145
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/labeling/OCLStatesLabelProvider.java
@@ -0,0 +1,34 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui.labeling;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider;
+
+import com.google.inject.Inject;
+
+/**
+ * Provides labels for a EObjects.
+ *
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class OCLStatesLabelProvider extends DefaultEObjectLabelProvider {
+
+ @Inject
+ public OCLStatesLabelProvider(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+/*
+ //Labels and icons can be computed like this:
+
+ String text(MyModel ele) {
+ return "my "+ele.getName();
+ }
+
+ String image(MyModel ele) {
+ return "MyModel.gif";
+ }
+*/
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/outline/OCLStatesOutlineTreeProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/outline/OCLStatesOutlineTreeProvider.java
new file mode 100644
index 0000000..6fbc612
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/src/org/eclipse/ocl/tutorial/eclipsecon2011/ui/outline/OCLStatesOutlineTreeProvider.java
@@ -0,0 +1,14 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * customization of the default outline structure
+ *
+ */
+public class OCLStatesOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/templates/templates.xml b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/templates/templates.xml
new file mode 100644
index 0000000..da339a0
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.ui/templates/templates.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates>
+ <template name="empty Statemachine" description="template for an empty Statemachine"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.states.ui.templates.module"
+ context="org.eclipse.ocl.tutorial.eclipsecon2011.States.kw_module"
+ enabled="true">module "org.example"
+
+statemachine Machine
+{
+ events START STOP;
+ ${cursor}
+ initial state Start
+ {
+ START => Start
+ }
+
+ state Stop
+ {
+ STOP => Stop
+ }
+}
+ </template>
+
+ <template name="state" description="state definition"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.states.ui.templates.state"
+ context="org.eclipse.ocl.tutorial.eclipsecon2011.States.State"
+ enabled="true">state ${name}
+{
+ ${cursor}
+}</template>
+
+ <template name="transition" description="event transition"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.states.ui.templates.transition"
+ context="org.eclipse.ocl.tutorial.eclipsecon2011.States.Transition"
+ enabled="true">
+ ${event:CrossReference('Transition.event')} => ${state:CrossReference('Transition.state')}
+ </template>
+
+ <template name="event" description="event definition"
+ id="org.eclipse.ocl.tutorial.eclipsecon2011.states.ui.templates.event"
+ context="org.eclipse.ocl.tutorial.eclipsecon2011.States.Event"
+ enabled="true">${event} ${shortCode}</template>
+
+</templates>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.classpath b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.classpath
new file mode 100644
index 0000000..1e16e09
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="emf-gen"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.cvsignore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.cvsignore
new file mode 100644
index 0000000..9e68776
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.cvsignore
@@ -0,0 +1,2 @@
+.antlr-generator-3.2.0.jar
+plugin.xml_gen
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.project b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.project
new file mode 100644
index 0000000..876771b
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ocl.tutorial.eclipsecon2011.oclstates</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.core.resources.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..52164b2
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Aug 18 18:37:57 CEST 2009
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.jdt.core.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0df49b9
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,369 @@
+#Mon Mar 07 12:46:00 GMT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=disabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.jdt.launching.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..cd7271f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.jdt.ui.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..f6caf59
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,118 @@
+#Wed Oct 14 22:36:24 CEST 2009
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=false
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_Xtext
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_'Xtext'
+formatter_settings_version=11
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"></template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"></template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"></template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} itemis AG (http\://www.itemis.eu) and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *******************************************************************************/</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user} - Initial contribution and API\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"></template><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"></template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"></template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"></template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-JSDoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=false
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.pde.prefs b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..2bd5814
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,25 @@
+#Wed Aug 12 21:14:13 CEST 2009
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/Generate OCLStates Editor.launch b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/Generate OCLStates Editor.launch
new file mode 100644
index 0000000..ff148f7
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/Generate OCLStates Editor.launch
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="bad_container_name" value="\org.eclipse.ocl.tutorial.eclipsecon2011.states.mode"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ocl.tutorial.eclipsecon2011.oclstates"/>
+</launchConfiguration>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/META-INF/MANIFEST.MF b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c98deb7
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/META-INF/MANIFEST.MF
@@ -0,0 +1,31 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EclipseCon 2011 Tutorial Xtext States with Embedded OCL Editor
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-Version: 1.0.0
+Bundle-SymbolicName: org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;singleton:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;bundle-version="2.0.0";visibility:=reexport,
+ org.eclipse.xtext.generator;bundle-version="2.0.0";resolution:=optional,
+ org.apache.log4j;bundle-version="1.2.15";visibility:=reexport,
+ org.eclipse.emf.mwe.core;bundle-version="1.0.0",
+ org.eclipse.xtext.util;bundle-version="2.0.0",
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.common,
+ org.eclipse.xtend;bundle-version="1.1.0",
+ org.eclipse.xtend.typesystem.emf;bundle-version="1.0.1",
+ org.eclipse.emf.mwe2.launch;bundle-version="2.0.0";resolution:=optional,
+ org.antlr.runtime,
+ org.eclipse.ocl.examples.xtext.oclinecore;bundle-version="3.1.0"
+Import-Package: org.apache.commons.logging;version="1.0.4",
+ org.apache.log4j
+Export-Package: org.eclipse.ocl.tutorial.eclipsecon2011,
+ org.eclipse.ocl.tutorial.eclipsecon2011.services,
+ org.eclipse.ocl.tutorial.eclipsecon2011.oclstates,
+ org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl,
+ org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.util,
+ org.eclipse.ocl.tutorial.eclipsecon2011.parseTreeConstruction,
+ org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr,
+ org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal,
+ org.eclipse.ocl.tutorial.eclipsecon2011.validation
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/about.html b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/about.html
new file mode 100644
index 0000000..1b8f940
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/build.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/build.properties
new file mode 100644
index 0000000..a355ee7
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/build.properties
@@ -0,0 +1,8 @@
+source.. = src/,\
+ src-gen/,\
+ emf-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/CompoundState.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/CompoundState.java
new file mode 100644
index 0000000..97ede4c
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/CompoundState.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CompoundState.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compound State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState#getMachine <em>Machine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getCompoundState()
+ * @model
+ * @generated
+ */
+public interface CompoundState extends State {
+ /**
+ * Returns the value of the '<em><b>Machine</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Machine</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Machine</em>' reference.
+ * @see #setMachine(Statemachine)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getCompoundState_Machine()
+ * @model
+ * @generated
+ */
+ Statemachine getMachine();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState#getMachine <em>Machine</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Machine</em>' reference.
+ * @see #getMachine()
+ * @generated
+ */
+ void setMachine(Statemachine value);
+
+} // CompoundState
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Event.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Event.java
new file mode 100644
index 0000000..63c10e9
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Event.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Event.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getEvent()
+ * @model
+ * @generated
+ */
+public interface Event extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getEvent_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event#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);
+
+} // Event
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Module.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Module.java
new file mode 100644
index 0000000..fcafa9f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Module.java
@@ -0,0 +1,73 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Module.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module#getMachines <em>Machines</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getModule()
+ * @model
+ * @generated
+ */
+public interface Module extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getModule_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module#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>Machines</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Machines</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>Machines</em>' containment reference list.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getModule_Machines()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Statemachine> getMachines();
+
+} // Module
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/OCLStatesFactory.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/OCLStatesFactory.java
new file mode 100644
index 0000000..040fdc4
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/OCLStatesFactory.java
@@ -0,0 +1,100 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OCLStatesFactory.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage
+ * @generated
+ */
+public interface OCLStatesFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ OCLStatesFactory eINSTANCE = org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Module</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module</em>'.
+ * @generated
+ */
+ Module createModule();
+
+ /**
+ * Returns a new object of class '<em>Statemachine</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Statemachine</em>'.
+ * @generated
+ */
+ Statemachine createStatemachine();
+
+ /**
+ * Returns a new object of class '<em>Event</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Event</em>'.
+ * @generated
+ */
+ Event createEvent();
+
+ /**
+ * Returns a new object of class '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>State</em>'.
+ * @generated
+ */
+ State createState();
+
+ /**
+ * Returns a new object of class '<em>Simple State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Simple State</em>'.
+ * @generated
+ */
+ SimpleState createSimpleState();
+
+ /**
+ * Returns a new object of class '<em>Compound State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Compound State</em>'.
+ * @generated
+ */
+ CompoundState createCompoundState();
+
+ /**
+ * Returns a new object of class '<em>Transition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transition</em>'.
+ * @generated
+ */
+ Transition createTransition();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ OCLStatesPackage getOCLStatesPackage();
+
+} //OCLStatesFactory
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/OCLStatesPackage.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/OCLStatesPackage.java
new file mode 100644
index 0000000..17efe4c
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/OCLStatesPackage.java
@@ -0,0 +1,946 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OCLStatesPackage.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;
+
+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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/emf/2002/Ecore invocationDelegates='http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot' settingDelegates='http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot' validationDelegates='http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot'"
+ * @generated
+ */
+public interface OCLStatesPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "oclstates";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "oclstates";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ OCLStatesPackage eINSTANCE = org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.ModuleImpl <em>Module</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.ModuleImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getModule()
+ * @generated
+ */
+ int MODULE = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Machines</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__MACHINES = 1;
+
+ /**
+ * The number of structural features of the '<em>Module</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Module</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StatemachineImpl <em>Statemachine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StatemachineImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getStatemachine()
+ * @generated
+ */
+ int STATEMACHINE = 1;
+
+ /**
+ * The feature id for the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__INITIAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__VALUE = 2;
+
+ /**
+ * The feature id for the '<em><b>Events</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__EVENTS = 3;
+
+ /**
+ * The feature id for the '<em><b>States</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__STATES = 4;
+
+ /**
+ * The number of structural features of the '<em>Statemachine</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE_FEATURE_COUNT = 5;
+
+ /**
+ * The number of operations of the '<em>Statemachine</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.EventImpl <em>Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.EventImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getEvent()
+ * @generated
+ */
+ int EVENT = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>Event</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Event</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StateImpl <em>State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getState()
+ * @generated
+ */
+ int STATE = 3;
+
+ /**
+ * The feature id for the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__INITIAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Transitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__TRANSITIONS = 2;
+
+ /**
+ * The feature id for the '<em><b>Statemachine</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__STATEMACHINE = 3;
+
+ /**
+ * The number of structural features of the '<em>State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_FEATURE_COUNT = 4;
+
+ /**
+ * The number of operations of the '<em>State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.SimpleStateImpl <em>Simple State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.SimpleStateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getSimpleState()
+ * @generated
+ */
+ int SIMPLE_STATE = 4;
+
+ /**
+ * The feature id for the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__INITIAL = STATE__INITIAL;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__NAME = STATE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Transitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__TRANSITIONS = STATE__TRANSITIONS;
+
+ /**
+ * The feature id for the '<em><b>Statemachine</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__STATEMACHINE = STATE__STATEMACHINE;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE__VALUE = STATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Simple State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE_FEATURE_COUNT = STATE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Simple State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_STATE_OPERATION_COUNT = STATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.CompoundStateImpl <em>Compound State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.CompoundStateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getCompoundState()
+ * @generated
+ */
+ int COMPOUND_STATE = 5;
+
+ /**
+ * The feature id for the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__INITIAL = STATE__INITIAL;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__NAME = STATE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Transitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__TRANSITIONS = STATE__TRANSITIONS;
+
+ /**
+ * The feature id for the '<em><b>Statemachine</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__STATEMACHINE = STATE__STATEMACHINE;
+
+ /**
+ * The feature id for the '<em><b>Machine</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE__MACHINE = STATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Compound State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE_FEATURE_COUNT = STATE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Compound State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_STATE_OPERATION_COUNT = STATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.TransitionImpl <em>Transition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.TransitionImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getTransition()
+ * @generated
+ */
+ int TRANSITION = 6;
+
+ /**
+ * The feature id for the '<em><b>Event</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION__EVENT = 0;
+
+ /**
+ * The feature id for the '<em><b>State</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION__STATE = 1;
+
+ /**
+ * The number of structural features of the '<em>Transition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Transition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module
+ * @generated
+ */
+ EClass getModule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module#getName()
+ * @see #getModule()
+ * @generated
+ */
+ EAttribute getModule_Name();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module#getMachines <em>Machines</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Machines</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module#getMachines()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_Machines();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine <em>Statemachine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Statemachine</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine
+ * @generated
+ */
+ EClass getStatemachine();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#isInitial <em>Initial</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Initial</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#isInitial()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EAttribute getStatemachine_Initial();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getName()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EAttribute getStatemachine_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getValue()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EAttribute getStatemachine_Value();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getEvents <em>Events</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Events</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getEvents()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EReference getStatemachine_Events();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getStates <em>States</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>States</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getStates()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EReference getStatemachine_States();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Event</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event
+ * @generated
+ */
+ EClass getEvent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event#getName()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>State</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State
+ * @generated
+ */
+ EClass getState();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#isInitial <em>Initial</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Initial</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#isInitial()
+ * @see #getState()
+ * @generated
+ */
+ EAttribute getState_Initial();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getName()
+ * @see #getState()
+ * @generated
+ */
+ EAttribute getState_Name();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getTransitions <em>Transitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Transitions</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getTransitions()
+ * @see #getState()
+ * @generated
+ */
+ EReference getState_Transitions();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getStatemachine <em>Statemachine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Statemachine</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getStatemachine()
+ * @see #getState()
+ * @generated
+ */
+ EReference getState_Statemachine();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState <em>Simple State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Simple State</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState
+ * @generated
+ */
+ EClass getSimpleState();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState#getValue()
+ * @see #getSimpleState()
+ * @generated
+ */
+ EAttribute getSimpleState_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState <em>Compound State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Compound State</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState
+ * @generated
+ */
+ EClass getCompoundState();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState#getMachine <em>Machine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Machine</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState#getMachine()
+ * @see #getCompoundState()
+ * @generated
+ */
+ EReference getCompoundState_Machine();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition <em>Transition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transition</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition
+ * @generated
+ */
+ EClass getTransition();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition#getEvent <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Event</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition#getEvent()
+ * @see #getTransition()
+ * @generated
+ */
+ EReference getTransition_Event();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition#getState <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>State</em>'.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition#getState()
+ * @see #getTransition()
+ * @generated
+ */
+ EReference getTransition_State();
+
+ /**
+ * 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
+ */
+ OCLStatesFactory getOCLStatesFactory();
+
+ /**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.ModuleImpl <em>Module</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.ModuleImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getModule()
+ * @generated
+ */
+ EClass MODULE = eINSTANCE.getModule();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODULE__NAME = eINSTANCE.getModule_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Machines</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__MACHINES = eINSTANCE.getModule_Machines();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StatemachineImpl <em>Statemachine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StatemachineImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getStatemachine()
+ * @generated
+ */
+ EClass STATEMACHINE = eINSTANCE.getStatemachine();
+
+ /**
+ * The meta object literal for the '<em><b>Initial</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATEMACHINE__INITIAL = eINSTANCE.getStatemachine_Initial();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATEMACHINE__NAME = eINSTANCE.getStatemachine_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATEMACHINE__VALUE = eINSTANCE.getStatemachine_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Events</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATEMACHINE__EVENTS = eINSTANCE.getStatemachine_Events();
+
+ /**
+ * The meta object literal for the '<em><b>States</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATEMACHINE__STATES = eINSTANCE.getStatemachine_States();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.EventImpl <em>Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.EventImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getEvent()
+ * @generated
+ */
+ EClass EVENT = eINSTANCE.getEvent();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__NAME = eINSTANCE.getEvent_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StateImpl <em>State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getState()
+ * @generated
+ */
+ EClass STATE = eINSTANCE.getState();
+
+ /**
+ * The meta object literal for the '<em><b>Initial</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATE__INITIAL = eINSTANCE.getState_Initial();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATE__NAME = eINSTANCE.getState_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Transitions</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATE__TRANSITIONS = eINSTANCE.getState_Transitions();
+
+ /**
+ * The meta object literal for the '<em><b>Statemachine</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATE__STATEMACHINE = eINSTANCE.getState_Statemachine();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.SimpleStateImpl <em>Simple State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.SimpleStateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getSimpleState()
+ * @generated
+ */
+ EClass SIMPLE_STATE = eINSTANCE.getSimpleState();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SIMPLE_STATE__VALUE = eINSTANCE.getSimpleState_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.CompoundStateImpl <em>Compound State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.CompoundStateImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getCompoundState()
+ * @generated
+ */
+ EClass COMPOUND_STATE = eINSTANCE.getCompoundState();
+
+ /**
+ * The meta object literal for the '<em><b>Machine</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOUND_STATE__MACHINE = eINSTANCE.getCompoundState_Machine();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.TransitionImpl <em>Transition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.TransitionImpl
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.OCLStatesPackageImpl#getTransition()
+ * @generated
+ */
+ EClass TRANSITION = eINSTANCE.getTransition();
+
+ /**
+ * The meta object literal for the '<em><b>Event</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION__EVENT = eINSTANCE.getTransition_Event();
+
+ /**
+ * The meta object literal for the '<em><b>State</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION__STATE = eINSTANCE.getTransition_State();
+
+ }
+
+} //OCLStatesPackage
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/SimpleState.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/SimpleState.java
new file mode 100644
index 0000000..6611f5f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/SimpleState.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SimpleState.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Simple State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getSimpleState()
+ * @model
+ * @generated
+ */
+public interface SimpleState extends State {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute 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.
+ * @see #setValue(int)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getSimpleState_Value()
+ * @model
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(int value);
+
+} // SimpleState
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/State.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/State.java
new file mode 100644
index 0000000..aa77ea7
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/State.java
@@ -0,0 +1,129 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: State.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#isInitial <em>Initial</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getTransitions <em>Transitions</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getStatemachine <em>Statemachine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getState()
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='UniqueInitialState NameIsLeadingUpperCase NameLength EveryEventIsHandled'"
+ * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot UniqueInitialState='initial implies (((statemachine).states)->select(initial))->size() = 1' UniqueInitialState$message='\'There is more than one initial state\'' NameIsLeadingUpperCase='let firstLetter : String = (name).substring(1, 1) in firstLetter.toUpperCase() = firstLetter' NameIsLeadingUpperCase$message='\'\\\'\' + name + \'\\\' must be Leading Uppercase\'' NameLength='(name).size() >= 4' NameLength$message='\'\\\'\' + name + \'\\\' has \' + ((name).size()).toString() + \' characters when at least 4 wanted\'' EveryEventIsHandled='let allEvents : Set(Event) = ((statemachine).events)->asSet() in let myEvents : Set(Event) = ((self.transitions)->collect(event))->asSet() in (allEvents - myEvents)->isEmpty()' EveryEventIsHandled$message='let allEvents : Set(Event) = ((statemachine).events)->asSet() in let myEvents : Set(Event) = ((self.transitions)->collect(event))->asSet() in (allEvents - myEvents)->iterate(e : Event ; s : String = \'The following events are not handled:\' | s + \' \' + e.name)'"
+ * @generated
+ */
+public interface State extends EObject {
+ /**
+ * Returns the value of the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Initial</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Initial</em>' attribute.
+ * @see #setInitial(boolean)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getState_Initial()
+ * @model
+ * @generated
+ */
+ boolean isInitial();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#isInitial <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Initial</em>' attribute.
+ * @see #isInitial()
+ * @generated
+ */
+ void setInitial(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getState_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#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>Transitions</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transitions</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>Transitions</em>' containment reference list.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getState_Transitions()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Transition> getTransitions();
+
+ /**
+ * Returns the value of the '<em><b>Statemachine</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statemachine</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statemachine</em>' reference.
+ * @see #setStatemachine(Statemachine)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getState_Statemachine()
+ * @model derived="true" ordered="false"
+ * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot derivation='(oclContainer()).oclAsType(Statemachine)'"
+ * @generated
+ */
+ Statemachine getStatemachine();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State#getStatemachine <em>Statemachine</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Statemachine</em>' reference.
+ * @see #getStatemachine()
+ * @generated
+ */
+ void setStatemachine(Statemachine value);
+
+} // State
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Statemachine.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Statemachine.java
new file mode 100644
index 0000000..892a8f8
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Statemachine.java
@@ -0,0 +1,145 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Statemachine.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statemachine</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#isInitial <em>Initial</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getEvents <em>Events</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getStates <em>States</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getStatemachine()
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='HasInitialState'"
+ * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot HasInitialState='(states)->exists(s : State | s.initial)' HasInitialState$message='\'No initial state\''"
+ * @generated
+ */
+public interface Statemachine extends EObject {
+ /**
+ * Returns the value of the '<em><b>Initial</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Initial</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Initial</em>' attribute.
+ * @see #setInitial(boolean)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getStatemachine_Initial()
+ * @model
+ * @generated
+ */
+ boolean isInitial();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#isInitial <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Initial</em>' attribute.
+ * @see #isInitial()
+ * @generated
+ */
+ void setInitial(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getStatemachine_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#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.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute 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.
+ * @see #setValue(int)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getStatemachine_Value()
+ * @model
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(int value);
+
+ /**
+ * Returns the value of the '<em><b>Events</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Events</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>Events</em>' containment reference list.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getStatemachine_Events()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Event> getEvents();
+
+ /**
+ * Returns the value of the '<em><b>States</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>States</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>States</em>' containment reference list.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getStatemachine_States()
+ * @model containment="true"
+ * @generated
+ */
+ EList<State> getStates();
+
+} // Statemachine
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Transition.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Transition.java
new file mode 100644
index 0000000..e2d893d
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/Transition.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Transition.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition#getEvent <em>Event</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition#getState <em>State</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getTransition()
+ * @model
+ * @generated
+ */
+public interface Transition extends EObject {
+ /**
+ * Returns the value of the '<em><b>Event</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Event</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Event</em>' reference.
+ * @see #setEvent(Event)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getTransition_Event()
+ * @model
+ * @generated
+ */
+ Event getEvent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition#getEvent <em>Event</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Event</em>' reference.
+ * @see #getEvent()
+ * @generated
+ */
+ void setEvent(Event value);
+
+ /**
+ * Returns the value of the '<em><b>State</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>State</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>State</em>' reference.
+ * @see #setState(State)
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#getTransition_State()
+ * @model
+ * @generated
+ */
+ State getState();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition#getState <em>State</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>State</em>' reference.
+ * @see #getState()
+ * @generated
+ */
+ void setState(State value);
+
+} // Transition
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/CompoundStateImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/CompoundStateImpl.java
new file mode 100644
index 0000000..ba6cc42
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/CompoundStateImpl.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CompoundStateImpl.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compound State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.CompoundStateImpl#getMachine <em>Machine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CompoundStateImpl extends StateImpl implements CompoundState {
+ /**
+ * The cached value of the '{@link #getMachine() <em>Machine</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMachine()
+ * @generated
+ * @ordered
+ */
+ protected Statemachine machine;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompoundStateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return OCLStatesPackage.Literals.COMPOUND_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statemachine getMachine() {
+ if (machine != null && machine.eIsProxy()) {
+ InternalEObject oldMachine = (InternalEObject)machine;
+ machine = (Statemachine)eResolveProxy(oldMachine);
+ if (machine != oldMachine) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, OCLStatesPackage.COMPOUND_STATE__MACHINE, oldMachine, machine));
+ }
+ }
+ return machine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statemachine basicGetMachine() {
+ return machine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMachine(Statemachine newMachine) {
+ Statemachine oldMachine = machine;
+ machine = newMachine;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, OCLStatesPackage.COMPOUND_STATE__MACHINE, oldMachine, machine));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case OCLStatesPackage.COMPOUND_STATE__MACHINE:
+ if (resolve) return getMachine();
+ return basicGetMachine();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case OCLStatesPackage.COMPOUND_STATE__MACHINE:
+ setMachine((Statemachine)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.COMPOUND_STATE__MACHINE:
+ setMachine((Statemachine)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.COMPOUND_STATE__MACHINE:
+ return machine != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //CompoundStateImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/EventImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/EventImpl.java
new file mode 100644
index 0000000..e13e5d6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/EventImpl.java
@@ -0,0 +1,167 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EventImpl.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.EventImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EventImpl extends MinimalEObjectImpl.Container implements Event {
+ /**
+ * 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 EventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return OCLStatesPackage.Literals.EVENT;
+ }
+
+ /**
+ * <!-- 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, OCLStatesPackage.EVENT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case OCLStatesPackage.EVENT__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 OCLStatesPackage.EVENT__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 OCLStatesPackage.EVENT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.EVENT__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();
+ }
+
+} //EventImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/ModuleImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/ModuleImpl.java
new file mode 100644
index 0000000..148c767
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/ModuleImpl.java
@@ -0,0 +1,226 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ModuleImpl.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.ModuleImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.ModuleImpl#getMachines <em>Machines</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModuleImpl extends MinimalEObjectImpl.Container implements Module {
+ /**
+ * 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 #getMachines() <em>Machines</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMachines()
+ * @generated
+ * @ordered
+ */
+ protected EList<Statemachine> machines;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return OCLStatesPackage.Literals.MODULE;
+ }
+
+ /**
+ * <!-- 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, OCLStatesPackage.MODULE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Statemachine> getMachines() {
+ if (machines == null) {
+ machines = new EObjectContainmentEList<Statemachine>(Statemachine.class, this, OCLStatesPackage.MODULE__MACHINES);
+ }
+ return machines;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case OCLStatesPackage.MODULE__MACHINES:
+ return ((InternalEList<?>)getMachines()).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 OCLStatesPackage.MODULE__NAME:
+ return getName();
+ case OCLStatesPackage.MODULE__MACHINES:
+ return getMachines();
+ }
+ 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 OCLStatesPackage.MODULE__NAME:
+ setName((String)newValue);
+ return;
+ case OCLStatesPackage.MODULE__MACHINES:
+ getMachines().clear();
+ getMachines().addAll((Collection<? extends Statemachine>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.MODULE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case OCLStatesPackage.MODULE__MACHINES:
+ getMachines().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.MODULE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case OCLStatesPackage.MODULE__MACHINES:
+ return machines != null && !machines.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();
+ }
+
+} //ModuleImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/OCLStatesFactoryImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/OCLStatesFactoryImpl.java
new file mode 100644
index 0000000..8dc10df
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/OCLStatesFactoryImpl.java
@@ -0,0 +1,165 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OCLStatesFactoryImpl.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OCLStatesFactoryImpl extends EFactoryImpl implements OCLStatesFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OCLStatesFactory init() {
+ try {
+ OCLStatesFactory theOCLStatesFactory = (OCLStatesFactory)EPackage.Registry.INSTANCE.getEFactory("http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates");
+ if (theOCLStatesFactory != null) {
+ return theOCLStatesFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new OCLStatesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OCLStatesFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case OCLStatesPackage.MODULE: return createModule();
+ case OCLStatesPackage.STATEMACHINE: return createStatemachine();
+ case OCLStatesPackage.EVENT: return createEvent();
+ case OCLStatesPackage.STATE: return createState();
+ case OCLStatesPackage.SIMPLE_STATE: return createSimpleState();
+ case OCLStatesPackage.COMPOUND_STATE: return createCompoundState();
+ case OCLStatesPackage.TRANSITION: return createTransition();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Module createModule() {
+ ModuleImpl module = new ModuleImpl();
+ return module;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statemachine createStatemachine() {
+ StatemachineImpl statemachine = new StatemachineImpl();
+ return statemachine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event createEvent() {
+ EventImpl event = new EventImpl();
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State createState() {
+ StateImpl state = new StateImpl();
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SimpleState createSimpleState() {
+ SimpleStateImpl simpleState = new SimpleStateImpl();
+ return simpleState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompoundState createCompoundState() {
+ CompoundStateImpl compoundState = new CompoundStateImpl();
+ return compoundState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transition createTransition() {
+ TransitionImpl transition = new TransitionImpl();
+ return transition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OCLStatesPackage getOCLStatesPackage() {
+ return (OCLStatesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static OCLStatesPackage getPackage() {
+ return OCLStatesPackage.eINSTANCE;
+ }
+
+} //OCLStatesFactoryImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/OCLStatesPackageImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/OCLStatesPackageImpl.java
new file mode 100644
index 0000000..7557b7b
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/OCLStatesPackageImpl.java
@@ -0,0 +1,559 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OCLStatesPackageImpl.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.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.EValidator;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesFactory;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.util.OCLStatesValidator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OCLStatesPackageImpl extends EPackageImpl implements OCLStatesPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass moduleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass statemachineEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass simpleStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compoundStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transitionEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private OCLStatesPackageImpl() {
+ super(eNS_URI, OCLStatesFactory.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 OCLStatesPackage#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 OCLStatesPackage init() {
+ if (isInited) return (OCLStatesPackage)EPackage.Registry.INSTANCE.getEPackage(OCLStatesPackage.eNS_URI);
+
+ // Obtain or create and register package
+ OCLStatesPackageImpl theOCLStatesPackage = (OCLStatesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof OCLStatesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new OCLStatesPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theOCLStatesPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theOCLStatesPackage.initializePackageContents();
+
+ // Register package validator
+ EValidator.Registry.INSTANCE.put
+ (theOCLStatesPackage,
+ new EValidator.Descriptor() {
+ public EValidator getEValidator() {
+ return OCLStatesValidator.INSTANCE;
+ }
+ });
+
+ // Mark meta-data to indicate it can't be changed
+ theOCLStatesPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(OCLStatesPackage.eNS_URI, theOCLStatesPackage);
+ return theOCLStatesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModule() {
+ return moduleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModule_Name() {
+ return (EAttribute)moduleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_Machines() {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStatemachine() {
+ return statemachineEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStatemachine_Initial() {
+ return (EAttribute)statemachineEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStatemachine_Name() {
+ return (EAttribute)statemachineEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStatemachine_Value() {
+ return (EAttribute)statemachineEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStatemachine_Events() {
+ return (EReference)statemachineEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStatemachine_States() {
+ return (EReference)statemachineEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvent() {
+ return eventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_Name() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getState() {
+ return stateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_Initial() {
+ return (EAttribute)stateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_Name() {
+ return (EAttribute)stateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Transitions() {
+ return (EReference)stateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Statemachine() {
+ return (EReference)stateEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSimpleState() {
+ return simpleStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSimpleState_Value() {
+ return (EAttribute)simpleStateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompoundState() {
+ return compoundStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompoundState_Machine() {
+ return (EReference)compoundStateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTransition() {
+ return transitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_Event() {
+ return (EReference)transitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_State() {
+ return (EReference)transitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OCLStatesFactory getOCLStatesFactory() {
+ return (OCLStatesFactory)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
+ moduleEClass = createEClass(MODULE);
+ createEAttribute(moduleEClass, MODULE__NAME);
+ createEReference(moduleEClass, MODULE__MACHINES);
+
+ statemachineEClass = createEClass(STATEMACHINE);
+ createEAttribute(statemachineEClass, STATEMACHINE__INITIAL);
+ createEAttribute(statemachineEClass, STATEMACHINE__NAME);
+ createEAttribute(statemachineEClass, STATEMACHINE__VALUE);
+ createEReference(statemachineEClass, STATEMACHINE__EVENTS);
+ createEReference(statemachineEClass, STATEMACHINE__STATES);
+
+ eventEClass = createEClass(EVENT);
+ createEAttribute(eventEClass, EVENT__NAME);
+
+ stateEClass = createEClass(STATE);
+ createEAttribute(stateEClass, STATE__INITIAL);
+ createEAttribute(stateEClass, STATE__NAME);
+ createEReference(stateEClass, STATE__TRANSITIONS);
+ createEReference(stateEClass, STATE__STATEMACHINE);
+
+ simpleStateEClass = createEClass(SIMPLE_STATE);
+ createEAttribute(simpleStateEClass, SIMPLE_STATE__VALUE);
+
+ compoundStateEClass = createEClass(COMPOUND_STATE);
+ createEReference(compoundStateEClass, COMPOUND_STATE__MACHINE);
+
+ transitionEClass = createEClass(TRANSITION);
+ createEReference(transitionEClass, TRANSITION__EVENT);
+ createEReference(transitionEClass, TRANSITION__STATE);
+ }
+
+ /**
+ * <!-- 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
+ simpleStateEClass.getESuperTypes().add(this.getState());
+ compoundStateEClass.getESuperTypes().add(this.getState());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(moduleEClass, Module.class, "Module", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModule_Name(), ecorePackage.getEString(), "name", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_Machines(), this.getStatemachine(), null, "machines", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(statemachineEClass, Statemachine.class, "Statemachine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStatemachine_Initial(), ecorePackage.getEBoolean(), "initial", null, 0, 1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStatemachine_Name(), ecorePackage.getEString(), "name", null, 0, 1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStatemachine_Value(), ecorePackage.getEInt(), "value", null, 0, 1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStatemachine_Events(), this.getEvent(), null, "events", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStatemachine_States(), this.getState(), null, "states", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEvent_Name(), ecorePackage.getEString(), "name", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stateEClass, State.class, "State", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getState_Initial(), ecorePackage.getEBoolean(), "initial", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getState_Name(), ecorePackage.getEString(), "name", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getState_Transitions(), this.getTransition(), null, "transitions", null, 0, -1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getState_Statemachine(), this.getStatemachine(), null, "statemachine", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+
+ initEClass(simpleStateEClass, SimpleState.class, "SimpleState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSimpleState_Value(), ecorePackage.getEInt(), "value", null, 0, 1, SimpleState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(compoundStateEClass, CompoundState.class, "CompoundState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCompoundState_Machine(), this.getStatemachine(), null, "machine", null, 0, 1, CompoundState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(transitionEClass, Transition.class, "Transition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTransition_Event(), this.getEvent(), null, "event", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTransition_State(), this.getState(), null, "state", null, 0, 1, Transition.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);
+
+ // Create annotations
+ // http://www.eclipse.org/emf/2002/Ecore
+ createEcoreAnnotations();
+ // http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot
+ createPivotAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createEcoreAnnotations() {
+ String source = "http://www.eclipse.org/emf/2002/Ecore";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "invocationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
+ "settingDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
+ "validationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"
+ });
+ addAnnotation
+ (statemachineEClass,
+ source,
+ new String[] {
+ "constraints", "HasInitialState"
+ });
+ addAnnotation
+ (stateEClass,
+ source,
+ new String[] {
+ "constraints", "UniqueInitialState NameIsLeadingUpperCase NameLength EveryEventIsHandled"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createPivotAnnotations() {
+ String source = "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot";
+ addAnnotation
+ (statemachineEClass,
+ source,
+ new String[] {
+ "HasInitialState", "(states)->exists(s : State | s.initial)",
+ "HasInitialState$message", "\'No initial state\'"
+ });
+ addAnnotation
+ (stateEClass,
+ source,
+ new String[] {
+ "UniqueInitialState", "initial implies (((statemachine).states)->select(initial))->size() = 1",
+ "UniqueInitialState$message", "\'There is more than one initial state\'",
+ "NameIsLeadingUpperCase", "let firstLetter : String = (name).substring(1, 1) in firstLetter.toUpperCase() = firstLetter",
+ "NameIsLeadingUpperCase$message", "\'\\\'\' + name + \'\\\' must be Leading Uppercase\'",
+ "NameLength", "(name).size() >= 4",
+ "NameLength$message", "\'\\\'\' + name + \'\\\' has \' + ((name).size()).toString() + \' characters when at least 4 wanted\'",
+ "EveryEventIsHandled", "let allEvents : Set(Event) = ((statemachine).events)->asSet() in let myEvents : Set(Event) = ((self.transitions)->collect(event))->asSet() in (allEvents - myEvents)->isEmpty()",
+ "EveryEventIsHandled$message", "let allEvents : Set(Event) = ((statemachine).events)->asSet() in let myEvents : Set(Event) = ((self.transitions)->collect(event))->asSet() in (allEvents - myEvents)->iterate(e : Event ; s : String = \'The following events are not handled:\' | s + \' \' + e.name)"
+ });
+ addAnnotation
+ (getState_Statemachine(),
+ source,
+ new String[] {
+ "derivation", "(oclContainer()).oclAsType(Statemachine)"
+ });
+ }
+
+} //OCLStatesPackageImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/SimpleStateImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/SimpleStateImpl.java
new file mode 100644
index 0000000..7ff3c3f
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/SimpleStateImpl.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SimpleStateImpl.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Simple State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.SimpleStateImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SimpleStateImpl extends StateImpl implements SimpleState {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SimpleStateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return OCLStatesPackage.Literals.SIMPLE_STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(int newValue) {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, OCLStatesPackage.SIMPLE_STATE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case OCLStatesPackage.SIMPLE_STATE__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case OCLStatesPackage.SIMPLE_STATE__VALUE:
+ setValue((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.SIMPLE_STATE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.SIMPLE_STATE__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ 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(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SimpleStateImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/StateImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/StateImpl.java
new file mode 100644
index 0000000..44ae331
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/StateImpl.java
@@ -0,0 +1,331 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: StateImpl.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StateImpl#isInitial <em>Initial</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StateImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StateImpl#getTransitions <em>Transitions</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StateImpl#getStatemachine <em>Statemachine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StateImpl extends MinimalEObjectImpl.Container implements State {
+ /**
+ * The default value of the '{@link #isInitial() <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInitial()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INITIAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInitial() <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInitial()
+ * @generated
+ * @ordered
+ */
+ protected boolean initial = INITIAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getTransitions() <em>Transitions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransitions()
+ * @generated
+ * @ordered
+ */
+ protected EList<Transition> transitions;
+
+ /**
+ * The cached setting delegate for the '{@link #getStatemachine() <em>Statemachine</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatemachine()
+ * @generated
+ * @ordered
+ */
+ protected EStructuralFeature.Internal.SettingDelegate STATEMACHINE__ESETTING_DELEGATE = ((EStructuralFeature.Internal)OCLStatesPackage.Literals.STATE__STATEMACHINE).getSettingDelegate();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return OCLStatesPackage.Literals.STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInitial() {
+ return initial;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitial(boolean newInitial) {
+ boolean oldInitial = initial;
+ initial = newInitial;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, OCLStatesPackage.STATE__INITIAL, oldInitial, initial));
+ }
+
+ /**
+ * <!-- 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, OCLStatesPackage.STATE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Transition> getTransitions() {
+ if (transitions == null) {
+ transitions = new EObjectContainmentEList<Transition>(Transition.class, this, OCLStatesPackage.STATE__TRANSITIONS);
+ }
+ return transitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statemachine getStatemachine() {
+ return (Statemachine)STATEMACHINE__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statemachine basicGetStatemachine() {
+ return (Statemachine)STATEMACHINE__ESETTING_DELEGATE.dynamicGet(this, null, 0, false, false);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatemachine(Statemachine newStatemachine) {
+ STATEMACHINE__ESETTING_DELEGATE.dynamicSet(this, null, 0, newStatemachine);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case OCLStatesPackage.STATE__TRANSITIONS:
+ return ((InternalEList<?>)getTransitions()).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 OCLStatesPackage.STATE__INITIAL:
+ return isInitial();
+ case OCLStatesPackage.STATE__NAME:
+ return getName();
+ case OCLStatesPackage.STATE__TRANSITIONS:
+ return getTransitions();
+ case OCLStatesPackage.STATE__STATEMACHINE:
+ if (resolve) return getStatemachine();
+ return basicGetStatemachine();
+ }
+ 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 OCLStatesPackage.STATE__INITIAL:
+ setInitial((Boolean)newValue);
+ return;
+ case OCLStatesPackage.STATE__NAME:
+ setName((String)newValue);
+ return;
+ case OCLStatesPackage.STATE__TRANSITIONS:
+ getTransitions().clear();
+ getTransitions().addAll((Collection<? extends Transition>)newValue);
+ return;
+ case OCLStatesPackage.STATE__STATEMACHINE:
+ setStatemachine((Statemachine)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.STATE__INITIAL:
+ setInitial(INITIAL_EDEFAULT);
+ return;
+ case OCLStatesPackage.STATE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case OCLStatesPackage.STATE__TRANSITIONS:
+ getTransitions().clear();
+ return;
+ case OCLStatesPackage.STATE__STATEMACHINE:
+ setStatemachine((Statemachine)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.STATE__INITIAL:
+ return initial != INITIAL_EDEFAULT;
+ case OCLStatesPackage.STATE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case OCLStatesPackage.STATE__TRANSITIONS:
+ return transitions != null && !transitions.isEmpty();
+ case OCLStatesPackage.STATE__STATEMACHINE:
+ return STATEMACHINE__ESETTING_DELEGATE.dynamicIsSet(this, null, 0);
+ }
+ 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(" (initial: ");
+ result.append(initial);
+ result.append(", name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StateImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/StatemachineImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/StatemachineImpl.java
new file mode 100644
index 0000000..efee334
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/StatemachineImpl.java
@@ -0,0 +1,371 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: StatemachineImpl.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Statemachine</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StatemachineImpl#isInitial <em>Initial</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StatemachineImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StatemachineImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StatemachineImpl#getEvents <em>Events</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.StatemachineImpl#getStates <em>States</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StatemachineImpl extends MinimalEObjectImpl.Container implements Statemachine {
+ /**
+ * The default value of the '{@link #isInitial() <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInitial()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INITIAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInitial() <em>Initial</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInitial()
+ * @generated
+ * @ordered
+ */
+ protected boolean initial = INITIAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getEvents() <em>Events</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvents()
+ * @generated
+ * @ordered
+ */
+ protected EList<Event> events;
+
+ /**
+ * The cached value of the '{@link #getStates() <em>States</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStates()
+ * @generated
+ * @ordered
+ */
+ protected EList<State> states;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StatemachineImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return OCLStatesPackage.Literals.STATEMACHINE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInitial() {
+ return initial;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitial(boolean newInitial) {
+ boolean oldInitial = initial;
+ initial = newInitial;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, OCLStatesPackage.STATEMACHINE__INITIAL, oldInitial, initial));
+ }
+
+ /**
+ * <!-- 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, OCLStatesPackage.STATEMACHINE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(int newValue) {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, OCLStatesPackage.STATEMACHINE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Event> getEvents() {
+ if (events == null) {
+ events = new EObjectContainmentEList<Event>(Event.class, this, OCLStatesPackage.STATEMACHINE__EVENTS);
+ }
+ return events;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<State> getStates() {
+ if (states == null) {
+ states = new EObjectContainmentEList<State>(State.class, this, OCLStatesPackage.STATEMACHINE__STATES);
+ }
+ return states;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case OCLStatesPackage.STATEMACHINE__EVENTS:
+ return ((InternalEList<?>)getEvents()).basicRemove(otherEnd, msgs);
+ case OCLStatesPackage.STATEMACHINE__STATES:
+ return ((InternalEList<?>)getStates()).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 OCLStatesPackage.STATEMACHINE__INITIAL:
+ return isInitial();
+ case OCLStatesPackage.STATEMACHINE__NAME:
+ return getName();
+ case OCLStatesPackage.STATEMACHINE__VALUE:
+ return getValue();
+ case OCLStatesPackage.STATEMACHINE__EVENTS:
+ return getEvents();
+ case OCLStatesPackage.STATEMACHINE__STATES:
+ return getStates();
+ }
+ 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 OCLStatesPackage.STATEMACHINE__INITIAL:
+ setInitial((Boolean)newValue);
+ return;
+ case OCLStatesPackage.STATEMACHINE__NAME:
+ setName((String)newValue);
+ return;
+ case OCLStatesPackage.STATEMACHINE__VALUE:
+ setValue((Integer)newValue);
+ return;
+ case OCLStatesPackage.STATEMACHINE__EVENTS:
+ getEvents().clear();
+ getEvents().addAll((Collection<? extends Event>)newValue);
+ return;
+ case OCLStatesPackage.STATEMACHINE__STATES:
+ getStates().clear();
+ getStates().addAll((Collection<? extends State>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.STATEMACHINE__INITIAL:
+ setInitial(INITIAL_EDEFAULT);
+ return;
+ case OCLStatesPackage.STATEMACHINE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case OCLStatesPackage.STATEMACHINE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case OCLStatesPackage.STATEMACHINE__EVENTS:
+ getEvents().clear();
+ return;
+ case OCLStatesPackage.STATEMACHINE__STATES:
+ getStates().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.STATEMACHINE__INITIAL:
+ return initial != INITIAL_EDEFAULT;
+ case OCLStatesPackage.STATEMACHINE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case OCLStatesPackage.STATEMACHINE__VALUE:
+ return value != VALUE_EDEFAULT;
+ case OCLStatesPackage.STATEMACHINE__EVENTS:
+ return events != null && !events.isEmpty();
+ case OCLStatesPackage.STATEMACHINE__STATES:
+ return states != null && !states.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(" (initial: ");
+ result.append(initial);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StatemachineImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/TransitionImpl.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/TransitionImpl.java
new file mode 100644
index 0000000..b3cfde6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/impl/TransitionImpl.java
@@ -0,0 +1,222 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TransitionImpl.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.TransitionImpl#getEvent <em>Event</em>}</li>
+ * <li>{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.impl.TransitionImpl#getState <em>State</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TransitionImpl extends MinimalEObjectImpl.Container implements Transition {
+ /**
+ * The cached value of the '{@link #getEvent() <em>Event</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvent()
+ * @generated
+ * @ordered
+ */
+ protected Event event;
+
+ /**
+ * The cached value of the '{@link #getState() <em>State</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getState()
+ * @generated
+ * @ordered
+ */
+ protected State state;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransitionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return OCLStatesPackage.Literals.TRANSITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event getEvent() {
+ if (event != null && event.eIsProxy()) {
+ InternalEObject oldEvent = (InternalEObject)event;
+ event = (Event)eResolveProxy(oldEvent);
+ if (event != oldEvent) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, OCLStatesPackage.TRANSITION__EVENT, oldEvent, event));
+ }
+ }
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event basicGetEvent() {
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEvent(Event newEvent) {
+ Event oldEvent = event;
+ event = newEvent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, OCLStatesPackage.TRANSITION__EVENT, oldEvent, event));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State getState() {
+ if (state != null && state.eIsProxy()) {
+ InternalEObject oldState = (InternalEObject)state;
+ state = (State)eResolveProxy(oldState);
+ if (state != oldState) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, OCLStatesPackage.TRANSITION__STATE, oldState, state));
+ }
+ }
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State basicGetState() {
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setState(State newState) {
+ State oldState = state;
+ state = newState;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, OCLStatesPackage.TRANSITION__STATE, oldState, state));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case OCLStatesPackage.TRANSITION__EVENT:
+ if (resolve) return getEvent();
+ return basicGetEvent();
+ case OCLStatesPackage.TRANSITION__STATE:
+ if (resolve) return getState();
+ return basicGetState();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case OCLStatesPackage.TRANSITION__EVENT:
+ setEvent((Event)newValue);
+ return;
+ case OCLStatesPackage.TRANSITION__STATE:
+ setState((State)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.TRANSITION__EVENT:
+ setEvent((Event)null);
+ return;
+ case OCLStatesPackage.TRANSITION__STATE:
+ setState((State)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case OCLStatesPackage.TRANSITION__EVENT:
+ return event != null;
+ case OCLStatesPackage.TRANSITION__STATE:
+ return state != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TransitionImpl
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/util/OCLStatesAdapterFactory.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/util/OCLStatesAdapterFactory.java
new file mode 100644
index 0000000..d270a35
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/util/OCLStatesAdapterFactory.java
@@ -0,0 +1,232 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OCLStatesAdapterFactory.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage
+ * @generated
+ */
+public class OCLStatesAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static OCLStatesPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OCLStatesAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = OCLStatesPackage.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 OCLStatesSwitch<Adapter> modelSwitch =
+ new OCLStatesSwitch<Adapter>() {
+ @Override
+ public Adapter caseModule(Module object) {
+ return createModuleAdapter();
+ }
+ @Override
+ public Adapter caseStatemachine(Statemachine object) {
+ return createStatemachineAdapter();
+ }
+ @Override
+ public Adapter caseEvent(Event object) {
+ return createEventAdapter();
+ }
+ @Override
+ public Adapter caseState(State object) {
+ return createStateAdapter();
+ }
+ @Override
+ public Adapter caseSimpleState(SimpleState object) {
+ return createSimpleStateAdapter();
+ }
+ @Override
+ public Adapter caseCompoundState(CompoundState object) {
+ return createCompoundStateAdapter();
+ }
+ @Override
+ public Adapter caseTransition(Transition object) {
+ return createTransitionAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module
+ * @generated
+ */
+ public Adapter createModuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine <em>Statemachine</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine
+ * @generated
+ */
+ public Adapter createStatemachineAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event
+ * @generated
+ */
+ public Adapter createEventAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State
+ * @generated
+ */
+ public Adapter createStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState <em>Simple State</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState
+ * @generated
+ */
+ public Adapter createSimpleStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState <em>Compound State</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState
+ * @generated
+ */
+ public Adapter createCompoundStateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition <em>Transition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition
+ * @generated
+ */
+ public Adapter createTransitionAdapter() {
+ 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;
+ }
+
+} //OCLStatesAdapterFactory
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/util/OCLStatesSwitch.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/util/OCLStatesSwitch.java
new file mode 100644
index 0000000..dbe762d
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/util/OCLStatesSwitch.java
@@ -0,0 +1,242 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OCLStatesSwitch.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage
+ * @generated
+ */
+public class OCLStatesSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static OCLStatesPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OCLStatesSwitch() {
+ if (modelPackage == null) {
+ modelPackage = OCLStatesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case OCLStatesPackage.MODULE: {
+ Module module = (Module)theEObject;
+ T result = caseModule(module);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case OCLStatesPackage.STATEMACHINE: {
+ Statemachine statemachine = (Statemachine)theEObject;
+ T result = caseStatemachine(statemachine);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case OCLStatesPackage.EVENT: {
+ Event event = (Event)theEObject;
+ T result = caseEvent(event);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case OCLStatesPackage.STATE: {
+ State state = (State)theEObject;
+ T result = caseState(state);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case OCLStatesPackage.SIMPLE_STATE: {
+ SimpleState simpleState = (SimpleState)theEObject;
+ T result = caseSimpleState(simpleState);
+ if (result == null) result = caseState(simpleState);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case OCLStatesPackage.COMPOUND_STATE: {
+ CompoundState compoundState = (CompoundState)theEObject;
+ T result = caseCompoundState(compoundState);
+ if (result == null) result = caseState(compoundState);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case OCLStatesPackage.TRANSITION: {
+ Transition transition = (Transition)theEObject;
+ T result = caseTransition(transition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module</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>Module</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModule(Module object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Statemachine</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>Statemachine</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStatemachine(Statemachine object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Event</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>Event</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEvent(Event object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>State</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>State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseState(State object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Simple State</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Simple State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSimpleState(SimpleState object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Compound State</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>Compound State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompoundState(CompoundState object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transition</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>Transition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransition(Transition 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;
+ }
+
+} //OCLStatesSwitch
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/util/OCLStatesValidator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/util/OCLStatesValidator.java
new file mode 100644
index 0000000..14dd7dc
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen/org/eclipse/ocl/tutorial/eclipsecon2011/oclstates/util/OCLStatesValidator.java
@@ -0,0 +1,387 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OCLStatesValidator.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.ocl.examples.xtext.oclinecore.validation.OCLinEcoreEObjectValidator;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.CompoundState;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Event;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Module;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.SimpleState;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.State;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Statemachine;
+import org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.Transition;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Validator</b> for the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage
+ * @generated not
+ */
+public class OCLStatesValidator extends OCLinEcoreEObjectValidator {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final OCLStatesValidator INSTANCE = new OCLStatesValidator();
+
+ /**
+ * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.common.util.Diagnostic#getSource()
+ * @see org.eclipse.emf.common.util.Diagnostic#getCode()
+ * @generated
+ */
+ public static final String DIAGNOSTIC_SOURCE = "org.eclipse.ocl.tutorial.eclipsecon2011.oclstates";
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OCLStatesValidator() {
+ super();
+ }
+
+ /**
+ * Returns the package of this validator switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EPackage getEPackage() {
+ return OCLStatesPackage.eINSTANCE;
+ }
+
+ /**
+ * Calls <code>validateXXX</code> for the corresponding classifier of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ switch (classifierID) {
+ case OCLStatesPackage.MODULE:
+ return validateModule((Module)value, diagnostics, context);
+ case OCLStatesPackage.STATEMACHINE:
+ return validateStatemachine((Statemachine)value, diagnostics, context);
+ case OCLStatesPackage.EVENT:
+ return validateEvent((Event)value, diagnostics, context);
+ case OCLStatesPackage.STATE:
+ return validateState((State)value, diagnostics, context);
+ case OCLStatesPackage.SIMPLE_STATE:
+ return validateSimpleState((SimpleState)value, diagnostics, context);
+ case OCLStatesPackage.COMPOUND_STATE:
+ return validateCompoundState((CompoundState)value, diagnostics, context);
+ case OCLStatesPackage.TRANSITION:
+ return validateTransition((Transition)value, diagnostics, context);
+ default:
+ return true;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateModule(Module module, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(module, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateStatemachine(Statemachine statemachine, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(statemachine, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(statemachine, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(statemachine, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(statemachine, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(statemachine, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(statemachine, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(statemachine, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(statemachine, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(statemachine, diagnostics, context);
+ if (result || diagnostics != null) result &= validateStatemachine_HasInitialState(statemachine, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * The cached validation expression for the HasInitialState constraint of '<em>Statemachine</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final String STATEMACHINE__HAS_INITIAL_STATE__EEXPRESSION = "(states)->exists(s : State | s.initial)";
+
+ /**
+ * Validates the HasInitialState constraint of '<em>Statemachine</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateStatemachine_HasInitialState(Statemachine statemachine, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return
+ validate
+ (OCLStatesPackage.Literals.STATEMACHINE,
+ statemachine,
+ diagnostics,
+ context,
+ "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
+ "HasInitialState",
+ STATEMACHINE__HAS_INITIAL_STATE__EEXPRESSION,
+ Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEvent(Event event, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(event, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateState(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(state, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_UniqueInitialState(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_NameIsLeadingUpperCase(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_NameLength(state, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_EveryEventIsHandled(state, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * The cached validation expression for the NameIsLeadingUpperCase constraint of '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final String STATE__NAME_IS_LEADING_UPPER_CASE__EEXPRESSION = "let firstLetter : String = (name).substring(1, 1) in firstLetter.toUpperCase() = firstLetter";
+
+ /**
+ * Validates the NameIsLeadingUpperCase constraint of '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateState_NameIsLeadingUpperCase(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return
+ validate
+ (OCLStatesPackage.Literals.STATE,
+ state,
+ diagnostics,
+ context,
+ "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
+ "NameIsLeadingUpperCase",
+ STATE__NAME_IS_LEADING_UPPER_CASE__EEXPRESSION,
+ Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0);
+ }
+
+ /**
+ * The cached validation expression for the NameLength constraint of '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final String STATE__NAME_LENGTH__EEXPRESSION = "(name).size() >= 4";
+
+ /**
+ * Validates the NameLength constraint of '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateState_NameLength(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return
+ validate
+ (OCLStatesPackage.Literals.STATE,
+ state,
+ diagnostics,
+ context,
+ "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
+ "NameLength",
+ STATE__NAME_LENGTH__EEXPRESSION,
+ Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0);
+ }
+
+ /**
+ * The cached validation expression for the UniqueInitialState constraint of '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final String STATE__UNIQUE_INITIAL_STATE__EEXPRESSION = "initial implies (((statemachine).states)->select(initial))->size() = 1";
+
+ /**
+ * Validates the UniqueInitialState constraint of '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateState_UniqueInitialState(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return
+ validate
+ (OCLStatesPackage.Literals.STATE,
+ state,
+ diagnostics,
+ context,
+ "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
+ "UniqueInitialState",
+ STATE__UNIQUE_INITIAL_STATE__EEXPRESSION,
+ Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0);
+ }
+
+ /**
+ * The cached validation expression for the EveryEventIsHandled constraint of '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final String STATE__EVERY_EVENT_IS_HANDLED__EEXPRESSION = "let allEvents : Set(Event) = ((statemachine).events)->asSet() in let myEvents : Set(Event) = ((self.transitions)->collect(event))->asSet() in (allEvents - myEvents)->isEmpty()";
+
+ /**
+ * Validates the EveryEventIsHandled constraint of '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateState_EveryEventIsHandled(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return
+ validate
+ (OCLStatesPackage.Literals.STATE,
+ state,
+ diagnostics,
+ context,
+ "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
+ "EveryEventIsHandled",
+ STATE__EVERY_EVENT_IS_HANDLED__EEXPRESSION,
+ Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSimpleState(SimpleState simpleState, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(simpleState, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_UniqueInitialState(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_NameIsLeadingUpperCase(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_NameLength(simpleState, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_EveryEventIsHandled(simpleState, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCompoundState(CompoundState compoundState, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(compoundState, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_UniqueInitialState(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_NameIsLeadingUpperCase(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_NameLength(compoundState, diagnostics, context);
+ if (result || diagnostics != null) result &= validateState_EveryEventIsHandled(compoundState, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTransition(Transition transition, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(transition, diagnostics, context);
+ }
+
+ /**
+ * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ // TODO
+ // Specialize this to return a resource locator for messages specific to this validator.
+ // Ensure that you remove @generated or mark it @generated NOT
+ return super.getResourceLocator();
+ }
+
+} //OCLStatesValidator
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/model/OCLStates.ecore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/model/OCLStates.ecore
new file mode 100644
index 0000000..b77d3b6
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/model/OCLStates.ecore
@@ -0,0 +1,70 @@
+<?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="oclstates"
+ nsURI="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates" nsPrefix="oclstates">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
+ <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
+ <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="Module">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="machines" upperBound="-1"
+ eType="#//Statemachine" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Statemachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="HasInitialState"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details key="HasInitialState" value="(states)->exists(s : State | s.initial)"/>
+ <details key="HasInitialState$message" value="'No initial state'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <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" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
+ eType="#//Event" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
+ eType="#//State" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Event">
+ <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="State">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="UniqueInitialState NameIsLeadingUpperCase NameLength EveryEventIsHandled"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details key="UniqueInitialState" value="initial implies (((statemachine).states)->select(initial))->size() = 1"/>
+ <details key="UniqueInitialState$message" value="'There is more than one initial state'"/>
+ <details key="NameIsLeadingUpperCase" value="let firstLetter : String = (name).substring(1, 1) in firstLetter.toUpperCase() = firstLetter"/>
+ <details key="NameIsLeadingUpperCase$message" value="'\'' + name + '\' must be Leading Uppercase'"/>
+ <details key="NameLength" value="(name).size() >= 4"/>
+ <details key="NameLength$message" value="'\'' + name + '\' has ' + ((name).size()).toString() + ' characters when at least 4 wanted'"/>
+ <details key="EveryEventIsHandled" value="let allEvents : Set(Event) = ((statemachine).events)->asSet() in let myEvents : Set(Event) = ((self.transitions)->collect(event))->asSet() in (allEvents - myEvents)->isEmpty()"/>
+ <details key="EveryEventIsHandled$message" value="let allEvents : Set(Event) = ((statemachine).events)->asSet() in let myEvents : Set(Event) = ((self.transitions)->collect(event))->asSet() in (allEvents - myEvents)->iterate(e : Event ; s : String = 'The following events are not handled:' | s + ' ' + e.name)"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitions" upperBound="-1"
+ eType="#//Transition" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="statemachine" ordered="false"
+ eType="#//Statemachine" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details key="derivation" value="(oclContainer()).oclAsType(Statemachine)"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SimpleState" eSuperTypes="#//State">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompoundState" eSuperTypes="#//State">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="machine" eType="#//Statemachine"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Transition">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="event" eType="#//Event"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//State"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/model/OCLStates.genmodel b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/model/OCLStates.genmodel
new file mode 100644
index 0000000..14f0456
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/model/OCLStates.genmodel
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/emf-gen"
+ modelPluginID="org.eclipse.ocl.tutorial.eclipsecon2011.oclstates" forceOverwrite="true"
+ modelName="OCLStates" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+ interfaceNamePattern="" operationReflection="true">
+ <foreignModel>OCLStates.ecore</foreignModel>
+ <genPackages prefix="OCLStates" basePackage="org.eclipse.ocl.tutorial.eclipsecon2011"
+ disposableProviderFactory="true" ecorePackage="OCLStates.ecore#/">
+ <genClasses ecoreClass="OCLStates.ecore#//Module">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute OCLStates.ecore#//Module/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference OCLStates.ecore#//Module/machines"/>
+ </genClasses>
+ <genClasses ecoreClass="OCLStates.ecore#//Statemachine">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute OCLStates.ecore#//Statemachine/initial"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute OCLStates.ecore#//Statemachine/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute OCLStates.ecore#//Statemachine/value"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference OCLStates.ecore#//Statemachine/events"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference OCLStates.ecore#//Statemachine/states"/>
+ </genClasses>
+ <genClasses ecoreClass="OCLStates.ecore#//Event">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute OCLStates.ecore#//Event/name"/>
+ </genClasses>
+ <genClasses ecoreClass="OCLStates.ecore#//State">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute OCLStates.ecore#//State/initial"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute OCLStates.ecore#//State/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference OCLStates.ecore#//State/transitions"/>
+ </genClasses>
+ <genClasses ecoreClass="OCLStates.ecore#//SimpleState">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute OCLStates.ecore#//SimpleState/value"/>
+ </genClasses>
+ <genClasses ecoreClass="OCLStates.ecore#//CompoundState">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference OCLStates.ecore#//CompoundState/machine"/>
+ </genClasses>
+ <genClasses ecoreClass="OCLStates.ecore#//Transition">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference OCLStates.ecore#//Transition/event"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference OCLStates.ecore#//Transition/state"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/plugin.properties b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/plugin.properties
new file mode 100644
index 0000000..8df05f2
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id: plugin.properties,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+
+pluginName = FowlerDsl Model
+providerName = www.example.org
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/plugin.xml b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/plugin.xml
new file mode 100644
index 0000000..1d39cbe
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id: plugin.xml,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates"
+ class="org.eclipse.ocl.tutorial.eclipsecon2011.oclstates.OCLStatesPackage"
+ genModel="model/OCLStates.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/AbstractOCLStatesRuntimeModule.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/AbstractOCLStatesRuntimeModule.java
new file mode 100644
index 0000000..bd9f9f3
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/AbstractOCLStatesRuntimeModule.java
@@ -0,0 +1,92 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.eclipse.ocl.tutorial.eclipsecon2011.OCLStatesRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractOCLStatesRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates");
+ }
+
+ 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("oclstates");
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parseTreeConstructor.ParseTreeConstructorFragment
+ public Class<? extends org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor> bindIParseTreeConstructor() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.parseTreeConstruction.OCLStatesParsetreeConstructor.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.OCLStatesParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.OCLStatesAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalOCLStatesLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalOCLStatesLexer> provideInternalOCLStatesLexer() {
+ return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalOCLStatesLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureRuntimeLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalOCLStatesLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.validation.JavaValidatorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.ocl.tutorial.eclipsecon2011.validation.OCLStatesJavaValidator> bindOCLStatesJavaValidator() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.validation.OCLStatesJavaValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.eclipse.ocl.tutorial.eclipsecon2011.formatting.OCLStatesFormatter.class;
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.xmi b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.xmi
new file mode 100644
index 0000000..52df030
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.xmi
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext">
+ <xtext:Grammar name="org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates" usedGrammars="/1">
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">
+ <ePackage href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:ParserRule" name="Module">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Module"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="module"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="machines" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Statemachine">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Statemachine"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="initial" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="initial"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="statemachine"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="value"/>
+ <elements xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Keyword" value="events"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="events" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="states" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Event">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Event"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="State">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//State"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SimpleState">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//SimpleState"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="initial" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="initial"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="state"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="value"/>
+ <elements xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="transitions" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="CompoundState">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//CompoundState"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="compound"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="initial" operator="?=">
+ <terminal xsi:type="xtext:Keyword" value="initial"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="state"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="machine"/>
+ <elements xsi:type="xtext:Assignment" feature="machine" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Statemachine"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="transitions" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Transition">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Transition"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="event" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//Event"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="=>"/>
+ <elements xsi:type="xtext:Assignment" feature="state" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates#//State"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ </alternatives>
+ </rules>
+ </xtext:Grammar>
+ <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4">
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
+ <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:TerminalRule" name="ID">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="^"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="INT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </type>
+ <alternatives xsi:type="xtext:CharacterRange" cardinality="+">
+ <left value="0"/>
+ <right value="9"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="STRING">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="""/>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="b"/>
+ <elements xsi:type="xtext:Keyword" value="t"/>
+ <elements xsi:type="xtext:Keyword" value="n"/>
+ <elements xsi:type="xtext:Keyword" value="f"/>
+ <elements xsi:type="xtext:Keyword" value="r"/>
+ <elements xsi:type="xtext:Keyword" value="u"/>
+ <elements xsi:type="xtext:Keyword" value="""/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="""/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="""/>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="b"/>
+ <elements xsi:type="xtext:Keyword" value="t"/>
+ <elements xsi:type="xtext:Keyword" value="n"/>
+ <elements xsi:type="xtext:Keyword" value="f"/>
+ <elements xsi:type="xtext:Keyword" value="r"/>
+ <elements xsi:type="xtext:Keyword" value="u"/>
+ <elements xsi:type="xtext:Keyword" value="""/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="/*"/>
+ <elements xsi:type="xtext:UntilToken">
+ <terminal xsi:type="xtext:Keyword" value="*/"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="//"/>
+ <elements xsi:type="xtext:NegatedToken" cardinality="*">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="
"/>
+ <elements xsi:type="xtext:Keyword" value="
"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="
"/>
+ <elements xsi:type="xtext:Keyword" value="
"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="WS">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives" cardinality="+">
+ <elements xsi:type="xtext:Keyword" value=" "/>
+ <elements xsi:type="xtext:Keyword" value="	"/>
+ <elements xsi:type="xtext:Keyword" value="
"/>
+ <elements xsi:type="xtext:Keyword" value="
"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Wildcard"/>
+ </rules>
+ </xtext:Grammar>
+</xmi:XMI>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesStandaloneSetupGenerated.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesStandaloneSetupGenerated.java
new file mode 100644
index 0000000..4c3ee89
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesStandaloneSetupGenerated.java
@@ -0,0 +1,40 @@
+
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+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 OCLStatesStandaloneSetupGenerated implements ISetup {
+
+ public Injector createInjectorAndDoEMFRegistration() {
+ org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup();
+
+ Injector injector = createInjector();
+ register(injector);
+ return injector;
+ }
+
+ public Injector createInjector() {
+ return Guice.createInjector(new org.eclipse.ocl.tutorial.eclipsecon2011.OCLStatesRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+
+ 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("oclstates", resourceFactory);
+ org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("oclstates", serviceProvider);
+
+
+
+
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parseTreeConstruction/OCLStatesParsetreeConstructor.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parseTreeConstruction/OCLStatesParsetreeConstructor.java
new file mode 100644
index 0000000..76039b2
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parseTreeConstruction/OCLStatesParsetreeConstructor.java
@@ -0,0 +1,1480 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.parseTreeConstruction;
+
+import org.eclipse.emf.ecore.*;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parsetree.reconstr.IEObjectConsumer;
+import org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess;
+
+import com.google.inject.Inject;
+
+@SuppressWarnings("all")
+public class OCLStatesParsetreeConstructor extends AbstractParseTreeConstructor {
+
+ @Inject
+ private OCLStatesGrammarAccess grammarAccess;
+
+ @Override
+ protected AbstractToken getRootToken(IEObjectConsumer inst) {
+ return new ThisRootNode(inst);
+ }
+
+protected class ThisRootNode extends RootToken {
+ public ThisRootNode(IEObjectConsumer inst) {
+ super(inst);
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Module_Group(this, this, 0, inst);
+ case 1: return new Statemachine_Group(this, this, 1, inst);
+ case 2: return new Event_NameAssignment(this, this, 2, inst);
+ case 3: return new State_Alternatives(this, this, 3, inst);
+ case 4: return new SimpleState_Group(this, this, 4, inst);
+ case 5: return new CompoundState_Group(this, this, 5, inst);
+ case 6: return new Transition_Group(this, this, 6, inst);
+ default: return null;
+ }
+ }
+}
+
+
+/************ begin Rule Module ****************
+ *
+ * Module:
+ * "module" name=STRING machines+=Statemachine*;
+ *
+ **/
+
+// "module" name=STRING machines+=Statemachine*
+protected class Module_Group extends GroupToken {
+
+ public Module_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getModuleAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Module_MachinesAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Module_NameAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getModuleRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "module"
+protected class Module_ModuleKeyword_0 extends KeywordToken {
+
+ public Module_ModuleKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getModuleAccess().getModuleKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// name=STRING
+protected class Module_NameAssignment_1 extends AssignmentToken {
+
+ public Module_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getModuleAccess().getNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Module_ModuleKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// machines+=Statemachine*
+protected class Module_MachinesAssignment_2 extends AssignmentToken {
+
+ public Module_MachinesAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getModuleAccess().getMachinesAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("machines",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("machines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStatemachineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Module_MachinesAssignment_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Module_NameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule Module ****************/
+
+
+/************ begin Rule Statemachine ****************
+ *
+ * Statemachine:
+ * initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}";
+ *
+ **/
+
+// initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}"
+protected class Statemachine_Group extends GroupToken {
+
+ public Statemachine_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getStatemachineRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// initial?="initial"?
+protected class Statemachine_InitialAssignment_0 extends AssignmentToken {
+
+ public Statemachine_InitialAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getInitialAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("initial",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("initial");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "statemachine"
+protected class Statemachine_StatemachineKeyword_1 extends KeywordToken {
+
+ public Statemachine_StatemachineKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getStatemachineKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_InitialAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+}
+
+// name=ID
+protected class Statemachine_NameAssignment_2 extends AssignmentToken {
+
+ public Statemachine_NameAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getNameAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_StatemachineKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ("value" value=INT)?
+protected class Statemachine_Group_3 extends GroupToken {
+
+ public Statemachine_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getGroup_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_ValueAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "value"
+protected class Statemachine_ValueKeyword_3_0 extends KeywordToken {
+
+ public Statemachine_ValueKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getValueKeyword_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_NameAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=INT
+protected class Statemachine_ValueAssignment_3_1 extends AssignmentToken {
+
+ public Statemachine_ValueAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getValueAssignment_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_ValueKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+// "{"
+protected class Statemachine_LeftCurlyBracketKeyword_4 extends KeywordToken {
+
+ public Statemachine_LeftCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_Group_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Statemachine_NameAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "events"
+protected class Statemachine_EventsKeyword_5 extends KeywordToken {
+
+ public Statemachine_EventsKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getEventsKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// events+=Event*
+protected class Statemachine_EventsAssignment_6 extends AssignmentToken {
+
+ public Statemachine_EventsAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getEventsAssignment_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Event_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("events",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("events");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getEventRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Statemachine_EventsAssignment_6(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Statemachine_EventsKeyword_5(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ";"
+protected class Statemachine_SemicolonKeyword_7 extends KeywordToken {
+
+ public Statemachine_SemicolonKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getSemicolonKeyword_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_EventsAssignment_6(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Statemachine_EventsKeyword_5(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// states+=State*
+protected class Statemachine_StatesAssignment_8 extends AssignmentToken {
+
+ public Statemachine_StatesAssignment_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getStatesAssignment_8();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new State_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("states",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("states");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStateRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Statemachine_StatesAssignment_8(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Statemachine_SemicolonKeyword_7(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "}"
+protected class Statemachine_RightCurlyBracketKeyword_9 extends KeywordToken {
+
+ public Statemachine_RightCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Statemachine_StatesAssignment_8(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Statemachine_SemicolonKeyword_7(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Statemachine ****************/
+
+
+/************ begin Rule Event ****************
+ *
+ * Event:
+ * name=ID;
+ *
+ **/
+
+// name=ID
+protected class Event_NameAssignment extends AssignmentToken {
+
+ public Event_NameAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getEventAccess().getNameAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getEventRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule Event ****************/
+
+
+/************ begin Rule State ****************
+ *
+ * State:
+ * SimpleState | CompoundState;
+ *
+ **/
+
+// SimpleState | CompoundState
+protected class State_Alternatives extends AlternativesToken {
+
+ public State_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getStateAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new State_SimpleStateParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new State_CompoundStateParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCompoundStateRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getSimpleStateRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// SimpleState
+protected class State_SimpleStateParserRuleCall_0 extends RuleCallToken {
+
+ public State_SimpleStateParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSimpleStateRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(SimpleState_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// CompoundState
+protected class State_CompoundStateParserRuleCall_1 extends RuleCallToken {
+
+ public State_CompoundStateParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCompoundStateRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(CompoundState_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule State ****************/
+
+
+/************ begin Rule SimpleState ****************
+ *
+ * SimpleState:
+ * initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}";
+ *
+ **/
+
+// initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}"
+protected class SimpleState_Group extends GroupToken {
+
+ public SimpleState_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSimpleStateRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// initial?="initial"?
+protected class SimpleState_InitialAssignment_0 extends AssignmentToken {
+
+ public SimpleState_InitialAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getInitialAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("initial",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("initial");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "state"
+protected class SimpleState_StateKeyword_1 extends KeywordToken {
+
+ public SimpleState_StateKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getStateKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_InitialAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+}
+
+// name=ID
+protected class SimpleState_NameAssignment_2 extends AssignmentToken {
+
+ public SimpleState_NameAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getNameAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_StateKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ("value" value=INT)?
+protected class SimpleState_Group_3 extends GroupToken {
+
+ public SimpleState_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getGroup_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_ValueAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "value"
+protected class SimpleState_ValueKeyword_3_0 extends KeywordToken {
+
+ public SimpleState_ValueKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getValueKeyword_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_NameAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=INT
+protected class SimpleState_ValueAssignment_3_1 extends AssignmentToken {
+
+ public SimpleState_ValueAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getValueAssignment_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_ValueKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+// "{"
+protected class SimpleState_LeftCurlyBracketKeyword_4 extends KeywordToken {
+
+ public SimpleState_LeftCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_Group_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SimpleState_NameAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// transitions+=Transition*
+protected class SimpleState_TransitionsAssignment_5 extends AssignmentToken {
+
+ public SimpleState_TransitionsAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getTransitionsAssignment_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("transitions",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("transitions");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTransitionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new SimpleState_TransitionsAssignment_5(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new SimpleState_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "}"
+protected class SimpleState_RightCurlyBracketKeyword_6 extends KeywordToken {
+
+ public SimpleState_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SimpleState_TransitionsAssignment_5(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SimpleState_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule SimpleState ****************/
+
+
+/************ begin Rule CompoundState ****************
+ *
+ * CompoundState:
+ * "compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}";
+ *
+ **/
+
+// "compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}"
+protected class CompoundState_Group extends GroupToken {
+
+ public CompoundState_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_RightCurlyBracketKeyword_8(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCompoundStateRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "compound"
+protected class CompoundState_CompoundKeyword_0 extends KeywordToken {
+
+ public CompoundState_CompoundKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getCompoundKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// initial?="initial"?
+protected class CompoundState_InitialAssignment_1 extends AssignmentToken {
+
+ public CompoundState_InitialAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getInitialAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_CompoundKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("initial",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("initial");
+ if(Boolean.TRUE.equals(value)) { // org::eclipse::xtext::impl::KeywordImpl
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "state"
+protected class CompoundState_StateKeyword_2 extends KeywordToken {
+
+ public CompoundState_StateKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getStateKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_InitialAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompoundState_CompoundKeyword_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=ID
+protected class CompoundState_NameAssignment_3 extends AssignmentToken {
+
+ public CompoundState_NameAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getNameAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_StateKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "machine"
+protected class CompoundState_MachineKeyword_4 extends KeywordToken {
+
+ public CompoundState_MachineKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getMachineKeyword_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_NameAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// machine=[Statemachine]
+protected class CompoundState_MachineAssignment_5 extends AssignmentToken {
+
+ public CompoundState_MachineAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getMachineAssignment_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_MachineKeyword_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("machine",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("machine");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0().getType().getClassifier())) {
+ type = AssignmentType.CROSS_REFERENCE;
+ element = grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+// "{"
+protected class CompoundState_LeftCurlyBracketKeyword_6 extends KeywordToken {
+
+ public CompoundState_LeftCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_MachineAssignment_5(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// transitions+=Transition*
+protected class CompoundState_TransitionsAssignment_7 extends AssignmentToken {
+
+ public CompoundState_TransitionsAssignment_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getTransitionsAssignment_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("transitions",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("transitions");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTransitionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CompoundState_TransitionsAssignment_7(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new CompoundState_LeftCurlyBracketKeyword_6(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// "}"
+protected class CompoundState_RightCurlyBracketKeyword_8 extends KeywordToken {
+
+ public CompoundState_RightCurlyBracketKeyword_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompoundState_TransitionsAssignment_7(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompoundState_LeftCurlyBracketKeyword_6(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule CompoundState ****************/
+
+
+/************ begin Rule Transition ****************
+ *
+ * Transition:
+ * event=[Event] "=>" state=[State];
+ *
+ **/
+
+// event=[Event] "=>" state=[State]
+protected class Transition_Group extends GroupToken {
+
+ public Transition_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_StateAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getTransitionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// event=[Event]
+protected class Transition_EventAssignment_0 extends AssignmentToken {
+
+ public Transition_EventAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getEventAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("event",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("event");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0().getType().getClassifier())) {
+ type = AssignmentType.CROSS_REFERENCE;
+ element = grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+// "=>"
+protected class Transition_EqualsSignGreaterThanSignKeyword_1 extends KeywordToken {
+
+ public Transition_EqualsSignGreaterThanSignKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_EventAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// state=[State]
+protected class Transition_StateAssignment_2 extends AssignmentToken {
+
+ public Transition_StateAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTransitionAccess().getStateAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Transition_EqualsSignGreaterThanSignKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("state",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("state");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0().getType().getClassifier())) {
+ type = AssignmentType.CROSS_REFERENCE;
+ element = grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule Transition ****************/
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/OCLStatesAntlrTokenFileProvider.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/OCLStatesAntlrTokenFileProvider.java
new file mode 100644
index 0000000..f2cf378
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/OCLStatesAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class OCLStatesAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.tokens");
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/OCLStatesParser.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/OCLStatesParser.java
new file mode 100644
index 0000000..1bd885c
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/OCLStatesParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess;
+
+public class OCLStatesParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private OCLStatesGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalOCLStatesParser createParser(XtextTokenStream stream) {
+ return new org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal.InternalOCLStatesParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Module";
+ }
+
+ public OCLStatesGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(OCLStatesGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g
new file mode 100644
index 0000000..87835cd
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g
@@ -0,0 +1,614 @@
+/*
+* generated by Xtext
+*/
+grammar InternalOCLStates;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess;
+
+}
+
+@parser::members {
+
+ private OCLStatesGrammarAccess grammarAccess;
+
+ public InternalOCLStatesParser(TokenStream input, OCLStatesGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Module";
+ }
+
+ @Override
+ protected OCLStatesGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleModule
+entryRuleModule returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getModuleRule()); }
+ iv_ruleModule=ruleModule
+ { $current=$iv_ruleModule.current; }
+ EOF
+;
+
+// Rule Module
+ruleModule returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='module'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getModuleAccess().getModuleKeyword_0());
+ }
+(
+(
+ lv_name_1_0=RULE_STRING
+ {
+ newLeafNode(lv_name_1_0, grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getModuleRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_1_0,
+ "STRING");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0());
+ }
+ lv_machines_2_0=ruleStatemachine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ add(
+ $current,
+ "machines",
+ lv_machines_2_0,
+ "Statemachine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*)
+;
+
+
+
+
+
+// Entry rule entryRuleStatemachine
+entryRuleStatemachine returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStatemachineRule()); }
+ iv_ruleStatemachine=ruleStatemachine
+ { $current=$iv_ruleStatemachine.current; }
+ EOF
+;
+
+// Rule Statemachine
+ruleStatemachine returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_initial_0_0= 'initial'
+ {
+ newLeafNode(lv_initial_0_0, grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed($current, "initial", true, "initial");
+ }
+
+)
+)? otherlv_1='statemachine'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getStatemachineAccess().getStatemachineKeyword_1());
+ }
+(
+(
+ lv_name_2_0=RULE_ID
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID");
+ }
+
+)
+)( otherlv_3='value'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getStatemachineAccess().getValueKeyword_3_0());
+ }
+(
+(
+ lv_value_4_0=RULE_INT
+ {
+ newLeafNode(lv_value_4_0, grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "value",
+ lv_value_4_0,
+ "INT");
+ }
+
+)
+))? otherlv_5='{'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4());
+ }
+ otherlv_6='events'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getStatemachineAccess().getEventsKeyword_5());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0());
+ }
+ lv_events_7_0=ruleEvent {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ $current,
+ "events",
+ lv_events_7_0,
+ "Event");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_8=';'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getStatemachineAccess().getSemicolonKeyword_7());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0());
+ }
+ lv_states_9_0=ruleState {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ $current,
+ "states",
+ lv_states_9_0,
+ "State");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_10='}'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getEventRule()); }
+ iv_ruleEvent=ruleEvent
+ { $current=$iv_ruleEvent.current; }
+ EOF
+;
+
+// Rule Event
+ruleEvent returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ lv_name_0_0=RULE_ID
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getEventRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ID");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleState
+entryRuleState returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStateRule()); }
+ iv_ruleState=ruleState
+ { $current=$iv_ruleState.current; }
+ EOF
+;
+
+// Rule State
+ruleState returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0());
+ }
+ this_SimpleState_0=ruleSimpleState
+ {
+ $current = $this_SimpleState_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1());
+ }
+ this_CompoundState_1=ruleCompoundState
+ {
+ $current = $this_CompoundState_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSimpleState
+entryRuleSimpleState returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSimpleStateRule()); }
+ iv_ruleSimpleState=ruleSimpleState
+ { $current=$iv_ruleSimpleState.current; }
+ EOF
+;
+
+// Rule SimpleState
+ruleSimpleState returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_initial_0_0= 'initial'
+ {
+ newLeafNode(lv_initial_0_0, grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed($current, "initial", true, "initial");
+ }
+
+)
+)? otherlv_1='state'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getSimpleStateAccess().getStateKeyword_1());
+ }
+(
+(
+ lv_name_2_0=RULE_ID
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "ID");
+ }
+
+)
+)( otherlv_3='value'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getSimpleStateAccess().getValueKeyword_3_0());
+ }
+(
+(
+ lv_value_4_0=RULE_INT
+ {
+ newLeafNode(lv_value_4_0, grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "value",
+ lv_value_4_0,
+ "INT");
+ }
+
+)
+))? otherlv_5='{'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0());
+ }
+ lv_transitions_6_0=ruleTransition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSimpleStateRule());
+ }
+ add(
+ $current,
+ "transitions",
+ lv_transitions_6_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleCompoundState
+entryRuleCompoundState returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCompoundStateRule()); }
+ iv_ruleCompoundState=ruleCompoundState
+ { $current=$iv_ruleCompoundState.current; }
+ EOF
+;
+
+// Rule CompoundState
+ruleCompoundState returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='compound'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getCompoundStateAccess().getCompoundKeyword_0());
+ }
+(
+(
+ lv_initial_1_0= 'initial'
+ {
+ newLeafNode(lv_initial_1_0, grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed($current, "initial", true, "initial");
+ }
+
+)
+)? otherlv_2='state'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getCompoundStateAccess().getStateKeyword_2());
+ }
+(
+(
+ lv_name_3_0=RULE_ID
+ {
+ newLeafNode(lv_name_3_0, grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_3_0,
+ "ID");
+ }
+
+)
+) otherlv_4='machine'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getCompoundStateAccess().getMachineKeyword_4());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ }
+ otherlv_5=RULE_ID
+ {
+ newLeafNode(otherlv_5, grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0());
+ }
+
+)
+) otherlv_6='{'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0());
+ }
+ lv_transitions_7_0=ruleTransition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCompoundStateRule());
+ }
+ add(
+ $current,
+ "transitions",
+ lv_transitions_7_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_8='}'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTransition
+entryRuleTransition returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTransitionRule()); }
+ iv_ruleTransition=ruleTransition
+ { $current=$iv_ruleTransition.current; }
+ EOF
+;
+
+// Rule Transition
+ruleTransition returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTransitionRule());
+ }
+ }
+ otherlv_0=RULE_ID
+ {
+ newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+ }
+
+)
+) otherlv_1='=>'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTransitionRule());
+ }
+ }
+ otherlv_2=RULE_ID
+ {
+ newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+ }
+
+)
+))
+;
+
+
+
+
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.tokens b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.tokens
new file mode 100644
index 0000000..7f236a7
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.tokens
@@ -0,0 +1,31 @@
+RULE_ML_COMMENT=7
+T__12=12
+RULE_ID=5
+T__20=20
+T__13=13
+RULE_STRING=4
+T__21=21
+T__19=19
+T__14=14
+T__11=11
+T__22=22
+RULE_WS=9
+T__17=17
+RULE_INT=6
+T__16=16
+RULE_ANY_OTHER=10
+RULE_SL_COMMENT=8
+T__18=18
+T__15=15
+'statemachine'=13
+'module'=11
+'initial'=12
+'value'=14
+'compound'=20
+'events'=16
+'=>'=22
+'state'=19
+'machine'=21
+'}'=18
+';'=17
+'{'=15
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStatesLexer.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStatesLexer.java
new file mode 100644
index 0000000..91c0a06
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStatesLexer.java
@@ -0,0 +1,1181 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.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 InternalOCLStatesLexer extends Lexer {
+ public static final int RULE_ML_COMMENT=7;
+ public static final int RULE_ID=5;
+ public static final int T__12=12;
+ public static final int T__20=20;
+ public static final int T__13=13;
+ public static final int RULE_STRING=4;
+ public static final int T__21=21;
+ public static final int T__19=19;
+ public static final int T__14=14;
+ public static final int T__11=11;
+ public static final int T__22=22;
+ public static final int RULE_WS=9;
+ public static final int T__17=17;
+ public static final int EOF=-1;
+ public static final int RULE_INT=6;
+ public static final int T__16=16;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__18=18;
+ public static final int T__15=15;
+
+ // delegates
+ // delegators
+
+ public InternalOCLStatesLexer() {;}
+ public InternalOCLStatesLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalOCLStatesLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:11:7: ( 'module' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:11:9: 'module'
+ {
+ match("module");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__11"
+
+ // $ANTLR start "T__12"
+ public final void mT__12() throws RecognitionException {
+ try {
+ int _type = T__12;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:12:7: ( 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:12:9: 'initial'
+ {
+ match("initial");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__12"
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:13:7: ( 'statemachine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:13:9: 'statemachine'
+ {
+ match("statemachine");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:14:7: ( 'value' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:14:9: 'value'
+ {
+ match("value");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:15:7: ( '{' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:15:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:16:7: ( 'events' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:16:9: 'events'
+ {
+ match("events");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:17:7: ( ';' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:17:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:18:7: ( '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:18:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:19:7: ( 'state' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:19:9: 'state'
+ {
+ match("state");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "T__20"
+ public final void mT__20() throws RecognitionException {
+ try {
+ int _type = T__20;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:20:7: ( 'compound' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:20:9: 'compound'
+ {
+ match("compound");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "T__21"
+ public final void mT__21() throws RecognitionException {
+ try {
+ int _type = T__21;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:21:7: ( 'machine' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:21:9: 'machine'
+ {
+ match("machine");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__21"
+
+ // $ANTLR start "T__22"
+ public final void mT__22() throws RecognitionException {
+ try {
+ int _type = T__22;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:22:7: ( '=>' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:22:9: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__22"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:600:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:600:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:600:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:600:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:600:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:602:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:602:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:602:12: ( '0' .. '9' )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:602:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\"') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='\'') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop4:
+ do {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='\\') ) {
+ alt4=1;
+ }
+ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+ alt4=2;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:66: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop5:
+ do {
+ int alt5=3;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\\') ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+ alt5=2;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:604:137: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:606:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:606:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:606:24: ( options {greedy=false; } : . )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='*') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1=='/') ) {
+ alt7=2;
+ }
+ else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:606:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:608:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:608:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:608:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:608:24: ~ ( ( '\\n' | '\\r' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:608:40: ( ( '\\r' )? '\\n' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:608:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:608:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:608:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:610:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:610:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:610:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt11=0;
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt11 >= 1 ) break loop11;
+ EarlyExitException eee =
+ new EarlyExitException(11, input);
+ throw eee;
+ }
+ cnt11++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:612:16: ( . )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:612:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=19;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:70: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:76: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:82: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:90: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:99: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:111: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:127: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:143: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:1:151: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\4\25\1\uffff\1\25\2\uffff\1\25\2\22\2\uffff\3\22\2\uffff"+
+ "\2\25\1\uffff\3\25\1\uffff\1\25\2\uffff\1\25\6\uffff\21\25\1\75"+
+ "\1\76\2\25\1\101\3\25\2\uffff\1\105\1\25\1\uffff\1\107\1\110\1\25"+
+ "\1\uffff\1\25\2\uffff\1\25\1\114\1\25\1\uffff\2\25\1\120\1\uffff";
+ static final String DFA12_eofS =
+ "\121\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\141\1\156\1\164\1\141\1\uffff\1\166\2\uffff\1\157\1\76\1"+
+ "\101\2\uffff\2\0\1\52\2\uffff\1\144\1\143\1\uffff\1\151\1\141\1"+
+ "\154\1\uffff\1\145\2\uffff\1\155\6\uffff\1\165\1\150\2\164\1\165"+
+ "\1\156\1\160\1\154\2\151\2\145\1\164\1\157\1\145\1\156\1\141\2\60"+
+ "\1\163\1\165\1\60\1\145\1\154\1\141\2\uffff\1\60\1\156\1\uffff\2"+
+ "\60\1\143\1\uffff\1\144\2\uffff\1\150\1\60\1\151\1\uffff\1\156\1"+
+ "\145\1\60\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\157\1\156\1\164\1\141\1\uffff\1\166\2\uffff\1\157\1"+
+ "\76\1\172\2\uffff\2\uffff\1\57\2\uffff\1\144\1\143\1\uffff\1\151"+
+ "\1\141\1\154\1\uffff\1\145\2\uffff\1\155\6\uffff\1\165\1\150\2\164"+
+ "\1\165\1\156\1\160\1\154\2\151\2\145\1\164\1\157\1\145\1\156\1\141"+
+ "\2\172\1\163\1\165\1\172\1\145\1\154\1\141\2\uffff\1\172\1\156\1"+
+ "\uffff\2\172\1\143\1\uffff\1\144\2\uffff\1\150\1\172\1\151\1\uffff"+
+ "\1\156\1\145\1\172\1\uffff";
+ static final String DFA12_acceptS =
+ "\5\uffff\1\5\1\uffff\1\7\1\10\3\uffff\1\15\1\16\3\uffff\1\22\1"+
+ "\23\2\uffff\1\15\3\uffff\1\5\1\uffff\1\7\1\10\1\uffff\1\14\1\16"+
+ "\1\17\1\20\1\21\1\22\31\uffff\1\11\1\4\2\uffff\1\1\3\uffff\1\6\1"+
+ "\uffff\1\13\1\2\3\uffff\1\12\3\uffff\1\3";
+ static final String DFA12_specialS =
+ "\1\2\15\uffff\1\1\1\0\101\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\22\2\21\2\22\1\21\22\22\1\21\1\22\1\16\4\22\1\17\7\22\1"+
+ "\20\12\15\1\22\1\7\1\22\1\12\3\22\32\14\3\22\1\13\1\14\1\22"+
+ "\2\14\1\11\1\14\1\6\3\14\1\2\3\14\1\1\5\14\1\3\2\14\1\4\4\14"+
+ "\1\5\1\22\1\10\uff82\22",
+ "\1\24\15\uffff\1\23",
+ "\1\26",
+ "\1\27",
+ "\1\30",
+ "",
+ "\1\32",
+ "",
+ "",
+ "\1\35",
+ "\1\36",
+ "\32\25\4\uffff\1\25\1\uffff\32\25",
+ "",
+ "",
+ "\0\40",
+ "\0\40",
+ "\1\41\4\uffff\1\42",
+ "",
+ "",
+ "\1\44",
+ "\1\45",
+ "",
+ "\1\46",
+ "\1\47",
+ "\1\50",
+ "",
+ "\1\51",
+ "",
+ "",
+ "\1\52",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\53",
+ "\1\54",
+ "\1\55",
+ "\1\56",
+ "\1\57",
+ "\1\60",
+ "\1\61",
+ "\1\62",
+ "\1\63",
+ "\1\64",
+ "\1\65",
+ "\1\66",
+ "\1\67",
+ "\1\70",
+ "\1\71",
+ "\1\72",
+ "\1\73",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\14\25\1\74\15\25",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "\1\77",
+ "\1\100",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "\1\102",
+ "\1\103",
+ "\1\104",
+ "",
+ "",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "\1\106",
+ "",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "\1\111",
+ "",
+ "\1\112",
+ "",
+ "",
+ "\1\113",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ "\1\115",
+ "",
+ "\1\116",
+ "\1\117",
+ "\12\25\7\uffff\32\25\4\uffff\1\25\1\uffff\32\25",
+ ""
+ };
+
+ static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+ static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+ static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+ static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+ static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+ static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+ static final short[][] DFA12_transition;
+
+ static {
+ int numStates = DFA12_transitionS.length;
+ DFA12_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+ }
+ }
+
+ class DFA12 extends DFA {
+
+ public DFA12(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 12;
+ this.eot = DFA12_eot;
+ this.eof = DFA12_eof;
+ this.min = DFA12_min;
+ this.max = DFA12_max;
+ this.accept = DFA12_accept;
+ this.special = DFA12_special;
+ this.transition = DFA12_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ IntStream input = _input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA12_15 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_15>='\u0000' && LA12_15<='\uFFFF')) ) {s = 32;}
+
+ else s = 18;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_14 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_14>='\u0000' && LA12_14<='\uFFFF')) ) {s = 32;}
+
+ else s = 18;
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='m') ) {s = 1;}
+
+ else if ( (LA12_0=='i') ) {s = 2;}
+
+ else if ( (LA12_0=='s') ) {s = 3;}
+
+ else if ( (LA12_0=='v') ) {s = 4;}
+
+ else if ( (LA12_0=='{') ) {s = 5;}
+
+ else if ( (LA12_0=='e') ) {s = 6;}
+
+ else if ( (LA12_0==';') ) {s = 7;}
+
+ else if ( (LA12_0=='}') ) {s = 8;}
+
+ else if ( (LA12_0=='c') ) {s = 9;}
+
+ else if ( (LA12_0=='=') ) {s = 10;}
+
+ else if ( (LA12_0=='^') ) {s = 11;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='b')||LA12_0=='d'||(LA12_0>='f' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='l')||(LA12_0>='n' && LA12_0<='r')||(LA12_0>='t' && LA12_0<='u')||(LA12_0>='w' && LA12_0<='z')) ) {s = 12;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 13;}
+
+ else if ( (LA12_0=='\"') ) {s = 14;}
+
+ else if ( (LA12_0=='\'') ) {s = 15;}
+
+ else if ( (LA12_0=='/') ) {s = 16;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 17;}
+
+ else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='.')||LA12_0==':'||LA12_0=='<'||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 18;}
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 12, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStatesParser.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStatesParser.java
new file mode 100644
index 0000000..8f5fe46
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStatesParser.java
@@ -0,0 +1,1417 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalOCLStatesParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'module'", "'initial'", "'statemachine'", "'value'", "'{'", "'events'", "';'", "'}'", "'state'", "'compound'", "'machine'", "'=>'"
+ };
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__12=12;
+ public static final int RULE_ID=5;
+ public static final int T__20=20;
+ public static final int T__13=13;
+ public static final int RULE_STRING=4;
+ public static final int T__21=21;
+ public static final int T__19=19;
+ public static final int T__14=14;
+ public static final int T__11=11;
+ public static final int T__22=22;
+ public static final int RULE_WS=9;
+ public static final int T__17=17;
+ public static final int EOF=-1;
+ public static final int RULE_INT=6;
+ public static final int T__16=16;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__18=18;
+ public static final int T__15=15;
+
+ // delegates
+ // delegators
+
+
+ public InternalOCLStatesParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalOCLStatesParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalOCLStatesParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g"; }
+
+
+
+ private OCLStatesGrammarAccess grammarAccess;
+
+ public InternalOCLStatesParser(TokenStream input, OCLStatesGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Module";
+ }
+
+ @Override
+ protected OCLStatesGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+ // $ANTLR start "entryRuleModule"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:67:1: entryRuleModule returns [EObject current=null] : iv_ruleModule= ruleModule EOF ;
+ public final EObject entryRuleModule() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleModule = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:68:2: (iv_ruleModule= ruleModule EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:69:2: iv_ruleModule= ruleModule EOF
+ {
+ newCompositeNode(grammarAccess.getModuleRule());
+ pushFollow(FOLLOW_ruleModule_in_entryRuleModule75);
+ iv_ruleModule=ruleModule();
+
+ state._fsp--;
+
+ current =iv_ruleModule;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModule85);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleModule"
+
+
+ // $ANTLR start "ruleModule"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:76:1: ruleModule returns [EObject current=null] : (otherlv_0= 'module' ( (lv_name_1_0= RULE_STRING ) ) ( (lv_machines_2_0= ruleStatemachine ) )* ) ;
+ public final EObject ruleModule() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_name_1_0=null;
+ EObject lv_machines_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:79:28: ( (otherlv_0= 'module' ( (lv_name_1_0= RULE_STRING ) ) ( (lv_machines_2_0= ruleStatemachine ) )* ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:80:1: (otherlv_0= 'module' ( (lv_name_1_0= RULE_STRING ) ) ( (lv_machines_2_0= ruleStatemachine ) )* )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:80:1: (otherlv_0= 'module' ( (lv_name_1_0= RULE_STRING ) ) ( (lv_machines_2_0= ruleStatemachine ) )* )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:80:3: otherlv_0= 'module' ( (lv_name_1_0= RULE_STRING ) ) ( (lv_machines_2_0= ruleStatemachine ) )*
+ {
+ otherlv_0=(Token)match(input,11,FOLLOW_11_in_ruleModule122);
+
+ newLeafNode(otherlv_0, grammarAccess.getModuleAccess().getModuleKeyword_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:84:1: ( (lv_name_1_0= RULE_STRING ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:85:1: (lv_name_1_0= RULE_STRING )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:85:1: (lv_name_1_0= RULE_STRING )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:86:3: lv_name_1_0= RULE_STRING
+ {
+ lv_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleModule139);
+
+ newLeafNode(lv_name_1_0, grammarAccess.getModuleAccess().getNameSTRINGTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getModuleRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_1_0,
+ "STRING");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:102:2: ( (lv_machines_2_0= ruleStatemachine ) )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( ((LA1_0>=12 && LA1_0<=13)) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:103:1: (lv_machines_2_0= ruleStatemachine )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:103:1: (lv_machines_2_0= ruleStatemachine )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:104:3: lv_machines_2_0= ruleStatemachine
+ {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getMachinesStatemachineParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleStatemachine_in_ruleModule165);
+ lv_machines_2_0=ruleStatemachine();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ add(
+ current,
+ "machines",
+ lv_machines_2_0,
+ "Statemachine");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleModule"
+
+
+ // $ANTLR start "entryRuleStatemachine"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:128:1: entryRuleStatemachine returns [EObject current=null] : iv_ruleStatemachine= ruleStatemachine EOF ;
+ public final EObject entryRuleStatemachine() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleStatemachine = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:129:2: (iv_ruleStatemachine= ruleStatemachine EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:130:2: iv_ruleStatemachine= ruleStatemachine EOF
+ {
+ newCompositeNode(grammarAccess.getStatemachineRule());
+ pushFollow(FOLLOW_ruleStatemachine_in_entryRuleStatemachine202);
+ iv_ruleStatemachine=ruleStatemachine();
+
+ state._fsp--;
+
+ current =iv_ruleStatemachine;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStatemachine212);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleStatemachine"
+
+
+ // $ANTLR start "ruleStatemachine"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:137:1: ruleStatemachine returns [EObject current=null] : ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}' ) ;
+ public final EObject ruleStatemachine() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_initial_0_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 otherlv_10=null;
+ EObject lv_events_7_0 = null;
+
+ EObject lv_states_9_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:140:28: ( ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:141:1: ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:141:1: ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:141:2: ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'statemachine' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' otherlv_6= 'events' ( (lv_events_7_0= ruleEvent ) )* otherlv_8= ';' ( (lv_states_9_0= ruleState ) )* otherlv_10= '}'
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:141:2: ( (lv_initial_0_0= 'initial' ) )?
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==12) ) {
+ alt2=1;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:142:1: (lv_initial_0_0= 'initial' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:142:1: (lv_initial_0_0= 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:143:3: lv_initial_0_0= 'initial'
+ {
+ lv_initial_0_0=(Token)match(input,12,FOLLOW_12_in_ruleStatemachine255);
+
+ newLeafNode(lv_initial_0_0, grammarAccess.getStatemachineAccess().getInitialInitialKeyword_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(current, "initial", true, "initial");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_1=(Token)match(input,13,FOLLOW_13_in_ruleStatemachine281);
+
+ newLeafNode(otherlv_1, grammarAccess.getStatemachineAccess().getStatemachineKeyword_1());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:160:1: ( (lv_name_2_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:161:1: (lv_name_2_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:161:1: (lv_name_2_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:162:3: lv_name_2_0= RULE_ID
+ {
+ lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStatemachine298);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getStatemachineAccess().getNameIDTerminalRuleCall_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:178:2: (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==14) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:178:4: otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) )
+ {
+ otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleStatemachine316);
+
+ newLeafNode(otherlv_3, grammarAccess.getStatemachineAccess().getValueKeyword_3_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:182:1: ( (lv_value_4_0= RULE_INT ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:183:1: (lv_value_4_0= RULE_INT )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:183:1: (lv_value_4_0= RULE_INT )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:184:3: lv_value_4_0= RULE_INT
+ {
+ lv_value_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleStatemachine333);
+
+ newLeafNode(lv_value_4_0, grammarAccess.getStatemachineAccess().getValueINTTerminalRuleCall_3_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ setWithLastConsumed(
+ current,
+ "value",
+ lv_value_4_0,
+ "INT");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_5=(Token)match(input,15,FOLLOW_15_in_ruleStatemachine352);
+
+ newLeafNode(otherlv_5, grammarAccess.getStatemachineAccess().getLeftCurlyBracketKeyword_4());
+
+ otherlv_6=(Token)match(input,16,FOLLOW_16_in_ruleStatemachine364);
+
+ newLeafNode(otherlv_6, grammarAccess.getStatemachineAccess().getEventsKeyword_5());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:208:1: ( (lv_events_7_0= ruleEvent ) )*
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==RULE_ID) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:209:1: (lv_events_7_0= ruleEvent )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:209:1: (lv_events_7_0= ruleEvent )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:210:3: lv_events_7_0= ruleEvent
+ {
+
+ newCompositeNode(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_6_0());
+
+ pushFollow(FOLLOW_ruleEvent_in_ruleStatemachine385);
+ lv_events_7_0=ruleEvent();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ current,
+ "events",
+ lv_events_7_0,
+ "Event");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ otherlv_8=(Token)match(input,17,FOLLOW_17_in_ruleStatemachine398);
+
+ newLeafNode(otherlv_8, grammarAccess.getStatemachineAccess().getSemicolonKeyword_7());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:230:1: ( (lv_states_9_0= ruleState ) )*
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==12||(LA5_0>=19 && LA5_0<=20)) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:231:1: (lv_states_9_0= ruleState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:231:1: (lv_states_9_0= ruleState )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:232:3: lv_states_9_0= ruleState
+ {
+
+ newCompositeNode(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_8_0());
+
+ pushFollow(FOLLOW_ruleState_in_ruleStatemachine419);
+ lv_states_9_0=ruleState();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ current,
+ "states",
+ lv_states_9_0,
+ "State");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ otherlv_10=(Token)match(input,18,FOLLOW_18_in_ruleStatemachine432);
+
+ newLeafNode(otherlv_10, grammarAccess.getStatemachineAccess().getRightCurlyBracketKeyword_9());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleStatemachine"
+
+
+ // $ANTLR start "entryRuleEvent"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:260:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ;
+ public final EObject entryRuleEvent() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleEvent = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:261:2: (iv_ruleEvent= ruleEvent EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:262:2: iv_ruleEvent= ruleEvent EOF
+ {
+ newCompositeNode(grammarAccess.getEventRule());
+ pushFollow(FOLLOW_ruleEvent_in_entryRuleEvent468);
+ iv_ruleEvent=ruleEvent();
+
+ state._fsp--;
+
+ current =iv_ruleEvent;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEvent478);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEvent"
+
+
+ // $ANTLR start "ruleEvent"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:269:1: ruleEvent returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ;
+ public final EObject ruleEvent() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:272:28: ( ( (lv_name_0_0= RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:273:1: ( (lv_name_0_0= RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:273:1: ( (lv_name_0_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:274:1: (lv_name_0_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:274:1: (lv_name_0_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:275:3: lv_name_0_0= RULE_ID
+ {
+ lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEvent519);
+
+ newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getEventRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEvent"
+
+
+ // $ANTLR start "entryRuleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:299:1: entryRuleState returns [EObject current=null] : iv_ruleState= ruleState EOF ;
+ public final EObject entryRuleState() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleState = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:300:2: (iv_ruleState= ruleState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:301:2: iv_ruleState= ruleState EOF
+ {
+ newCompositeNode(grammarAccess.getStateRule());
+ pushFollow(FOLLOW_ruleState_in_entryRuleState559);
+ iv_ruleState=ruleState();
+
+ state._fsp--;
+
+ current =iv_ruleState;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleState569);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleState"
+
+
+ // $ANTLR start "ruleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:308:1: ruleState returns [EObject current=null] : (this_SimpleState_0= ruleSimpleState | this_CompoundState_1= ruleCompoundState ) ;
+ public final EObject ruleState() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_SimpleState_0 = null;
+
+ EObject this_CompoundState_1 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:311:28: ( (this_SimpleState_0= ruleSimpleState | this_CompoundState_1= ruleCompoundState ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:312:1: (this_SimpleState_0= ruleSimpleState | this_CompoundState_1= ruleCompoundState )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:312:1: (this_SimpleState_0= ruleSimpleState | this_CompoundState_1= ruleCompoundState )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==12||LA6_0==19) ) {
+ alt6=1;
+ }
+ else if ( (LA6_0==20) ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:313:5: this_SimpleState_0= ruleSimpleState
+ {
+
+ newCompositeNode(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0());
+
+ pushFollow(FOLLOW_ruleSimpleState_in_ruleState616);
+ this_SimpleState_0=ruleSimpleState();
+
+ state._fsp--;
+
+
+ current = this_SimpleState_0;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:323:5: this_CompoundState_1= ruleCompoundState
+ {
+
+ newCompositeNode(grammarAccess.getStateAccess().getCompoundStateParserRuleCall_1());
+
+ pushFollow(FOLLOW_ruleCompoundState_in_ruleState643);
+ this_CompoundState_1=ruleCompoundState();
+
+ state._fsp--;
+
+
+ current = this_CompoundState_1;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleState"
+
+
+ // $ANTLR start "entryRuleSimpleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:339:1: entryRuleSimpleState returns [EObject current=null] : iv_ruleSimpleState= ruleSimpleState EOF ;
+ public final EObject entryRuleSimpleState() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSimpleState = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:340:2: (iv_ruleSimpleState= ruleSimpleState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:341:2: iv_ruleSimpleState= ruleSimpleState EOF
+ {
+ newCompositeNode(grammarAccess.getSimpleStateRule());
+ pushFollow(FOLLOW_ruleSimpleState_in_entryRuleSimpleState678);
+ iv_ruleSimpleState=ruleSimpleState();
+
+ state._fsp--;
+
+ current =iv_ruleSimpleState;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleState688);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSimpleState"
+
+
+ // $ANTLR start "ruleSimpleState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:348:1: ruleSimpleState returns [EObject current=null] : ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}' ) ;
+ public final EObject ruleSimpleState() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_initial_0_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_7=null;
+ EObject lv_transitions_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:351:28: ( ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:352:1: ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:352:1: ( ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:352:2: ( (lv_initial_0_0= 'initial' ) )? otherlv_1= 'state' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )? otherlv_5= '{' ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= '}'
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:352:2: ( (lv_initial_0_0= 'initial' ) )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==12) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:353:1: (lv_initial_0_0= 'initial' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:353:1: (lv_initial_0_0= 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:354:3: lv_initial_0_0= 'initial'
+ {
+ lv_initial_0_0=(Token)match(input,12,FOLLOW_12_in_ruleSimpleState731);
+
+ newLeafNode(lv_initial_0_0, grammarAccess.getSimpleStateAccess().getInitialInitialKeyword_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(current, "initial", true, "initial");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_1=(Token)match(input,19,FOLLOW_19_in_ruleSimpleState757);
+
+ newLeafNode(otherlv_1, grammarAccess.getSimpleStateAccess().getStateKeyword_1());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:371:1: ( (lv_name_2_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:372:1: (lv_name_2_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:372:1: (lv_name_2_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:373:3: lv_name_2_0= RULE_ID
+ {
+ lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSimpleState774);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:389:2: (otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) ) )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==14) ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:389:4: otherlv_3= 'value' ( (lv_value_4_0= RULE_INT ) )
+ {
+ otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleSimpleState792);
+
+ newLeafNode(otherlv_3, grammarAccess.getSimpleStateAccess().getValueKeyword_3_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:393:1: ( (lv_value_4_0= RULE_INT ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:394:1: (lv_value_4_0= RULE_INT )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:394:1: (lv_value_4_0= RULE_INT )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:395:3: lv_value_4_0= RULE_INT
+ {
+ lv_value_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSimpleState809);
+
+ newLeafNode(lv_value_4_0, grammarAccess.getSimpleStateAccess().getValueINTTerminalRuleCall_3_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSimpleStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "value",
+ lv_value_4_0,
+ "INT");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_5=(Token)match(input,15,FOLLOW_15_in_ruleSimpleState828);
+
+ newLeafNode(otherlv_5, grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_4());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:415:1: ( (lv_transitions_6_0= ruleTransition ) )*
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==RULE_ID) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:416:1: (lv_transitions_6_0= ruleTransition )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:416:1: (lv_transitions_6_0= ruleTransition )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:417:3: lv_transitions_6_0= ruleTransition
+ {
+
+ newCompositeNode(grammarAccess.getSimpleStateAccess().getTransitionsTransitionParserRuleCall_5_0());
+
+ pushFollow(FOLLOW_ruleTransition_in_ruleSimpleState849);
+ lv_transitions_6_0=ruleTransition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSimpleStateRule());
+ }
+ add(
+ current,
+ "transitions",
+ lv_transitions_6_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+ otherlv_7=(Token)match(input,18,FOLLOW_18_in_ruleSimpleState862);
+
+ newLeafNode(otherlv_7, grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_6());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSimpleState"
+
+
+ // $ANTLR start "entryRuleCompoundState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:445:1: entryRuleCompoundState returns [EObject current=null] : iv_ruleCompoundState= ruleCompoundState EOF ;
+ public final EObject entryRuleCompoundState() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCompoundState = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:446:2: (iv_ruleCompoundState= ruleCompoundState EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:447:2: iv_ruleCompoundState= ruleCompoundState EOF
+ {
+ newCompositeNode(grammarAccess.getCompoundStateRule());
+ pushFollow(FOLLOW_ruleCompoundState_in_entryRuleCompoundState898);
+ iv_ruleCompoundState=ruleCompoundState();
+
+ state._fsp--;
+
+ current =iv_ruleCompoundState;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleCompoundState908);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCompoundState"
+
+
+ // $ANTLR start "ruleCompoundState"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:454:1: ruleCompoundState returns [EObject current=null] : (otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}' ) ;
+ public final EObject ruleCompoundState() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_initial_1_0=null;
+ Token otherlv_2=null;
+ Token lv_name_3_0=null;
+ Token otherlv_4=null;
+ Token otherlv_5=null;
+ Token otherlv_6=null;
+ Token otherlv_8=null;
+ EObject lv_transitions_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:457:28: ( (otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}' ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:458:1: (otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:458:1: (otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:458:3: otherlv_0= 'compound' ( (lv_initial_1_0= 'initial' ) )? otherlv_2= 'state' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= 'machine' ( (otherlv_5= RULE_ID ) ) otherlv_6= '{' ( (lv_transitions_7_0= ruleTransition ) )* otherlv_8= '}'
+ {
+ otherlv_0=(Token)match(input,20,FOLLOW_20_in_ruleCompoundState945);
+
+ newLeafNode(otherlv_0, grammarAccess.getCompoundStateAccess().getCompoundKeyword_0());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:462:1: ( (lv_initial_1_0= 'initial' ) )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==12) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:463:1: (lv_initial_1_0= 'initial' )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:463:1: (lv_initial_1_0= 'initial' )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:464:3: lv_initial_1_0= 'initial'
+ {
+ lv_initial_1_0=(Token)match(input,12,FOLLOW_12_in_ruleCompoundState963);
+
+ newLeafNode(lv_initial_1_0, grammarAccess.getCompoundStateAccess().getInitialInitialKeyword_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed(current, "initial", true, "initial");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_2=(Token)match(input,19,FOLLOW_19_in_ruleCompoundState989);
+
+ newLeafNode(otherlv_2, grammarAccess.getCompoundStateAccess().getStateKeyword_2());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:481:1: ( (lv_name_3_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:482:1: (lv_name_3_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:482:1: (lv_name_3_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:483:3: lv_name_3_0= RULE_ID
+ {
+ lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCompoundState1006);
+
+ newLeafNode(lv_name_3_0, grammarAccess.getCompoundStateAccess().getNameIDTerminalRuleCall_3_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_3_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,21,FOLLOW_21_in_ruleCompoundState1023);
+
+ newLeafNode(otherlv_4, grammarAccess.getCompoundStateAccess().getMachineKeyword_4());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:503:1: ( (otherlv_5= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:504:1: (otherlv_5= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:504:1: (otherlv_5= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:505:3: otherlv_5= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCompoundStateRule());
+ }
+
+ otherlv_5=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCompoundState1043);
+
+ newLeafNode(otherlv_5, grammarAccess.getCompoundStateAccess().getMachineStatemachineCrossReference_5_0());
+
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleCompoundState1055);
+
+ newLeafNode(otherlv_6, grammarAccess.getCompoundStateAccess().getLeftCurlyBracketKeyword_6());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:520:1: ( (lv_transitions_7_0= ruleTransition ) )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==RULE_ID) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:521:1: (lv_transitions_7_0= ruleTransition )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:521:1: (lv_transitions_7_0= ruleTransition )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:522:3: lv_transitions_7_0= ruleTransition
+ {
+
+ newCompositeNode(grammarAccess.getCompoundStateAccess().getTransitionsTransitionParserRuleCall_7_0());
+
+ pushFollow(FOLLOW_ruleTransition_in_ruleCompoundState1076);
+ lv_transitions_7_0=ruleTransition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getCompoundStateRule());
+ }
+ add(
+ current,
+ "transitions",
+ lv_transitions_7_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ otherlv_8=(Token)match(input,18,FOLLOW_18_in_ruleCompoundState1089);
+
+ newLeafNode(otherlv_8, grammarAccess.getCompoundStateAccess().getRightCurlyBracketKeyword_8());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCompoundState"
+
+
+ // $ANTLR start "entryRuleTransition"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:550:1: entryRuleTransition returns [EObject current=null] : iv_ruleTransition= ruleTransition EOF ;
+ public final EObject entryRuleTransition() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTransition = null;
+
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:551:2: (iv_ruleTransition= ruleTransition EOF )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:552:2: iv_ruleTransition= ruleTransition EOF
+ {
+ newCompositeNode(grammarAccess.getTransitionRule());
+ pushFollow(FOLLOW_ruleTransition_in_entryRuleTransition1125);
+ iv_ruleTransition=ruleTransition();
+
+ state._fsp--;
+
+ current =iv_ruleTransition;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTransition1135);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTransition"
+
+
+ // $ANTLR start "ruleTransition"
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:559:1: ruleTransition returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) ) ;
+ public final EObject ruleTransition() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:562:28: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:563:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:563:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:563:2: ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:563:2: ( (otherlv_0= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:564:1: (otherlv_0= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:564:1: (otherlv_0= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:565:3: otherlv_0= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTransitionRule());
+ }
+
+ otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTransition1180);
+
+ newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,22,FOLLOW_22_in_ruleTransition1192);
+
+ newLeafNode(otherlv_1, grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:580:1: ( (otherlv_2= RULE_ID ) )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:581:1: (otherlv_2= RULE_ID )
+ {
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:581:1: (otherlv_2= RULE_ID )
+ // ../org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/parser/antlr/internal/InternalOCLStates.g:582:3: otherlv_2= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTransitionRule());
+ }
+
+ otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTransition1212);
+
+ newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTransition"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_ruleModule_in_entryRuleModule75 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModule85 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_ruleModule122 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleModule139 = new BitSet(new long[]{0x0000000000003002L});
+ public static final BitSet FOLLOW_ruleStatemachine_in_ruleModule165 = new BitSet(new long[]{0x0000000000003002L});
+ public static final BitSet FOLLOW_ruleStatemachine_in_entryRuleStatemachine202 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStatemachine212 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_ruleStatemachine255 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_13_in_ruleStatemachine281 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleStatemachine298 = new BitSet(new long[]{0x000000000000C000L});
+ public static final BitSet FOLLOW_14_in_ruleStatemachine316 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleStatemachine333 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_15_in_ruleStatemachine352 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleStatemachine364 = new BitSet(new long[]{0x0000000000020020L});
+ public static final BitSet FOLLOW_ruleEvent_in_ruleStatemachine385 = new BitSet(new long[]{0x0000000000020020L});
+ public static final BitSet FOLLOW_17_in_ruleStatemachine398 = new BitSet(new long[]{0x00000000001C1000L});
+ public static final BitSet FOLLOW_ruleState_in_ruleStatemachine419 = new BitSet(new long[]{0x00000000001C1000L});
+ public static final BitSet FOLLOW_18_in_ruleStatemachine432 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent468 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEvent478 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleEvent519 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_entryRuleState559 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleState569 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSimpleState_in_ruleState616 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundState_in_ruleState643 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSimpleState_in_entryRuleSimpleState678 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSimpleState688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_ruleSimpleState731 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_19_in_ruleSimpleState757 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSimpleState774 = new BitSet(new long[]{0x000000000000C000L});
+ public static final BitSet FOLLOW_14_in_ruleSimpleState792 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleSimpleState809 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_15_in_ruleSimpleState828 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_ruleTransition_in_ruleSimpleState849 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_18_in_ruleSimpleState862 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCompoundState_in_entryRuleCompoundState898 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleCompoundState908 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_20_in_ruleCompoundState945 = new BitSet(new long[]{0x0000000000081000L});
+ public static final BitSet FOLLOW_12_in_ruleCompoundState963 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_19_in_ruleCompoundState989 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleCompoundState1006 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_21_in_ruleCompoundState1023 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleCompoundState1043 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_15_in_ruleCompoundState1055 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_ruleTransition_in_ruleCompoundState1076 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_18_in_ruleCompoundState1089 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_entryRuleTransition1125 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTransition1135 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleTransition1180 = new BitSet(new long[]{0x0000000000400000L});
+ public static final BitSet FOLLOW_22_in_ruleTransition1192 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleTransition1212 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/services/OCLStatesGrammarAccess.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/services/OCLStatesGrammarAccess.java
new file mode 100644
index 0000000..b5c3b78
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/services/OCLStatesGrammarAccess.java
@@ -0,0 +1,482 @@
+/*
+* generated by Xtext
+*/
+
+package org.eclipse.ocl.tutorial.eclipsecon2011.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class OCLStatesGrammarAccess extends AbstractGrammarElementFinder {
+
+
+ public class ModuleElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Module");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cModuleKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+ private final Assignment cMachinesAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cMachinesStatemachineParserRuleCall_2_0 = (RuleCall)cMachinesAssignment_2.eContents().get(0);
+
+ //Module:
+ // "module" name=STRING machines+=Statemachine*;
+ public ParserRule getRule() { return rule; }
+
+ //"module" name=STRING machines+=Statemachine*
+ public Group getGroup() { return cGroup; }
+
+ //"module"
+ public Keyword getModuleKeyword_0() { return cModuleKeyword_0; }
+
+ //name=STRING
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //STRING
+ public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
+
+ //machines+=Statemachine*
+ public Assignment getMachinesAssignment_2() { return cMachinesAssignment_2; }
+
+ //Statemachine
+ public RuleCall getMachinesStatemachineParserRuleCall_2_0() { return cMachinesStatemachineParserRuleCall_2_0; }
+ }
+
+ public class StatemachineElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Statemachine");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cInitialAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final Keyword cInitialInitialKeyword_0_0 = (Keyword)cInitialAssignment_0.eContents().get(0);
+ private final Keyword cStatemachineKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cValueKeyword_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 cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Keyword cEventsKeyword_5 = (Keyword)cGroup.eContents().get(5);
+ private final Assignment cEventsAssignment_6 = (Assignment)cGroup.eContents().get(6);
+ private final RuleCall cEventsEventParserRuleCall_6_0 = (RuleCall)cEventsAssignment_6.eContents().get(0);
+ private final Keyword cSemicolonKeyword_7 = (Keyword)cGroup.eContents().get(7);
+ private final Assignment cStatesAssignment_8 = (Assignment)cGroup.eContents().get(8);
+ private final RuleCall cStatesStateParserRuleCall_8_0 = (RuleCall)cStatesAssignment_8.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+
+ //Statemachine:
+ // initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}";
+ public ParserRule getRule() { return rule; }
+
+ //initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}"
+ public Group getGroup() { return cGroup; }
+
+ //initial?="initial"?
+ public Assignment getInitialAssignment_0() { return cInitialAssignment_0; }
+
+ //"initial"
+ public Keyword getInitialInitialKeyword_0_0() { return cInitialInitialKeyword_0_0; }
+
+ //"statemachine"
+ public Keyword getStatemachineKeyword_1() { return cStatemachineKeyword_1; }
+
+ //name=ID
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+
+ //("value" value=INT)?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"value"
+ public Keyword getValueKeyword_3_0() { return cValueKeyword_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; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+ //"events"
+ public Keyword getEventsKeyword_5() { return cEventsKeyword_5; }
+
+ //events+=Event*
+ public Assignment getEventsAssignment_6() { return cEventsAssignment_6; }
+
+ //Event
+ public RuleCall getEventsEventParserRuleCall_6_0() { return cEventsEventParserRuleCall_6_0; }
+
+ //";"
+ public Keyword getSemicolonKeyword_7() { return cSemicolonKeyword_7; }
+
+ //states+=State*
+ public Assignment getStatesAssignment_8() { return cStatesAssignment_8; }
+
+ //State
+ public RuleCall getStatesStateParserRuleCall_8_0() { return cStatesStateParserRuleCall_8_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+ }
+
+ public class EventElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Event");
+ private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
+
+ //Event:
+ // name=ID;
+ public ParserRule getRule() { return rule; }
+
+ //name=ID
+ public Assignment getNameAssignment() { return cNameAssignment; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; }
+ }
+
+ public class StateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "State");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cSimpleStateParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cCompoundStateParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //State:
+ // SimpleState | CompoundState;
+ public ParserRule getRule() { return rule; }
+
+ //SimpleState | CompoundState
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //SimpleState
+ public RuleCall getSimpleStateParserRuleCall_0() { return cSimpleStateParserRuleCall_0; }
+
+ //CompoundState
+ public RuleCall getCompoundStateParserRuleCall_1() { return cCompoundStateParserRuleCall_1; }
+ }
+
+ public class SimpleStateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SimpleState");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cInitialAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final Keyword cInitialInitialKeyword_0_0 = (Keyword)cInitialAssignment_0.eContents().get(0);
+ private final Keyword cStateKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cValueKeyword_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 cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cTransitionsAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cTransitionsTransitionParserRuleCall_5_0 = (RuleCall)cTransitionsAssignment_5.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+
+ //SimpleState:
+ // initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}";
+ public ParserRule getRule() { return rule; }
+
+ //initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}"
+ public Group getGroup() { return cGroup; }
+
+ //initial?="initial"?
+ public Assignment getInitialAssignment_0() { return cInitialAssignment_0; }
+
+ //"initial"
+ public Keyword getInitialInitialKeyword_0_0() { return cInitialInitialKeyword_0_0; }
+
+ //"state"
+ public Keyword getStateKeyword_1() { return cStateKeyword_1; }
+
+ //name=ID
+ public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+
+ //("value" value=INT)?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"value"
+ public Keyword getValueKeyword_3_0() { return cValueKeyword_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; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+ //transitions+=Transition*
+ public Assignment getTransitionsAssignment_5() { return cTransitionsAssignment_5; }
+
+ //Transition
+ public RuleCall getTransitionsTransitionParserRuleCall_5_0() { return cTransitionsTransitionParserRuleCall_5_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+ }
+
+ public class CompoundStateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CompoundState");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cCompoundKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cInitialAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final Keyword cInitialInitialKeyword_1_0 = (Keyword)cInitialAssignment_1.eContents().get(0);
+ private final Keyword cStateKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
+ private final Keyword cMachineKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cMachineAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final CrossReference cMachineStatemachineCrossReference_5_0 = (CrossReference)cMachineAssignment_5.eContents().get(0);
+ private final RuleCall cMachineStatemachineIDTerminalRuleCall_5_0_1 = (RuleCall)cMachineStatemachineCrossReference_5_0.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+ private final Assignment cTransitionsAssignment_7 = (Assignment)cGroup.eContents().get(7);
+ private final RuleCall cTransitionsTransitionParserRuleCall_7_0 = (RuleCall)cTransitionsAssignment_7.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
+
+ //CompoundState:
+ // "compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}";
+ public ParserRule getRule() { return rule; }
+
+ //"compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}"
+ public Group getGroup() { return cGroup; }
+
+ //"compound"
+ public Keyword getCompoundKeyword_0() { return cCompoundKeyword_0; }
+
+ //initial?="initial"?
+ public Assignment getInitialAssignment_1() { return cInitialAssignment_1; }
+
+ //"initial"
+ public Keyword getInitialInitialKeyword_1_0() { return cInitialInitialKeyword_1_0; }
+
+ //"state"
+ public Keyword getStateKeyword_2() { return cStateKeyword_2; }
+
+ //name=ID
+ public Assignment getNameAssignment_3() { return cNameAssignment_3; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; }
+
+ //"machine"
+ public Keyword getMachineKeyword_4() { return cMachineKeyword_4; }
+
+ //machine=[Statemachine]
+ public Assignment getMachineAssignment_5() { return cMachineAssignment_5; }
+
+ //[Statemachine]
+ public CrossReference getMachineStatemachineCrossReference_5_0() { return cMachineStatemachineCrossReference_5_0; }
+
+ //ID
+ public RuleCall getMachineStatemachineIDTerminalRuleCall_5_0_1() { return cMachineStatemachineIDTerminalRuleCall_5_0_1; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; }
+
+ //transitions+=Transition*
+ public Assignment getTransitionsAssignment_7() { return cTransitionsAssignment_7; }
+
+ //Transition
+ public RuleCall getTransitionsTransitionParserRuleCall_7_0() { return cTransitionsTransitionParserRuleCall_7_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
+ }
+
+ public class TransitionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Transition");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cEventAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final CrossReference cEventEventCrossReference_0_0 = (CrossReference)cEventAssignment_0.eContents().get(0);
+ private final RuleCall cEventEventIDTerminalRuleCall_0_0_1 = (RuleCall)cEventEventCrossReference_0_0.eContents().get(1);
+ private final Keyword cEqualsSignGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cStateAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final CrossReference cStateStateCrossReference_2_0 = (CrossReference)cStateAssignment_2.eContents().get(0);
+ private final RuleCall cStateStateIDTerminalRuleCall_2_0_1 = (RuleCall)cStateStateCrossReference_2_0.eContents().get(1);
+
+ //Transition:
+ // event=[Event] "=>" state=[State];
+ public ParserRule getRule() { return rule; }
+
+ //event=[Event] "=>" state=[State]
+ public Group getGroup() { return cGroup; }
+
+ //event=[Event]
+ public Assignment getEventAssignment_0() { return cEventAssignment_0; }
+
+ //[Event]
+ public CrossReference getEventEventCrossReference_0_0() { return cEventEventCrossReference_0_0; }
+
+ //ID
+ public RuleCall getEventEventIDTerminalRuleCall_0_0_1() { return cEventEventIDTerminalRuleCall_0_0_1; }
+
+ //"=>"
+ public Keyword getEqualsSignGreaterThanSignKeyword_1() { return cEqualsSignGreaterThanSignKeyword_1; }
+
+ //state=[State]
+ public Assignment getStateAssignment_2() { return cStateAssignment_2; }
+
+ //[State]
+ public CrossReference getStateStateCrossReference_2_0() { return cStateStateCrossReference_2_0; }
+
+ //ID
+ public RuleCall getStateStateIDTerminalRuleCall_2_0_1() { return cStateStateIDTerminalRuleCall_2_0_1; }
+ }
+
+
+ private ModuleElements pModule;
+ private StatemachineElements pStatemachine;
+ private EventElements pEvent;
+ private StateElements pState;
+ private SimpleStateElements pSimpleState;
+ private CompoundStateElements pCompoundState;
+ private TransitionElements pTransition;
+
+ private final GrammarProvider grammarProvider;
+
+ private TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public OCLStatesGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammarProvider = grammarProvider;
+ this.gaTerminals = gaTerminals;
+ }
+
+ public Grammar getGrammar() {
+ return grammarProvider.getGrammar(this);
+ }
+
+
+ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ //Module:
+ // "module" name=STRING machines+=Statemachine*;
+ public ModuleElements getModuleAccess() {
+ return (pModule != null) ? pModule : (pModule = new ModuleElements());
+ }
+
+ public ParserRule getModuleRule() {
+ return getModuleAccess().getRule();
+ }
+
+ //Statemachine:
+ // initial?="initial"? "statemachine" name=ID ("value" value=INT)? "{" "events" events+=Event* ";" states+=State* "}";
+ public StatemachineElements getStatemachineAccess() {
+ return (pStatemachine != null) ? pStatemachine : (pStatemachine = new StatemachineElements());
+ }
+
+ public ParserRule getStatemachineRule() {
+ return getStatemachineAccess().getRule();
+ }
+
+ //Event:
+ // name=ID;
+ public EventElements getEventAccess() {
+ return (pEvent != null) ? pEvent : (pEvent = new EventElements());
+ }
+
+ public ParserRule getEventRule() {
+ return getEventAccess().getRule();
+ }
+
+ //State:
+ // SimpleState | CompoundState;
+ public StateElements getStateAccess() {
+ return (pState != null) ? pState : (pState = new StateElements());
+ }
+
+ public ParserRule getStateRule() {
+ return getStateAccess().getRule();
+ }
+
+ //SimpleState:
+ // initial?="initial"? "state" name=ID ("value" value=INT)? "{" transitions+=Transition* "}";
+ public SimpleStateElements getSimpleStateAccess() {
+ return (pSimpleState != null) ? pSimpleState : (pSimpleState = new SimpleStateElements());
+ }
+
+ public ParserRule getSimpleStateRule() {
+ return getSimpleStateAccess().getRule();
+ }
+
+ //CompoundState:
+ // "compound" initial?="initial"? "state" name=ID "machine" machine=[Statemachine] "{" transitions+=Transition* "}";
+ public CompoundStateElements getCompoundStateAccess() {
+ return (pCompoundState != null) ? pCompoundState : (pCompoundState = new CompoundStateElements());
+ }
+
+ public ParserRule getCompoundStateRule() {
+ return getCompoundStateAccess().getRule();
+ }
+
+ //Transition:
+ // event=[Event] "=>" state=[State];
+ public TransitionElements getTransitionAccess() {
+ return (pTransition != null) ? pTransition : (pTransition = new TransitionElements());
+ }
+
+ public ParserRule getTransitionRule() {
+ return getTransitionAccess().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/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/validation/AbstractOCLStatesJavaValidator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/validation/AbstractOCLStatesJavaValidator.java
new file mode 100644
index 0000000..efb2078
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src-gen/org/eclipse/ocl/tutorial/eclipsecon2011/validation/AbstractOCLStatesJavaValidator.java
@@ -0,0 +1,18 @@
+package org.eclipse.ocl.tutorial.eclipsecon2011.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+
+public class AbstractOCLStatesJavaValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(EPackage.Registry.INSTANCE.getEPackage("http://ocl.eclipse.org/tutorial/eclipsecon2011/OCLStates"));
+ return result;
+ }
+
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.mwe2 b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.mwe2
new file mode 100644
index 0000000..05b6318
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.mwe2
@@ -0,0 +1,86 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: OCLStates.mwe2,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+module org.eclipse.ocl.tutorial.eclipsecon2011.GenerateOCLStates
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.xtext"
+var file.extensions = "oclstates"
+var projectName = "org.eclipse.ocl.tutorial.eclipsecon2011.oclstates"
+var runtimeProject = "../${projectName}"
+
+Workflow {
+
+ bean = StandaloneSetup {
+ platformUri = "${runtimeProject}/../.."
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}/src-gen"
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}.ui/src-gen"
+ }
+
+ component = Generator {
+ pathRtProject = runtimeProject
+ pathUiProject = "${runtimeProject}.ui"
+ projectNameRt = projectName
+ projectNameUi = "${projectName}.ui"
+ language = {
+ uri = grammarURI
+ fileExtensions = file.extensions
+
+ // Java API to access grammar elements (required by several other fragments)
+ fragment = grammarAccess.GrammarAccessFragment {}
+
+ // Generate java classes for Ecore models
+ fragment = ecore.EcoreGeneratorFragment {}
+
+ // the serialization component
+ fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
+
+ // a custom ResourceFactory for use with EMF
+ fragment = resourceFactory.ResourceFactoryFragment {
+ fileExtensions = file.extensions
+ }
+
+ // the following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/ -->
+ fragment = parser.antlr.XtextAntlrGeneratorFragment {}
+
+ // Check based validation
+ fragment = validation.JavaValidatorFragment {}
+
+ // formatter API
+ fragment = formatting.FormatterFragment {}
+
+ // labeling API
+ fragment = labeling.LabelProviderFragment {}
+
+ // outline API
+ fragment = outline.OutlineTreeProviderFragment {}
+ fragment = outline.QuickOutlineFragment {}
+
+ // java-based API for content assistance
+ fragment = contentAssist.JavaBasedContentAssistFragment {}
+ fragment = parser.antlr.XtextAntlrUiGeneratorFragment {}
+ }
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.xtext b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.xtext
new file mode 100644
index 0000000..9728e63
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStates.xtext
@@ -0,0 +1,50 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: OCLStates.xtext,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+grammar org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates with org.eclipse.xtext.common.Terminals
+
+import "platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/model/OCLStates.ecore"
+
+Module:
+ 'module' name=STRING
+ (machines+=Statemachine)*
+;
+
+Statemachine:
+ (initial?='initial')? 'statemachine' name=ID ('value' value=INT)? '{'
+ 'events' (events+=Event)* ';'
+ (states+=State)* '}'
+;
+
+Event:
+ name=ID;
+
+State: SimpleState | CompoundState;
+
+SimpleState:
+ (initial?='initial')? 'state' name=ID ('value' value=INT)?
+ '{' (transitions+=Transition)* '}'
+;
+
+CompoundState:
+ 'compound' (initial?='initial')? 'state' name=ID
+ 'machine' machine=[Statemachine]
+ '{' (transitions+=Transition)* '}'
+;
+
+Transition:
+ event=[Event] '=>' state=[State]
+;
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesRuntimeModule.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesRuntimeModule.java
new file mode 100644
index 0000000..272217a
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesRuntimeModule.java
@@ -0,0 +1,29 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: OCLStatesRuntimeModule.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+import org.eclipse.ocl.examples.xtext.base.utilities.NoEObjectCompositeEValidator;
+import org.eclipse.xtext.validation.CompositeEValidator;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class OCLStatesRuntimeModule extends org.eclipse.ocl.tutorial.eclipsecon2011.AbstractOCLStatesRuntimeModule {
+ public Class<? extends CompositeEValidator> bindCompositeEValidator() {
+ return NoEObjectCompositeEValidator.class;
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesStandaloneSetup.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesStandaloneSetup.java
new file mode 100644
index 0000000..f1c4668
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/OCLStatesStandaloneSetup.java
@@ -0,0 +1,29 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: OCLStatesStandaloneSetup.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011;
+
+/**
+ * Initialization support for running Xtext languages
+ * without equinox extension registry
+ */
+public class OCLStatesStandaloneSetup extends OCLStatesStandaloneSetupGenerated{
+
+ public static void doSetup() {
+ new OCLStatesStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+}
+
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/formatting/OCLStatesFormatter.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/formatting/OCLStatesFormatter.java
new file mode 100644
index 0000000..f7f66ae
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/formatting/OCLStatesFormatter.java
@@ -0,0 +1,78 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: OCLStatesFormatter.java,v 1.1 2011/03/15 07:51:55 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.formatting;
+
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess.CompoundStateElements;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess.SimpleStateElements;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess.StatemachineElements;
+import org.eclipse.ocl.tutorial.eclipsecon2011.services.OCLStatesGrammarAccess.TransitionElements;
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+
+/**
+ * This class contains custom formatting description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting
+ * on how and when to use it
+ *
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class OCLStatesFormatter extends AbstractDeclarativeFormatter {
+
+ @Override
+ protected void configureFormatting(FormattingConfig c) {
+
+ c.setAutoLinewrap(120);
+
+ OCLStatesGrammarAccess f = (OCLStatesGrammarAccess) getGrammarAccess();
+
+ {
+ CompoundStateElements a = f.getCompoundStateAccess();
+ c.setLinewrap(2).before(a.getRule());
+ setBraces(c, a.getLeftCurlyBracketKeyword_6(), a.getRightCurlyBracketKeyword_8());
+ }
+ {
+ SimpleStateElements a = f.getSimpleStateAccess();
+ c.setLinewrap(2).before(a.getRule());
+ setBraces(c, a.getLeftCurlyBracketKeyword_4(), a.getRightCurlyBracketKeyword_6());
+ }
+ {
+ StatemachineElements a = f.getStatemachineAccess();
+ c.setLinewrap(2).before(a.getRule());
+ c.setLinewrap(1).before(a.getEventsKeyword_5());
+ c.setNoSpace().before(a.getSemicolonKeyword_7());
+ setBraces(c, a.getLeftCurlyBracketKeyword_4(), a.getRightCurlyBracketKeyword_9());
+ }
+ {
+ TransitionElements a = f.getTransitionAccess();
+ c.setLinewrap(1).before(a.getRule());
+ }
+ { // comments
+ c.setNoLinewrap().before(f.getSL_COMMENTRule());
+ }
+ }
+
+ public void setBraces(FormattingConfig c, Keyword leftBrace, Keyword rightBrace) {
+ c.setIndentation(leftBrace, rightBrace);
+ c.setLinewrap().before(leftBrace);
+ c.setLinewrap().after(leftBrace);
+ c.setLinewrap().before(rightBrace);
+ c.setLinewrap().after(rightBrace);
+ }
+}
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/validation/OCLStatesJavaValidator.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/validation/OCLStatesJavaValidator.java
new file mode 100644
index 0000000..e571b46
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/src/org/eclipse/ocl/tutorial/eclipsecon2011/validation/OCLStatesJavaValidator.java
@@ -0,0 +1,27 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2011 E.D.Willink and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: OCLStatesJavaValidator.java,v 1.1 2011/03/15 07:51:54 ewillink Exp $
+ */
+package org.eclipse.ocl.tutorial.eclipsecon2011.validation;
+
+public class OCLStatesJavaValidator extends AbstractOCLStatesJavaValidator {
+
+// @Check
+// public void checkGreetingStartsWithCapital(Greeting greeting) {
+// if (!Character.isUpperCase(greeting.getName().charAt(0))) {
+// warning("Name should start with a capital", MyDslPackage.GREETING__NAME);
+// }
+// }
+}