package com.irtsaintexupery.xtext.pseim.ide.contentassist.antlr.internal;

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
import com.irtsaintexupery.xtext.pseim.services.MappingGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalMappingParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'transform'", "'using'", "'{'", "'}'", "'multiplicity'", "'components'", "'ports'", "'->'", "','", "'-'", "'.'"
    };
    public static final int RULE_STRING=6;
    public static final int RULE_SL_COMMENT=8;
    public static final int T__19=19;
    public static final int T__15=15;
    public static final int T__16=16;
    public static final int T__17=17;
    public static final int T__18=18;
    public static final int T__11=11;
    public static final int T__12=12;
    public static final int T__13=13;
    public static final int T__14=14;
    public static final int EOF=-1;
    public static final int RULE_ID=5;
    public static final int RULE_WS=9;
    public static final int RULE_ANY_OTHER=10;
    public static final int RULE_INT=4;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__20=20;
    public static final int T__21=21;

    // delegates
    // delegators


        public InternalMappingParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalMappingParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalMappingParser.tokenNames; }
    public String getGrammarFileName() { return "InternalMapping.g"; }


    	private MappingGrammarAccess grammarAccess;

    	public void setGrammarAccess(MappingGrammarAccess grammarAccess) {
    		this.grammarAccess = grammarAccess;
    	}

    	@Override
    	protected Grammar getGrammar() {
    		return grammarAccess.getGrammar();
    	}

    	@Override
    	protected String getValueForTokenName(String tokenName) {
    		return tokenName;
    	}



    // $ANTLR start "entryRulePatternApplication"
    // InternalMapping.g:53:1: entryRulePatternApplication : rulePatternApplication EOF ;
    public final void entryRulePatternApplication() throws RecognitionException {
        try {
            // InternalMapping.g:54:1: ( rulePatternApplication EOF )
            // InternalMapping.g:55:1: rulePatternApplication EOF
            {
             before(grammarAccess.getPatternApplicationRule()); 
            pushFollow(FOLLOW_1);
            rulePatternApplication();

            state._fsp--;

             after(grammarAccess.getPatternApplicationRule()); 
            match(input,EOF,FOLLOW_2); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePatternApplication"


    // $ANTLR start "rulePatternApplication"
    // InternalMapping.g:62:1: rulePatternApplication : ( ( rule__PatternApplication__Group__0 ) ) ;
    public final void rulePatternApplication() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:66:2: ( ( ( rule__PatternApplication__Group__0 ) ) )
            // InternalMapping.g:67:2: ( ( rule__PatternApplication__Group__0 ) )
            {
            // InternalMapping.g:67:2: ( ( rule__PatternApplication__Group__0 ) )
            // InternalMapping.g:68:3: ( rule__PatternApplication__Group__0 )
            {
             before(grammarAccess.getPatternApplicationAccess().getGroup()); 
            // InternalMapping.g:69:3: ( rule__PatternApplication__Group__0 )
            // InternalMapping.g:69:4: rule__PatternApplication__Group__0
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getPatternApplicationAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePatternApplication"


    // $ANTLR start "entryRuleCardinalityValue"
    // InternalMapping.g:78:1: entryRuleCardinalityValue : ruleCardinalityValue EOF ;
    public final void entryRuleCardinalityValue() throws RecognitionException {
        try {
            // InternalMapping.g:79:1: ( ruleCardinalityValue EOF )
            // InternalMapping.g:80:1: ruleCardinalityValue EOF
            {
             before(grammarAccess.getCardinalityValueRule()); 
            pushFollow(FOLLOW_1);
            ruleCardinalityValue();

            state._fsp--;

             after(grammarAccess.getCardinalityValueRule()); 
            match(input,EOF,FOLLOW_2); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleCardinalityValue"


    // $ANTLR start "ruleCardinalityValue"
    // InternalMapping.g:87:1: ruleCardinalityValue : ( ( rule__CardinalityValue__Group__0 ) ) ;
    public final void ruleCardinalityValue() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:91:2: ( ( ( rule__CardinalityValue__Group__0 ) ) )
            // InternalMapping.g:92:2: ( ( rule__CardinalityValue__Group__0 ) )
            {
            // InternalMapping.g:92:2: ( ( rule__CardinalityValue__Group__0 ) )
            // InternalMapping.g:93:3: ( rule__CardinalityValue__Group__0 )
            {
             before(grammarAccess.getCardinalityValueAccess().getGroup()); 
            // InternalMapping.g:94:3: ( rule__CardinalityValue__Group__0 )
            // InternalMapping.g:94:4: rule__CardinalityValue__Group__0
            {
            pushFollow(FOLLOW_2);
            rule__CardinalityValue__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getCardinalityValueAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleCardinalityValue"


    // $ANTLR start "entryRulePortMapping"
    // InternalMapping.g:103:1: entryRulePortMapping : rulePortMapping EOF ;
    public final void entryRulePortMapping() throws RecognitionException {
        try {
            // InternalMapping.g:104:1: ( rulePortMapping EOF )
            // InternalMapping.g:105:1: rulePortMapping EOF
            {
             before(grammarAccess.getPortMappingRule()); 
            pushFollow(FOLLOW_1);
            rulePortMapping();

            state._fsp--;

             after(grammarAccess.getPortMappingRule()); 
            match(input,EOF,FOLLOW_2); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePortMapping"


    // $ANTLR start "rulePortMapping"
    // InternalMapping.g:112:1: rulePortMapping : ( ( rule__PortMapping__Group__0 ) ) ;
    public final void rulePortMapping() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:116:2: ( ( ( rule__PortMapping__Group__0 ) ) )
            // InternalMapping.g:117:2: ( ( rule__PortMapping__Group__0 ) )
            {
            // InternalMapping.g:117:2: ( ( rule__PortMapping__Group__0 ) )
            // InternalMapping.g:118:3: ( rule__PortMapping__Group__0 )
            {
             before(grammarAccess.getPortMappingAccess().getGroup()); 
            // InternalMapping.g:119:3: ( rule__PortMapping__Group__0 )
            // InternalMapping.g:119:4: rule__PortMapping__Group__0
            {
            pushFollow(FOLLOW_2);
            rule__PortMapping__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getPortMappingAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePortMapping"


    // $ANTLR start "entryRuleGraphElementMapping"
    // InternalMapping.g:128:1: entryRuleGraphElementMapping : ruleGraphElementMapping EOF ;
    public final void entryRuleGraphElementMapping() throws RecognitionException {
        try {
            // InternalMapping.g:129:1: ( ruleGraphElementMapping EOF )
            // InternalMapping.g:130:1: ruleGraphElementMapping EOF
            {
             before(grammarAccess.getGraphElementMappingRule()); 
            pushFollow(FOLLOW_1);
            ruleGraphElementMapping();

            state._fsp--;

             after(grammarAccess.getGraphElementMappingRule()); 
            match(input,EOF,FOLLOW_2); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleGraphElementMapping"


    // $ANTLR start "ruleGraphElementMapping"
    // InternalMapping.g:137:1: ruleGraphElementMapping : ( ( rule__GraphElementMapping__Group__0 ) ) ;
    public final void ruleGraphElementMapping() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:141:2: ( ( ( rule__GraphElementMapping__Group__0 ) ) )
            // InternalMapping.g:142:2: ( ( rule__GraphElementMapping__Group__0 ) )
            {
            // InternalMapping.g:142:2: ( ( rule__GraphElementMapping__Group__0 ) )
            // InternalMapping.g:143:3: ( rule__GraphElementMapping__Group__0 )
            {
             before(grammarAccess.getGraphElementMappingAccess().getGroup()); 
            // InternalMapping.g:144:3: ( rule__GraphElementMapping__Group__0 )
            // InternalMapping.g:144:4: rule__GraphElementMapping__Group__0
            {
            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getGraphElementMappingAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleGraphElementMapping"


    // $ANTLR start "entryRuleEInt"
    // InternalMapping.g:153:1: entryRuleEInt : ruleEInt EOF ;
    public final void entryRuleEInt() throws RecognitionException {
        try {
            // InternalMapping.g:154:1: ( ruleEInt EOF )
            // InternalMapping.g:155:1: ruleEInt EOF
            {
             before(grammarAccess.getEIntRule()); 
            pushFollow(FOLLOW_1);
            ruleEInt();

            state._fsp--;

             after(grammarAccess.getEIntRule()); 
            match(input,EOF,FOLLOW_2); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleEInt"


    // $ANTLR start "ruleEInt"
    // InternalMapping.g:162:1: ruleEInt : ( ( rule__EInt__Group__0 ) ) ;
    public final void ruleEInt() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:166:2: ( ( ( rule__EInt__Group__0 ) ) )
            // InternalMapping.g:167:2: ( ( rule__EInt__Group__0 ) )
            {
            // InternalMapping.g:167:2: ( ( rule__EInt__Group__0 ) )
            // InternalMapping.g:168:3: ( rule__EInt__Group__0 )
            {
             before(grammarAccess.getEIntAccess().getGroup()); 
            // InternalMapping.g:169:3: ( rule__EInt__Group__0 )
            // InternalMapping.g:169:4: rule__EInt__Group__0
            {
            pushFollow(FOLLOW_2);
            rule__EInt__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getEIntAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleEInt"


    // $ANTLR start "entryRuleQualifiedID"
    // InternalMapping.g:178:1: entryRuleQualifiedID : ruleQualifiedID EOF ;
    public final void entryRuleQualifiedID() throws RecognitionException {
        try {
            // InternalMapping.g:179:1: ( ruleQualifiedID EOF )
            // InternalMapping.g:180:1: ruleQualifiedID EOF
            {
             before(grammarAccess.getQualifiedIDRule()); 
            pushFollow(FOLLOW_1);
            ruleQualifiedID();

            state._fsp--;

             after(grammarAccess.getQualifiedIDRule()); 
            match(input,EOF,FOLLOW_2); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQualifiedID"


    // $ANTLR start "ruleQualifiedID"
    // InternalMapping.g:187:1: ruleQualifiedID : ( ( rule__QualifiedID__Group__0 ) ) ;
    public final void ruleQualifiedID() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:191:2: ( ( ( rule__QualifiedID__Group__0 ) ) )
            // InternalMapping.g:192:2: ( ( rule__QualifiedID__Group__0 ) )
            {
            // InternalMapping.g:192:2: ( ( rule__QualifiedID__Group__0 ) )
            // InternalMapping.g:193:3: ( rule__QualifiedID__Group__0 )
            {
             before(grammarAccess.getQualifiedIDAccess().getGroup()); 
            // InternalMapping.g:194:3: ( rule__QualifiedID__Group__0 )
            // InternalMapping.g:194:4: rule__QualifiedID__Group__0
            {
            pushFollow(FOLLOW_2);
            rule__QualifiedID__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getQualifiedIDAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQualifiedID"


    // $ANTLR start "rule__PatternApplication__Group__0"
    // InternalMapping.g:202:1: rule__PatternApplication__Group__0 : rule__PatternApplication__Group__0__Impl rule__PatternApplication__Group__1 ;
    public final void rule__PatternApplication__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:206:1: ( rule__PatternApplication__Group__0__Impl rule__PatternApplication__Group__1 )
            // InternalMapping.g:207:2: rule__PatternApplication__Group__0__Impl rule__PatternApplication__Group__1
            {
            pushFollow(FOLLOW_3);
            rule__PatternApplication__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__0"


    // $ANTLR start "rule__PatternApplication__Group__0__Impl"
    // InternalMapping.g:214:1: rule__PatternApplication__Group__0__Impl : ( 'transform' ) ;
    public final void rule__PatternApplication__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:218:1: ( ( 'transform' ) )
            // InternalMapping.g:219:1: ( 'transform' )
            {
            // InternalMapping.g:219:1: ( 'transform' )
            // InternalMapping.g:220:2: 'transform'
            {
             before(grammarAccess.getPatternApplicationAccess().getTransformKeyword_0()); 
            match(input,11,FOLLOW_2); 
             after(grammarAccess.getPatternApplicationAccess().getTransformKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__0__Impl"


    // $ANTLR start "rule__PatternApplication__Group__1"
    // InternalMapping.g:229:1: rule__PatternApplication__Group__1 : rule__PatternApplication__Group__1__Impl rule__PatternApplication__Group__2 ;
    public final void rule__PatternApplication__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:233:1: ( rule__PatternApplication__Group__1__Impl rule__PatternApplication__Group__2 )
            // InternalMapping.g:234:2: rule__PatternApplication__Group__1__Impl rule__PatternApplication__Group__2
            {
            pushFollow(FOLLOW_4);
            rule__PatternApplication__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__1"


    // $ANTLR start "rule__PatternApplication__Group__1__Impl"
    // InternalMapping.g:241:1: rule__PatternApplication__Group__1__Impl : ( ( rule__PatternApplication__ModelAssignment_1 ) ) ;
    public final void rule__PatternApplication__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:245:1: ( ( ( rule__PatternApplication__ModelAssignment_1 ) ) )
            // InternalMapping.g:246:1: ( ( rule__PatternApplication__ModelAssignment_1 ) )
            {
            // InternalMapping.g:246:1: ( ( rule__PatternApplication__ModelAssignment_1 ) )
            // InternalMapping.g:247:2: ( rule__PatternApplication__ModelAssignment_1 )
            {
             before(grammarAccess.getPatternApplicationAccess().getModelAssignment_1()); 
            // InternalMapping.g:248:2: ( rule__PatternApplication__ModelAssignment_1 )
            // InternalMapping.g:248:3: rule__PatternApplication__ModelAssignment_1
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__ModelAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getPatternApplicationAccess().getModelAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__1__Impl"


    // $ANTLR start "rule__PatternApplication__Group__2"
    // InternalMapping.g:256:1: rule__PatternApplication__Group__2 : rule__PatternApplication__Group__2__Impl rule__PatternApplication__Group__3 ;
    public final void rule__PatternApplication__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:260:1: ( rule__PatternApplication__Group__2__Impl rule__PatternApplication__Group__3 )
            // InternalMapping.g:261:2: rule__PatternApplication__Group__2__Impl rule__PatternApplication__Group__3
            {
            pushFollow(FOLLOW_3);
            rule__PatternApplication__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__2"


    // $ANTLR start "rule__PatternApplication__Group__2__Impl"
    // InternalMapping.g:268:1: rule__PatternApplication__Group__2__Impl : ( 'using' ) ;
    public final void rule__PatternApplication__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:272:1: ( ( 'using' ) )
            // InternalMapping.g:273:1: ( 'using' )
            {
            // InternalMapping.g:273:1: ( 'using' )
            // InternalMapping.g:274:2: 'using'
            {
             before(grammarAccess.getPatternApplicationAccess().getUsingKeyword_2()); 
            match(input,12,FOLLOW_2); 
             after(grammarAccess.getPatternApplicationAccess().getUsingKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__2__Impl"


    // $ANTLR start "rule__PatternApplication__Group__3"
    // InternalMapping.g:283:1: rule__PatternApplication__Group__3 : rule__PatternApplication__Group__3__Impl rule__PatternApplication__Group__4 ;
    public final void rule__PatternApplication__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:287:1: ( rule__PatternApplication__Group__3__Impl rule__PatternApplication__Group__4 )
            // InternalMapping.g:288:2: rule__PatternApplication__Group__3__Impl rule__PatternApplication__Group__4
            {
            pushFollow(FOLLOW_5);
            rule__PatternApplication__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__3"


    // $ANTLR start "rule__PatternApplication__Group__3__Impl"
    // InternalMapping.g:295:1: rule__PatternApplication__Group__3__Impl : ( ( rule__PatternApplication__PatternAssignment_3 ) ) ;
    public final void rule__PatternApplication__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:299:1: ( ( ( rule__PatternApplication__PatternAssignment_3 ) ) )
            // InternalMapping.g:300:1: ( ( rule__PatternApplication__PatternAssignment_3 ) )
            {
            // InternalMapping.g:300:1: ( ( rule__PatternApplication__PatternAssignment_3 ) )
            // InternalMapping.g:301:2: ( rule__PatternApplication__PatternAssignment_3 )
            {
             before(grammarAccess.getPatternApplicationAccess().getPatternAssignment_3()); 
            // InternalMapping.g:302:2: ( rule__PatternApplication__PatternAssignment_3 )
            // InternalMapping.g:302:3: rule__PatternApplication__PatternAssignment_3
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__PatternAssignment_3();

            state._fsp--;


            }

             after(grammarAccess.getPatternApplicationAccess().getPatternAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__3__Impl"


    // $ANTLR start "rule__PatternApplication__Group__4"
    // InternalMapping.g:310:1: rule__PatternApplication__Group__4 : rule__PatternApplication__Group__4__Impl rule__PatternApplication__Group__5 ;
    public final void rule__PatternApplication__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:314:1: ( rule__PatternApplication__Group__4__Impl rule__PatternApplication__Group__5 )
            // InternalMapping.g:315:2: rule__PatternApplication__Group__4__Impl rule__PatternApplication__Group__5
            {
            pushFollow(FOLLOW_6);
            rule__PatternApplication__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__4"


    // $ANTLR start "rule__PatternApplication__Group__4__Impl"
    // InternalMapping.g:322:1: rule__PatternApplication__Group__4__Impl : ( '{' ) ;
    public final void rule__PatternApplication__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:326:1: ( ( '{' ) )
            // InternalMapping.g:327:1: ( '{' )
            {
            // InternalMapping.g:327:1: ( '{' )
            // InternalMapping.g:328:2: '{'
            {
             before(grammarAccess.getPatternApplicationAccess().getLeftCurlyBracketKeyword_4()); 
            match(input,13,FOLLOW_2); 
             after(grammarAccess.getPatternApplicationAccess().getLeftCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__4__Impl"


    // $ANTLR start "rule__PatternApplication__Group__5"
    // InternalMapping.g:337:1: rule__PatternApplication__Group__5 : rule__PatternApplication__Group__5__Impl rule__PatternApplication__Group__6 ;
    public final void rule__PatternApplication__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:341:1: ( rule__PatternApplication__Group__5__Impl rule__PatternApplication__Group__6 )
            // InternalMapping.g:342:2: rule__PatternApplication__Group__5__Impl rule__PatternApplication__Group__6
            {
            pushFollow(FOLLOW_6);
            rule__PatternApplication__Group__5__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__6();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__5"


    // $ANTLR start "rule__PatternApplication__Group__5__Impl"
    // InternalMapping.g:349:1: rule__PatternApplication__Group__5__Impl : ( ( rule__PatternApplication__Group_5__0 )? ) ;
    public final void rule__PatternApplication__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:353:1: ( ( ( rule__PatternApplication__Group_5__0 )? ) )
            // InternalMapping.g:354:1: ( ( rule__PatternApplication__Group_5__0 )? )
            {
            // InternalMapping.g:354:1: ( ( rule__PatternApplication__Group_5__0 )? )
            // InternalMapping.g:355:2: ( rule__PatternApplication__Group_5__0 )?
            {
             before(grammarAccess.getPatternApplicationAccess().getGroup_5()); 
            // InternalMapping.g:356:2: ( rule__PatternApplication__Group_5__0 )?
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==15) ) {
                alt1=1;
            }
            switch (alt1) {
                case 1 :
                    // InternalMapping.g:356:3: rule__PatternApplication__Group_5__0
                    {
                    pushFollow(FOLLOW_2);
                    rule__PatternApplication__Group_5__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getPatternApplicationAccess().getGroup_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__5__Impl"


    // $ANTLR start "rule__PatternApplication__Group__6"
    // InternalMapping.g:364:1: rule__PatternApplication__Group__6 : rule__PatternApplication__Group__6__Impl rule__PatternApplication__Group__7 ;
    public final void rule__PatternApplication__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:368:1: ( rule__PatternApplication__Group__6__Impl rule__PatternApplication__Group__7 )
            // InternalMapping.g:369:2: rule__PatternApplication__Group__6__Impl rule__PatternApplication__Group__7
            {
            pushFollow(FOLLOW_6);
            rule__PatternApplication__Group__6__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__7();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__6"


    // $ANTLR start "rule__PatternApplication__Group__6__Impl"
    // InternalMapping.g:376:1: rule__PatternApplication__Group__6__Impl : ( ( rule__PatternApplication__Group_6__0 )? ) ;
    public final void rule__PatternApplication__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:380:1: ( ( ( rule__PatternApplication__Group_6__0 )? ) )
            // InternalMapping.g:381:1: ( ( rule__PatternApplication__Group_6__0 )? )
            {
            // InternalMapping.g:381:1: ( ( rule__PatternApplication__Group_6__0 )? )
            // InternalMapping.g:382:2: ( rule__PatternApplication__Group_6__0 )?
            {
             before(grammarAccess.getPatternApplicationAccess().getGroup_6()); 
            // InternalMapping.g:383:2: ( rule__PatternApplication__Group_6__0 )?
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==16) ) {
                alt2=1;
            }
            switch (alt2) {
                case 1 :
                    // InternalMapping.g:383:3: rule__PatternApplication__Group_6__0
                    {
                    pushFollow(FOLLOW_2);
                    rule__PatternApplication__Group_6__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getPatternApplicationAccess().getGroup_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__6__Impl"


    // $ANTLR start "rule__PatternApplication__Group__7"
    // InternalMapping.g:391:1: rule__PatternApplication__Group__7 : rule__PatternApplication__Group__7__Impl rule__PatternApplication__Group__8 ;
    public final void rule__PatternApplication__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:395:1: ( rule__PatternApplication__Group__7__Impl rule__PatternApplication__Group__8 )
            // InternalMapping.g:396:2: rule__PatternApplication__Group__7__Impl rule__PatternApplication__Group__8
            {
            pushFollow(FOLLOW_6);
            rule__PatternApplication__Group__7__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__8();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__7"


    // $ANTLR start "rule__PatternApplication__Group__7__Impl"
    // InternalMapping.g:403:1: rule__PatternApplication__Group__7__Impl : ( ( rule__PatternApplication__Group_7__0 )? ) ;
    public final void rule__PatternApplication__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:407:1: ( ( ( rule__PatternApplication__Group_7__0 )? ) )
            // InternalMapping.g:408:1: ( ( rule__PatternApplication__Group_7__0 )? )
            {
            // InternalMapping.g:408:1: ( ( rule__PatternApplication__Group_7__0 )? )
            // InternalMapping.g:409:2: ( rule__PatternApplication__Group_7__0 )?
            {
             before(grammarAccess.getPatternApplicationAccess().getGroup_7()); 
            // InternalMapping.g:410:2: ( rule__PatternApplication__Group_7__0 )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==17) ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // InternalMapping.g:410:3: rule__PatternApplication__Group_7__0
                    {
                    pushFollow(FOLLOW_2);
                    rule__PatternApplication__Group_7__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getPatternApplicationAccess().getGroup_7()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__7__Impl"


    // $ANTLR start "rule__PatternApplication__Group__8"
    // InternalMapping.g:418:1: rule__PatternApplication__Group__8 : rule__PatternApplication__Group__8__Impl ;
    public final void rule__PatternApplication__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:422:1: ( rule__PatternApplication__Group__8__Impl )
            // InternalMapping.g:423:2: rule__PatternApplication__Group__8__Impl
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group__8__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__8"


    // $ANTLR start "rule__PatternApplication__Group__8__Impl"
    // InternalMapping.g:429:1: rule__PatternApplication__Group__8__Impl : ( '}' ) ;
    public final void rule__PatternApplication__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:433:1: ( ( '}' ) )
            // InternalMapping.g:434:1: ( '}' )
            {
            // InternalMapping.g:434:1: ( '}' )
            // InternalMapping.g:435:2: '}'
            {
             before(grammarAccess.getPatternApplicationAccess().getRightCurlyBracketKeyword_8()); 
            match(input,14,FOLLOW_2); 
             after(grammarAccess.getPatternApplicationAccess().getRightCurlyBracketKeyword_8()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group__8__Impl"


    // $ANTLR start "rule__PatternApplication__Group_5__0"
    // InternalMapping.g:445:1: rule__PatternApplication__Group_5__0 : rule__PatternApplication__Group_5__0__Impl rule__PatternApplication__Group_5__1 ;
    public final void rule__PatternApplication__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:449:1: ( rule__PatternApplication__Group_5__0__Impl rule__PatternApplication__Group_5__1 )
            // InternalMapping.g:450:2: rule__PatternApplication__Group_5__0__Impl rule__PatternApplication__Group_5__1
            {
            pushFollow(FOLLOW_3);
            rule__PatternApplication__Group_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_5__0"


    // $ANTLR start "rule__PatternApplication__Group_5__0__Impl"
    // InternalMapping.g:457:1: rule__PatternApplication__Group_5__0__Impl : ( 'multiplicity' ) ;
    public final void rule__PatternApplication__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:461:1: ( ( 'multiplicity' ) )
            // InternalMapping.g:462:1: ( 'multiplicity' )
            {
            // InternalMapping.g:462:1: ( 'multiplicity' )
            // InternalMapping.g:463:2: 'multiplicity'
            {
             before(grammarAccess.getPatternApplicationAccess().getMultiplicityKeyword_5_0()); 
            match(input,15,FOLLOW_2); 
             after(grammarAccess.getPatternApplicationAccess().getMultiplicityKeyword_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_5__0__Impl"


    // $ANTLR start "rule__PatternApplication__Group_5__1"
    // InternalMapping.g:472:1: rule__PatternApplication__Group_5__1 : rule__PatternApplication__Group_5__1__Impl rule__PatternApplication__Group_5__2 ;
    public final void rule__PatternApplication__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:476:1: ( rule__PatternApplication__Group_5__1__Impl rule__PatternApplication__Group_5__2 )
            // InternalMapping.g:477:2: rule__PatternApplication__Group_5__1__Impl rule__PatternApplication__Group_5__2
            {
            pushFollow(FOLLOW_3);
            rule__PatternApplication__Group_5__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group_5__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_5__1"


    // $ANTLR start "rule__PatternApplication__Group_5__1__Impl"
    // InternalMapping.g:484:1: rule__PatternApplication__Group_5__1__Impl : ( ( rule__PatternApplication__CardinalityValuesAssignment_5_1 ) ) ;
    public final void rule__PatternApplication__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:488:1: ( ( ( rule__PatternApplication__CardinalityValuesAssignment_5_1 ) ) )
            // InternalMapping.g:489:1: ( ( rule__PatternApplication__CardinalityValuesAssignment_5_1 ) )
            {
            // InternalMapping.g:489:1: ( ( rule__PatternApplication__CardinalityValuesAssignment_5_1 ) )
            // InternalMapping.g:490:2: ( rule__PatternApplication__CardinalityValuesAssignment_5_1 )
            {
             before(grammarAccess.getPatternApplicationAccess().getCardinalityValuesAssignment_5_1()); 
            // InternalMapping.g:491:2: ( rule__PatternApplication__CardinalityValuesAssignment_5_1 )
            // InternalMapping.g:491:3: rule__PatternApplication__CardinalityValuesAssignment_5_1
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__CardinalityValuesAssignment_5_1();

            state._fsp--;


            }

             after(grammarAccess.getPatternApplicationAccess().getCardinalityValuesAssignment_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_5__1__Impl"


    // $ANTLR start "rule__PatternApplication__Group_5__2"
    // InternalMapping.g:499:1: rule__PatternApplication__Group_5__2 : rule__PatternApplication__Group_5__2__Impl ;
    public final void rule__PatternApplication__Group_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:503:1: ( rule__PatternApplication__Group_5__2__Impl )
            // InternalMapping.g:504:2: rule__PatternApplication__Group_5__2__Impl
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group_5__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_5__2"


    // $ANTLR start "rule__PatternApplication__Group_5__2__Impl"
    // InternalMapping.g:510:1: rule__PatternApplication__Group_5__2__Impl : ( ( rule__PatternApplication__CardinalityValuesAssignment_5_2 )* ) ;
    public final void rule__PatternApplication__Group_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:514:1: ( ( ( rule__PatternApplication__CardinalityValuesAssignment_5_2 )* ) )
            // InternalMapping.g:515:1: ( ( rule__PatternApplication__CardinalityValuesAssignment_5_2 )* )
            {
            // InternalMapping.g:515:1: ( ( rule__PatternApplication__CardinalityValuesAssignment_5_2 )* )
            // InternalMapping.g:516:2: ( rule__PatternApplication__CardinalityValuesAssignment_5_2 )*
            {
             before(grammarAccess.getPatternApplicationAccess().getCardinalityValuesAssignment_5_2()); 
            // InternalMapping.g:517:2: ( rule__PatternApplication__CardinalityValuesAssignment_5_2 )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( (LA4_0==RULE_ID) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // InternalMapping.g:517:3: rule__PatternApplication__CardinalityValuesAssignment_5_2
            	    {
            	    pushFollow(FOLLOW_7);
            	    rule__PatternApplication__CardinalityValuesAssignment_5_2();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);

             after(grammarAccess.getPatternApplicationAccess().getCardinalityValuesAssignment_5_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_5__2__Impl"


    // $ANTLR start "rule__PatternApplication__Group_6__0"
    // InternalMapping.g:526:1: rule__PatternApplication__Group_6__0 : rule__PatternApplication__Group_6__0__Impl rule__PatternApplication__Group_6__1 ;
    public final void rule__PatternApplication__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:530:1: ( rule__PatternApplication__Group_6__0__Impl rule__PatternApplication__Group_6__1 )
            // InternalMapping.g:531:2: rule__PatternApplication__Group_6__0__Impl rule__PatternApplication__Group_6__1
            {
            pushFollow(FOLLOW_3);
            rule__PatternApplication__Group_6__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group_6__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_6__0"


    // $ANTLR start "rule__PatternApplication__Group_6__0__Impl"
    // InternalMapping.g:538:1: rule__PatternApplication__Group_6__0__Impl : ( 'components' ) ;
    public final void rule__PatternApplication__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:542:1: ( ( 'components' ) )
            // InternalMapping.g:543:1: ( 'components' )
            {
            // InternalMapping.g:543:1: ( 'components' )
            // InternalMapping.g:544:2: 'components'
            {
             before(grammarAccess.getPatternApplicationAccess().getComponentsKeyword_6_0()); 
            match(input,16,FOLLOW_2); 
             after(grammarAccess.getPatternApplicationAccess().getComponentsKeyword_6_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_6__0__Impl"


    // $ANTLR start "rule__PatternApplication__Group_6__1"
    // InternalMapping.g:553:1: rule__PatternApplication__Group_6__1 : rule__PatternApplication__Group_6__1__Impl rule__PatternApplication__Group_6__2 ;
    public final void rule__PatternApplication__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:557:1: ( rule__PatternApplication__Group_6__1__Impl rule__PatternApplication__Group_6__2 )
            // InternalMapping.g:558:2: rule__PatternApplication__Group_6__1__Impl rule__PatternApplication__Group_6__2
            {
            pushFollow(FOLLOW_3);
            rule__PatternApplication__Group_6__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group_6__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_6__1"


    // $ANTLR start "rule__PatternApplication__Group_6__1__Impl"
    // InternalMapping.g:565:1: rule__PatternApplication__Group_6__1__Impl : ( ( rule__PatternApplication__ModelElementAssignment_6_1 ) ) ;
    public final void rule__PatternApplication__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:569:1: ( ( ( rule__PatternApplication__ModelElementAssignment_6_1 ) ) )
            // InternalMapping.g:570:1: ( ( rule__PatternApplication__ModelElementAssignment_6_1 ) )
            {
            // InternalMapping.g:570:1: ( ( rule__PatternApplication__ModelElementAssignment_6_1 ) )
            // InternalMapping.g:571:2: ( rule__PatternApplication__ModelElementAssignment_6_1 )
            {
             before(grammarAccess.getPatternApplicationAccess().getModelElementAssignment_6_1()); 
            // InternalMapping.g:572:2: ( rule__PatternApplication__ModelElementAssignment_6_1 )
            // InternalMapping.g:572:3: rule__PatternApplication__ModelElementAssignment_6_1
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__ModelElementAssignment_6_1();

            state._fsp--;


            }

             after(grammarAccess.getPatternApplicationAccess().getModelElementAssignment_6_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_6__1__Impl"


    // $ANTLR start "rule__PatternApplication__Group_6__2"
    // InternalMapping.g:580:1: rule__PatternApplication__Group_6__2 : rule__PatternApplication__Group_6__2__Impl ;
    public final void rule__PatternApplication__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:584:1: ( rule__PatternApplication__Group_6__2__Impl )
            // InternalMapping.g:585:2: rule__PatternApplication__Group_6__2__Impl
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group_6__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_6__2"


    // $ANTLR start "rule__PatternApplication__Group_6__2__Impl"
    // InternalMapping.g:591:1: rule__PatternApplication__Group_6__2__Impl : ( ( rule__PatternApplication__ModelElementAssignment_6_2 )* ) ;
    public final void rule__PatternApplication__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:595:1: ( ( ( rule__PatternApplication__ModelElementAssignment_6_2 )* ) )
            // InternalMapping.g:596:1: ( ( rule__PatternApplication__ModelElementAssignment_6_2 )* )
            {
            // InternalMapping.g:596:1: ( ( rule__PatternApplication__ModelElementAssignment_6_2 )* )
            // InternalMapping.g:597:2: ( rule__PatternApplication__ModelElementAssignment_6_2 )*
            {
             before(grammarAccess.getPatternApplicationAccess().getModelElementAssignment_6_2()); 
            // InternalMapping.g:598:2: ( rule__PatternApplication__ModelElementAssignment_6_2 )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==RULE_ID) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // InternalMapping.g:598:3: rule__PatternApplication__ModelElementAssignment_6_2
            	    {
            	    pushFollow(FOLLOW_7);
            	    rule__PatternApplication__ModelElementAssignment_6_2();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);

             after(grammarAccess.getPatternApplicationAccess().getModelElementAssignment_6_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_6__2__Impl"


    // $ANTLR start "rule__PatternApplication__Group_7__0"
    // InternalMapping.g:607:1: rule__PatternApplication__Group_7__0 : rule__PatternApplication__Group_7__0__Impl rule__PatternApplication__Group_7__1 ;
    public final void rule__PatternApplication__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:611:1: ( rule__PatternApplication__Group_7__0__Impl rule__PatternApplication__Group_7__1 )
            // InternalMapping.g:612:2: rule__PatternApplication__Group_7__0__Impl rule__PatternApplication__Group_7__1
            {
            pushFollow(FOLLOW_3);
            rule__PatternApplication__Group_7__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group_7__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_7__0"


    // $ANTLR start "rule__PatternApplication__Group_7__0__Impl"
    // InternalMapping.g:619:1: rule__PatternApplication__Group_7__0__Impl : ( 'ports' ) ;
    public final void rule__PatternApplication__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:623:1: ( ( 'ports' ) )
            // InternalMapping.g:624:1: ( 'ports' )
            {
            // InternalMapping.g:624:1: ( 'ports' )
            // InternalMapping.g:625:2: 'ports'
            {
             before(grammarAccess.getPatternApplicationAccess().getPortsKeyword_7_0()); 
            match(input,17,FOLLOW_2); 
             after(grammarAccess.getPatternApplicationAccess().getPortsKeyword_7_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_7__0__Impl"


    // $ANTLR start "rule__PatternApplication__Group_7__1"
    // InternalMapping.g:634:1: rule__PatternApplication__Group_7__1 : rule__PatternApplication__Group_7__1__Impl rule__PatternApplication__Group_7__2 ;
    public final void rule__PatternApplication__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:638:1: ( rule__PatternApplication__Group_7__1__Impl rule__PatternApplication__Group_7__2 )
            // InternalMapping.g:639:2: rule__PatternApplication__Group_7__1__Impl rule__PatternApplication__Group_7__2
            {
            pushFollow(FOLLOW_3);
            rule__PatternApplication__Group_7__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group_7__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_7__1"


    // $ANTLR start "rule__PatternApplication__Group_7__1__Impl"
    // InternalMapping.g:646:1: rule__PatternApplication__Group_7__1__Impl : ( ( rule__PatternApplication__PortMappingAssignment_7_1 ) ) ;
    public final void rule__PatternApplication__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:650:1: ( ( ( rule__PatternApplication__PortMappingAssignment_7_1 ) ) )
            // InternalMapping.g:651:1: ( ( rule__PatternApplication__PortMappingAssignment_7_1 ) )
            {
            // InternalMapping.g:651:1: ( ( rule__PatternApplication__PortMappingAssignment_7_1 ) )
            // InternalMapping.g:652:2: ( rule__PatternApplication__PortMappingAssignment_7_1 )
            {
             before(grammarAccess.getPatternApplicationAccess().getPortMappingAssignment_7_1()); 
            // InternalMapping.g:653:2: ( rule__PatternApplication__PortMappingAssignment_7_1 )
            // InternalMapping.g:653:3: rule__PatternApplication__PortMappingAssignment_7_1
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__PortMappingAssignment_7_1();

            state._fsp--;


            }

             after(grammarAccess.getPatternApplicationAccess().getPortMappingAssignment_7_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_7__1__Impl"


    // $ANTLR start "rule__PatternApplication__Group_7__2"
    // InternalMapping.g:661:1: rule__PatternApplication__Group_7__2 : rule__PatternApplication__Group_7__2__Impl ;
    public final void rule__PatternApplication__Group_7__2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:665:1: ( rule__PatternApplication__Group_7__2__Impl )
            // InternalMapping.g:666:2: rule__PatternApplication__Group_7__2__Impl
            {
            pushFollow(FOLLOW_2);
            rule__PatternApplication__Group_7__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_7__2"


    // $ANTLR start "rule__PatternApplication__Group_7__2__Impl"
    // InternalMapping.g:672:1: rule__PatternApplication__Group_7__2__Impl : ( ( rule__PatternApplication__PortMappingAssignment_7_2 )* ) ;
    public final void rule__PatternApplication__Group_7__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:676:1: ( ( ( rule__PatternApplication__PortMappingAssignment_7_2 )* ) )
            // InternalMapping.g:677:1: ( ( rule__PatternApplication__PortMappingAssignment_7_2 )* )
            {
            // InternalMapping.g:677:1: ( ( rule__PatternApplication__PortMappingAssignment_7_2 )* )
            // InternalMapping.g:678:2: ( rule__PatternApplication__PortMappingAssignment_7_2 )*
            {
             before(grammarAccess.getPatternApplicationAccess().getPortMappingAssignment_7_2()); 
            // InternalMapping.g:679:2: ( rule__PatternApplication__PortMappingAssignment_7_2 )*
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( (LA6_0==RULE_ID) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // InternalMapping.g:679:3: rule__PatternApplication__PortMappingAssignment_7_2
            	    {
            	    pushFollow(FOLLOW_7);
            	    rule__PatternApplication__PortMappingAssignment_7_2();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);

             after(grammarAccess.getPatternApplicationAccess().getPortMappingAssignment_7_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__Group_7__2__Impl"


    // $ANTLR start "rule__CardinalityValue__Group__0"
    // InternalMapping.g:688:1: rule__CardinalityValue__Group__0 : rule__CardinalityValue__Group__0__Impl rule__CardinalityValue__Group__1 ;
    public final void rule__CardinalityValue__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:692:1: ( rule__CardinalityValue__Group__0__Impl rule__CardinalityValue__Group__1 )
            // InternalMapping.g:693:2: rule__CardinalityValue__Group__0__Impl rule__CardinalityValue__Group__1
            {
            pushFollow(FOLLOW_8);
            rule__CardinalityValue__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__CardinalityValue__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CardinalityValue__Group__0"


    // $ANTLR start "rule__CardinalityValue__Group__0__Impl"
    // InternalMapping.g:700:1: rule__CardinalityValue__Group__0__Impl : ( ( rule__CardinalityValue__CardinalityElementAssignment_0 ) ) ;
    public final void rule__CardinalityValue__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:704:1: ( ( ( rule__CardinalityValue__CardinalityElementAssignment_0 ) ) )
            // InternalMapping.g:705:1: ( ( rule__CardinalityValue__CardinalityElementAssignment_0 ) )
            {
            // InternalMapping.g:705:1: ( ( rule__CardinalityValue__CardinalityElementAssignment_0 ) )
            // InternalMapping.g:706:2: ( rule__CardinalityValue__CardinalityElementAssignment_0 )
            {
             before(grammarAccess.getCardinalityValueAccess().getCardinalityElementAssignment_0()); 
            // InternalMapping.g:707:2: ( rule__CardinalityValue__CardinalityElementAssignment_0 )
            // InternalMapping.g:707:3: rule__CardinalityValue__CardinalityElementAssignment_0
            {
            pushFollow(FOLLOW_2);
            rule__CardinalityValue__CardinalityElementAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getCardinalityValueAccess().getCardinalityElementAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CardinalityValue__Group__0__Impl"


    // $ANTLR start "rule__CardinalityValue__Group__1"
    // InternalMapping.g:715:1: rule__CardinalityValue__Group__1 : rule__CardinalityValue__Group__1__Impl rule__CardinalityValue__Group__2 ;
    public final void rule__CardinalityValue__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:719:1: ( rule__CardinalityValue__Group__1__Impl rule__CardinalityValue__Group__2 )
            // InternalMapping.g:720:2: rule__CardinalityValue__Group__1__Impl rule__CardinalityValue__Group__2
            {
            pushFollow(FOLLOW_9);
            rule__CardinalityValue__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__CardinalityValue__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CardinalityValue__Group__1"


    // $ANTLR start "rule__CardinalityValue__Group__1__Impl"
    // InternalMapping.g:727:1: rule__CardinalityValue__Group__1__Impl : ( '->' ) ;
    public final void rule__CardinalityValue__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:731:1: ( ( '->' ) )
            // InternalMapping.g:732:1: ( '->' )
            {
            // InternalMapping.g:732:1: ( '->' )
            // InternalMapping.g:733:2: '->'
            {
             before(grammarAccess.getCardinalityValueAccess().getHyphenMinusGreaterThanSignKeyword_1()); 
            match(input,18,FOLLOW_2); 
             after(grammarAccess.getCardinalityValueAccess().getHyphenMinusGreaterThanSignKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CardinalityValue__Group__1__Impl"


    // $ANTLR start "rule__CardinalityValue__Group__2"
    // InternalMapping.g:742:1: rule__CardinalityValue__Group__2 : rule__CardinalityValue__Group__2__Impl ;
    public final void rule__CardinalityValue__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:746:1: ( rule__CardinalityValue__Group__2__Impl )
            // InternalMapping.g:747:2: rule__CardinalityValue__Group__2__Impl
            {
            pushFollow(FOLLOW_2);
            rule__CardinalityValue__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CardinalityValue__Group__2"


    // $ANTLR start "rule__CardinalityValue__Group__2__Impl"
    // InternalMapping.g:753:1: rule__CardinalityValue__Group__2__Impl : ( ( rule__CardinalityValue__ValueAssignment_2 ) ) ;
    public final void rule__CardinalityValue__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:757:1: ( ( ( rule__CardinalityValue__ValueAssignment_2 ) ) )
            // InternalMapping.g:758:1: ( ( rule__CardinalityValue__ValueAssignment_2 ) )
            {
            // InternalMapping.g:758:1: ( ( rule__CardinalityValue__ValueAssignment_2 ) )
            // InternalMapping.g:759:2: ( rule__CardinalityValue__ValueAssignment_2 )
            {
             before(grammarAccess.getCardinalityValueAccess().getValueAssignment_2()); 
            // InternalMapping.g:760:2: ( rule__CardinalityValue__ValueAssignment_2 )
            // InternalMapping.g:760:3: rule__CardinalityValue__ValueAssignment_2
            {
            pushFollow(FOLLOW_2);
            rule__CardinalityValue__ValueAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getCardinalityValueAccess().getValueAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CardinalityValue__Group__2__Impl"


    // $ANTLR start "rule__PortMapping__Group__0"
    // InternalMapping.g:769:1: rule__PortMapping__Group__0 : rule__PortMapping__Group__0__Impl rule__PortMapping__Group__1 ;
    public final void rule__PortMapping__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:773:1: ( rule__PortMapping__Group__0__Impl rule__PortMapping__Group__1 )
            // InternalMapping.g:774:2: rule__PortMapping__Group__0__Impl rule__PortMapping__Group__1
            {
            pushFollow(FOLLOW_10);
            rule__PortMapping__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PortMapping__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group__0"


    // $ANTLR start "rule__PortMapping__Group__0__Impl"
    // InternalMapping.g:781:1: rule__PortMapping__Group__0__Impl : ( ( rule__PortMapping__ModelPortAssignment_0 ) ) ;
    public final void rule__PortMapping__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:785:1: ( ( ( rule__PortMapping__ModelPortAssignment_0 ) ) )
            // InternalMapping.g:786:1: ( ( rule__PortMapping__ModelPortAssignment_0 ) )
            {
            // InternalMapping.g:786:1: ( ( rule__PortMapping__ModelPortAssignment_0 ) )
            // InternalMapping.g:787:2: ( rule__PortMapping__ModelPortAssignment_0 )
            {
             before(grammarAccess.getPortMappingAccess().getModelPortAssignment_0()); 
            // InternalMapping.g:788:2: ( rule__PortMapping__ModelPortAssignment_0 )
            // InternalMapping.g:788:3: rule__PortMapping__ModelPortAssignment_0
            {
            pushFollow(FOLLOW_2);
            rule__PortMapping__ModelPortAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getPortMappingAccess().getModelPortAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group__0__Impl"


    // $ANTLR start "rule__PortMapping__Group__1"
    // InternalMapping.g:796:1: rule__PortMapping__Group__1 : rule__PortMapping__Group__1__Impl rule__PortMapping__Group__2 ;
    public final void rule__PortMapping__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:800:1: ( rule__PortMapping__Group__1__Impl rule__PortMapping__Group__2 )
            // InternalMapping.g:801:2: rule__PortMapping__Group__1__Impl rule__PortMapping__Group__2
            {
            pushFollow(FOLLOW_10);
            rule__PortMapping__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PortMapping__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group__1"


    // $ANTLR start "rule__PortMapping__Group__1__Impl"
    // InternalMapping.g:808:1: rule__PortMapping__Group__1__Impl : ( ( rule__PortMapping__Group_1__0 )* ) ;
    public final void rule__PortMapping__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:812:1: ( ( ( rule__PortMapping__Group_1__0 )* ) )
            // InternalMapping.g:813:1: ( ( rule__PortMapping__Group_1__0 )* )
            {
            // InternalMapping.g:813:1: ( ( rule__PortMapping__Group_1__0 )* )
            // InternalMapping.g:814:2: ( rule__PortMapping__Group_1__0 )*
            {
             before(grammarAccess.getPortMappingAccess().getGroup_1()); 
            // InternalMapping.g:815:2: ( rule__PortMapping__Group_1__0 )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==19) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // InternalMapping.g:815:3: rule__PortMapping__Group_1__0
            	    {
            	    pushFollow(FOLLOW_11);
            	    rule__PortMapping__Group_1__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);

             after(grammarAccess.getPortMappingAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group__1__Impl"


    // $ANTLR start "rule__PortMapping__Group__2"
    // InternalMapping.g:823:1: rule__PortMapping__Group__2 : rule__PortMapping__Group__2__Impl rule__PortMapping__Group__3 ;
    public final void rule__PortMapping__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:827:1: ( rule__PortMapping__Group__2__Impl rule__PortMapping__Group__3 )
            // InternalMapping.g:828:2: rule__PortMapping__Group__2__Impl rule__PortMapping__Group__3
            {
            pushFollow(FOLLOW_3);
            rule__PortMapping__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PortMapping__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group__2"


    // $ANTLR start "rule__PortMapping__Group__2__Impl"
    // InternalMapping.g:835:1: rule__PortMapping__Group__2__Impl : ( '->' ) ;
    public final void rule__PortMapping__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:839:1: ( ( '->' ) )
            // InternalMapping.g:840:1: ( '->' )
            {
            // InternalMapping.g:840:1: ( '->' )
            // InternalMapping.g:841:2: '->'
            {
             before(grammarAccess.getPortMappingAccess().getHyphenMinusGreaterThanSignKeyword_2()); 
            match(input,18,FOLLOW_2); 
             after(grammarAccess.getPortMappingAccess().getHyphenMinusGreaterThanSignKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group__2__Impl"


    // $ANTLR start "rule__PortMapping__Group__3"
    // InternalMapping.g:850:1: rule__PortMapping__Group__3 : rule__PortMapping__Group__3__Impl ;
    public final void rule__PortMapping__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:854:1: ( rule__PortMapping__Group__3__Impl )
            // InternalMapping.g:855:2: rule__PortMapping__Group__3__Impl
            {
            pushFollow(FOLLOW_2);
            rule__PortMapping__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group__3"


    // $ANTLR start "rule__PortMapping__Group__3__Impl"
    // InternalMapping.g:861:1: rule__PortMapping__Group__3__Impl : ( ( rule__PortMapping__PatternPortAssignment_3 ) ) ;
    public final void rule__PortMapping__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:865:1: ( ( ( rule__PortMapping__PatternPortAssignment_3 ) ) )
            // InternalMapping.g:866:1: ( ( rule__PortMapping__PatternPortAssignment_3 ) )
            {
            // InternalMapping.g:866:1: ( ( rule__PortMapping__PatternPortAssignment_3 ) )
            // InternalMapping.g:867:2: ( rule__PortMapping__PatternPortAssignment_3 )
            {
             before(grammarAccess.getPortMappingAccess().getPatternPortAssignment_3()); 
            // InternalMapping.g:868:2: ( rule__PortMapping__PatternPortAssignment_3 )
            // InternalMapping.g:868:3: rule__PortMapping__PatternPortAssignment_3
            {
            pushFollow(FOLLOW_2);
            rule__PortMapping__PatternPortAssignment_3();

            state._fsp--;


            }

             after(grammarAccess.getPortMappingAccess().getPatternPortAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group__3__Impl"


    // $ANTLR start "rule__PortMapping__Group_1__0"
    // InternalMapping.g:877:1: rule__PortMapping__Group_1__0 : rule__PortMapping__Group_1__0__Impl rule__PortMapping__Group_1__1 ;
    public final void rule__PortMapping__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:881:1: ( rule__PortMapping__Group_1__0__Impl rule__PortMapping__Group_1__1 )
            // InternalMapping.g:882:2: rule__PortMapping__Group_1__0__Impl rule__PortMapping__Group_1__1
            {
            pushFollow(FOLLOW_3);
            rule__PortMapping__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__PortMapping__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group_1__0"


    // $ANTLR start "rule__PortMapping__Group_1__0__Impl"
    // InternalMapping.g:889:1: rule__PortMapping__Group_1__0__Impl : ( ',' ) ;
    public final void rule__PortMapping__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:893:1: ( ( ',' ) )
            // InternalMapping.g:894:1: ( ',' )
            {
            // InternalMapping.g:894:1: ( ',' )
            // InternalMapping.g:895:2: ','
            {
             before(grammarAccess.getPortMappingAccess().getCommaKeyword_1_0()); 
            match(input,19,FOLLOW_2); 
             after(grammarAccess.getPortMappingAccess().getCommaKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group_1__0__Impl"


    // $ANTLR start "rule__PortMapping__Group_1__1"
    // InternalMapping.g:904:1: rule__PortMapping__Group_1__1 : rule__PortMapping__Group_1__1__Impl ;
    public final void rule__PortMapping__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:908:1: ( rule__PortMapping__Group_1__1__Impl )
            // InternalMapping.g:909:2: rule__PortMapping__Group_1__1__Impl
            {
            pushFollow(FOLLOW_2);
            rule__PortMapping__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group_1__1"


    // $ANTLR start "rule__PortMapping__Group_1__1__Impl"
    // InternalMapping.g:915:1: rule__PortMapping__Group_1__1__Impl : ( ( rule__PortMapping__ModelPortAssignment_1_1 ) ) ;
    public final void rule__PortMapping__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:919:1: ( ( ( rule__PortMapping__ModelPortAssignment_1_1 ) ) )
            // InternalMapping.g:920:1: ( ( rule__PortMapping__ModelPortAssignment_1_1 ) )
            {
            // InternalMapping.g:920:1: ( ( rule__PortMapping__ModelPortAssignment_1_1 ) )
            // InternalMapping.g:921:2: ( rule__PortMapping__ModelPortAssignment_1_1 )
            {
             before(grammarAccess.getPortMappingAccess().getModelPortAssignment_1_1()); 
            // InternalMapping.g:922:2: ( rule__PortMapping__ModelPortAssignment_1_1 )
            // InternalMapping.g:922:3: rule__PortMapping__ModelPortAssignment_1_1
            {
            pushFollow(FOLLOW_2);
            rule__PortMapping__ModelPortAssignment_1_1();

            state._fsp--;


            }

             after(grammarAccess.getPortMappingAccess().getModelPortAssignment_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__Group_1__1__Impl"


    // $ANTLR start "rule__GraphElementMapping__Group__0"
    // InternalMapping.g:931:1: rule__GraphElementMapping__Group__0 : rule__GraphElementMapping__Group__0__Impl rule__GraphElementMapping__Group__1 ;
    public final void rule__GraphElementMapping__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:935:1: ( rule__GraphElementMapping__Group__0__Impl rule__GraphElementMapping__Group__1 )
            // InternalMapping.g:936:2: rule__GraphElementMapping__Group__0__Impl rule__GraphElementMapping__Group__1
            {
            pushFollow(FOLLOW_10);
            rule__GraphElementMapping__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group__0"


    // $ANTLR start "rule__GraphElementMapping__Group__0__Impl"
    // InternalMapping.g:943:1: rule__GraphElementMapping__Group__0__Impl : ( ( rule__GraphElementMapping__ModelGraphElementAssignment_0 ) ) ;
    public final void rule__GraphElementMapping__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:947:1: ( ( ( rule__GraphElementMapping__ModelGraphElementAssignment_0 ) ) )
            // InternalMapping.g:948:1: ( ( rule__GraphElementMapping__ModelGraphElementAssignment_0 ) )
            {
            // InternalMapping.g:948:1: ( ( rule__GraphElementMapping__ModelGraphElementAssignment_0 ) )
            // InternalMapping.g:949:2: ( rule__GraphElementMapping__ModelGraphElementAssignment_0 )
            {
             before(grammarAccess.getGraphElementMappingAccess().getModelGraphElementAssignment_0()); 
            // InternalMapping.g:950:2: ( rule__GraphElementMapping__ModelGraphElementAssignment_0 )
            // InternalMapping.g:950:3: rule__GraphElementMapping__ModelGraphElementAssignment_0
            {
            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__ModelGraphElementAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getGraphElementMappingAccess().getModelGraphElementAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group__0__Impl"


    // $ANTLR start "rule__GraphElementMapping__Group__1"
    // InternalMapping.g:958:1: rule__GraphElementMapping__Group__1 : rule__GraphElementMapping__Group__1__Impl rule__GraphElementMapping__Group__2 ;
    public final void rule__GraphElementMapping__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:962:1: ( rule__GraphElementMapping__Group__1__Impl rule__GraphElementMapping__Group__2 )
            // InternalMapping.g:963:2: rule__GraphElementMapping__Group__1__Impl rule__GraphElementMapping__Group__2
            {
            pushFollow(FOLLOW_10);
            rule__GraphElementMapping__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group__1"


    // $ANTLR start "rule__GraphElementMapping__Group__1__Impl"
    // InternalMapping.g:970:1: rule__GraphElementMapping__Group__1__Impl : ( ( rule__GraphElementMapping__Group_1__0 )* ) ;
    public final void rule__GraphElementMapping__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:974:1: ( ( ( rule__GraphElementMapping__Group_1__0 )* ) )
            // InternalMapping.g:975:1: ( ( rule__GraphElementMapping__Group_1__0 )* )
            {
            // InternalMapping.g:975:1: ( ( rule__GraphElementMapping__Group_1__0 )* )
            // InternalMapping.g:976:2: ( rule__GraphElementMapping__Group_1__0 )*
            {
             before(grammarAccess.getGraphElementMappingAccess().getGroup_1()); 
            // InternalMapping.g:977:2: ( rule__GraphElementMapping__Group_1__0 )*
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( (LA8_0==19) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // InternalMapping.g:977:3: rule__GraphElementMapping__Group_1__0
            	    {
            	    pushFollow(FOLLOW_11);
            	    rule__GraphElementMapping__Group_1__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop8;
                }
            } while (true);

             after(grammarAccess.getGraphElementMappingAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group__1__Impl"


    // $ANTLR start "rule__GraphElementMapping__Group__2"
    // InternalMapping.g:985:1: rule__GraphElementMapping__Group__2 : rule__GraphElementMapping__Group__2__Impl rule__GraphElementMapping__Group__3 ;
    public final void rule__GraphElementMapping__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:989:1: ( rule__GraphElementMapping__Group__2__Impl rule__GraphElementMapping__Group__3 )
            // InternalMapping.g:990:2: rule__GraphElementMapping__Group__2__Impl rule__GraphElementMapping__Group__3
            {
            pushFollow(FOLLOW_3);
            rule__GraphElementMapping__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group__2"


    // $ANTLR start "rule__GraphElementMapping__Group__2__Impl"
    // InternalMapping.g:997:1: rule__GraphElementMapping__Group__2__Impl : ( '->' ) ;
    public final void rule__GraphElementMapping__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1001:1: ( ( '->' ) )
            // InternalMapping.g:1002:1: ( '->' )
            {
            // InternalMapping.g:1002:1: ( '->' )
            // InternalMapping.g:1003:2: '->'
            {
             before(grammarAccess.getGraphElementMappingAccess().getHyphenMinusGreaterThanSignKeyword_2()); 
            match(input,18,FOLLOW_2); 
             after(grammarAccess.getGraphElementMappingAccess().getHyphenMinusGreaterThanSignKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group__2__Impl"


    // $ANTLR start "rule__GraphElementMapping__Group__3"
    // InternalMapping.g:1012:1: rule__GraphElementMapping__Group__3 : rule__GraphElementMapping__Group__3__Impl ;
    public final void rule__GraphElementMapping__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1016:1: ( rule__GraphElementMapping__Group__3__Impl )
            // InternalMapping.g:1017:2: rule__GraphElementMapping__Group__3__Impl
            {
            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group__3"


    // $ANTLR start "rule__GraphElementMapping__Group__3__Impl"
    // InternalMapping.g:1023:1: rule__GraphElementMapping__Group__3__Impl : ( ( rule__GraphElementMapping__PatternGraphElementAssignment_3 ) ) ;
    public final void rule__GraphElementMapping__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1027:1: ( ( ( rule__GraphElementMapping__PatternGraphElementAssignment_3 ) ) )
            // InternalMapping.g:1028:1: ( ( rule__GraphElementMapping__PatternGraphElementAssignment_3 ) )
            {
            // InternalMapping.g:1028:1: ( ( rule__GraphElementMapping__PatternGraphElementAssignment_3 ) )
            // InternalMapping.g:1029:2: ( rule__GraphElementMapping__PatternGraphElementAssignment_3 )
            {
             before(grammarAccess.getGraphElementMappingAccess().getPatternGraphElementAssignment_3()); 
            // InternalMapping.g:1030:2: ( rule__GraphElementMapping__PatternGraphElementAssignment_3 )
            // InternalMapping.g:1030:3: rule__GraphElementMapping__PatternGraphElementAssignment_3
            {
            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__PatternGraphElementAssignment_3();

            state._fsp--;


            }

             after(grammarAccess.getGraphElementMappingAccess().getPatternGraphElementAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group__3__Impl"


    // $ANTLR start "rule__GraphElementMapping__Group_1__0"
    // InternalMapping.g:1039:1: rule__GraphElementMapping__Group_1__0 : rule__GraphElementMapping__Group_1__0__Impl rule__GraphElementMapping__Group_1__1 ;
    public final void rule__GraphElementMapping__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1043:1: ( rule__GraphElementMapping__Group_1__0__Impl rule__GraphElementMapping__Group_1__1 )
            // InternalMapping.g:1044:2: rule__GraphElementMapping__Group_1__0__Impl rule__GraphElementMapping__Group_1__1
            {
            pushFollow(FOLLOW_3);
            rule__GraphElementMapping__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group_1__0"


    // $ANTLR start "rule__GraphElementMapping__Group_1__0__Impl"
    // InternalMapping.g:1051:1: rule__GraphElementMapping__Group_1__0__Impl : ( ',' ) ;
    public final void rule__GraphElementMapping__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1055:1: ( ( ',' ) )
            // InternalMapping.g:1056:1: ( ',' )
            {
            // InternalMapping.g:1056:1: ( ',' )
            // InternalMapping.g:1057:2: ','
            {
             before(grammarAccess.getGraphElementMappingAccess().getCommaKeyword_1_0()); 
            match(input,19,FOLLOW_2); 
             after(grammarAccess.getGraphElementMappingAccess().getCommaKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group_1__0__Impl"


    // $ANTLR start "rule__GraphElementMapping__Group_1__1"
    // InternalMapping.g:1066:1: rule__GraphElementMapping__Group_1__1 : rule__GraphElementMapping__Group_1__1__Impl ;
    public final void rule__GraphElementMapping__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1070:1: ( rule__GraphElementMapping__Group_1__1__Impl )
            // InternalMapping.g:1071:2: rule__GraphElementMapping__Group_1__1__Impl
            {
            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group_1__1"


    // $ANTLR start "rule__GraphElementMapping__Group_1__1__Impl"
    // InternalMapping.g:1077:1: rule__GraphElementMapping__Group_1__1__Impl : ( ( rule__GraphElementMapping__ModelGraphElementAssignment_1_1 ) ) ;
    public final void rule__GraphElementMapping__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1081:1: ( ( ( rule__GraphElementMapping__ModelGraphElementAssignment_1_1 ) ) )
            // InternalMapping.g:1082:1: ( ( rule__GraphElementMapping__ModelGraphElementAssignment_1_1 ) )
            {
            // InternalMapping.g:1082:1: ( ( rule__GraphElementMapping__ModelGraphElementAssignment_1_1 ) )
            // InternalMapping.g:1083:2: ( rule__GraphElementMapping__ModelGraphElementAssignment_1_1 )
            {
             before(grammarAccess.getGraphElementMappingAccess().getModelGraphElementAssignment_1_1()); 
            // InternalMapping.g:1084:2: ( rule__GraphElementMapping__ModelGraphElementAssignment_1_1 )
            // InternalMapping.g:1084:3: rule__GraphElementMapping__ModelGraphElementAssignment_1_1
            {
            pushFollow(FOLLOW_2);
            rule__GraphElementMapping__ModelGraphElementAssignment_1_1();

            state._fsp--;


            }

             after(grammarAccess.getGraphElementMappingAccess().getModelGraphElementAssignment_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__Group_1__1__Impl"


    // $ANTLR start "rule__EInt__Group__0"
    // InternalMapping.g:1093:1: rule__EInt__Group__0 : rule__EInt__Group__0__Impl rule__EInt__Group__1 ;
    public final void rule__EInt__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1097:1: ( rule__EInt__Group__0__Impl rule__EInt__Group__1 )
            // InternalMapping.g:1098:2: rule__EInt__Group__0__Impl rule__EInt__Group__1
            {
            pushFollow(FOLLOW_9);
            rule__EInt__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__EInt__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EInt__Group__0"


    // $ANTLR start "rule__EInt__Group__0__Impl"
    // InternalMapping.g:1105:1: rule__EInt__Group__0__Impl : ( ( '-' )? ) ;
    public final void rule__EInt__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1109:1: ( ( ( '-' )? ) )
            // InternalMapping.g:1110:1: ( ( '-' )? )
            {
            // InternalMapping.g:1110:1: ( ( '-' )? )
            // InternalMapping.g:1111:2: ( '-' )?
            {
             before(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); 
            // InternalMapping.g:1112:2: ( '-' )?
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==20) ) {
                alt9=1;
            }
            switch (alt9) {
                case 1 :
                    // InternalMapping.g:1112:3: '-'
                    {
                    match(input,20,FOLLOW_2); 

                    }
                    break;

            }

             after(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EInt__Group__0__Impl"


    // $ANTLR start "rule__EInt__Group__1"
    // InternalMapping.g:1120:1: rule__EInt__Group__1 : rule__EInt__Group__1__Impl ;
    public final void rule__EInt__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1124:1: ( rule__EInt__Group__1__Impl )
            // InternalMapping.g:1125:2: rule__EInt__Group__1__Impl
            {
            pushFollow(FOLLOW_2);
            rule__EInt__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EInt__Group__1"


    // $ANTLR start "rule__EInt__Group__1__Impl"
    // InternalMapping.g:1131:1: rule__EInt__Group__1__Impl : ( RULE_INT ) ;
    public final void rule__EInt__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1135:1: ( ( RULE_INT ) )
            // InternalMapping.g:1136:1: ( RULE_INT )
            {
            // InternalMapping.g:1136:1: ( RULE_INT )
            // InternalMapping.g:1137:2: RULE_INT
            {
             before(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); 
            match(input,RULE_INT,FOLLOW_2); 
             after(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EInt__Group__1__Impl"


    // $ANTLR start "rule__QualifiedID__Group__0"
    // InternalMapping.g:1147:1: rule__QualifiedID__Group__0 : rule__QualifiedID__Group__0__Impl rule__QualifiedID__Group__1 ;
    public final void rule__QualifiedID__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1151:1: ( rule__QualifiedID__Group__0__Impl rule__QualifiedID__Group__1 )
            // InternalMapping.g:1152:2: rule__QualifiedID__Group__0__Impl rule__QualifiedID__Group__1
            {
            pushFollow(FOLLOW_12);
            rule__QualifiedID__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__QualifiedID__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedID__Group__0"


    // $ANTLR start "rule__QualifiedID__Group__0__Impl"
    // InternalMapping.g:1159:1: rule__QualifiedID__Group__0__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedID__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1163:1: ( ( RULE_ID ) )
            // InternalMapping.g:1164:1: ( RULE_ID )
            {
            // InternalMapping.g:1164:1: ( RULE_ID )
            // InternalMapping.g:1165:2: RULE_ID
            {
             before(grammarAccess.getQualifiedIDAccess().getIDTerminalRuleCall_0()); 
            match(input,RULE_ID,FOLLOW_2); 
             after(grammarAccess.getQualifiedIDAccess().getIDTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedID__Group__0__Impl"


    // $ANTLR start "rule__QualifiedID__Group__1"
    // InternalMapping.g:1174:1: rule__QualifiedID__Group__1 : rule__QualifiedID__Group__1__Impl ;
    public final void rule__QualifiedID__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1178:1: ( rule__QualifiedID__Group__1__Impl )
            // InternalMapping.g:1179:2: rule__QualifiedID__Group__1__Impl
            {
            pushFollow(FOLLOW_2);
            rule__QualifiedID__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedID__Group__1"


    // $ANTLR start "rule__QualifiedID__Group__1__Impl"
    // InternalMapping.g:1185:1: rule__QualifiedID__Group__1__Impl : ( ( rule__QualifiedID__Group_1__0 )* ) ;
    public final void rule__QualifiedID__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1189:1: ( ( ( rule__QualifiedID__Group_1__0 )* ) )
            // InternalMapping.g:1190:1: ( ( rule__QualifiedID__Group_1__0 )* )
            {
            // InternalMapping.g:1190:1: ( ( rule__QualifiedID__Group_1__0 )* )
            // InternalMapping.g:1191:2: ( rule__QualifiedID__Group_1__0 )*
            {
             before(grammarAccess.getQualifiedIDAccess().getGroup_1()); 
            // InternalMapping.g:1192:2: ( rule__QualifiedID__Group_1__0 )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0==21) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // InternalMapping.g:1192:3: rule__QualifiedID__Group_1__0
            	    {
            	    pushFollow(FOLLOW_13);
            	    rule__QualifiedID__Group_1__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

             after(grammarAccess.getQualifiedIDAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedID__Group__1__Impl"


    // $ANTLR start "rule__QualifiedID__Group_1__0"
    // InternalMapping.g:1201:1: rule__QualifiedID__Group_1__0 : rule__QualifiedID__Group_1__0__Impl rule__QualifiedID__Group_1__1 ;
    public final void rule__QualifiedID__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1205:1: ( rule__QualifiedID__Group_1__0__Impl rule__QualifiedID__Group_1__1 )
            // InternalMapping.g:1206:2: rule__QualifiedID__Group_1__0__Impl rule__QualifiedID__Group_1__1
            {
            pushFollow(FOLLOW_3);
            rule__QualifiedID__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_2);
            rule__QualifiedID__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedID__Group_1__0"


    // $ANTLR start "rule__QualifiedID__Group_1__0__Impl"
    // InternalMapping.g:1213:1: rule__QualifiedID__Group_1__0__Impl : ( '.' ) ;
    public final void rule__QualifiedID__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1217:1: ( ( '.' ) )
            // InternalMapping.g:1218:1: ( '.' )
            {
            // InternalMapping.g:1218:1: ( '.' )
            // InternalMapping.g:1219:2: '.'
            {
             before(grammarAccess.getQualifiedIDAccess().getFullStopKeyword_1_0()); 
            match(input,21,FOLLOW_2); 
             after(grammarAccess.getQualifiedIDAccess().getFullStopKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedID__Group_1__0__Impl"


    // $ANTLR start "rule__QualifiedID__Group_1__1"
    // InternalMapping.g:1228:1: rule__QualifiedID__Group_1__1 : rule__QualifiedID__Group_1__1__Impl ;
    public final void rule__QualifiedID__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1232:1: ( rule__QualifiedID__Group_1__1__Impl )
            // InternalMapping.g:1233:2: rule__QualifiedID__Group_1__1__Impl
            {
            pushFollow(FOLLOW_2);
            rule__QualifiedID__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedID__Group_1__1"


    // $ANTLR start "rule__QualifiedID__Group_1__1__Impl"
    // InternalMapping.g:1239:1: rule__QualifiedID__Group_1__1__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedID__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1243:1: ( ( RULE_ID ) )
            // InternalMapping.g:1244:1: ( RULE_ID )
            {
            // InternalMapping.g:1244:1: ( RULE_ID )
            // InternalMapping.g:1245:2: RULE_ID
            {
             before(grammarAccess.getQualifiedIDAccess().getIDTerminalRuleCall_1_1()); 
            match(input,RULE_ID,FOLLOW_2); 
             after(grammarAccess.getQualifiedIDAccess().getIDTerminalRuleCall_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedID__Group_1__1__Impl"


    // $ANTLR start "rule__PatternApplication__ModelAssignment_1"
    // InternalMapping.g:1255:1: rule__PatternApplication__ModelAssignment_1 : ( ( RULE_ID ) ) ;
    public final void rule__PatternApplication__ModelAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1259:1: ( ( ( RULE_ID ) ) )
            // InternalMapping.g:1260:2: ( ( RULE_ID ) )
            {
            // InternalMapping.g:1260:2: ( ( RULE_ID ) )
            // InternalMapping.g:1261:3: ( RULE_ID )
            {
             before(grammarAccess.getPatternApplicationAccess().getModelModelCrossReference_1_0()); 
            // InternalMapping.g:1262:3: ( RULE_ID )
            // InternalMapping.g:1263:4: RULE_ID
            {
             before(grammarAccess.getPatternApplicationAccess().getModelModelIDTerminalRuleCall_1_0_1()); 
            match(input,RULE_ID,FOLLOW_2); 
             after(grammarAccess.getPatternApplicationAccess().getModelModelIDTerminalRuleCall_1_0_1()); 

            }

             after(grammarAccess.getPatternApplicationAccess().getModelModelCrossReference_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__ModelAssignment_1"


    // $ANTLR start "rule__PatternApplication__PatternAssignment_3"
    // InternalMapping.g:1274:1: rule__PatternApplication__PatternAssignment_3 : ( ( RULE_ID ) ) ;
    public final void rule__PatternApplication__PatternAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1278:1: ( ( ( RULE_ID ) ) )
            // InternalMapping.g:1279:2: ( ( RULE_ID ) )
            {
            // InternalMapping.g:1279:2: ( ( RULE_ID ) )
            // InternalMapping.g:1280:3: ( RULE_ID )
            {
             before(grammarAccess.getPatternApplicationAccess().getPatternPatternCrossReference_3_0()); 
            // InternalMapping.g:1281:3: ( RULE_ID )
            // InternalMapping.g:1282:4: RULE_ID
            {
             before(grammarAccess.getPatternApplicationAccess().getPatternPatternIDTerminalRuleCall_3_0_1()); 
            match(input,RULE_ID,FOLLOW_2); 
             after(grammarAccess.getPatternApplicationAccess().getPatternPatternIDTerminalRuleCall_3_0_1()); 

            }

             after(grammarAccess.getPatternApplicationAccess().getPatternPatternCrossReference_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__PatternAssignment_3"


    // $ANTLR start "rule__PatternApplication__CardinalityValuesAssignment_5_1"
    // InternalMapping.g:1293:1: rule__PatternApplication__CardinalityValuesAssignment_5_1 : ( ruleCardinalityValue ) ;
    public final void rule__PatternApplication__CardinalityValuesAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1297:1: ( ( ruleCardinalityValue ) )
            // InternalMapping.g:1298:2: ( ruleCardinalityValue )
            {
            // InternalMapping.g:1298:2: ( ruleCardinalityValue )
            // InternalMapping.g:1299:3: ruleCardinalityValue
            {
             before(grammarAccess.getPatternApplicationAccess().getCardinalityValuesCardinalityValueParserRuleCall_5_1_0()); 
            pushFollow(FOLLOW_2);
            ruleCardinalityValue();

            state._fsp--;

             after(grammarAccess.getPatternApplicationAccess().getCardinalityValuesCardinalityValueParserRuleCall_5_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__CardinalityValuesAssignment_5_1"


    // $ANTLR start "rule__PatternApplication__CardinalityValuesAssignment_5_2"
    // InternalMapping.g:1308:1: rule__PatternApplication__CardinalityValuesAssignment_5_2 : ( ruleCardinalityValue ) ;
    public final void rule__PatternApplication__CardinalityValuesAssignment_5_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1312:1: ( ( ruleCardinalityValue ) )
            // InternalMapping.g:1313:2: ( ruleCardinalityValue )
            {
            // InternalMapping.g:1313:2: ( ruleCardinalityValue )
            // InternalMapping.g:1314:3: ruleCardinalityValue
            {
             before(grammarAccess.getPatternApplicationAccess().getCardinalityValuesCardinalityValueParserRuleCall_5_2_0()); 
            pushFollow(FOLLOW_2);
            ruleCardinalityValue();

            state._fsp--;

             after(grammarAccess.getPatternApplicationAccess().getCardinalityValuesCardinalityValueParserRuleCall_5_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__CardinalityValuesAssignment_5_2"


    // $ANTLR start "rule__PatternApplication__ModelElementAssignment_6_1"
    // InternalMapping.g:1323:1: rule__PatternApplication__ModelElementAssignment_6_1 : ( ruleGraphElementMapping ) ;
    public final void rule__PatternApplication__ModelElementAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1327:1: ( ( ruleGraphElementMapping ) )
            // InternalMapping.g:1328:2: ( ruleGraphElementMapping )
            {
            // InternalMapping.g:1328:2: ( ruleGraphElementMapping )
            // InternalMapping.g:1329:3: ruleGraphElementMapping
            {
             before(grammarAccess.getPatternApplicationAccess().getModelElementGraphElementMappingParserRuleCall_6_1_0()); 
            pushFollow(FOLLOW_2);
            ruleGraphElementMapping();

            state._fsp--;

             after(grammarAccess.getPatternApplicationAccess().getModelElementGraphElementMappingParserRuleCall_6_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__ModelElementAssignment_6_1"


    // $ANTLR start "rule__PatternApplication__ModelElementAssignment_6_2"
    // InternalMapping.g:1338:1: rule__PatternApplication__ModelElementAssignment_6_2 : ( ruleGraphElementMapping ) ;
    public final void rule__PatternApplication__ModelElementAssignment_6_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1342:1: ( ( ruleGraphElementMapping ) )
            // InternalMapping.g:1343:2: ( ruleGraphElementMapping )
            {
            // InternalMapping.g:1343:2: ( ruleGraphElementMapping )
            // InternalMapping.g:1344:3: ruleGraphElementMapping
            {
             before(grammarAccess.getPatternApplicationAccess().getModelElementGraphElementMappingParserRuleCall_6_2_0()); 
            pushFollow(FOLLOW_2);
            ruleGraphElementMapping();

            state._fsp--;

             after(grammarAccess.getPatternApplicationAccess().getModelElementGraphElementMappingParserRuleCall_6_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__ModelElementAssignment_6_2"


    // $ANTLR start "rule__PatternApplication__PortMappingAssignment_7_1"
    // InternalMapping.g:1353:1: rule__PatternApplication__PortMappingAssignment_7_1 : ( rulePortMapping ) ;
    public final void rule__PatternApplication__PortMappingAssignment_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1357:1: ( ( rulePortMapping ) )
            // InternalMapping.g:1358:2: ( rulePortMapping )
            {
            // InternalMapping.g:1358:2: ( rulePortMapping )
            // InternalMapping.g:1359:3: rulePortMapping
            {
             before(grammarAccess.getPatternApplicationAccess().getPortMappingPortMappingParserRuleCall_7_1_0()); 
            pushFollow(FOLLOW_2);
            rulePortMapping();

            state._fsp--;

             after(grammarAccess.getPatternApplicationAccess().getPortMappingPortMappingParserRuleCall_7_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__PortMappingAssignment_7_1"


    // $ANTLR start "rule__PatternApplication__PortMappingAssignment_7_2"
    // InternalMapping.g:1368:1: rule__PatternApplication__PortMappingAssignment_7_2 : ( rulePortMapping ) ;
    public final void rule__PatternApplication__PortMappingAssignment_7_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1372:1: ( ( rulePortMapping ) )
            // InternalMapping.g:1373:2: ( rulePortMapping )
            {
            // InternalMapping.g:1373:2: ( rulePortMapping )
            // InternalMapping.g:1374:3: rulePortMapping
            {
             before(grammarAccess.getPatternApplicationAccess().getPortMappingPortMappingParserRuleCall_7_2_0()); 
            pushFollow(FOLLOW_2);
            rulePortMapping();

            state._fsp--;

             after(grammarAccess.getPatternApplicationAccess().getPortMappingPortMappingParserRuleCall_7_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PatternApplication__PortMappingAssignment_7_2"


    // $ANTLR start "rule__CardinalityValue__CardinalityElementAssignment_0"
    // InternalMapping.g:1383:1: rule__CardinalityValue__CardinalityElementAssignment_0 : ( ( ruleQualifiedID ) ) ;
    public final void rule__CardinalityValue__CardinalityElementAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1387:1: ( ( ( ruleQualifiedID ) ) )
            // InternalMapping.g:1388:2: ( ( ruleQualifiedID ) )
            {
            // InternalMapping.g:1388:2: ( ( ruleQualifiedID ) )
            // InternalMapping.g:1389:3: ( ruleQualifiedID )
            {
             before(grammarAccess.getCardinalityValueAccess().getCardinalityElementCardinalityElementCrossReference_0_0()); 
            // InternalMapping.g:1390:3: ( ruleQualifiedID )
            // InternalMapping.g:1391:4: ruleQualifiedID
            {
             before(grammarAccess.getCardinalityValueAccess().getCardinalityElementCardinalityElementQualifiedIDParserRuleCall_0_0_1()); 
            pushFollow(FOLLOW_2);
            ruleQualifiedID();

            state._fsp--;

             after(grammarAccess.getCardinalityValueAccess().getCardinalityElementCardinalityElementQualifiedIDParserRuleCall_0_0_1()); 

            }

             after(grammarAccess.getCardinalityValueAccess().getCardinalityElementCardinalityElementCrossReference_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CardinalityValue__CardinalityElementAssignment_0"


    // $ANTLR start "rule__CardinalityValue__ValueAssignment_2"
    // InternalMapping.g:1402:1: rule__CardinalityValue__ValueAssignment_2 : ( ruleEInt ) ;
    public final void rule__CardinalityValue__ValueAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1406:1: ( ( ruleEInt ) )
            // InternalMapping.g:1407:2: ( ruleEInt )
            {
            // InternalMapping.g:1407:2: ( ruleEInt )
            // InternalMapping.g:1408:3: ruleEInt
            {
             before(grammarAccess.getCardinalityValueAccess().getValueEIntParserRuleCall_2_0()); 
            pushFollow(FOLLOW_2);
            ruleEInt();

            state._fsp--;

             after(grammarAccess.getCardinalityValueAccess().getValueEIntParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CardinalityValue__ValueAssignment_2"


    // $ANTLR start "rule__PortMapping__ModelPortAssignment_0"
    // InternalMapping.g:1417:1: rule__PortMapping__ModelPortAssignment_0 : ( ( ruleQualifiedID ) ) ;
    public final void rule__PortMapping__ModelPortAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1421:1: ( ( ( ruleQualifiedID ) ) )
            // InternalMapping.g:1422:2: ( ( ruleQualifiedID ) )
            {
            // InternalMapping.g:1422:2: ( ( ruleQualifiedID ) )
            // InternalMapping.g:1423:3: ( ruleQualifiedID )
            {
             before(grammarAccess.getPortMappingAccess().getModelPortBorderElementCrossReference_0_0()); 
            // InternalMapping.g:1424:3: ( ruleQualifiedID )
            // InternalMapping.g:1425:4: ruleQualifiedID
            {
             before(grammarAccess.getPortMappingAccess().getModelPortBorderElementQualifiedIDParserRuleCall_0_0_1()); 
            pushFollow(FOLLOW_2);
            ruleQualifiedID();

            state._fsp--;

             after(grammarAccess.getPortMappingAccess().getModelPortBorderElementQualifiedIDParserRuleCall_0_0_1()); 

            }

             after(grammarAccess.getPortMappingAccess().getModelPortBorderElementCrossReference_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__ModelPortAssignment_0"


    // $ANTLR start "rule__PortMapping__ModelPortAssignment_1_1"
    // InternalMapping.g:1436:1: rule__PortMapping__ModelPortAssignment_1_1 : ( ( ruleQualifiedID ) ) ;
    public final void rule__PortMapping__ModelPortAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1440:1: ( ( ( ruleQualifiedID ) ) )
            // InternalMapping.g:1441:2: ( ( ruleQualifiedID ) )
            {
            // InternalMapping.g:1441:2: ( ( ruleQualifiedID ) )
            // InternalMapping.g:1442:3: ( ruleQualifiedID )
            {
             before(grammarAccess.getPortMappingAccess().getModelPortBorderElementCrossReference_1_1_0()); 
            // InternalMapping.g:1443:3: ( ruleQualifiedID )
            // InternalMapping.g:1444:4: ruleQualifiedID
            {
             before(grammarAccess.getPortMappingAccess().getModelPortBorderElementQualifiedIDParserRuleCall_1_1_0_1()); 
            pushFollow(FOLLOW_2);
            ruleQualifiedID();

            state._fsp--;

             after(grammarAccess.getPortMappingAccess().getModelPortBorderElementQualifiedIDParserRuleCall_1_1_0_1()); 

            }

             after(grammarAccess.getPortMappingAccess().getModelPortBorderElementCrossReference_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__ModelPortAssignment_1_1"


    // $ANTLR start "rule__PortMapping__PatternPortAssignment_3"
    // InternalMapping.g:1455:1: rule__PortMapping__PatternPortAssignment_3 : ( ( ruleQualifiedID ) ) ;
    public final void rule__PortMapping__PatternPortAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1459:1: ( ( ( ruleQualifiedID ) ) )
            // InternalMapping.g:1460:2: ( ( ruleQualifiedID ) )
            {
            // InternalMapping.g:1460:2: ( ( ruleQualifiedID ) )
            // InternalMapping.g:1461:3: ( ruleQualifiedID )
            {
             before(grammarAccess.getPortMappingAccess().getPatternPortBorderElementCrossReference_3_0()); 
            // InternalMapping.g:1462:3: ( ruleQualifiedID )
            // InternalMapping.g:1463:4: ruleQualifiedID
            {
             before(grammarAccess.getPortMappingAccess().getPatternPortBorderElementQualifiedIDParserRuleCall_3_0_1()); 
            pushFollow(FOLLOW_2);
            ruleQualifiedID();

            state._fsp--;

             after(grammarAccess.getPortMappingAccess().getPatternPortBorderElementQualifiedIDParserRuleCall_3_0_1()); 

            }

             after(grammarAccess.getPortMappingAccess().getPatternPortBorderElementCrossReference_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PortMapping__PatternPortAssignment_3"


    // $ANTLR start "rule__GraphElementMapping__ModelGraphElementAssignment_0"
    // InternalMapping.g:1474:1: rule__GraphElementMapping__ModelGraphElementAssignment_0 : ( ( ruleQualifiedID ) ) ;
    public final void rule__GraphElementMapping__ModelGraphElementAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1478:1: ( ( ( ruleQualifiedID ) ) )
            // InternalMapping.g:1479:2: ( ( ruleQualifiedID ) )
            {
            // InternalMapping.g:1479:2: ( ( ruleQualifiedID ) )
            // InternalMapping.g:1480:3: ( ruleQualifiedID )
            {
             before(grammarAccess.getGraphElementMappingAccess().getModelGraphElementGraphElementCrossReference_0_0()); 
            // InternalMapping.g:1481:3: ( ruleQualifiedID )
            // InternalMapping.g:1482:4: ruleQualifiedID
            {
             before(grammarAccess.getGraphElementMappingAccess().getModelGraphElementGraphElementQualifiedIDParserRuleCall_0_0_1()); 
            pushFollow(FOLLOW_2);
            ruleQualifiedID();

            state._fsp--;

             after(grammarAccess.getGraphElementMappingAccess().getModelGraphElementGraphElementQualifiedIDParserRuleCall_0_0_1()); 

            }

             after(grammarAccess.getGraphElementMappingAccess().getModelGraphElementGraphElementCrossReference_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__ModelGraphElementAssignment_0"


    // $ANTLR start "rule__GraphElementMapping__ModelGraphElementAssignment_1_1"
    // InternalMapping.g:1493:1: rule__GraphElementMapping__ModelGraphElementAssignment_1_1 : ( ( ruleQualifiedID ) ) ;
    public final void rule__GraphElementMapping__ModelGraphElementAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1497:1: ( ( ( ruleQualifiedID ) ) )
            // InternalMapping.g:1498:2: ( ( ruleQualifiedID ) )
            {
            // InternalMapping.g:1498:2: ( ( ruleQualifiedID ) )
            // InternalMapping.g:1499:3: ( ruleQualifiedID )
            {
             before(grammarAccess.getGraphElementMappingAccess().getModelGraphElementGraphElementCrossReference_1_1_0()); 
            // InternalMapping.g:1500:3: ( ruleQualifiedID )
            // InternalMapping.g:1501:4: ruleQualifiedID
            {
             before(grammarAccess.getGraphElementMappingAccess().getModelGraphElementGraphElementQualifiedIDParserRuleCall_1_1_0_1()); 
            pushFollow(FOLLOW_2);
            ruleQualifiedID();

            state._fsp--;

             after(grammarAccess.getGraphElementMappingAccess().getModelGraphElementGraphElementQualifiedIDParserRuleCall_1_1_0_1()); 

            }

             after(grammarAccess.getGraphElementMappingAccess().getModelGraphElementGraphElementCrossReference_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__ModelGraphElementAssignment_1_1"


    // $ANTLR start "rule__GraphElementMapping__PatternGraphElementAssignment_3"
    // InternalMapping.g:1512:1: rule__GraphElementMapping__PatternGraphElementAssignment_3 : ( ( ruleQualifiedID ) ) ;
    public final void rule__GraphElementMapping__PatternGraphElementAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalMapping.g:1516:1: ( ( ( ruleQualifiedID ) ) )
            // InternalMapping.g:1517:2: ( ( ruleQualifiedID ) )
            {
            // InternalMapping.g:1517:2: ( ( ruleQualifiedID ) )
            // InternalMapping.g:1518:3: ( ruleQualifiedID )
            {
             before(grammarAccess.getGraphElementMappingAccess().getPatternGraphElementGraphElementCrossReference_3_0()); 
            // InternalMapping.g:1519:3: ( ruleQualifiedID )
            // InternalMapping.g:1520:4: ruleQualifiedID
            {
             before(grammarAccess.getGraphElementMappingAccess().getPatternGraphElementGraphElementQualifiedIDParserRuleCall_3_0_1()); 
            pushFollow(FOLLOW_2);
            ruleQualifiedID();

            state._fsp--;

             after(grammarAccess.getGraphElementMappingAccess().getPatternGraphElementGraphElementQualifiedIDParserRuleCall_3_0_1()); 

            }

             after(grammarAccess.getGraphElementMappingAccess().getPatternGraphElementGraphElementCrossReference_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GraphElementMapping__PatternGraphElementAssignment_3"

    // Delegated rules


 

    public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x000000000003C000L});
    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000022L});
    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000100010L});
    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00000000000C0000L});
    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000080002L});
    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000200002L});

}