package org.xtext.example.mydsl2.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.xtext.example.mydsl2.services.MyDsl2GrammarAccess;



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

@SuppressWarnings("all")
public class InternalMyDsl2Parser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'ViewListItems'", "'AddListItems'", "'EditListItems'", "'DeleteListItems'", "'ApproveItems'", "'OpenItems'", "'ViewVersions'", "'DeleteVersions'", "'CancelCheckout'", "'ManagePersonalViews'", "'ManageLists'", "'ViewFormPages'", "'Open'", "'AddAndCustomizePages'", "'ApplyThemeAndBorder'", "'CreateSSCSite'", "'BrowseDirectories'", "'BrowseUserInfo'", "'AddDelPrivateWebParts'", "'UpdatePersonalWebParts'", "'UseClientIntegration'", "'UseRemoteAPIs'", "'CreateAlerts'", "'EditMyUserInfo'", "'FullMask'", "'UserModel'", "'{'", "'}'", "'users'", "'sitePermissions'", "'sitePermission'", "'webGUID'", "'='", "'groups'", "'roleDefinitions'", "'roleAssignments'", "'Group'", "'('", "')'", "','", "'User'", "'RoleAssignment'", "'member'", "'roleDefinitionBindings'", "'RoleDefinition'", "'basePermissions'", "'.'"
    };
    public static final int RULE_ID=4;
    public static final int T__29=29;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int EOF=-1;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__19=19;
    public static final int T__57=57;
    public static final int T__51=51;
    public static final int T__16=16;
    public static final int T__52=52;
    public static final int T__15=15;
    public static final int T__53=53;
    public static final int T__18=18;
    public static final int T__54=54;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=6;
    public static final int T__50=50;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int RULE_SL_COMMENT=8;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int RULE_STRING=5;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int RULE_WS=9;

    // delegates
    // delegators


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

    public String[] getTokenNames() { return InternalMyDsl2Parser.tokenNames; }
    public String getGrammarFileName() { return "../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g"; }


     
     	private MyDsl2GrammarAccess grammarAccess;
     	
        public void setGrammarAccess(MyDsl2GrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleUserModel"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:60:1: entryRuleUserModel : ruleUserModel EOF ;
    public final void entryRuleUserModel() throws RecognitionException {
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:61:1: ( ruleUserModel EOF )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:62:1: ruleUserModel EOF
            {
             before(grammarAccess.getUserModelRule()); 
            pushFollow(FOLLOW_ruleUserModel_in_entryRuleUserModel61);
            ruleUserModel();

            state._fsp--;

             after(grammarAccess.getUserModelRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleUserModel68); 

            }

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


    // $ANTLR start "ruleUserModel"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:69:1: ruleUserModel : ( ( rule__UserModel__Group__0 ) ) ;
    public final void ruleUserModel() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:73:2: ( ( ( rule__UserModel__Group__0 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:74:1: ( ( rule__UserModel__Group__0 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:74:1: ( ( rule__UserModel__Group__0 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:75:1: ( rule__UserModel__Group__0 )
            {
             before(grammarAccess.getUserModelAccess().getGroup()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:76:1: ( rule__UserModel__Group__0 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:76:2: rule__UserModel__Group__0
            {
            pushFollow(FOLLOW_rule__UserModel__Group__0_in_ruleUserModel94);
            rule__UserModel__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getUserModelAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "entryRuleSitePermission"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:88:1: entryRuleSitePermission : ruleSitePermission EOF ;
    public final void entryRuleSitePermission() throws RecognitionException {
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:89:1: ( ruleSitePermission EOF )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:90:1: ruleSitePermission EOF
            {
             before(grammarAccess.getSitePermissionRule()); 
            pushFollow(FOLLOW_ruleSitePermission_in_entryRuleSitePermission121);
            ruleSitePermission();

            state._fsp--;

             after(grammarAccess.getSitePermissionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSitePermission128); 

            }

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


    // $ANTLR start "ruleSitePermission"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:97:1: ruleSitePermission : ( ( rule__SitePermission__Group__0 ) ) ;
    public final void ruleSitePermission() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:101:2: ( ( ( rule__SitePermission__Group__0 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:102:1: ( ( rule__SitePermission__Group__0 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:102:1: ( ( rule__SitePermission__Group__0 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:103:1: ( rule__SitePermission__Group__0 )
            {
             before(grammarAccess.getSitePermissionAccess().getGroup()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:104:1: ( rule__SitePermission__Group__0 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:104:2: rule__SitePermission__Group__0
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__0_in_ruleSitePermission154);
            rule__SitePermission__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getSitePermissionAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "entryRuleGroup"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:118:1: entryRuleGroup : ruleGroup EOF ;
    public final void entryRuleGroup() throws RecognitionException {
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:119:1: ( ruleGroup EOF )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:120:1: ruleGroup EOF
            {
             before(grammarAccess.getGroupRule()); 
            pushFollow(FOLLOW_ruleGroup_in_entryRuleGroup183);
            ruleGroup();

            state._fsp--;

             after(grammarAccess.getGroupRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGroup190); 

            }

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


    // $ANTLR start "ruleGroup"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:127:1: ruleGroup : ( ( rule__Group__Group__0 ) ) ;
    public final void ruleGroup() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:131:2: ( ( ( rule__Group__Group__0 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:132:1: ( ( rule__Group__Group__0 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:132:1: ( ( rule__Group__Group__0 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:133:1: ( rule__Group__Group__0 )
            {
             before(grammarAccess.getGroupAccess().getGroup()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:134:1: ( rule__Group__Group__0 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:134:2: rule__Group__Group__0
            {
            pushFollow(FOLLOW_rule__Group__Group__0_in_ruleGroup216);
            rule__Group__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getGroupAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "entryRuleUser"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:146:1: entryRuleUser : ruleUser EOF ;
    public final void entryRuleUser() throws RecognitionException {
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:147:1: ( ruleUser EOF )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:148:1: ruleUser EOF
            {
             before(grammarAccess.getUserRule()); 
            pushFollow(FOLLOW_ruleUser_in_entryRuleUser243);
            ruleUser();

            state._fsp--;

             after(grammarAccess.getUserRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleUser250); 

            }

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


    // $ANTLR start "ruleUser"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:155:1: ruleUser : ( ( rule__User__Group__0 ) ) ;
    public final void ruleUser() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:159:2: ( ( ( rule__User__Group__0 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:160:1: ( ( rule__User__Group__0 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:160:1: ( ( rule__User__Group__0 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:161:1: ( rule__User__Group__0 )
            {
             before(grammarAccess.getUserAccess().getGroup()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:162:1: ( rule__User__Group__0 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:162:2: rule__User__Group__0
            {
            pushFollow(FOLLOW_rule__User__Group__0_in_ruleUser276);
            rule__User__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getUserAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "entryRuleRoleAssignment"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:174:1: entryRuleRoleAssignment : ruleRoleAssignment EOF ;
    public final void entryRuleRoleAssignment() throws RecognitionException {
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:175:1: ( ruleRoleAssignment EOF )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:176:1: ruleRoleAssignment EOF
            {
             before(grammarAccess.getRoleAssignmentRule()); 
            pushFollow(FOLLOW_ruleRoleAssignment_in_entryRuleRoleAssignment303);
            ruleRoleAssignment();

            state._fsp--;

             after(grammarAccess.getRoleAssignmentRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRoleAssignment310); 

            }

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


    // $ANTLR start "ruleRoleAssignment"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:183:1: ruleRoleAssignment : ( ( rule__RoleAssignment__Group__0 ) ) ;
    public final void ruleRoleAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:187:2: ( ( ( rule__RoleAssignment__Group__0 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:188:1: ( ( rule__RoleAssignment__Group__0 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:188:1: ( ( rule__RoleAssignment__Group__0 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:189:1: ( rule__RoleAssignment__Group__0 )
            {
             before(grammarAccess.getRoleAssignmentAccess().getGroup()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:190:1: ( rule__RoleAssignment__Group__0 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:190:2: rule__RoleAssignment__Group__0
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group__0_in_ruleRoleAssignment336);
            rule__RoleAssignment__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getRoleAssignmentAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "entryRuleRoleDefinition"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:202:1: entryRuleRoleDefinition : ruleRoleDefinition EOF ;
    public final void entryRuleRoleDefinition() throws RecognitionException {
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:203:1: ( ruleRoleDefinition EOF )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:204:1: ruleRoleDefinition EOF
            {
             before(grammarAccess.getRoleDefinitionRule()); 
            pushFollow(FOLLOW_ruleRoleDefinition_in_entryRuleRoleDefinition363);
            ruleRoleDefinition();

            state._fsp--;

             after(grammarAccess.getRoleDefinitionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRoleDefinition370); 

            }

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


    // $ANTLR start "ruleRoleDefinition"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:211:1: ruleRoleDefinition : ( ( rule__RoleDefinition__Group__0 ) ) ;
    public final void ruleRoleDefinition() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:215:2: ( ( ( rule__RoleDefinition__Group__0 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:216:1: ( ( rule__RoleDefinition__Group__0 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:216:1: ( ( rule__RoleDefinition__Group__0 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:217:1: ( rule__RoleDefinition__Group__0 )
            {
             before(grammarAccess.getRoleDefinitionAccess().getGroup()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:218:1: ( rule__RoleDefinition__Group__0 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:218:2: rule__RoleDefinition__Group__0
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__0_in_ruleRoleDefinition396);
            rule__RoleDefinition__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getRoleDefinitionAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "entryRuleQualifiedName"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:230:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
    public final void entryRuleQualifiedName() throws RecognitionException {
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:231:1: ( ruleQualifiedName EOF )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:232:1: ruleQualifiedName EOF
            {
             before(grammarAccess.getQualifiedNameRule()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName423);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getQualifiedNameRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName430); 

            }

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


    // $ANTLR start "ruleQualifiedName"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:239:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
    public final void ruleQualifiedName() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:243:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:244:1: ( ( rule__QualifiedName__Group__0 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:244:1: ( ( rule__QualifiedName__Group__0 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:245:1: ( rule__QualifiedName__Group__0 )
            {
             before(grammarAccess.getQualifiedNameAccess().getGroup()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:246:1: ( rule__QualifiedName__Group__0 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:246:2: rule__QualifiedName__Group__0
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName456);
            rule__QualifiedName__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getQualifiedNameAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "ruleBasePermission"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:259:1: ruleBasePermission : ( ( rule__BasePermission__Alternatives ) ) ;
    public final void ruleBasePermission() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:263:1: ( ( ( rule__BasePermission__Alternatives ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:264:1: ( ( rule__BasePermission__Alternatives ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:264:1: ( ( rule__BasePermission__Alternatives ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:265:1: ( rule__BasePermission__Alternatives )
            {
             before(grammarAccess.getBasePermissionAccess().getAlternatives()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:266:1: ( rule__BasePermission__Alternatives )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:266:2: rule__BasePermission__Alternatives
            {
            pushFollow(FOLLOW_rule__BasePermission__Alternatives_in_ruleBasePermission493);
            rule__BasePermission__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getBasePermissionAccess().getAlternatives()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__BasePermission__Alternatives"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:278:1: rule__BasePermission__Alternatives : ( ( ( 'ViewListItems' ) ) | ( ( 'AddListItems' ) ) | ( ( 'EditListItems' ) ) | ( ( 'DeleteListItems' ) ) | ( ( 'ApproveItems' ) ) | ( ( 'OpenItems' ) ) | ( ( 'ViewVersions' ) ) | ( ( 'DeleteVersions' ) ) | ( ( 'CancelCheckout' ) ) | ( ( 'ManagePersonalViews' ) ) | ( ( 'ManageLists' ) ) | ( ( 'ViewFormPages' ) ) | ( ( 'Open' ) ) | ( ( 'AddAndCustomizePages' ) ) | ( ( 'ApplyThemeAndBorder' ) ) | ( ( 'CreateSSCSite' ) ) | ( ( 'BrowseDirectories' ) ) | ( ( 'BrowseUserInfo' ) ) | ( ( 'AddDelPrivateWebParts' ) ) | ( ( 'UpdatePersonalWebParts' ) ) | ( ( 'UseClientIntegration' ) ) | ( ( 'UseRemoteAPIs' ) ) | ( ( 'CreateAlerts' ) ) | ( ( 'EditMyUserInfo' ) ) | ( ( 'FullMask' ) ) );
    public final void rule__BasePermission__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:282:1: ( ( ( 'ViewListItems' ) ) | ( ( 'AddListItems' ) ) | ( ( 'EditListItems' ) ) | ( ( 'DeleteListItems' ) ) | ( ( 'ApproveItems' ) ) | ( ( 'OpenItems' ) ) | ( ( 'ViewVersions' ) ) | ( ( 'DeleteVersions' ) ) | ( ( 'CancelCheckout' ) ) | ( ( 'ManagePersonalViews' ) ) | ( ( 'ManageLists' ) ) | ( ( 'ViewFormPages' ) ) | ( ( 'Open' ) ) | ( ( 'AddAndCustomizePages' ) ) | ( ( 'ApplyThemeAndBorder' ) ) | ( ( 'CreateSSCSite' ) ) | ( ( 'BrowseDirectories' ) ) | ( ( 'BrowseUserInfo' ) ) | ( ( 'AddDelPrivateWebParts' ) ) | ( ( 'UpdatePersonalWebParts' ) ) | ( ( 'UseClientIntegration' ) ) | ( ( 'UseRemoteAPIs' ) ) | ( ( 'CreateAlerts' ) ) | ( ( 'EditMyUserInfo' ) ) | ( ( 'FullMask' ) ) )
            int alt1=25;
            switch ( input.LA(1) ) {
            case 11:
                {
                alt1=1;
                }
                break;
            case 12:
                {
                alt1=2;
                }
                break;
            case 13:
                {
                alt1=3;
                }
                break;
            case 14:
                {
                alt1=4;
                }
                break;
            case 15:
                {
                alt1=5;
                }
                break;
            case 16:
                {
                alt1=6;
                }
                break;
            case 17:
                {
                alt1=7;
                }
                break;
            case 18:
                {
                alt1=8;
                }
                break;
            case 19:
                {
                alt1=9;
                }
                break;
            case 20:
                {
                alt1=10;
                }
                break;
            case 21:
                {
                alt1=11;
                }
                break;
            case 22:
                {
                alt1=12;
                }
                break;
            case 23:
                {
                alt1=13;
                }
                break;
            case 24:
                {
                alt1=14;
                }
                break;
            case 25:
                {
                alt1=15;
                }
                break;
            case 26:
                {
                alt1=16;
                }
                break;
            case 27:
                {
                alt1=17;
                }
                break;
            case 28:
                {
                alt1=18;
                }
                break;
            case 29:
                {
                alt1=19;
                }
                break;
            case 30:
                {
                alt1=20;
                }
                break;
            case 31:
                {
                alt1=21;
                }
                break;
            case 32:
                {
                alt1=22;
                }
                break;
            case 33:
                {
                alt1=23;
                }
                break;
            case 34:
                {
                alt1=24;
                }
                break;
            case 35:
                {
                alt1=25;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }

            switch (alt1) {
                case 1 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:283:1: ( ( 'ViewListItems' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:283:1: ( ( 'ViewListItems' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:284:1: ( 'ViewListItems' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getViewListItemsEnumLiteralDeclaration_0()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:285:1: ( 'ViewListItems' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:285:3: 'ViewListItems'
                    {
                    match(input,11,FOLLOW_11_in_rule__BasePermission__Alternatives530); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getViewListItemsEnumLiteralDeclaration_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:290:6: ( ( 'AddListItems' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:290:6: ( ( 'AddListItems' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:291:1: ( 'AddListItems' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getAddListItemsEnumLiteralDeclaration_1()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:292:1: ( 'AddListItems' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:292:3: 'AddListItems'
                    {
                    match(input,12,FOLLOW_12_in_rule__BasePermission__Alternatives551); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getAddListItemsEnumLiteralDeclaration_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:297:6: ( ( 'EditListItems' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:297:6: ( ( 'EditListItems' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:298:1: ( 'EditListItems' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getEditListItemsEnumLiteralDeclaration_2()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:299:1: ( 'EditListItems' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:299:3: 'EditListItems'
                    {
                    match(input,13,FOLLOW_13_in_rule__BasePermission__Alternatives572); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getEditListItemsEnumLiteralDeclaration_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:304:6: ( ( 'DeleteListItems' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:304:6: ( ( 'DeleteListItems' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:305:1: ( 'DeleteListItems' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getDeleteListItemsEnumLiteralDeclaration_3()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:306:1: ( 'DeleteListItems' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:306:3: 'DeleteListItems'
                    {
                    match(input,14,FOLLOW_14_in_rule__BasePermission__Alternatives593); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getDeleteListItemsEnumLiteralDeclaration_3()); 

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:311:6: ( ( 'ApproveItems' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:311:6: ( ( 'ApproveItems' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:312:1: ( 'ApproveItems' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getApproveItemsEnumLiteralDeclaration_4()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:313:1: ( 'ApproveItems' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:313:3: 'ApproveItems'
                    {
                    match(input,15,FOLLOW_15_in_rule__BasePermission__Alternatives614); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getApproveItemsEnumLiteralDeclaration_4()); 

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:318:6: ( ( 'OpenItems' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:318:6: ( ( 'OpenItems' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:319:1: ( 'OpenItems' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getOpenItemsEnumLiteralDeclaration_5()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:320:1: ( 'OpenItems' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:320:3: 'OpenItems'
                    {
                    match(input,16,FOLLOW_16_in_rule__BasePermission__Alternatives635); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getOpenItemsEnumLiteralDeclaration_5()); 

                    }


                    }
                    break;
                case 7 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:325:6: ( ( 'ViewVersions' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:325:6: ( ( 'ViewVersions' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:326:1: ( 'ViewVersions' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getViewVersionsEnumLiteralDeclaration_6()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:327:1: ( 'ViewVersions' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:327:3: 'ViewVersions'
                    {
                    match(input,17,FOLLOW_17_in_rule__BasePermission__Alternatives656); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getViewVersionsEnumLiteralDeclaration_6()); 

                    }


                    }
                    break;
                case 8 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:332:6: ( ( 'DeleteVersions' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:332:6: ( ( 'DeleteVersions' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:333:1: ( 'DeleteVersions' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getDeleteVersionsEnumLiteralDeclaration_7()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:334:1: ( 'DeleteVersions' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:334:3: 'DeleteVersions'
                    {
                    match(input,18,FOLLOW_18_in_rule__BasePermission__Alternatives677); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getDeleteVersionsEnumLiteralDeclaration_7()); 

                    }


                    }
                    break;
                case 9 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:339:6: ( ( 'CancelCheckout' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:339:6: ( ( 'CancelCheckout' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:340:1: ( 'CancelCheckout' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getCancelCheckoutEnumLiteralDeclaration_8()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:341:1: ( 'CancelCheckout' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:341:3: 'CancelCheckout'
                    {
                    match(input,19,FOLLOW_19_in_rule__BasePermission__Alternatives698); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getCancelCheckoutEnumLiteralDeclaration_8()); 

                    }


                    }
                    break;
                case 10 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:346:6: ( ( 'ManagePersonalViews' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:346:6: ( ( 'ManagePersonalViews' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:347:1: ( 'ManagePersonalViews' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getManagePersonalViewsEnumLiteralDeclaration_9()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:348:1: ( 'ManagePersonalViews' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:348:3: 'ManagePersonalViews'
                    {
                    match(input,20,FOLLOW_20_in_rule__BasePermission__Alternatives719); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getManagePersonalViewsEnumLiteralDeclaration_9()); 

                    }


                    }
                    break;
                case 11 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:353:6: ( ( 'ManageLists' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:353:6: ( ( 'ManageLists' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:354:1: ( 'ManageLists' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getManageListsEnumLiteralDeclaration_10()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:355:1: ( 'ManageLists' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:355:3: 'ManageLists'
                    {
                    match(input,21,FOLLOW_21_in_rule__BasePermission__Alternatives740); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getManageListsEnumLiteralDeclaration_10()); 

                    }


                    }
                    break;
                case 12 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:360:6: ( ( 'ViewFormPages' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:360:6: ( ( 'ViewFormPages' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:361:1: ( 'ViewFormPages' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getViewFormPagesEnumLiteralDeclaration_11()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:362:1: ( 'ViewFormPages' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:362:3: 'ViewFormPages'
                    {
                    match(input,22,FOLLOW_22_in_rule__BasePermission__Alternatives761); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getViewFormPagesEnumLiteralDeclaration_11()); 

                    }


                    }
                    break;
                case 13 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:367:6: ( ( 'Open' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:367:6: ( ( 'Open' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:368:1: ( 'Open' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getOpenEnumLiteralDeclaration_12()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:369:1: ( 'Open' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:369:3: 'Open'
                    {
                    match(input,23,FOLLOW_23_in_rule__BasePermission__Alternatives782); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getOpenEnumLiteralDeclaration_12()); 

                    }


                    }
                    break;
                case 14 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:374:6: ( ( 'AddAndCustomizePages' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:374:6: ( ( 'AddAndCustomizePages' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:375:1: ( 'AddAndCustomizePages' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getAddAndCustomizePagesEnumLiteralDeclaration_13()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:376:1: ( 'AddAndCustomizePages' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:376:3: 'AddAndCustomizePages'
                    {
                    match(input,24,FOLLOW_24_in_rule__BasePermission__Alternatives803); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getAddAndCustomizePagesEnumLiteralDeclaration_13()); 

                    }


                    }
                    break;
                case 15 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:381:6: ( ( 'ApplyThemeAndBorder' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:381:6: ( ( 'ApplyThemeAndBorder' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:382:1: ( 'ApplyThemeAndBorder' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getApplyThemeAndBorderEnumLiteralDeclaration_14()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:383:1: ( 'ApplyThemeAndBorder' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:383:3: 'ApplyThemeAndBorder'
                    {
                    match(input,25,FOLLOW_25_in_rule__BasePermission__Alternatives824); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getApplyThemeAndBorderEnumLiteralDeclaration_14()); 

                    }


                    }
                    break;
                case 16 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:388:6: ( ( 'CreateSSCSite' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:388:6: ( ( 'CreateSSCSite' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:389:1: ( 'CreateSSCSite' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getCreateSSCSiteEnumLiteralDeclaration_15()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:390:1: ( 'CreateSSCSite' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:390:3: 'CreateSSCSite'
                    {
                    match(input,26,FOLLOW_26_in_rule__BasePermission__Alternatives845); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getCreateSSCSiteEnumLiteralDeclaration_15()); 

                    }


                    }
                    break;
                case 17 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:395:6: ( ( 'BrowseDirectories' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:395:6: ( ( 'BrowseDirectories' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:396:1: ( 'BrowseDirectories' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getBrowseDirectoriesEnumLiteralDeclaration_16()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:397:1: ( 'BrowseDirectories' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:397:3: 'BrowseDirectories'
                    {
                    match(input,27,FOLLOW_27_in_rule__BasePermission__Alternatives866); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getBrowseDirectoriesEnumLiteralDeclaration_16()); 

                    }


                    }
                    break;
                case 18 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:402:6: ( ( 'BrowseUserInfo' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:402:6: ( ( 'BrowseUserInfo' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:403:1: ( 'BrowseUserInfo' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getBrowseUserInfoEnumLiteralDeclaration_17()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:404:1: ( 'BrowseUserInfo' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:404:3: 'BrowseUserInfo'
                    {
                    match(input,28,FOLLOW_28_in_rule__BasePermission__Alternatives887); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getBrowseUserInfoEnumLiteralDeclaration_17()); 

                    }


                    }
                    break;
                case 19 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:409:6: ( ( 'AddDelPrivateWebParts' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:409:6: ( ( 'AddDelPrivateWebParts' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:410:1: ( 'AddDelPrivateWebParts' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getAddDelPrivateWebPartsEnumLiteralDeclaration_18()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:411:1: ( 'AddDelPrivateWebParts' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:411:3: 'AddDelPrivateWebParts'
                    {
                    match(input,29,FOLLOW_29_in_rule__BasePermission__Alternatives908); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getAddDelPrivateWebPartsEnumLiteralDeclaration_18()); 

                    }


                    }
                    break;
                case 20 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:416:6: ( ( 'UpdatePersonalWebParts' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:416:6: ( ( 'UpdatePersonalWebParts' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:417:1: ( 'UpdatePersonalWebParts' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getUpdatePersonalWebPartsEnumLiteralDeclaration_19()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:418:1: ( 'UpdatePersonalWebParts' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:418:3: 'UpdatePersonalWebParts'
                    {
                    match(input,30,FOLLOW_30_in_rule__BasePermission__Alternatives929); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getUpdatePersonalWebPartsEnumLiteralDeclaration_19()); 

                    }


                    }
                    break;
                case 21 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:423:6: ( ( 'UseClientIntegration' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:423:6: ( ( 'UseClientIntegration' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:424:1: ( 'UseClientIntegration' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getUseClientIntegrationEnumLiteralDeclaration_20()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:425:1: ( 'UseClientIntegration' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:425:3: 'UseClientIntegration'
                    {
                    match(input,31,FOLLOW_31_in_rule__BasePermission__Alternatives950); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getUseClientIntegrationEnumLiteralDeclaration_20()); 

                    }


                    }
                    break;
                case 22 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:430:6: ( ( 'UseRemoteAPIs' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:430:6: ( ( 'UseRemoteAPIs' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:431:1: ( 'UseRemoteAPIs' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getUseRemoteAPIsEnumLiteralDeclaration_21()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:432:1: ( 'UseRemoteAPIs' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:432:3: 'UseRemoteAPIs'
                    {
                    match(input,32,FOLLOW_32_in_rule__BasePermission__Alternatives971); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getUseRemoteAPIsEnumLiteralDeclaration_21()); 

                    }


                    }
                    break;
                case 23 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:437:6: ( ( 'CreateAlerts' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:437:6: ( ( 'CreateAlerts' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:438:1: ( 'CreateAlerts' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getCreateAlertsEnumLiteralDeclaration_22()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:439:1: ( 'CreateAlerts' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:439:3: 'CreateAlerts'
                    {
                    match(input,33,FOLLOW_33_in_rule__BasePermission__Alternatives992); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getCreateAlertsEnumLiteralDeclaration_22()); 

                    }


                    }
                    break;
                case 24 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:444:6: ( ( 'EditMyUserInfo' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:444:6: ( ( 'EditMyUserInfo' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:445:1: ( 'EditMyUserInfo' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getEditMyUserInfoEnumLiteralDeclaration_23()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:446:1: ( 'EditMyUserInfo' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:446:3: 'EditMyUserInfo'
                    {
                    match(input,34,FOLLOW_34_in_rule__BasePermission__Alternatives1013); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getEditMyUserInfoEnumLiteralDeclaration_23()); 

                    }


                    }
                    break;
                case 25 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:451:6: ( ( 'FullMask' ) )
                    {
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:451:6: ( ( 'FullMask' ) )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:452:1: ( 'FullMask' )
                    {
                     before(grammarAccess.getBasePermissionAccess().getFullMaskEnumLiteralDeclaration_24()); 
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:453:1: ( 'FullMask' )
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:453:3: 'FullMask'
                    {
                    match(input,35,FOLLOW_35_in_rule__BasePermission__Alternatives1034); 

                    }

                     after(grammarAccess.getBasePermissionAccess().getFullMaskEnumLiteralDeclaration_24()); 

                    }


                    }
                    break;

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:465:1: rule__UserModel__Group__0 : rule__UserModel__Group__0__Impl rule__UserModel__Group__1 ;
    public final void rule__UserModel__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:469:1: ( rule__UserModel__Group__0__Impl rule__UserModel__Group__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:470:2: rule__UserModel__Group__0__Impl rule__UserModel__Group__1
            {
            pushFollow(FOLLOW_rule__UserModel__Group__0__Impl_in_rule__UserModel__Group__01067);
            rule__UserModel__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group__1_in_rule__UserModel__Group__01070);
            rule__UserModel__Group__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:477:1: rule__UserModel__Group__0__Impl : ( 'UserModel' ) ;
    public final void rule__UserModel__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:481:1: ( ( 'UserModel' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:482:1: ( 'UserModel' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:482:1: ( 'UserModel' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:483:1: 'UserModel'
            {
             before(grammarAccess.getUserModelAccess().getUserModelKeyword_0()); 
            match(input,36,FOLLOW_36_in_rule__UserModel__Group__0__Impl1098); 
             after(grammarAccess.getUserModelAccess().getUserModelKeyword_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:496:1: rule__UserModel__Group__1 : rule__UserModel__Group__1__Impl rule__UserModel__Group__2 ;
    public final void rule__UserModel__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:500:1: ( rule__UserModel__Group__1__Impl rule__UserModel__Group__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:501:2: rule__UserModel__Group__1__Impl rule__UserModel__Group__2
            {
            pushFollow(FOLLOW_rule__UserModel__Group__1__Impl_in_rule__UserModel__Group__11129);
            rule__UserModel__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group__2_in_rule__UserModel__Group__11132);
            rule__UserModel__Group__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:508:1: rule__UserModel__Group__1__Impl : ( ( rule__UserModel__NameAssignment_1 ) ) ;
    public final void rule__UserModel__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:512:1: ( ( ( rule__UserModel__NameAssignment_1 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:513:1: ( ( rule__UserModel__NameAssignment_1 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:513:1: ( ( rule__UserModel__NameAssignment_1 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:514:1: ( rule__UserModel__NameAssignment_1 )
            {
             before(grammarAccess.getUserModelAccess().getNameAssignment_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:515:1: ( rule__UserModel__NameAssignment_1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:515:2: rule__UserModel__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__UserModel__NameAssignment_1_in_rule__UserModel__Group__1__Impl1159);
            rule__UserModel__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getUserModelAccess().getNameAssignment_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:525:1: rule__UserModel__Group__2 : rule__UserModel__Group__2__Impl rule__UserModel__Group__3 ;
    public final void rule__UserModel__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:529:1: ( rule__UserModel__Group__2__Impl rule__UserModel__Group__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:530:2: rule__UserModel__Group__2__Impl rule__UserModel__Group__3
            {
            pushFollow(FOLLOW_rule__UserModel__Group__2__Impl_in_rule__UserModel__Group__21189);
            rule__UserModel__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group__3_in_rule__UserModel__Group__21192);
            rule__UserModel__Group__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:537:1: rule__UserModel__Group__2__Impl : ( '{' ) ;
    public final void rule__UserModel__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:541:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:542:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:542:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:543:1: '{'
            {
             before(grammarAccess.getUserModelAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,37,FOLLOW_37_in_rule__UserModel__Group__2__Impl1220); 
             after(grammarAccess.getUserModelAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:556:1: rule__UserModel__Group__3 : rule__UserModel__Group__3__Impl rule__UserModel__Group__4 ;
    public final void rule__UserModel__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:560:1: ( rule__UserModel__Group__3__Impl rule__UserModel__Group__4 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:561:2: rule__UserModel__Group__3__Impl rule__UserModel__Group__4
            {
            pushFollow(FOLLOW_rule__UserModel__Group__3__Impl_in_rule__UserModel__Group__31251);
            rule__UserModel__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group__4_in_rule__UserModel__Group__31254);
            rule__UserModel__Group__4();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:568:1: rule__UserModel__Group__3__Impl : ( ( rule__UserModel__Group_3__0 )? ) ;
    public final void rule__UserModel__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:572:1: ( ( ( rule__UserModel__Group_3__0 )? ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:573:1: ( ( rule__UserModel__Group_3__0 )? )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:573:1: ( ( rule__UserModel__Group_3__0 )? )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:574:1: ( rule__UserModel__Group_3__0 )?
            {
             before(grammarAccess.getUserModelAccess().getGroup_3()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:575:1: ( rule__UserModel__Group_3__0 )?
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==39) ) {
                alt2=1;
            }
            switch (alt2) {
                case 1 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:575:2: rule__UserModel__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__UserModel__Group_3__0_in_rule__UserModel__Group__3__Impl1281);
                    rule__UserModel__Group_3__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getUserModelAccess().getGroup_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__4"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:585:1: rule__UserModel__Group__4 : rule__UserModel__Group__4__Impl rule__UserModel__Group__5 ;
    public final void rule__UserModel__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:589:1: ( rule__UserModel__Group__4__Impl rule__UserModel__Group__5 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:590:2: rule__UserModel__Group__4__Impl rule__UserModel__Group__5
            {
            pushFollow(FOLLOW_rule__UserModel__Group__4__Impl_in_rule__UserModel__Group__41312);
            rule__UserModel__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group__5_in_rule__UserModel__Group__41315);
            rule__UserModel__Group__5();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__4__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:597:1: rule__UserModel__Group__4__Impl : ( ( rule__UserModel__Group_4__0 )? ) ;
    public final void rule__UserModel__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:601:1: ( ( ( rule__UserModel__Group_4__0 )? ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:602:1: ( ( rule__UserModel__Group_4__0 )? )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:602:1: ( ( rule__UserModel__Group_4__0 )? )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:603:1: ( rule__UserModel__Group_4__0 )?
            {
             before(grammarAccess.getUserModelAccess().getGroup_4()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:604:1: ( rule__UserModel__Group_4__0 )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==40) ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:604:2: rule__UserModel__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__UserModel__Group_4__0_in_rule__UserModel__Group__4__Impl1342);
                    rule__UserModel__Group_4__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getUserModelAccess().getGroup_4()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__5"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:614:1: rule__UserModel__Group__5 : rule__UserModel__Group__5__Impl ;
    public final void rule__UserModel__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:618:1: ( rule__UserModel__Group__5__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:619:2: rule__UserModel__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__UserModel__Group__5__Impl_in_rule__UserModel__Group__51373);
            rule__UserModel__Group__5__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group__5__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:625:1: rule__UserModel__Group__5__Impl : ( '}' ) ;
    public final void rule__UserModel__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:629:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:630:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:630:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:631:1: '}'
            {
             before(grammarAccess.getUserModelAccess().getRightCurlyBracketKeyword_5()); 
            match(input,38,FOLLOW_38_in_rule__UserModel__Group__5__Impl1401); 
             after(grammarAccess.getUserModelAccess().getRightCurlyBracketKeyword_5()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:656:1: rule__UserModel__Group_3__0 : rule__UserModel__Group_3__0__Impl rule__UserModel__Group_3__1 ;
    public final void rule__UserModel__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:660:1: ( rule__UserModel__Group_3__0__Impl rule__UserModel__Group_3__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:661:2: rule__UserModel__Group_3__0__Impl rule__UserModel__Group_3__1
            {
            pushFollow(FOLLOW_rule__UserModel__Group_3__0__Impl_in_rule__UserModel__Group_3__01444);
            rule__UserModel__Group_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group_3__1_in_rule__UserModel__Group_3__01447);
            rule__UserModel__Group_3__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:668:1: rule__UserModel__Group_3__0__Impl : ( 'users' ) ;
    public final void rule__UserModel__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:672:1: ( ( 'users' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:673:1: ( 'users' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:673:1: ( 'users' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:674:1: 'users'
            {
             before(grammarAccess.getUserModelAccess().getUsersKeyword_3_0()); 
            match(input,39,FOLLOW_39_in_rule__UserModel__Group_3__0__Impl1475); 
             after(grammarAccess.getUserModelAccess().getUsersKeyword_3_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:687:1: rule__UserModel__Group_3__1 : rule__UserModel__Group_3__1__Impl rule__UserModel__Group_3__2 ;
    public final void rule__UserModel__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:691:1: ( rule__UserModel__Group_3__1__Impl rule__UserModel__Group_3__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:692:2: rule__UserModel__Group_3__1__Impl rule__UserModel__Group_3__2
            {
            pushFollow(FOLLOW_rule__UserModel__Group_3__1__Impl_in_rule__UserModel__Group_3__11506);
            rule__UserModel__Group_3__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group_3__2_in_rule__UserModel__Group_3__11509);
            rule__UserModel__Group_3__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:699:1: rule__UserModel__Group_3__1__Impl : ( '{' ) ;
    public final void rule__UserModel__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:703:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:704:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:704:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:705:1: '{'
            {
             before(grammarAccess.getUserModelAccess().getLeftCurlyBracketKeyword_3_1()); 
            match(input,37,FOLLOW_37_in_rule__UserModel__Group_3__1__Impl1537); 
             after(grammarAccess.getUserModelAccess().getLeftCurlyBracketKeyword_3_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:718:1: rule__UserModel__Group_3__2 : rule__UserModel__Group_3__2__Impl rule__UserModel__Group_3__3 ;
    public final void rule__UserModel__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:722:1: ( rule__UserModel__Group_3__2__Impl rule__UserModel__Group_3__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:723:2: rule__UserModel__Group_3__2__Impl rule__UserModel__Group_3__3
            {
            pushFollow(FOLLOW_rule__UserModel__Group_3__2__Impl_in_rule__UserModel__Group_3__21568);
            rule__UserModel__Group_3__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group_3__3_in_rule__UserModel__Group_3__21571);
            rule__UserModel__Group_3__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:730:1: rule__UserModel__Group_3__2__Impl : ( ( rule__UserModel__UsersAssignment_3_2 ) ) ;
    public final void rule__UserModel__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:734:1: ( ( ( rule__UserModel__UsersAssignment_3_2 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:735:1: ( ( rule__UserModel__UsersAssignment_3_2 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:735:1: ( ( rule__UserModel__UsersAssignment_3_2 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:736:1: ( rule__UserModel__UsersAssignment_3_2 )
            {
             before(grammarAccess.getUserModelAccess().getUsersAssignment_3_2()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:737:1: ( rule__UserModel__UsersAssignment_3_2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:737:2: rule__UserModel__UsersAssignment_3_2
            {
            pushFollow(FOLLOW_rule__UserModel__UsersAssignment_3_2_in_rule__UserModel__Group_3__2__Impl1598);
            rule__UserModel__UsersAssignment_3_2();

            state._fsp--;


            }

             after(grammarAccess.getUserModelAccess().getUsersAssignment_3_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:747:1: rule__UserModel__Group_3__3 : rule__UserModel__Group_3__3__Impl rule__UserModel__Group_3__4 ;
    public final void rule__UserModel__Group_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:751:1: ( rule__UserModel__Group_3__3__Impl rule__UserModel__Group_3__4 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:752:2: rule__UserModel__Group_3__3__Impl rule__UserModel__Group_3__4
            {
            pushFollow(FOLLOW_rule__UserModel__Group_3__3__Impl_in_rule__UserModel__Group_3__31628);
            rule__UserModel__Group_3__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group_3__4_in_rule__UserModel__Group_3__31631);
            rule__UserModel__Group_3__4();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:759:1: rule__UserModel__Group_3__3__Impl : ( ( rule__UserModel__UsersAssignment_3_3 )* ) ;
    public final void rule__UserModel__Group_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:763:1: ( ( ( rule__UserModel__UsersAssignment_3_3 )* ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:764:1: ( ( rule__UserModel__UsersAssignment_3_3 )* )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:764:1: ( ( rule__UserModel__UsersAssignment_3_3 )* )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:765:1: ( rule__UserModel__UsersAssignment_3_3 )*
            {
             before(grammarAccess.getUserModelAccess().getUsersAssignment_3_3()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:766:1: ( rule__UserModel__UsersAssignment_3_3 )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

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


                switch (alt4) {
            	case 1 :
            	    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:766:2: rule__UserModel__UsersAssignment_3_3
            	    {
            	    pushFollow(FOLLOW_rule__UserModel__UsersAssignment_3_3_in_rule__UserModel__Group_3__3__Impl1658);
            	    rule__UserModel__UsersAssignment_3_3();

            	    state._fsp--;


            	    }
            	    break;

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

             after(grammarAccess.getUserModelAccess().getUsersAssignment_3_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__4"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:776:1: rule__UserModel__Group_3__4 : rule__UserModel__Group_3__4__Impl ;
    public final void rule__UserModel__Group_3__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:780:1: ( rule__UserModel__Group_3__4__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:781:2: rule__UserModel__Group_3__4__Impl
            {
            pushFollow(FOLLOW_rule__UserModel__Group_3__4__Impl_in_rule__UserModel__Group_3__41689);
            rule__UserModel__Group_3__4__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_3__4__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:787:1: rule__UserModel__Group_3__4__Impl : ( '}' ) ;
    public final void rule__UserModel__Group_3__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:791:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:792:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:792:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:793:1: '}'
            {
             before(grammarAccess.getUserModelAccess().getRightCurlyBracketKeyword_3_4()); 
            match(input,38,FOLLOW_38_in_rule__UserModel__Group_3__4__Impl1717); 
             after(grammarAccess.getUserModelAccess().getRightCurlyBracketKeyword_3_4()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:816:1: rule__UserModel__Group_4__0 : rule__UserModel__Group_4__0__Impl rule__UserModel__Group_4__1 ;
    public final void rule__UserModel__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:820:1: ( rule__UserModel__Group_4__0__Impl rule__UserModel__Group_4__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:821:2: rule__UserModel__Group_4__0__Impl rule__UserModel__Group_4__1
            {
            pushFollow(FOLLOW_rule__UserModel__Group_4__0__Impl_in_rule__UserModel__Group_4__01758);
            rule__UserModel__Group_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group_4__1_in_rule__UserModel__Group_4__01761);
            rule__UserModel__Group_4__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:828:1: rule__UserModel__Group_4__0__Impl : ( 'sitePermissions' ) ;
    public final void rule__UserModel__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:832:1: ( ( 'sitePermissions' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:833:1: ( 'sitePermissions' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:833:1: ( 'sitePermissions' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:834:1: 'sitePermissions'
            {
             before(grammarAccess.getUserModelAccess().getSitePermissionsKeyword_4_0()); 
            match(input,40,FOLLOW_40_in_rule__UserModel__Group_4__0__Impl1789); 
             after(grammarAccess.getUserModelAccess().getSitePermissionsKeyword_4_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:847:1: rule__UserModel__Group_4__1 : rule__UserModel__Group_4__1__Impl rule__UserModel__Group_4__2 ;
    public final void rule__UserModel__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:851:1: ( rule__UserModel__Group_4__1__Impl rule__UserModel__Group_4__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:852:2: rule__UserModel__Group_4__1__Impl rule__UserModel__Group_4__2
            {
            pushFollow(FOLLOW_rule__UserModel__Group_4__1__Impl_in_rule__UserModel__Group_4__11820);
            rule__UserModel__Group_4__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group_4__2_in_rule__UserModel__Group_4__11823);
            rule__UserModel__Group_4__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:859:1: rule__UserModel__Group_4__1__Impl : ( '{' ) ;
    public final void rule__UserModel__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:863:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:864:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:864:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:865:1: '{'
            {
             before(grammarAccess.getUserModelAccess().getLeftCurlyBracketKeyword_4_1()); 
            match(input,37,FOLLOW_37_in_rule__UserModel__Group_4__1__Impl1851); 
             after(grammarAccess.getUserModelAccess().getLeftCurlyBracketKeyword_4_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:878:1: rule__UserModel__Group_4__2 : rule__UserModel__Group_4__2__Impl rule__UserModel__Group_4__3 ;
    public final void rule__UserModel__Group_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:882:1: ( rule__UserModel__Group_4__2__Impl rule__UserModel__Group_4__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:883:2: rule__UserModel__Group_4__2__Impl rule__UserModel__Group_4__3
            {
            pushFollow(FOLLOW_rule__UserModel__Group_4__2__Impl_in_rule__UserModel__Group_4__21882);
            rule__UserModel__Group_4__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group_4__3_in_rule__UserModel__Group_4__21885);
            rule__UserModel__Group_4__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:890:1: rule__UserModel__Group_4__2__Impl : ( ( rule__UserModel__SitePermissionsAssignment_4_2 ) ) ;
    public final void rule__UserModel__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:894:1: ( ( ( rule__UserModel__SitePermissionsAssignment_4_2 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:895:1: ( ( rule__UserModel__SitePermissionsAssignment_4_2 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:895:1: ( ( rule__UserModel__SitePermissionsAssignment_4_2 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:896:1: ( rule__UserModel__SitePermissionsAssignment_4_2 )
            {
             before(grammarAccess.getUserModelAccess().getSitePermissionsAssignment_4_2()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:897:1: ( rule__UserModel__SitePermissionsAssignment_4_2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:897:2: rule__UserModel__SitePermissionsAssignment_4_2
            {
            pushFollow(FOLLOW_rule__UserModel__SitePermissionsAssignment_4_2_in_rule__UserModel__Group_4__2__Impl1912);
            rule__UserModel__SitePermissionsAssignment_4_2();

            state._fsp--;


            }

             after(grammarAccess.getUserModelAccess().getSitePermissionsAssignment_4_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:907:1: rule__UserModel__Group_4__3 : rule__UserModel__Group_4__3__Impl rule__UserModel__Group_4__4 ;
    public final void rule__UserModel__Group_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:911:1: ( rule__UserModel__Group_4__3__Impl rule__UserModel__Group_4__4 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:912:2: rule__UserModel__Group_4__3__Impl rule__UserModel__Group_4__4
            {
            pushFollow(FOLLOW_rule__UserModel__Group_4__3__Impl_in_rule__UserModel__Group_4__31942);
            rule__UserModel__Group_4__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UserModel__Group_4__4_in_rule__UserModel__Group_4__31945);
            rule__UserModel__Group_4__4();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:919:1: rule__UserModel__Group_4__3__Impl : ( ( rule__UserModel__SitePermissionsAssignment_4_3 )* ) ;
    public final void rule__UserModel__Group_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:923:1: ( ( ( rule__UserModel__SitePermissionsAssignment_4_3 )* ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:924:1: ( ( rule__UserModel__SitePermissionsAssignment_4_3 )* )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:924:1: ( ( rule__UserModel__SitePermissionsAssignment_4_3 )* )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:925:1: ( rule__UserModel__SitePermissionsAssignment_4_3 )*
            {
             before(grammarAccess.getUserModelAccess().getSitePermissionsAssignment_4_3()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:926:1: ( rule__UserModel__SitePermissionsAssignment_4_3 )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

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


                switch (alt5) {
            	case 1 :
            	    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:926:2: rule__UserModel__SitePermissionsAssignment_4_3
            	    {
            	    pushFollow(FOLLOW_rule__UserModel__SitePermissionsAssignment_4_3_in_rule__UserModel__Group_4__3__Impl1972);
            	    rule__UserModel__SitePermissionsAssignment_4_3();

            	    state._fsp--;


            	    }
            	    break;

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

             after(grammarAccess.getUserModelAccess().getSitePermissionsAssignment_4_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__4"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:936:1: rule__UserModel__Group_4__4 : rule__UserModel__Group_4__4__Impl ;
    public final void rule__UserModel__Group_4__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:940:1: ( rule__UserModel__Group_4__4__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:941:2: rule__UserModel__Group_4__4__Impl
            {
            pushFollow(FOLLOW_rule__UserModel__Group_4__4__Impl_in_rule__UserModel__Group_4__42003);
            rule__UserModel__Group_4__4__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__Group_4__4__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:947:1: rule__UserModel__Group_4__4__Impl : ( '}' ) ;
    public final void rule__UserModel__Group_4__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:951:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:952:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:952:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:953:1: '}'
            {
             before(grammarAccess.getUserModelAccess().getRightCurlyBracketKeyword_4_4()); 
            match(input,38,FOLLOW_38_in_rule__UserModel__Group_4__4__Impl2031); 
             after(grammarAccess.getUserModelAccess().getRightCurlyBracketKeyword_4_4()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:976:1: rule__SitePermission__Group__0 : rule__SitePermission__Group__0__Impl rule__SitePermission__Group__1 ;
    public final void rule__SitePermission__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:980:1: ( rule__SitePermission__Group__0__Impl rule__SitePermission__Group__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:981:2: rule__SitePermission__Group__0__Impl rule__SitePermission__Group__1
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__0__Impl_in_rule__SitePermission__Group__02072);
            rule__SitePermission__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group__1_in_rule__SitePermission__Group__02075);
            rule__SitePermission__Group__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:988:1: rule__SitePermission__Group__0__Impl : ( 'sitePermission' ) ;
    public final void rule__SitePermission__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:992:1: ( ( 'sitePermission' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:993:1: ( 'sitePermission' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:993:1: ( 'sitePermission' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:994:1: 'sitePermission'
            {
             before(grammarAccess.getSitePermissionAccess().getSitePermissionKeyword_0()); 
            match(input,41,FOLLOW_41_in_rule__SitePermission__Group__0__Impl2103); 
             after(grammarAccess.getSitePermissionAccess().getSitePermissionKeyword_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1007:1: rule__SitePermission__Group__1 : rule__SitePermission__Group__1__Impl rule__SitePermission__Group__2 ;
    public final void rule__SitePermission__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1011:1: ( rule__SitePermission__Group__1__Impl rule__SitePermission__Group__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1012:2: rule__SitePermission__Group__1__Impl rule__SitePermission__Group__2
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__1__Impl_in_rule__SitePermission__Group__12134);
            rule__SitePermission__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group__2_in_rule__SitePermission__Group__12137);
            rule__SitePermission__Group__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1019:1: rule__SitePermission__Group__1__Impl : ( ( rule__SitePermission__NameAssignment_1 ) ) ;
    public final void rule__SitePermission__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1023:1: ( ( ( rule__SitePermission__NameAssignment_1 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1024:1: ( ( rule__SitePermission__NameAssignment_1 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1024:1: ( ( rule__SitePermission__NameAssignment_1 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1025:1: ( rule__SitePermission__NameAssignment_1 )
            {
             before(grammarAccess.getSitePermissionAccess().getNameAssignment_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1026:1: ( rule__SitePermission__NameAssignment_1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1026:2: rule__SitePermission__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__SitePermission__NameAssignment_1_in_rule__SitePermission__Group__1__Impl2164);
            rule__SitePermission__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getSitePermissionAccess().getNameAssignment_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1036:1: rule__SitePermission__Group__2 : rule__SitePermission__Group__2__Impl rule__SitePermission__Group__3 ;
    public final void rule__SitePermission__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1040:1: ( rule__SitePermission__Group__2__Impl rule__SitePermission__Group__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1041:2: rule__SitePermission__Group__2__Impl rule__SitePermission__Group__3
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__2__Impl_in_rule__SitePermission__Group__22194);
            rule__SitePermission__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group__3_in_rule__SitePermission__Group__22197);
            rule__SitePermission__Group__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1048:1: rule__SitePermission__Group__2__Impl : ( '{' ) ;
    public final void rule__SitePermission__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1052:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1053:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1053:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1054:1: '{'
            {
             before(grammarAccess.getSitePermissionAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,37,FOLLOW_37_in_rule__SitePermission__Group__2__Impl2225); 
             after(grammarAccess.getSitePermissionAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1067:1: rule__SitePermission__Group__3 : rule__SitePermission__Group__3__Impl rule__SitePermission__Group__4 ;
    public final void rule__SitePermission__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1071:1: ( rule__SitePermission__Group__3__Impl rule__SitePermission__Group__4 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1072:2: rule__SitePermission__Group__3__Impl rule__SitePermission__Group__4
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__3__Impl_in_rule__SitePermission__Group__32256);
            rule__SitePermission__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group__4_in_rule__SitePermission__Group__32259);
            rule__SitePermission__Group__4();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1079:1: rule__SitePermission__Group__3__Impl : ( 'webGUID' ) ;
    public final void rule__SitePermission__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1083:1: ( ( 'webGUID' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1084:1: ( 'webGUID' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1084:1: ( 'webGUID' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1085:1: 'webGUID'
            {
             before(grammarAccess.getSitePermissionAccess().getWebGUIDKeyword_3()); 
            match(input,42,FOLLOW_42_in_rule__SitePermission__Group__3__Impl2287); 
             after(grammarAccess.getSitePermissionAccess().getWebGUIDKeyword_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__4"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1098:1: rule__SitePermission__Group__4 : rule__SitePermission__Group__4__Impl rule__SitePermission__Group__5 ;
    public final void rule__SitePermission__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1102:1: ( rule__SitePermission__Group__4__Impl rule__SitePermission__Group__5 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1103:2: rule__SitePermission__Group__4__Impl rule__SitePermission__Group__5
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__4__Impl_in_rule__SitePermission__Group__42318);
            rule__SitePermission__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group__5_in_rule__SitePermission__Group__42321);
            rule__SitePermission__Group__5();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__4__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1110:1: rule__SitePermission__Group__4__Impl : ( '=' ) ;
    public final void rule__SitePermission__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1114:1: ( ( '=' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1115:1: ( '=' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1115:1: ( '=' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1116:1: '='
            {
             before(grammarAccess.getSitePermissionAccess().getEqualsSignKeyword_4()); 
            match(input,43,FOLLOW_43_in_rule__SitePermission__Group__4__Impl2349); 
             after(grammarAccess.getSitePermissionAccess().getEqualsSignKeyword_4()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__5"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1129:1: rule__SitePermission__Group__5 : rule__SitePermission__Group__5__Impl rule__SitePermission__Group__6 ;
    public final void rule__SitePermission__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1133:1: ( rule__SitePermission__Group__5__Impl rule__SitePermission__Group__6 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1134:2: rule__SitePermission__Group__5__Impl rule__SitePermission__Group__6
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__5__Impl_in_rule__SitePermission__Group__52380);
            rule__SitePermission__Group__5__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group__6_in_rule__SitePermission__Group__52383);
            rule__SitePermission__Group__6();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__5__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1141:1: rule__SitePermission__Group__5__Impl : ( ( rule__SitePermission__WebGUIDAssignment_5 ) ) ;
    public final void rule__SitePermission__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1145:1: ( ( ( rule__SitePermission__WebGUIDAssignment_5 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1146:1: ( ( rule__SitePermission__WebGUIDAssignment_5 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1146:1: ( ( rule__SitePermission__WebGUIDAssignment_5 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1147:1: ( rule__SitePermission__WebGUIDAssignment_5 )
            {
             before(grammarAccess.getSitePermissionAccess().getWebGUIDAssignment_5()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1148:1: ( rule__SitePermission__WebGUIDAssignment_5 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1148:2: rule__SitePermission__WebGUIDAssignment_5
            {
            pushFollow(FOLLOW_rule__SitePermission__WebGUIDAssignment_5_in_rule__SitePermission__Group__5__Impl2410);
            rule__SitePermission__WebGUIDAssignment_5();

            state._fsp--;


            }

             after(grammarAccess.getSitePermissionAccess().getWebGUIDAssignment_5()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__6"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1158:1: rule__SitePermission__Group__6 : rule__SitePermission__Group__6__Impl rule__SitePermission__Group__7 ;
    public final void rule__SitePermission__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1162:1: ( rule__SitePermission__Group__6__Impl rule__SitePermission__Group__7 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1163:2: rule__SitePermission__Group__6__Impl rule__SitePermission__Group__7
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__6__Impl_in_rule__SitePermission__Group__62440);
            rule__SitePermission__Group__6__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group__7_in_rule__SitePermission__Group__62443);
            rule__SitePermission__Group__7();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__6__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1170:1: rule__SitePermission__Group__6__Impl : ( ( rule__SitePermission__Group_6__0 )? ) ;
    public final void rule__SitePermission__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1174:1: ( ( ( rule__SitePermission__Group_6__0 )? ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1175:1: ( ( rule__SitePermission__Group_6__0 )? )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1175:1: ( ( rule__SitePermission__Group_6__0 )? )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1176:1: ( rule__SitePermission__Group_6__0 )?
            {
             before(grammarAccess.getSitePermissionAccess().getGroup_6()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1177:1: ( rule__SitePermission__Group_6__0 )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==44) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1177:2: rule__SitePermission__Group_6__0
                    {
                    pushFollow(FOLLOW_rule__SitePermission__Group_6__0_in_rule__SitePermission__Group__6__Impl2470);
                    rule__SitePermission__Group_6__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getSitePermissionAccess().getGroup_6()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__7"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1187:1: rule__SitePermission__Group__7 : rule__SitePermission__Group__7__Impl rule__SitePermission__Group__8 ;
    public final void rule__SitePermission__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1191:1: ( rule__SitePermission__Group__7__Impl rule__SitePermission__Group__8 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1192:2: rule__SitePermission__Group__7__Impl rule__SitePermission__Group__8
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__7__Impl_in_rule__SitePermission__Group__72501);
            rule__SitePermission__Group__7__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group__8_in_rule__SitePermission__Group__72504);
            rule__SitePermission__Group__8();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__7__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1199:1: rule__SitePermission__Group__7__Impl : ( ( rule__SitePermission__Group_7__0 )? ) ;
    public final void rule__SitePermission__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1203:1: ( ( ( rule__SitePermission__Group_7__0 )? ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1204:1: ( ( rule__SitePermission__Group_7__0 )? )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1204:1: ( ( rule__SitePermission__Group_7__0 )? )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1205:1: ( rule__SitePermission__Group_7__0 )?
            {
             before(grammarAccess.getSitePermissionAccess().getGroup_7()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1206:1: ( rule__SitePermission__Group_7__0 )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==45) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1206:2: rule__SitePermission__Group_7__0
                    {
                    pushFollow(FOLLOW_rule__SitePermission__Group_7__0_in_rule__SitePermission__Group__7__Impl2531);
                    rule__SitePermission__Group_7__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getSitePermissionAccess().getGroup_7()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__8"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1216:1: rule__SitePermission__Group__8 : rule__SitePermission__Group__8__Impl rule__SitePermission__Group__9 ;
    public final void rule__SitePermission__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1220:1: ( rule__SitePermission__Group__8__Impl rule__SitePermission__Group__9 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1221:2: rule__SitePermission__Group__8__Impl rule__SitePermission__Group__9
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__8__Impl_in_rule__SitePermission__Group__82562);
            rule__SitePermission__Group__8__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group__9_in_rule__SitePermission__Group__82565);
            rule__SitePermission__Group__9();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__8__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1228:1: rule__SitePermission__Group__8__Impl : ( ( rule__SitePermission__Group_8__0 )? ) ;
    public final void rule__SitePermission__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1232:1: ( ( ( rule__SitePermission__Group_8__0 )? ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1233:1: ( ( rule__SitePermission__Group_8__0 )? )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1233:1: ( ( rule__SitePermission__Group_8__0 )? )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1234:1: ( rule__SitePermission__Group_8__0 )?
            {
             before(grammarAccess.getSitePermissionAccess().getGroup_8()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1235:1: ( rule__SitePermission__Group_8__0 )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==46) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1235:2: rule__SitePermission__Group_8__0
                    {
                    pushFollow(FOLLOW_rule__SitePermission__Group_8__0_in_rule__SitePermission__Group__8__Impl2592);
                    rule__SitePermission__Group_8__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getSitePermissionAccess().getGroup_8()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__9"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1245:1: rule__SitePermission__Group__9 : rule__SitePermission__Group__9__Impl ;
    public final void rule__SitePermission__Group__9() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1249:1: ( rule__SitePermission__Group__9__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1250:2: rule__SitePermission__Group__9__Impl
            {
            pushFollow(FOLLOW_rule__SitePermission__Group__9__Impl_in_rule__SitePermission__Group__92623);
            rule__SitePermission__Group__9__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group__9__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1256:1: rule__SitePermission__Group__9__Impl : ( '}' ) ;
    public final void rule__SitePermission__Group__9__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1260:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1261:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1261:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1262:1: '}'
            {
             before(grammarAccess.getSitePermissionAccess().getRightCurlyBracketKeyword_9()); 
            match(input,38,FOLLOW_38_in_rule__SitePermission__Group__9__Impl2651); 
             after(grammarAccess.getSitePermissionAccess().getRightCurlyBracketKeyword_9()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_6__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1295:1: rule__SitePermission__Group_6__0 : rule__SitePermission__Group_6__0__Impl rule__SitePermission__Group_6__1 ;
    public final void rule__SitePermission__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1299:1: ( rule__SitePermission__Group_6__0__Impl rule__SitePermission__Group_6__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1300:2: rule__SitePermission__Group_6__0__Impl rule__SitePermission__Group_6__1
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_6__0__Impl_in_rule__SitePermission__Group_6__02702);
            rule__SitePermission__Group_6__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group_6__1_in_rule__SitePermission__Group_6__02705);
            rule__SitePermission__Group_6__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_6__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1307:1: rule__SitePermission__Group_6__0__Impl : ( 'groups' ) ;
    public final void rule__SitePermission__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1311:1: ( ( 'groups' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1312:1: ( 'groups' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1312:1: ( 'groups' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1313:1: 'groups'
            {
             before(grammarAccess.getSitePermissionAccess().getGroupsKeyword_6_0()); 
            match(input,44,FOLLOW_44_in_rule__SitePermission__Group_6__0__Impl2733); 
             after(grammarAccess.getSitePermissionAccess().getGroupsKeyword_6_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_6__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1326:1: rule__SitePermission__Group_6__1 : rule__SitePermission__Group_6__1__Impl rule__SitePermission__Group_6__2 ;
    public final void rule__SitePermission__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1330:1: ( rule__SitePermission__Group_6__1__Impl rule__SitePermission__Group_6__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1331:2: rule__SitePermission__Group_6__1__Impl rule__SitePermission__Group_6__2
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_6__1__Impl_in_rule__SitePermission__Group_6__12764);
            rule__SitePermission__Group_6__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group_6__2_in_rule__SitePermission__Group_6__12767);
            rule__SitePermission__Group_6__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_6__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1338:1: rule__SitePermission__Group_6__1__Impl : ( '{' ) ;
    public final void rule__SitePermission__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1342:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1343:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1343:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1344:1: '{'
            {
             before(grammarAccess.getSitePermissionAccess().getLeftCurlyBracketKeyword_6_1()); 
            match(input,37,FOLLOW_37_in_rule__SitePermission__Group_6__1__Impl2795); 
             after(grammarAccess.getSitePermissionAccess().getLeftCurlyBracketKeyword_6_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_6__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1357:1: rule__SitePermission__Group_6__2 : rule__SitePermission__Group_6__2__Impl rule__SitePermission__Group_6__3 ;
    public final void rule__SitePermission__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1361:1: ( rule__SitePermission__Group_6__2__Impl rule__SitePermission__Group_6__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1362:2: rule__SitePermission__Group_6__2__Impl rule__SitePermission__Group_6__3
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_6__2__Impl_in_rule__SitePermission__Group_6__22826);
            rule__SitePermission__Group_6__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group_6__3_in_rule__SitePermission__Group_6__22829);
            rule__SitePermission__Group_6__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_6__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1369:1: rule__SitePermission__Group_6__2__Impl : ( ( rule__SitePermission__OwnedGroupAssignment_6_2 )* ) ;
    public final void rule__SitePermission__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1373:1: ( ( ( rule__SitePermission__OwnedGroupAssignment_6_2 )* ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1374:1: ( ( rule__SitePermission__OwnedGroupAssignment_6_2 )* )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1374:1: ( ( rule__SitePermission__OwnedGroupAssignment_6_2 )* )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1375:1: ( rule__SitePermission__OwnedGroupAssignment_6_2 )*
            {
             before(grammarAccess.getSitePermissionAccess().getOwnedGroupAssignment_6_2()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1376:1: ( rule__SitePermission__OwnedGroupAssignment_6_2 )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0==47) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1376:2: rule__SitePermission__OwnedGroupAssignment_6_2
            	    {
            	    pushFollow(FOLLOW_rule__SitePermission__OwnedGroupAssignment_6_2_in_rule__SitePermission__Group_6__2__Impl2856);
            	    rule__SitePermission__OwnedGroupAssignment_6_2();

            	    state._fsp--;


            	    }
            	    break;

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

             after(grammarAccess.getSitePermissionAccess().getOwnedGroupAssignment_6_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_6__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1386:1: rule__SitePermission__Group_6__3 : rule__SitePermission__Group_6__3__Impl ;
    public final void rule__SitePermission__Group_6__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1390:1: ( rule__SitePermission__Group_6__3__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1391:2: rule__SitePermission__Group_6__3__Impl
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_6__3__Impl_in_rule__SitePermission__Group_6__32887);
            rule__SitePermission__Group_6__3__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_6__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1397:1: rule__SitePermission__Group_6__3__Impl : ( '}' ) ;
    public final void rule__SitePermission__Group_6__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1401:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1402:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1402:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1403:1: '}'
            {
             before(grammarAccess.getSitePermissionAccess().getRightCurlyBracketKeyword_6_3()); 
            match(input,38,FOLLOW_38_in_rule__SitePermission__Group_6__3__Impl2915); 
             after(grammarAccess.getSitePermissionAccess().getRightCurlyBracketKeyword_6_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_7__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1424:1: rule__SitePermission__Group_7__0 : rule__SitePermission__Group_7__0__Impl rule__SitePermission__Group_7__1 ;
    public final void rule__SitePermission__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1428:1: ( rule__SitePermission__Group_7__0__Impl rule__SitePermission__Group_7__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1429:2: rule__SitePermission__Group_7__0__Impl rule__SitePermission__Group_7__1
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_7__0__Impl_in_rule__SitePermission__Group_7__02954);
            rule__SitePermission__Group_7__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group_7__1_in_rule__SitePermission__Group_7__02957);
            rule__SitePermission__Group_7__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_7__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1436:1: rule__SitePermission__Group_7__0__Impl : ( 'roleDefinitions' ) ;
    public final void rule__SitePermission__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1440:1: ( ( 'roleDefinitions' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1441:1: ( 'roleDefinitions' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1441:1: ( 'roleDefinitions' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1442:1: 'roleDefinitions'
            {
             before(grammarAccess.getSitePermissionAccess().getRoleDefinitionsKeyword_7_0()); 
            match(input,45,FOLLOW_45_in_rule__SitePermission__Group_7__0__Impl2985); 
             after(grammarAccess.getSitePermissionAccess().getRoleDefinitionsKeyword_7_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_7__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1455:1: rule__SitePermission__Group_7__1 : rule__SitePermission__Group_7__1__Impl rule__SitePermission__Group_7__2 ;
    public final void rule__SitePermission__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1459:1: ( rule__SitePermission__Group_7__1__Impl rule__SitePermission__Group_7__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1460:2: rule__SitePermission__Group_7__1__Impl rule__SitePermission__Group_7__2
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_7__1__Impl_in_rule__SitePermission__Group_7__13016);
            rule__SitePermission__Group_7__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group_7__2_in_rule__SitePermission__Group_7__13019);
            rule__SitePermission__Group_7__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_7__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1467:1: rule__SitePermission__Group_7__1__Impl : ( '{' ) ;
    public final void rule__SitePermission__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1471:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1472:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1472:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1473:1: '{'
            {
             before(grammarAccess.getSitePermissionAccess().getLeftCurlyBracketKeyword_7_1()); 
            match(input,37,FOLLOW_37_in_rule__SitePermission__Group_7__1__Impl3047); 
             after(grammarAccess.getSitePermissionAccess().getLeftCurlyBracketKeyword_7_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_7__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1486:1: rule__SitePermission__Group_7__2 : rule__SitePermission__Group_7__2__Impl rule__SitePermission__Group_7__3 ;
    public final void rule__SitePermission__Group_7__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1490:1: ( rule__SitePermission__Group_7__2__Impl rule__SitePermission__Group_7__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1491:2: rule__SitePermission__Group_7__2__Impl rule__SitePermission__Group_7__3
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_7__2__Impl_in_rule__SitePermission__Group_7__23078);
            rule__SitePermission__Group_7__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group_7__3_in_rule__SitePermission__Group_7__23081);
            rule__SitePermission__Group_7__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_7__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1498:1: rule__SitePermission__Group_7__2__Impl : ( ( rule__SitePermission__OwnedRoleDefinitionAssignment_7_2 )* ) ;
    public final void rule__SitePermission__Group_7__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1502:1: ( ( ( rule__SitePermission__OwnedRoleDefinitionAssignment_7_2 )* ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1503:1: ( ( rule__SitePermission__OwnedRoleDefinitionAssignment_7_2 )* )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1503:1: ( ( rule__SitePermission__OwnedRoleDefinitionAssignment_7_2 )* )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1504:1: ( rule__SitePermission__OwnedRoleDefinitionAssignment_7_2 )*
            {
             before(grammarAccess.getSitePermissionAccess().getOwnedRoleDefinitionAssignment_7_2()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1505:1: ( rule__SitePermission__OwnedRoleDefinitionAssignment_7_2 )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

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


                switch (alt10) {
            	case 1 :
            	    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1505:2: rule__SitePermission__OwnedRoleDefinitionAssignment_7_2
            	    {
            	    pushFollow(FOLLOW_rule__SitePermission__OwnedRoleDefinitionAssignment_7_2_in_rule__SitePermission__Group_7__2__Impl3108);
            	    rule__SitePermission__OwnedRoleDefinitionAssignment_7_2();

            	    state._fsp--;


            	    }
            	    break;

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

             after(grammarAccess.getSitePermissionAccess().getOwnedRoleDefinitionAssignment_7_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_7__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1515:1: rule__SitePermission__Group_7__3 : rule__SitePermission__Group_7__3__Impl ;
    public final void rule__SitePermission__Group_7__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1519:1: ( rule__SitePermission__Group_7__3__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1520:2: rule__SitePermission__Group_7__3__Impl
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_7__3__Impl_in_rule__SitePermission__Group_7__33139);
            rule__SitePermission__Group_7__3__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_7__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1526:1: rule__SitePermission__Group_7__3__Impl : ( '}' ) ;
    public final void rule__SitePermission__Group_7__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1530:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1531:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1531:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1532:1: '}'
            {
             before(grammarAccess.getSitePermissionAccess().getRightCurlyBracketKeyword_7_3()); 
            match(input,38,FOLLOW_38_in_rule__SitePermission__Group_7__3__Impl3167); 
             after(grammarAccess.getSitePermissionAccess().getRightCurlyBracketKeyword_7_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_8__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1553:1: rule__SitePermission__Group_8__0 : rule__SitePermission__Group_8__0__Impl rule__SitePermission__Group_8__1 ;
    public final void rule__SitePermission__Group_8__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1557:1: ( rule__SitePermission__Group_8__0__Impl rule__SitePermission__Group_8__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1558:2: rule__SitePermission__Group_8__0__Impl rule__SitePermission__Group_8__1
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_8__0__Impl_in_rule__SitePermission__Group_8__03206);
            rule__SitePermission__Group_8__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group_8__1_in_rule__SitePermission__Group_8__03209);
            rule__SitePermission__Group_8__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_8__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1565:1: rule__SitePermission__Group_8__0__Impl : ( 'roleAssignments' ) ;
    public final void rule__SitePermission__Group_8__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1569:1: ( ( 'roleAssignments' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1570:1: ( 'roleAssignments' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1570:1: ( 'roleAssignments' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1571:1: 'roleAssignments'
            {
             before(grammarAccess.getSitePermissionAccess().getRoleAssignmentsKeyword_8_0()); 
            match(input,46,FOLLOW_46_in_rule__SitePermission__Group_8__0__Impl3237); 
             after(grammarAccess.getSitePermissionAccess().getRoleAssignmentsKeyword_8_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_8__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1584:1: rule__SitePermission__Group_8__1 : rule__SitePermission__Group_8__1__Impl rule__SitePermission__Group_8__2 ;
    public final void rule__SitePermission__Group_8__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1588:1: ( rule__SitePermission__Group_8__1__Impl rule__SitePermission__Group_8__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1589:2: rule__SitePermission__Group_8__1__Impl rule__SitePermission__Group_8__2
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_8__1__Impl_in_rule__SitePermission__Group_8__13268);
            rule__SitePermission__Group_8__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group_8__2_in_rule__SitePermission__Group_8__13271);
            rule__SitePermission__Group_8__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_8__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1596:1: rule__SitePermission__Group_8__1__Impl : ( '{' ) ;
    public final void rule__SitePermission__Group_8__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1600:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1601:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1601:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1602:1: '{'
            {
             before(grammarAccess.getSitePermissionAccess().getLeftCurlyBracketKeyword_8_1()); 
            match(input,37,FOLLOW_37_in_rule__SitePermission__Group_8__1__Impl3299); 
             after(grammarAccess.getSitePermissionAccess().getLeftCurlyBracketKeyword_8_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_8__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1615:1: rule__SitePermission__Group_8__2 : rule__SitePermission__Group_8__2__Impl rule__SitePermission__Group_8__3 ;
    public final void rule__SitePermission__Group_8__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1619:1: ( rule__SitePermission__Group_8__2__Impl rule__SitePermission__Group_8__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1620:2: rule__SitePermission__Group_8__2__Impl rule__SitePermission__Group_8__3
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_8__2__Impl_in_rule__SitePermission__Group_8__23330);
            rule__SitePermission__Group_8__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__SitePermission__Group_8__3_in_rule__SitePermission__Group_8__23333);
            rule__SitePermission__Group_8__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_8__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1627:1: rule__SitePermission__Group_8__2__Impl : ( ( rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2 )* ) ;
    public final void rule__SitePermission__Group_8__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1631:1: ( ( ( rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2 )* ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1632:1: ( ( rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2 )* )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1632:1: ( ( rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2 )* )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1633:1: ( rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2 )*
            {
             before(grammarAccess.getSitePermissionAccess().getOwnedRoleAssignmentsAssignment_8_2()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1634:1: ( rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2 )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0==52) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1634:2: rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2
            	    {
            	    pushFollow(FOLLOW_rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2_in_rule__SitePermission__Group_8__2__Impl3360);
            	    rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2();

            	    state._fsp--;


            	    }
            	    break;

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

             after(grammarAccess.getSitePermissionAccess().getOwnedRoleAssignmentsAssignment_8_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_8__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1644:1: rule__SitePermission__Group_8__3 : rule__SitePermission__Group_8__3__Impl ;
    public final void rule__SitePermission__Group_8__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1648:1: ( rule__SitePermission__Group_8__3__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1649:2: rule__SitePermission__Group_8__3__Impl
            {
            pushFollow(FOLLOW_rule__SitePermission__Group_8__3__Impl_in_rule__SitePermission__Group_8__33391);
            rule__SitePermission__Group_8__3__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__Group_8__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1655:1: rule__SitePermission__Group_8__3__Impl : ( '}' ) ;
    public final void rule__SitePermission__Group_8__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1659:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1660:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1660:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1661:1: '}'
            {
             before(grammarAccess.getSitePermissionAccess().getRightCurlyBracketKeyword_8_3()); 
            match(input,38,FOLLOW_38_in_rule__SitePermission__Group_8__3__Impl3419); 
             after(grammarAccess.getSitePermissionAccess().getRightCurlyBracketKeyword_8_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1682:1: rule__Group__Group__0 : rule__Group__Group__0__Impl rule__Group__Group__1 ;
    public final void rule__Group__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1686:1: ( rule__Group__Group__0__Impl rule__Group__Group__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1687:2: rule__Group__Group__0__Impl rule__Group__Group__1
            {
            pushFollow(FOLLOW_rule__Group__Group__0__Impl_in_rule__Group__Group__03458);
            rule__Group__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Group__Group__1_in_rule__Group__Group__03461);
            rule__Group__Group__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1694:1: rule__Group__Group__0__Impl : ( 'Group' ) ;
    public final void rule__Group__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1698:1: ( ( 'Group' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1699:1: ( 'Group' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1699:1: ( 'Group' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1700:1: 'Group'
            {
             before(grammarAccess.getGroupAccess().getGroupKeyword_0()); 
            match(input,47,FOLLOW_47_in_rule__Group__Group__0__Impl3489); 
             after(grammarAccess.getGroupAccess().getGroupKeyword_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1713:1: rule__Group__Group__1 : rule__Group__Group__1__Impl rule__Group__Group__2 ;
    public final void rule__Group__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1717:1: ( rule__Group__Group__1__Impl rule__Group__Group__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1718:2: rule__Group__Group__1__Impl rule__Group__Group__2
            {
            pushFollow(FOLLOW_rule__Group__Group__1__Impl_in_rule__Group__Group__13520);
            rule__Group__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Group__Group__2_in_rule__Group__Group__13523);
            rule__Group__Group__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1725:1: rule__Group__Group__1__Impl : ( ( rule__Group__NameAssignment_1 ) ) ;
    public final void rule__Group__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1729:1: ( ( ( rule__Group__NameAssignment_1 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1730:1: ( ( rule__Group__NameAssignment_1 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1730:1: ( ( rule__Group__NameAssignment_1 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1731:1: ( rule__Group__NameAssignment_1 )
            {
             before(grammarAccess.getGroupAccess().getNameAssignment_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1732:1: ( rule__Group__NameAssignment_1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1732:2: rule__Group__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Group__NameAssignment_1_in_rule__Group__Group__1__Impl3550);
            rule__Group__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getGroupAccess().getNameAssignment_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1742:1: rule__Group__Group__2 : rule__Group__Group__2__Impl rule__Group__Group__3 ;
    public final void rule__Group__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1746:1: ( rule__Group__Group__2__Impl rule__Group__Group__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1747:2: rule__Group__Group__2__Impl rule__Group__Group__3
            {
            pushFollow(FOLLOW_rule__Group__Group__2__Impl_in_rule__Group__Group__23580);
            rule__Group__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Group__Group__3_in_rule__Group__Group__23583);
            rule__Group__Group__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1754:1: rule__Group__Group__2__Impl : ( '{' ) ;
    public final void rule__Group__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1758:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1759:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1759:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1760:1: '{'
            {
             before(grammarAccess.getGroupAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,37,FOLLOW_37_in_rule__Group__Group__2__Impl3611); 
             after(grammarAccess.getGroupAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1773:1: rule__Group__Group__3 : rule__Group__Group__3__Impl rule__Group__Group__4 ;
    public final void rule__Group__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1777:1: ( rule__Group__Group__3__Impl rule__Group__Group__4 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1778:2: rule__Group__Group__3__Impl rule__Group__Group__4
            {
            pushFollow(FOLLOW_rule__Group__Group__3__Impl_in_rule__Group__Group__33642);
            rule__Group__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Group__Group__4_in_rule__Group__Group__33645);
            rule__Group__Group__4();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1785:1: rule__Group__Group__3__Impl : ( ( rule__Group__Group_3__0 )? ) ;
    public final void rule__Group__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1789:1: ( ( ( rule__Group__Group_3__0 )? ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1790:1: ( ( rule__Group__Group_3__0 )? )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1790:1: ( ( rule__Group__Group_3__0 )? )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1791:1: ( rule__Group__Group_3__0 )?
            {
             before(grammarAccess.getGroupAccess().getGroup_3()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1792:1: ( rule__Group__Group_3__0 )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==39) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1792:2: rule__Group__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__Group__Group_3__0_in_rule__Group__Group__3__Impl3672);
                    rule__Group__Group_3__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getGroupAccess().getGroup_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__4"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1802:1: rule__Group__Group__4 : rule__Group__Group__4__Impl ;
    public final void rule__Group__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1806:1: ( rule__Group__Group__4__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1807:2: rule__Group__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Group__Group__4__Impl_in_rule__Group__Group__43703);
            rule__Group__Group__4__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group__4__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1813:1: rule__Group__Group__4__Impl : ( '}' ) ;
    public final void rule__Group__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1817:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1818:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1818:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1819:1: '}'
            {
             before(grammarAccess.getGroupAccess().getRightCurlyBracketKeyword_4()); 
            match(input,38,FOLLOW_38_in_rule__Group__Group__4__Impl3731); 
             after(grammarAccess.getGroupAccess().getRightCurlyBracketKeyword_4()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1842:1: rule__Group__Group_3__0 : rule__Group__Group_3__0__Impl rule__Group__Group_3__1 ;
    public final void rule__Group__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1846:1: ( rule__Group__Group_3__0__Impl rule__Group__Group_3__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1847:2: rule__Group__Group_3__0__Impl rule__Group__Group_3__1
            {
            pushFollow(FOLLOW_rule__Group__Group_3__0__Impl_in_rule__Group__Group_3__03772);
            rule__Group__Group_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Group__Group_3__1_in_rule__Group__Group_3__03775);
            rule__Group__Group_3__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1854:1: rule__Group__Group_3__0__Impl : ( 'users' ) ;
    public final void rule__Group__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1858:1: ( ( 'users' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1859:1: ( 'users' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1859:1: ( 'users' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1860:1: 'users'
            {
             before(grammarAccess.getGroupAccess().getUsersKeyword_3_0()); 
            match(input,39,FOLLOW_39_in_rule__Group__Group_3__0__Impl3803); 
             after(grammarAccess.getGroupAccess().getUsersKeyword_3_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1873:1: rule__Group__Group_3__1 : rule__Group__Group_3__1__Impl rule__Group__Group_3__2 ;
    public final void rule__Group__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1877:1: ( rule__Group__Group_3__1__Impl rule__Group__Group_3__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1878:2: rule__Group__Group_3__1__Impl rule__Group__Group_3__2
            {
            pushFollow(FOLLOW_rule__Group__Group_3__1__Impl_in_rule__Group__Group_3__13834);
            rule__Group__Group_3__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Group__Group_3__2_in_rule__Group__Group_3__13837);
            rule__Group__Group_3__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1885:1: rule__Group__Group_3__1__Impl : ( '(' ) ;
    public final void rule__Group__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1889:1: ( ( '(' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1890:1: ( '(' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1890:1: ( '(' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1891:1: '('
            {
             before(grammarAccess.getGroupAccess().getLeftParenthesisKeyword_3_1()); 
            match(input,48,FOLLOW_48_in_rule__Group__Group_3__1__Impl3865); 
             after(grammarAccess.getGroupAccess().getLeftParenthesisKeyword_3_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1904:1: rule__Group__Group_3__2 : rule__Group__Group_3__2__Impl rule__Group__Group_3__3 ;
    public final void rule__Group__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1908:1: ( rule__Group__Group_3__2__Impl rule__Group__Group_3__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1909:2: rule__Group__Group_3__2__Impl rule__Group__Group_3__3
            {
            pushFollow(FOLLOW_rule__Group__Group_3__2__Impl_in_rule__Group__Group_3__23896);
            rule__Group__Group_3__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Group__Group_3__3_in_rule__Group__Group_3__23899);
            rule__Group__Group_3__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1916:1: rule__Group__Group_3__2__Impl : ( ( rule__Group__UsersAssignment_3_2 ) ) ;
    public final void rule__Group__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1920:1: ( ( ( rule__Group__UsersAssignment_3_2 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1921:1: ( ( rule__Group__UsersAssignment_3_2 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1921:1: ( ( rule__Group__UsersAssignment_3_2 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1922:1: ( rule__Group__UsersAssignment_3_2 )
            {
             before(grammarAccess.getGroupAccess().getUsersAssignment_3_2()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1923:1: ( rule__Group__UsersAssignment_3_2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1923:2: rule__Group__UsersAssignment_3_2
            {
            pushFollow(FOLLOW_rule__Group__UsersAssignment_3_2_in_rule__Group__Group_3__2__Impl3926);
            rule__Group__UsersAssignment_3_2();

            state._fsp--;


            }

             after(grammarAccess.getGroupAccess().getUsersAssignment_3_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1933:1: rule__Group__Group_3__3 : rule__Group__Group_3__3__Impl rule__Group__Group_3__4 ;
    public final void rule__Group__Group_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1937:1: ( rule__Group__Group_3__3__Impl rule__Group__Group_3__4 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1938:2: rule__Group__Group_3__3__Impl rule__Group__Group_3__4
            {
            pushFollow(FOLLOW_rule__Group__Group_3__3__Impl_in_rule__Group__Group_3__33956);
            rule__Group__Group_3__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Group__Group_3__4_in_rule__Group__Group_3__33959);
            rule__Group__Group_3__4();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1945:1: rule__Group__Group_3__3__Impl : ( ( rule__Group__Group_3_3__0 )* ) ;
    public final void rule__Group__Group_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1949:1: ( ( ( rule__Group__Group_3_3__0 )* ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1950:1: ( ( rule__Group__Group_3_3__0 )* )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1950:1: ( ( rule__Group__Group_3_3__0 )* )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1951:1: ( rule__Group__Group_3_3__0 )*
            {
             before(grammarAccess.getGroupAccess().getGroup_3_3()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1952:1: ( rule__Group__Group_3_3__0 )*
            loop13:
            do {
                int alt13=2;
                int LA13_0 = input.LA(1);

                if ( (LA13_0==50) ) {
                    alt13=1;
                }


                switch (alt13) {
            	case 1 :
            	    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1952:2: rule__Group__Group_3_3__0
            	    {
            	    pushFollow(FOLLOW_rule__Group__Group_3_3__0_in_rule__Group__Group_3__3__Impl3986);
            	    rule__Group__Group_3_3__0();

            	    state._fsp--;


            	    }
            	    break;

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

             after(grammarAccess.getGroupAccess().getGroup_3_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__4"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1962:1: rule__Group__Group_3__4 : rule__Group__Group_3__4__Impl ;
    public final void rule__Group__Group_3__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1966:1: ( rule__Group__Group_3__4__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1967:2: rule__Group__Group_3__4__Impl
            {
            pushFollow(FOLLOW_rule__Group__Group_3__4__Impl_in_rule__Group__Group_3__44017);
            rule__Group__Group_3__4__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3__4__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1973:1: rule__Group__Group_3__4__Impl : ( ')' ) ;
    public final void rule__Group__Group_3__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1977:1: ( ( ')' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1978:1: ( ')' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1978:1: ( ')' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:1979:1: ')'
            {
             before(grammarAccess.getGroupAccess().getRightParenthesisKeyword_3_4()); 
            match(input,49,FOLLOW_49_in_rule__Group__Group_3__4__Impl4045); 
             after(grammarAccess.getGroupAccess().getRightParenthesisKeyword_3_4()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3_3__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2002:1: rule__Group__Group_3_3__0 : rule__Group__Group_3_3__0__Impl rule__Group__Group_3_3__1 ;
    public final void rule__Group__Group_3_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2006:1: ( rule__Group__Group_3_3__0__Impl rule__Group__Group_3_3__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2007:2: rule__Group__Group_3_3__0__Impl rule__Group__Group_3_3__1
            {
            pushFollow(FOLLOW_rule__Group__Group_3_3__0__Impl_in_rule__Group__Group_3_3__04086);
            rule__Group__Group_3_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Group__Group_3_3__1_in_rule__Group__Group_3_3__04089);
            rule__Group__Group_3_3__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3_3__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2014:1: rule__Group__Group_3_3__0__Impl : ( ',' ) ;
    public final void rule__Group__Group_3_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2018:1: ( ( ',' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2019:1: ( ',' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2019:1: ( ',' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2020:1: ','
            {
             before(grammarAccess.getGroupAccess().getCommaKeyword_3_3_0()); 
            match(input,50,FOLLOW_50_in_rule__Group__Group_3_3__0__Impl4117); 
             after(grammarAccess.getGroupAccess().getCommaKeyword_3_3_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3_3__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2033:1: rule__Group__Group_3_3__1 : rule__Group__Group_3_3__1__Impl ;
    public final void rule__Group__Group_3_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2037:1: ( rule__Group__Group_3_3__1__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2038:2: rule__Group__Group_3_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Group__Group_3_3__1__Impl_in_rule__Group__Group_3_3__14148);
            rule__Group__Group_3_3__1__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__Group_3_3__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2044:1: rule__Group__Group_3_3__1__Impl : ( ( rule__Group__UsersAssignment_3_3_1 ) ) ;
    public final void rule__Group__Group_3_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2048:1: ( ( ( rule__Group__UsersAssignment_3_3_1 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2049:1: ( ( rule__Group__UsersAssignment_3_3_1 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2049:1: ( ( rule__Group__UsersAssignment_3_3_1 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2050:1: ( rule__Group__UsersAssignment_3_3_1 )
            {
             before(grammarAccess.getGroupAccess().getUsersAssignment_3_3_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2051:1: ( rule__Group__UsersAssignment_3_3_1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2051:2: rule__Group__UsersAssignment_3_3_1
            {
            pushFollow(FOLLOW_rule__Group__UsersAssignment_3_3_1_in_rule__Group__Group_3_3__1__Impl4175);
            rule__Group__UsersAssignment_3_3_1();

            state._fsp--;


            }

             after(grammarAccess.getGroupAccess().getUsersAssignment_3_3_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__User__Group__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2065:1: rule__User__Group__0 : rule__User__Group__0__Impl rule__User__Group__1 ;
    public final void rule__User__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2069:1: ( rule__User__Group__0__Impl rule__User__Group__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2070:2: rule__User__Group__0__Impl rule__User__Group__1
            {
            pushFollow(FOLLOW_rule__User__Group__0__Impl_in_rule__User__Group__04209);
            rule__User__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__User__Group__1_in_rule__User__Group__04212);
            rule__User__Group__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__User__Group__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2077:1: rule__User__Group__0__Impl : ( 'User' ) ;
    public final void rule__User__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2081:1: ( ( 'User' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2082:1: ( 'User' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2082:1: ( 'User' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2083:1: 'User'
            {
             before(grammarAccess.getUserAccess().getUserKeyword_0()); 
            match(input,51,FOLLOW_51_in_rule__User__Group__0__Impl4240); 
             after(grammarAccess.getUserAccess().getUserKeyword_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__User__Group__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2096:1: rule__User__Group__1 : rule__User__Group__1__Impl rule__User__Group__2 ;
    public final void rule__User__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2100:1: ( rule__User__Group__1__Impl rule__User__Group__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2101:2: rule__User__Group__1__Impl rule__User__Group__2
            {
            pushFollow(FOLLOW_rule__User__Group__1__Impl_in_rule__User__Group__14271);
            rule__User__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__User__Group__2_in_rule__User__Group__14274);
            rule__User__Group__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__User__Group__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2108:1: rule__User__Group__1__Impl : ( ( rule__User__NameAssignment_1 ) ) ;
    public final void rule__User__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2112:1: ( ( ( rule__User__NameAssignment_1 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2113:1: ( ( rule__User__NameAssignment_1 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2113:1: ( ( rule__User__NameAssignment_1 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2114:1: ( rule__User__NameAssignment_1 )
            {
             before(grammarAccess.getUserAccess().getNameAssignment_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2115:1: ( rule__User__NameAssignment_1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2115:2: rule__User__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__User__NameAssignment_1_in_rule__User__Group__1__Impl4301);
            rule__User__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getUserAccess().getNameAssignment_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__User__Group__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2125:1: rule__User__Group__2 : rule__User__Group__2__Impl rule__User__Group__3 ;
    public final void rule__User__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2129:1: ( rule__User__Group__2__Impl rule__User__Group__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2130:2: rule__User__Group__2__Impl rule__User__Group__3
            {
            pushFollow(FOLLOW_rule__User__Group__2__Impl_in_rule__User__Group__24331);
            rule__User__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__User__Group__3_in_rule__User__Group__24334);
            rule__User__Group__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__User__Group__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2137:1: rule__User__Group__2__Impl : ( '{' ) ;
    public final void rule__User__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2141:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2142:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2142:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2143:1: '{'
            {
             before(grammarAccess.getUserAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,37,FOLLOW_37_in_rule__User__Group__2__Impl4362); 
             after(grammarAccess.getUserAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__User__Group__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2156:1: rule__User__Group__3 : rule__User__Group__3__Impl ;
    public final void rule__User__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2160:1: ( rule__User__Group__3__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2161:2: rule__User__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__User__Group__3__Impl_in_rule__User__Group__34393);
            rule__User__Group__3__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__User__Group__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2167:1: rule__User__Group__3__Impl : ( '}' ) ;
    public final void rule__User__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2171:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2172:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2172:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2173:1: '}'
            {
             before(grammarAccess.getUserAccess().getRightCurlyBracketKeyword_3()); 
            match(input,38,FOLLOW_38_in_rule__User__Group__3__Impl4421); 
             after(grammarAccess.getUserAccess().getRightCurlyBracketKeyword_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2194:1: rule__RoleAssignment__Group__0 : rule__RoleAssignment__Group__0__Impl rule__RoleAssignment__Group__1 ;
    public final void rule__RoleAssignment__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2198:1: ( rule__RoleAssignment__Group__0__Impl rule__RoleAssignment__Group__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2199:2: rule__RoleAssignment__Group__0__Impl rule__RoleAssignment__Group__1
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group__0__Impl_in_rule__RoleAssignment__Group__04460);
            rule__RoleAssignment__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group__1_in_rule__RoleAssignment__Group__04463);
            rule__RoleAssignment__Group__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2206:1: rule__RoleAssignment__Group__0__Impl : ( 'RoleAssignment' ) ;
    public final void rule__RoleAssignment__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2210:1: ( ( 'RoleAssignment' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2211:1: ( 'RoleAssignment' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2211:1: ( 'RoleAssignment' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2212:1: 'RoleAssignment'
            {
             before(grammarAccess.getRoleAssignmentAccess().getRoleAssignmentKeyword_0()); 
            match(input,52,FOLLOW_52_in_rule__RoleAssignment__Group__0__Impl4491); 
             after(grammarAccess.getRoleAssignmentAccess().getRoleAssignmentKeyword_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2225:1: rule__RoleAssignment__Group__1 : rule__RoleAssignment__Group__1__Impl rule__RoleAssignment__Group__2 ;
    public final void rule__RoleAssignment__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2229:1: ( rule__RoleAssignment__Group__1__Impl rule__RoleAssignment__Group__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2230:2: rule__RoleAssignment__Group__1__Impl rule__RoleAssignment__Group__2
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group__1__Impl_in_rule__RoleAssignment__Group__14522);
            rule__RoleAssignment__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group__2_in_rule__RoleAssignment__Group__14525);
            rule__RoleAssignment__Group__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2237:1: rule__RoleAssignment__Group__1__Impl : ( ( rule__RoleAssignment__NameAssignment_1 ) ) ;
    public final void rule__RoleAssignment__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2241:1: ( ( ( rule__RoleAssignment__NameAssignment_1 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2242:1: ( ( rule__RoleAssignment__NameAssignment_1 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2242:1: ( ( rule__RoleAssignment__NameAssignment_1 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2243:1: ( rule__RoleAssignment__NameAssignment_1 )
            {
             before(grammarAccess.getRoleAssignmentAccess().getNameAssignment_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2244:1: ( rule__RoleAssignment__NameAssignment_1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2244:2: rule__RoleAssignment__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__RoleAssignment__NameAssignment_1_in_rule__RoleAssignment__Group__1__Impl4552);
            rule__RoleAssignment__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getRoleAssignmentAccess().getNameAssignment_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2254:1: rule__RoleAssignment__Group__2 : rule__RoleAssignment__Group__2__Impl rule__RoleAssignment__Group__3 ;
    public final void rule__RoleAssignment__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2258:1: ( rule__RoleAssignment__Group__2__Impl rule__RoleAssignment__Group__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2259:2: rule__RoleAssignment__Group__2__Impl rule__RoleAssignment__Group__3
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group__2__Impl_in_rule__RoleAssignment__Group__24582);
            rule__RoleAssignment__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group__3_in_rule__RoleAssignment__Group__24585);
            rule__RoleAssignment__Group__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2266:1: rule__RoleAssignment__Group__2__Impl : ( '{' ) ;
    public final void rule__RoleAssignment__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2270:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2271:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2271:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2272:1: '{'
            {
             before(grammarAccess.getRoleAssignmentAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,37,FOLLOW_37_in_rule__RoleAssignment__Group__2__Impl4613); 
             after(grammarAccess.getRoleAssignmentAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2285:1: rule__RoleAssignment__Group__3 : rule__RoleAssignment__Group__3__Impl rule__RoleAssignment__Group__4 ;
    public final void rule__RoleAssignment__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2289:1: ( rule__RoleAssignment__Group__3__Impl rule__RoleAssignment__Group__4 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2290:2: rule__RoleAssignment__Group__3__Impl rule__RoleAssignment__Group__4
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group__3__Impl_in_rule__RoleAssignment__Group__34644);
            rule__RoleAssignment__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group__4_in_rule__RoleAssignment__Group__34647);
            rule__RoleAssignment__Group__4();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2297:1: rule__RoleAssignment__Group__3__Impl : ( 'member' ) ;
    public final void rule__RoleAssignment__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2301:1: ( ( 'member' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2302:1: ( 'member' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2302:1: ( 'member' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2303:1: 'member'
            {
             before(grammarAccess.getRoleAssignmentAccess().getMemberKeyword_3()); 
            match(input,53,FOLLOW_53_in_rule__RoleAssignment__Group__3__Impl4675); 
             after(grammarAccess.getRoleAssignmentAccess().getMemberKeyword_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__4"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2316:1: rule__RoleAssignment__Group__4 : rule__RoleAssignment__Group__4__Impl rule__RoleAssignment__Group__5 ;
    public final void rule__RoleAssignment__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2320:1: ( rule__RoleAssignment__Group__4__Impl rule__RoleAssignment__Group__5 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2321:2: rule__RoleAssignment__Group__4__Impl rule__RoleAssignment__Group__5
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group__4__Impl_in_rule__RoleAssignment__Group__44706);
            rule__RoleAssignment__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group__5_in_rule__RoleAssignment__Group__44709);
            rule__RoleAssignment__Group__5();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__4__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2328:1: rule__RoleAssignment__Group__4__Impl : ( '=' ) ;
    public final void rule__RoleAssignment__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2332:1: ( ( '=' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2333:1: ( '=' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2333:1: ( '=' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2334:1: '='
            {
             before(grammarAccess.getRoleAssignmentAccess().getEqualsSignKeyword_4()); 
            match(input,43,FOLLOW_43_in_rule__RoleAssignment__Group__4__Impl4737); 
             after(grammarAccess.getRoleAssignmentAccess().getEqualsSignKeyword_4()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__5"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2347:1: rule__RoleAssignment__Group__5 : rule__RoleAssignment__Group__5__Impl rule__RoleAssignment__Group__6 ;
    public final void rule__RoleAssignment__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2351:1: ( rule__RoleAssignment__Group__5__Impl rule__RoleAssignment__Group__6 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2352:2: rule__RoleAssignment__Group__5__Impl rule__RoleAssignment__Group__6
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group__5__Impl_in_rule__RoleAssignment__Group__54768);
            rule__RoleAssignment__Group__5__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group__6_in_rule__RoleAssignment__Group__54771);
            rule__RoleAssignment__Group__6();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__5__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2359:1: rule__RoleAssignment__Group__5__Impl : ( ( rule__RoleAssignment__MemberAssignment_5 ) ) ;
    public final void rule__RoleAssignment__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2363:1: ( ( ( rule__RoleAssignment__MemberAssignment_5 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2364:1: ( ( rule__RoleAssignment__MemberAssignment_5 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2364:1: ( ( rule__RoleAssignment__MemberAssignment_5 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2365:1: ( rule__RoleAssignment__MemberAssignment_5 )
            {
             before(grammarAccess.getRoleAssignmentAccess().getMemberAssignment_5()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2366:1: ( rule__RoleAssignment__MemberAssignment_5 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2366:2: rule__RoleAssignment__MemberAssignment_5
            {
            pushFollow(FOLLOW_rule__RoleAssignment__MemberAssignment_5_in_rule__RoleAssignment__Group__5__Impl4798);
            rule__RoleAssignment__MemberAssignment_5();

            state._fsp--;


            }

             after(grammarAccess.getRoleAssignmentAccess().getMemberAssignment_5()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__6"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2376:1: rule__RoleAssignment__Group__6 : rule__RoleAssignment__Group__6__Impl rule__RoleAssignment__Group__7 ;
    public final void rule__RoleAssignment__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2380:1: ( rule__RoleAssignment__Group__6__Impl rule__RoleAssignment__Group__7 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2381:2: rule__RoleAssignment__Group__6__Impl rule__RoleAssignment__Group__7
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group__6__Impl_in_rule__RoleAssignment__Group__64828);
            rule__RoleAssignment__Group__6__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group__7_in_rule__RoleAssignment__Group__64831);
            rule__RoleAssignment__Group__7();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__6__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2388:1: rule__RoleAssignment__Group__6__Impl : ( ( rule__RoleAssignment__Group_6__0 )? ) ;
    public final void rule__RoleAssignment__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2392:1: ( ( ( rule__RoleAssignment__Group_6__0 )? ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2393:1: ( ( rule__RoleAssignment__Group_6__0 )? )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2393:1: ( ( rule__RoleAssignment__Group_6__0 )? )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2394:1: ( rule__RoleAssignment__Group_6__0 )?
            {
             before(grammarAccess.getRoleAssignmentAccess().getGroup_6()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2395:1: ( rule__RoleAssignment__Group_6__0 )?
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==54) ) {
                alt14=1;
            }
            switch (alt14) {
                case 1 :
                    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2395:2: rule__RoleAssignment__Group_6__0
                    {
                    pushFollow(FOLLOW_rule__RoleAssignment__Group_6__0_in_rule__RoleAssignment__Group__6__Impl4858);
                    rule__RoleAssignment__Group_6__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getRoleAssignmentAccess().getGroup_6()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__7"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2405:1: rule__RoleAssignment__Group__7 : rule__RoleAssignment__Group__7__Impl ;
    public final void rule__RoleAssignment__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2409:1: ( rule__RoleAssignment__Group__7__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2410:2: rule__RoleAssignment__Group__7__Impl
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group__7__Impl_in_rule__RoleAssignment__Group__74889);
            rule__RoleAssignment__Group__7__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group__7__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2416:1: rule__RoleAssignment__Group__7__Impl : ( '}' ) ;
    public final void rule__RoleAssignment__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2420:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2421:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2421:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2422:1: '}'
            {
             before(grammarAccess.getRoleAssignmentAccess().getRightCurlyBracketKeyword_7()); 
            match(input,38,FOLLOW_38_in_rule__RoleAssignment__Group__7__Impl4917); 
             after(grammarAccess.getRoleAssignmentAccess().getRightCurlyBracketKeyword_7()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2451:1: rule__RoleAssignment__Group_6__0 : rule__RoleAssignment__Group_6__0__Impl rule__RoleAssignment__Group_6__1 ;
    public final void rule__RoleAssignment__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2455:1: ( rule__RoleAssignment__Group_6__0__Impl rule__RoleAssignment__Group_6__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2456:2: rule__RoleAssignment__Group_6__0__Impl rule__RoleAssignment__Group_6__1
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group_6__0__Impl_in_rule__RoleAssignment__Group_6__04964);
            rule__RoleAssignment__Group_6__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group_6__1_in_rule__RoleAssignment__Group_6__04967);
            rule__RoleAssignment__Group_6__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2463:1: rule__RoleAssignment__Group_6__0__Impl : ( 'roleDefinitionBindings' ) ;
    public final void rule__RoleAssignment__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2467:1: ( ( 'roleDefinitionBindings' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2468:1: ( 'roleDefinitionBindings' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2468:1: ( 'roleDefinitionBindings' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2469:1: 'roleDefinitionBindings'
            {
             before(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsKeyword_6_0()); 
            match(input,54,FOLLOW_54_in_rule__RoleAssignment__Group_6__0__Impl4995); 
             after(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsKeyword_6_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2482:1: rule__RoleAssignment__Group_6__1 : rule__RoleAssignment__Group_6__1__Impl rule__RoleAssignment__Group_6__2 ;
    public final void rule__RoleAssignment__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2486:1: ( rule__RoleAssignment__Group_6__1__Impl rule__RoleAssignment__Group_6__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2487:2: rule__RoleAssignment__Group_6__1__Impl rule__RoleAssignment__Group_6__2
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group_6__1__Impl_in_rule__RoleAssignment__Group_6__15026);
            rule__RoleAssignment__Group_6__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group_6__2_in_rule__RoleAssignment__Group_6__15029);
            rule__RoleAssignment__Group_6__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2494:1: rule__RoleAssignment__Group_6__1__Impl : ( '(' ) ;
    public final void rule__RoleAssignment__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2498:1: ( ( '(' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2499:1: ( '(' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2499:1: ( '(' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2500:1: '('
            {
             before(grammarAccess.getRoleAssignmentAccess().getLeftParenthesisKeyword_6_1()); 
            match(input,48,FOLLOW_48_in_rule__RoleAssignment__Group_6__1__Impl5057); 
             after(grammarAccess.getRoleAssignmentAccess().getLeftParenthesisKeyword_6_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2513:1: rule__RoleAssignment__Group_6__2 : rule__RoleAssignment__Group_6__2__Impl rule__RoleAssignment__Group_6__3 ;
    public final void rule__RoleAssignment__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2517:1: ( rule__RoleAssignment__Group_6__2__Impl rule__RoleAssignment__Group_6__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2518:2: rule__RoleAssignment__Group_6__2__Impl rule__RoleAssignment__Group_6__3
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group_6__2__Impl_in_rule__RoleAssignment__Group_6__25088);
            rule__RoleAssignment__Group_6__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group_6__3_in_rule__RoleAssignment__Group_6__25091);
            rule__RoleAssignment__Group_6__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2525:1: rule__RoleAssignment__Group_6__2__Impl : ( ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2 ) ) ;
    public final void rule__RoleAssignment__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2529:1: ( ( ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2530:1: ( ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2530:1: ( ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2531:1: ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2 )
            {
             before(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsAssignment_6_2()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2532:1: ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2532:2: rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2
            {
            pushFollow(FOLLOW_rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2_in_rule__RoleAssignment__Group_6__2__Impl5118);
            rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2();

            state._fsp--;


            }

             after(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsAssignment_6_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2542:1: rule__RoleAssignment__Group_6__3 : rule__RoleAssignment__Group_6__3__Impl rule__RoleAssignment__Group_6__4 ;
    public final void rule__RoleAssignment__Group_6__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2546:1: ( rule__RoleAssignment__Group_6__3__Impl rule__RoleAssignment__Group_6__4 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2547:2: rule__RoleAssignment__Group_6__3__Impl rule__RoleAssignment__Group_6__4
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group_6__3__Impl_in_rule__RoleAssignment__Group_6__35148);
            rule__RoleAssignment__Group_6__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group_6__4_in_rule__RoleAssignment__Group_6__35151);
            rule__RoleAssignment__Group_6__4();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2554:1: rule__RoleAssignment__Group_6__3__Impl : ( ( rule__RoleAssignment__Group_6_3__0 )* ) ;
    public final void rule__RoleAssignment__Group_6__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2558:1: ( ( ( rule__RoleAssignment__Group_6_3__0 )* ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2559:1: ( ( rule__RoleAssignment__Group_6_3__0 )* )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2559:1: ( ( rule__RoleAssignment__Group_6_3__0 )* )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2560:1: ( rule__RoleAssignment__Group_6_3__0 )*
            {
             before(grammarAccess.getRoleAssignmentAccess().getGroup_6_3()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2561:1: ( rule__RoleAssignment__Group_6_3__0 )*
            loop15:
            do {
                int alt15=2;
                int LA15_0 = input.LA(1);

                if ( (LA15_0==50) ) {
                    alt15=1;
                }


                switch (alt15) {
            	case 1 :
            	    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2561:2: rule__RoleAssignment__Group_6_3__0
            	    {
            	    pushFollow(FOLLOW_rule__RoleAssignment__Group_6_3__0_in_rule__RoleAssignment__Group_6__3__Impl5178);
            	    rule__RoleAssignment__Group_6_3__0();

            	    state._fsp--;


            	    }
            	    break;

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

             after(grammarAccess.getRoleAssignmentAccess().getGroup_6_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__4"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2571:1: rule__RoleAssignment__Group_6__4 : rule__RoleAssignment__Group_6__4__Impl ;
    public final void rule__RoleAssignment__Group_6__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2575:1: ( rule__RoleAssignment__Group_6__4__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2576:2: rule__RoleAssignment__Group_6__4__Impl
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group_6__4__Impl_in_rule__RoleAssignment__Group_6__45209);
            rule__RoleAssignment__Group_6__4__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6__4__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2582:1: rule__RoleAssignment__Group_6__4__Impl : ( ')' ) ;
    public final void rule__RoleAssignment__Group_6__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2586:1: ( ( ')' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2587:1: ( ')' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2587:1: ( ')' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2588:1: ')'
            {
             before(grammarAccess.getRoleAssignmentAccess().getRightParenthesisKeyword_6_4()); 
            match(input,49,FOLLOW_49_in_rule__RoleAssignment__Group_6__4__Impl5237); 
             after(grammarAccess.getRoleAssignmentAccess().getRightParenthesisKeyword_6_4()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6_3__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2611:1: rule__RoleAssignment__Group_6_3__0 : rule__RoleAssignment__Group_6_3__0__Impl rule__RoleAssignment__Group_6_3__1 ;
    public final void rule__RoleAssignment__Group_6_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2615:1: ( rule__RoleAssignment__Group_6_3__0__Impl rule__RoleAssignment__Group_6_3__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2616:2: rule__RoleAssignment__Group_6_3__0__Impl rule__RoleAssignment__Group_6_3__1
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group_6_3__0__Impl_in_rule__RoleAssignment__Group_6_3__05278);
            rule__RoleAssignment__Group_6_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleAssignment__Group_6_3__1_in_rule__RoleAssignment__Group_6_3__05281);
            rule__RoleAssignment__Group_6_3__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6_3__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2623:1: rule__RoleAssignment__Group_6_3__0__Impl : ( ',' ) ;
    public final void rule__RoleAssignment__Group_6_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2627:1: ( ( ',' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2628:1: ( ',' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2628:1: ( ',' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2629:1: ','
            {
             before(grammarAccess.getRoleAssignmentAccess().getCommaKeyword_6_3_0()); 
            match(input,50,FOLLOW_50_in_rule__RoleAssignment__Group_6_3__0__Impl5309); 
             after(grammarAccess.getRoleAssignmentAccess().getCommaKeyword_6_3_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6_3__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2642:1: rule__RoleAssignment__Group_6_3__1 : rule__RoleAssignment__Group_6_3__1__Impl ;
    public final void rule__RoleAssignment__Group_6_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2646:1: ( rule__RoleAssignment__Group_6_3__1__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2647:2: rule__RoleAssignment__Group_6_3__1__Impl
            {
            pushFollow(FOLLOW_rule__RoleAssignment__Group_6_3__1__Impl_in_rule__RoleAssignment__Group_6_3__15340);
            rule__RoleAssignment__Group_6_3__1__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__Group_6_3__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2653:1: rule__RoleAssignment__Group_6_3__1__Impl : ( ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1 ) ) ;
    public final void rule__RoleAssignment__Group_6_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2657:1: ( ( ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2658:1: ( ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2658:1: ( ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2659:1: ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1 )
            {
             before(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsAssignment_6_3_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2660:1: ( rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2660:2: rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1
            {
            pushFollow(FOLLOW_rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1_in_rule__RoleAssignment__Group_6_3__1__Impl5367);
            rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1();

            state._fsp--;


            }

             after(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsAssignment_6_3_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2674:1: rule__RoleDefinition__Group__0 : rule__RoleDefinition__Group__0__Impl rule__RoleDefinition__Group__1 ;
    public final void rule__RoleDefinition__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2678:1: ( rule__RoleDefinition__Group__0__Impl rule__RoleDefinition__Group__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2679:2: rule__RoleDefinition__Group__0__Impl rule__RoleDefinition__Group__1
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__0__Impl_in_rule__RoleDefinition__Group__05401);
            rule__RoleDefinition__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleDefinition__Group__1_in_rule__RoleDefinition__Group__05404);
            rule__RoleDefinition__Group__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2686:1: rule__RoleDefinition__Group__0__Impl : ( 'RoleDefinition' ) ;
    public final void rule__RoleDefinition__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2690:1: ( ( 'RoleDefinition' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2691:1: ( 'RoleDefinition' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2691:1: ( 'RoleDefinition' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2692:1: 'RoleDefinition'
            {
             before(grammarAccess.getRoleDefinitionAccess().getRoleDefinitionKeyword_0()); 
            match(input,55,FOLLOW_55_in_rule__RoleDefinition__Group__0__Impl5432); 
             after(grammarAccess.getRoleDefinitionAccess().getRoleDefinitionKeyword_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2705:1: rule__RoleDefinition__Group__1 : rule__RoleDefinition__Group__1__Impl rule__RoleDefinition__Group__2 ;
    public final void rule__RoleDefinition__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2709:1: ( rule__RoleDefinition__Group__1__Impl rule__RoleDefinition__Group__2 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2710:2: rule__RoleDefinition__Group__1__Impl rule__RoleDefinition__Group__2
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__1__Impl_in_rule__RoleDefinition__Group__15463);
            rule__RoleDefinition__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleDefinition__Group__2_in_rule__RoleDefinition__Group__15466);
            rule__RoleDefinition__Group__2();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2717:1: rule__RoleDefinition__Group__1__Impl : ( ( rule__RoleDefinition__NameAssignment_1 ) ) ;
    public final void rule__RoleDefinition__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2721:1: ( ( ( rule__RoleDefinition__NameAssignment_1 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2722:1: ( ( rule__RoleDefinition__NameAssignment_1 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2722:1: ( ( rule__RoleDefinition__NameAssignment_1 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2723:1: ( rule__RoleDefinition__NameAssignment_1 )
            {
             before(grammarAccess.getRoleDefinitionAccess().getNameAssignment_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2724:1: ( rule__RoleDefinition__NameAssignment_1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2724:2: rule__RoleDefinition__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__RoleDefinition__NameAssignment_1_in_rule__RoleDefinition__Group__1__Impl5493);
            rule__RoleDefinition__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getRoleDefinitionAccess().getNameAssignment_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2734:1: rule__RoleDefinition__Group__2 : rule__RoleDefinition__Group__2__Impl rule__RoleDefinition__Group__3 ;
    public final void rule__RoleDefinition__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2738:1: ( rule__RoleDefinition__Group__2__Impl rule__RoleDefinition__Group__3 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2739:2: rule__RoleDefinition__Group__2__Impl rule__RoleDefinition__Group__3
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__2__Impl_in_rule__RoleDefinition__Group__25523);
            rule__RoleDefinition__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleDefinition__Group__3_in_rule__RoleDefinition__Group__25526);
            rule__RoleDefinition__Group__3();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__2__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2746:1: rule__RoleDefinition__Group__2__Impl : ( '{' ) ;
    public final void rule__RoleDefinition__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2750:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2751:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2751:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2752:1: '{'
            {
             before(grammarAccess.getRoleDefinitionAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,37,FOLLOW_37_in_rule__RoleDefinition__Group__2__Impl5554); 
             after(grammarAccess.getRoleDefinitionAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2765:1: rule__RoleDefinition__Group__3 : rule__RoleDefinition__Group__3__Impl rule__RoleDefinition__Group__4 ;
    public final void rule__RoleDefinition__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2769:1: ( rule__RoleDefinition__Group__3__Impl rule__RoleDefinition__Group__4 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2770:2: rule__RoleDefinition__Group__3__Impl rule__RoleDefinition__Group__4
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__3__Impl_in_rule__RoleDefinition__Group__35585);
            rule__RoleDefinition__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleDefinition__Group__4_in_rule__RoleDefinition__Group__35588);
            rule__RoleDefinition__Group__4();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__3__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2777:1: rule__RoleDefinition__Group__3__Impl : ( 'basePermissions' ) ;
    public final void rule__RoleDefinition__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2781:1: ( ( 'basePermissions' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2782:1: ( 'basePermissions' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2782:1: ( 'basePermissions' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2783:1: 'basePermissions'
            {
             before(grammarAccess.getRoleDefinitionAccess().getBasePermissionsKeyword_3()); 
            match(input,56,FOLLOW_56_in_rule__RoleDefinition__Group__3__Impl5616); 
             after(grammarAccess.getRoleDefinitionAccess().getBasePermissionsKeyword_3()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__4"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2796:1: rule__RoleDefinition__Group__4 : rule__RoleDefinition__Group__4__Impl rule__RoleDefinition__Group__5 ;
    public final void rule__RoleDefinition__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2800:1: ( rule__RoleDefinition__Group__4__Impl rule__RoleDefinition__Group__5 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2801:2: rule__RoleDefinition__Group__4__Impl rule__RoleDefinition__Group__5
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__4__Impl_in_rule__RoleDefinition__Group__45647);
            rule__RoleDefinition__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleDefinition__Group__5_in_rule__RoleDefinition__Group__45650);
            rule__RoleDefinition__Group__5();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__4__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2808:1: rule__RoleDefinition__Group__4__Impl : ( '{' ) ;
    public final void rule__RoleDefinition__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2812:1: ( ( '{' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2813:1: ( '{' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2813:1: ( '{' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2814:1: '{'
            {
             before(grammarAccess.getRoleDefinitionAccess().getLeftCurlyBracketKeyword_4()); 
            match(input,37,FOLLOW_37_in_rule__RoleDefinition__Group__4__Impl5678); 
             after(grammarAccess.getRoleDefinitionAccess().getLeftCurlyBracketKeyword_4()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__5"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2827:1: rule__RoleDefinition__Group__5 : rule__RoleDefinition__Group__5__Impl rule__RoleDefinition__Group__6 ;
    public final void rule__RoleDefinition__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2831:1: ( rule__RoleDefinition__Group__5__Impl rule__RoleDefinition__Group__6 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2832:2: rule__RoleDefinition__Group__5__Impl rule__RoleDefinition__Group__6
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__5__Impl_in_rule__RoleDefinition__Group__55709);
            rule__RoleDefinition__Group__5__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleDefinition__Group__6_in_rule__RoleDefinition__Group__55712);
            rule__RoleDefinition__Group__6();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__5__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2839:1: rule__RoleDefinition__Group__5__Impl : ( ( rule__RoleDefinition__BasePermissionsAssignment_5 ) ) ;
    public final void rule__RoleDefinition__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2843:1: ( ( ( rule__RoleDefinition__BasePermissionsAssignment_5 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2844:1: ( ( rule__RoleDefinition__BasePermissionsAssignment_5 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2844:1: ( ( rule__RoleDefinition__BasePermissionsAssignment_5 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2845:1: ( rule__RoleDefinition__BasePermissionsAssignment_5 )
            {
             before(grammarAccess.getRoleDefinitionAccess().getBasePermissionsAssignment_5()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2846:1: ( rule__RoleDefinition__BasePermissionsAssignment_5 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2846:2: rule__RoleDefinition__BasePermissionsAssignment_5
            {
            pushFollow(FOLLOW_rule__RoleDefinition__BasePermissionsAssignment_5_in_rule__RoleDefinition__Group__5__Impl5739);
            rule__RoleDefinition__BasePermissionsAssignment_5();

            state._fsp--;


            }

             after(grammarAccess.getRoleDefinitionAccess().getBasePermissionsAssignment_5()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__6"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2856:1: rule__RoleDefinition__Group__6 : rule__RoleDefinition__Group__6__Impl rule__RoleDefinition__Group__7 ;
    public final void rule__RoleDefinition__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2860:1: ( rule__RoleDefinition__Group__6__Impl rule__RoleDefinition__Group__7 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2861:2: rule__RoleDefinition__Group__6__Impl rule__RoleDefinition__Group__7
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__6__Impl_in_rule__RoleDefinition__Group__65769);
            rule__RoleDefinition__Group__6__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleDefinition__Group__7_in_rule__RoleDefinition__Group__65772);
            rule__RoleDefinition__Group__7();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__6__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2868:1: rule__RoleDefinition__Group__6__Impl : ( ( rule__RoleDefinition__Group_6__0 )* ) ;
    public final void rule__RoleDefinition__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2872:1: ( ( ( rule__RoleDefinition__Group_6__0 )* ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2873:1: ( ( rule__RoleDefinition__Group_6__0 )* )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2873:1: ( ( rule__RoleDefinition__Group_6__0 )* )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2874:1: ( rule__RoleDefinition__Group_6__0 )*
            {
             before(grammarAccess.getRoleDefinitionAccess().getGroup_6()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2875:1: ( rule__RoleDefinition__Group_6__0 )*
            loop16:
            do {
                int alt16=2;
                int LA16_0 = input.LA(1);

                if ( (LA16_0==50) ) {
                    alt16=1;
                }


                switch (alt16) {
            	case 1 :
            	    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2875:2: rule__RoleDefinition__Group_6__0
            	    {
            	    pushFollow(FOLLOW_rule__RoleDefinition__Group_6__0_in_rule__RoleDefinition__Group__6__Impl5799);
            	    rule__RoleDefinition__Group_6__0();

            	    state._fsp--;


            	    }
            	    break;

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

             after(grammarAccess.getRoleDefinitionAccess().getGroup_6()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__7"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2885:1: rule__RoleDefinition__Group__7 : rule__RoleDefinition__Group__7__Impl rule__RoleDefinition__Group__8 ;
    public final void rule__RoleDefinition__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2889:1: ( rule__RoleDefinition__Group__7__Impl rule__RoleDefinition__Group__8 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2890:2: rule__RoleDefinition__Group__7__Impl rule__RoleDefinition__Group__8
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__7__Impl_in_rule__RoleDefinition__Group__75830);
            rule__RoleDefinition__Group__7__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleDefinition__Group__8_in_rule__RoleDefinition__Group__75833);
            rule__RoleDefinition__Group__8();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__7__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2897:1: rule__RoleDefinition__Group__7__Impl : ( '}' ) ;
    public final void rule__RoleDefinition__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2901:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2902:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2902:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2903:1: '}'
            {
             before(grammarAccess.getRoleDefinitionAccess().getRightCurlyBracketKeyword_7()); 
            match(input,38,FOLLOW_38_in_rule__RoleDefinition__Group__7__Impl5861); 
             after(grammarAccess.getRoleDefinitionAccess().getRightCurlyBracketKeyword_7()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__8"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2916:1: rule__RoleDefinition__Group__8 : rule__RoleDefinition__Group__8__Impl ;
    public final void rule__RoleDefinition__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2920:1: ( rule__RoleDefinition__Group__8__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2921:2: rule__RoleDefinition__Group__8__Impl
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group__8__Impl_in_rule__RoleDefinition__Group__85892);
            rule__RoleDefinition__Group__8__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group__8__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2927:1: rule__RoleDefinition__Group__8__Impl : ( '}' ) ;
    public final void rule__RoleDefinition__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2931:1: ( ( '}' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2932:1: ( '}' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2932:1: ( '}' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2933:1: '}'
            {
             before(grammarAccess.getRoleDefinitionAccess().getRightCurlyBracketKeyword_8()); 
            match(input,38,FOLLOW_38_in_rule__RoleDefinition__Group__8__Impl5920); 
             after(grammarAccess.getRoleDefinitionAccess().getRightCurlyBracketKeyword_8()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group_6__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2964:1: rule__RoleDefinition__Group_6__0 : rule__RoleDefinition__Group_6__0__Impl rule__RoleDefinition__Group_6__1 ;
    public final void rule__RoleDefinition__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2968:1: ( rule__RoleDefinition__Group_6__0__Impl rule__RoleDefinition__Group_6__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2969:2: rule__RoleDefinition__Group_6__0__Impl rule__RoleDefinition__Group_6__1
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group_6__0__Impl_in_rule__RoleDefinition__Group_6__05969);
            rule__RoleDefinition__Group_6__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RoleDefinition__Group_6__1_in_rule__RoleDefinition__Group_6__05972);
            rule__RoleDefinition__Group_6__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group_6__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2976:1: rule__RoleDefinition__Group_6__0__Impl : ( ',' ) ;
    public final void rule__RoleDefinition__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2980:1: ( ( ',' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2981:1: ( ',' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2981:1: ( ',' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2982:1: ','
            {
             before(grammarAccess.getRoleDefinitionAccess().getCommaKeyword_6_0()); 
            match(input,50,FOLLOW_50_in_rule__RoleDefinition__Group_6__0__Impl6000); 
             after(grammarAccess.getRoleDefinitionAccess().getCommaKeyword_6_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group_6__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2995:1: rule__RoleDefinition__Group_6__1 : rule__RoleDefinition__Group_6__1__Impl ;
    public final void rule__RoleDefinition__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:2999:1: ( rule__RoleDefinition__Group_6__1__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3000:2: rule__RoleDefinition__Group_6__1__Impl
            {
            pushFollow(FOLLOW_rule__RoleDefinition__Group_6__1__Impl_in_rule__RoleDefinition__Group_6__16031);
            rule__RoleDefinition__Group_6__1__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__Group_6__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3006:1: rule__RoleDefinition__Group_6__1__Impl : ( ( rule__RoleDefinition__BasePermissionsAssignment_6_1 ) ) ;
    public final void rule__RoleDefinition__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3010:1: ( ( ( rule__RoleDefinition__BasePermissionsAssignment_6_1 ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3011:1: ( ( rule__RoleDefinition__BasePermissionsAssignment_6_1 ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3011:1: ( ( rule__RoleDefinition__BasePermissionsAssignment_6_1 ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3012:1: ( rule__RoleDefinition__BasePermissionsAssignment_6_1 )
            {
             before(grammarAccess.getRoleDefinitionAccess().getBasePermissionsAssignment_6_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3013:1: ( rule__RoleDefinition__BasePermissionsAssignment_6_1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3013:2: rule__RoleDefinition__BasePermissionsAssignment_6_1
            {
            pushFollow(FOLLOW_rule__RoleDefinition__BasePermissionsAssignment_6_1_in_rule__RoleDefinition__Group_6__1__Impl6058);
            rule__RoleDefinition__BasePermissionsAssignment_6_1();

            state._fsp--;


            }

             after(grammarAccess.getRoleDefinitionAccess().getBasePermissionsAssignment_6_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__QualifiedName__Group__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3027:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
    public final void rule__QualifiedName__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3031:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3032:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__06092);
            rule__QualifiedName__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__06095);
            rule__QualifiedName__Group__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__QualifiedName__Group__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3039:1: rule__QualifiedName__Group__0__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3043:1: ( ( RULE_ID ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3044:1: ( RULE_ID )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3044:1: ( RULE_ID )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3045:1: RULE_ID
            {
             before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__QualifiedName__Group__0__Impl6122); 
             after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__QualifiedName__Group__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3056:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
    public final void rule__QualifiedName__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3060:1: ( rule__QualifiedName__Group__1__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3061:2: rule__QualifiedName__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__16151);
            rule__QualifiedName__Group__1__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__QualifiedName__Group__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3067:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
    public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3071:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3072:1: ( ( rule__QualifiedName__Group_1__0 )* )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3072:1: ( ( rule__QualifiedName__Group_1__0 )* )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3073:1: ( rule__QualifiedName__Group_1__0 )*
            {
             before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3074:1: ( rule__QualifiedName__Group_1__0 )*
            loop17:
            do {
                int alt17=2;
                int LA17_0 = input.LA(1);

                if ( (LA17_0==57) ) {
                    alt17=1;
                }


                switch (alt17) {
            	case 1 :
            	    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3074:2: rule__QualifiedName__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl6178);
            	    rule__QualifiedName__Group_1__0();

            	    state._fsp--;


            	    }
            	    break;

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

             after(grammarAccess.getQualifiedNameAccess().getGroup_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__QualifiedName__Group_1__0"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3088:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
    public final void rule__QualifiedName__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3092:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3093:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__06213);
            rule__QualifiedName__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__06216);
            rule__QualifiedName__Group_1__1();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3100:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
    public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3104:1: ( ( '.' ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3105:1: ( '.' )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3105:1: ( '.' )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3106:1: '.'
            {
             before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            match(input,57,FOLLOW_57_in_rule__QualifiedName__Group_1__0__Impl6244); 
             after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__QualifiedName__Group_1__1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3119:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
    public final void rule__QualifiedName__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3123:1: ( rule__QualifiedName__Group_1__1__Impl )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3124:2: rule__QualifiedName__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__16275);
            rule__QualifiedName__Group_1__1__Impl();

            state._fsp--;


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3130:1: rule__QualifiedName__Group_1__1__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3134:1: ( ( RULE_ID ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3135:1: ( RULE_ID )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3135:1: ( RULE_ID )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3136:1: RULE_ID
            {
             before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__QualifiedName__Group_1__1__Impl6302); 
             after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__NameAssignment_1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3152:1: rule__UserModel__NameAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__UserModel__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3156:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3157:1: ( ruleQualifiedName )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3157:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3158:1: ruleQualifiedName
            {
             before(grammarAccess.getUserModelAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__UserModel__NameAssignment_16340);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getUserModelAccess().getNameQualifiedNameParserRuleCall_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__UsersAssignment_3_2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3167:1: rule__UserModel__UsersAssignment_3_2 : ( ruleUser ) ;
    public final void rule__UserModel__UsersAssignment_3_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3171:1: ( ( ruleUser ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3172:1: ( ruleUser )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3172:1: ( ruleUser )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3173:1: ruleUser
            {
             before(grammarAccess.getUserModelAccess().getUsersUserParserRuleCall_3_2_0()); 
            pushFollow(FOLLOW_ruleUser_in_rule__UserModel__UsersAssignment_3_26371);
            ruleUser();

            state._fsp--;

             after(grammarAccess.getUserModelAccess().getUsersUserParserRuleCall_3_2_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__UsersAssignment_3_3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3182:1: rule__UserModel__UsersAssignment_3_3 : ( ruleUser ) ;
    public final void rule__UserModel__UsersAssignment_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3186:1: ( ( ruleUser ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3187:1: ( ruleUser )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3187:1: ( ruleUser )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3188:1: ruleUser
            {
             before(grammarAccess.getUserModelAccess().getUsersUserParserRuleCall_3_3_0()); 
            pushFollow(FOLLOW_ruleUser_in_rule__UserModel__UsersAssignment_3_36402);
            ruleUser();

            state._fsp--;

             after(grammarAccess.getUserModelAccess().getUsersUserParserRuleCall_3_3_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__SitePermissionsAssignment_4_2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3197:1: rule__UserModel__SitePermissionsAssignment_4_2 : ( ruleSitePermission ) ;
    public final void rule__UserModel__SitePermissionsAssignment_4_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3201:1: ( ( ruleSitePermission ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3202:1: ( ruleSitePermission )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3202:1: ( ruleSitePermission )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3203:1: ruleSitePermission
            {
             before(grammarAccess.getUserModelAccess().getSitePermissionsSitePermissionParserRuleCall_4_2_0()); 
            pushFollow(FOLLOW_ruleSitePermission_in_rule__UserModel__SitePermissionsAssignment_4_26433);
            ruleSitePermission();

            state._fsp--;

             after(grammarAccess.getUserModelAccess().getSitePermissionsSitePermissionParserRuleCall_4_2_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__UserModel__SitePermissionsAssignment_4_3"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3212:1: rule__UserModel__SitePermissionsAssignment_4_3 : ( ruleSitePermission ) ;
    public final void rule__UserModel__SitePermissionsAssignment_4_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3216:1: ( ( ruleSitePermission ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3217:1: ( ruleSitePermission )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3217:1: ( ruleSitePermission )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3218:1: ruleSitePermission
            {
             before(grammarAccess.getUserModelAccess().getSitePermissionsSitePermissionParserRuleCall_4_3_0()); 
            pushFollow(FOLLOW_ruleSitePermission_in_rule__UserModel__SitePermissionsAssignment_4_36464);
            ruleSitePermission();

            state._fsp--;

             after(grammarAccess.getUserModelAccess().getSitePermissionsSitePermissionParserRuleCall_4_3_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__NameAssignment_1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3227:1: rule__SitePermission__NameAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__SitePermission__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3231:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3232:1: ( ruleQualifiedName )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3232:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3233:1: ruleQualifiedName
            {
             before(grammarAccess.getSitePermissionAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__SitePermission__NameAssignment_16495);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getSitePermissionAccess().getNameQualifiedNameParserRuleCall_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__WebGUIDAssignment_5"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3242:1: rule__SitePermission__WebGUIDAssignment_5 : ( RULE_STRING ) ;
    public final void rule__SitePermission__WebGUIDAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3246:1: ( ( RULE_STRING ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3247:1: ( RULE_STRING )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3247:1: ( RULE_STRING )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3248:1: RULE_STRING
            {
             before(grammarAccess.getSitePermissionAccess().getWebGUIDSTRINGTerminalRuleCall_5_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__SitePermission__WebGUIDAssignment_56526); 
             after(grammarAccess.getSitePermissionAccess().getWebGUIDSTRINGTerminalRuleCall_5_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__OwnedGroupAssignment_6_2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3257:1: rule__SitePermission__OwnedGroupAssignment_6_2 : ( ruleGroup ) ;
    public final void rule__SitePermission__OwnedGroupAssignment_6_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3261:1: ( ( ruleGroup ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3262:1: ( ruleGroup )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3262:1: ( ruleGroup )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3263:1: ruleGroup
            {
             before(grammarAccess.getSitePermissionAccess().getOwnedGroupGroupParserRuleCall_6_2_0()); 
            pushFollow(FOLLOW_ruleGroup_in_rule__SitePermission__OwnedGroupAssignment_6_26557);
            ruleGroup();

            state._fsp--;

             after(grammarAccess.getSitePermissionAccess().getOwnedGroupGroupParserRuleCall_6_2_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__OwnedRoleDefinitionAssignment_7_2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3272:1: rule__SitePermission__OwnedRoleDefinitionAssignment_7_2 : ( ruleRoleDefinition ) ;
    public final void rule__SitePermission__OwnedRoleDefinitionAssignment_7_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3276:1: ( ( ruleRoleDefinition ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3277:1: ( ruleRoleDefinition )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3277:1: ( ruleRoleDefinition )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3278:1: ruleRoleDefinition
            {
             before(grammarAccess.getSitePermissionAccess().getOwnedRoleDefinitionRoleDefinitionParserRuleCall_7_2_0()); 
            pushFollow(FOLLOW_ruleRoleDefinition_in_rule__SitePermission__OwnedRoleDefinitionAssignment_7_26588);
            ruleRoleDefinition();

            state._fsp--;

             after(grammarAccess.getSitePermissionAccess().getOwnedRoleDefinitionRoleDefinitionParserRuleCall_7_2_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3287:1: rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2 : ( ruleRoleAssignment ) ;
    public final void rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3291:1: ( ( ruleRoleAssignment ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3292:1: ( ruleRoleAssignment )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3292:1: ( ruleRoleAssignment )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3293:1: ruleRoleAssignment
            {
             before(grammarAccess.getSitePermissionAccess().getOwnedRoleAssignmentsRoleAssignmentParserRuleCall_8_2_0()); 
            pushFollow(FOLLOW_ruleRoleAssignment_in_rule__SitePermission__OwnedRoleAssignmentsAssignment_8_26619);
            ruleRoleAssignment();

            state._fsp--;

             after(grammarAccess.getSitePermissionAccess().getOwnedRoleAssignmentsRoleAssignmentParserRuleCall_8_2_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__NameAssignment_1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3302:1: rule__Group__NameAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__Group__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3306:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3307:1: ( ruleQualifiedName )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3307:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3308:1: ruleQualifiedName
            {
             before(grammarAccess.getGroupAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Group__NameAssignment_16650);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getGroupAccess().getNameQualifiedNameParserRuleCall_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__UsersAssignment_3_2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3317:1: rule__Group__UsersAssignment_3_2 : ( ( ruleQualifiedName ) ) ;
    public final void rule__Group__UsersAssignment_3_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3321:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3322:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3322:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3323:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getGroupAccess().getUsersUserCrossReference_3_2_0()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3324:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3325:1: ruleQualifiedName
            {
             before(grammarAccess.getGroupAccess().getUsersUserQualifiedNameParserRuleCall_3_2_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Group__UsersAssignment_3_26685);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getGroupAccess().getUsersUserQualifiedNameParserRuleCall_3_2_0_1()); 

            }

             after(grammarAccess.getGroupAccess().getUsersUserCrossReference_3_2_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__Group__UsersAssignment_3_3_1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3336:1: rule__Group__UsersAssignment_3_3_1 : ( ( ruleQualifiedName ) ) ;
    public final void rule__Group__UsersAssignment_3_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3340:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3341:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3341:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3342:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getGroupAccess().getUsersUserCrossReference_3_3_1_0()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3343:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3344:1: ruleQualifiedName
            {
             before(grammarAccess.getGroupAccess().getUsersUserQualifiedNameParserRuleCall_3_3_1_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Group__UsersAssignment_3_3_16724);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getGroupAccess().getUsersUserQualifiedNameParserRuleCall_3_3_1_0_1()); 

            }

             after(grammarAccess.getGroupAccess().getUsersUserCrossReference_3_3_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__User__NameAssignment_1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3355:1: rule__User__NameAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__User__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3359:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3360:1: ( ruleQualifiedName )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3360:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3361:1: ruleQualifiedName
            {
             before(grammarAccess.getUserAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__User__NameAssignment_16759);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getUserAccess().getNameQualifiedNameParserRuleCall_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__NameAssignment_1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3370:1: rule__RoleAssignment__NameAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__RoleAssignment__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3374:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3375:1: ( ruleQualifiedName )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3375:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3376:1: ruleQualifiedName
            {
             before(grammarAccess.getRoleAssignmentAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__RoleAssignment__NameAssignment_16790);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getRoleAssignmentAccess().getNameQualifiedNameParserRuleCall_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__MemberAssignment_5"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3385:1: rule__RoleAssignment__MemberAssignment_5 : ( ( ruleQualifiedName ) ) ;
    public final void rule__RoleAssignment__MemberAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3389:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3390:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3390:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3391:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getRoleAssignmentAccess().getMemberPrincipleCrossReference_5_0()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3392:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3393:1: ruleQualifiedName
            {
             before(grammarAccess.getRoleAssignmentAccess().getMemberPrincipleQualifiedNameParserRuleCall_5_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__RoleAssignment__MemberAssignment_56825);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getRoleAssignmentAccess().getMemberPrincipleQualifiedNameParserRuleCall_5_0_1()); 

            }

             after(grammarAccess.getRoleAssignmentAccess().getMemberPrincipleCrossReference_5_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3404:1: rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2 : ( ( ruleQualifiedName ) ) ;
    public final void rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3408:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3409:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3409:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3410:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsRoleDefinitionCrossReference_6_2_0()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3411:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3412:1: ruleQualifiedName
            {
             before(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsRoleDefinitionQualifiedNameParserRuleCall_6_2_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_26864);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsRoleDefinitionQualifiedNameParserRuleCall_6_2_0_1()); 

            }

             after(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsRoleDefinitionCrossReference_6_2_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3423:1: rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1 : ( ( ruleQualifiedName ) ) ;
    public final void rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3427:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3428:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3428:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3429:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsRoleDefinitionCrossReference_6_3_1_0()); 
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3430:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3431:1: ruleQualifiedName
            {
             before(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsRoleDefinitionQualifiedNameParserRuleCall_6_3_1_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_16903);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsRoleDefinitionQualifiedNameParserRuleCall_6_3_1_0_1()); 

            }

             after(grammarAccess.getRoleAssignmentAccess().getRoleDefinitionBindingsRoleDefinitionCrossReference_6_3_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__NameAssignment_1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3442:1: rule__RoleDefinition__NameAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__RoleDefinition__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3446:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3447:1: ( ruleQualifiedName )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3447:1: ( ruleQualifiedName )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3448:1: ruleQualifiedName
            {
             before(grammarAccess.getRoleDefinitionAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__RoleDefinition__NameAssignment_16938);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getRoleDefinitionAccess().getNameQualifiedNameParserRuleCall_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__BasePermissionsAssignment_5"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3457:1: rule__RoleDefinition__BasePermissionsAssignment_5 : ( ruleBasePermission ) ;
    public final void rule__RoleDefinition__BasePermissionsAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3461:1: ( ( ruleBasePermission ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3462:1: ( ruleBasePermission )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3462:1: ( ruleBasePermission )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3463:1: ruleBasePermission
            {
             before(grammarAccess.getRoleDefinitionAccess().getBasePermissionsBasePermissionEnumRuleCall_5_0()); 
            pushFollow(FOLLOW_ruleBasePermission_in_rule__RoleDefinition__BasePermissionsAssignment_56969);
            ruleBasePermission();

            state._fsp--;

             after(grammarAccess.getRoleDefinitionAccess().getBasePermissionsBasePermissionEnumRuleCall_5_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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


    // $ANTLR start "rule__RoleDefinition__BasePermissionsAssignment_6_1"
    // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3472:1: rule__RoleDefinition__BasePermissionsAssignment_6_1 : ( ruleBasePermission ) ;
    public final void rule__RoleDefinition__BasePermissionsAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3476:1: ( ( ruleBasePermission ) )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3477:1: ( ruleBasePermission )
            {
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3477:1: ( ruleBasePermission )
            // ../org.xtext.example.mydsl2.ui/src-gen/org/xtext/example/mydsl2/ui/contentassist/antlr/internal/InternalMyDsl2.g:3478:1: ruleBasePermission
            {
             before(grammarAccess.getRoleDefinitionAccess().getBasePermissionsBasePermissionEnumRuleCall_6_1_0()); 
            pushFollow(FOLLOW_ruleBasePermission_in_rule__RoleDefinition__BasePermissionsAssignment_6_17000);
            ruleBasePermission();

            state._fsp--;

             after(grammarAccess.getRoleDefinitionAccess().getBasePermissionsBasePermissionEnumRuleCall_6_1_0()); 

            }


            }

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

            	restoreStackSize(stackSize);

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

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleUserModel_in_entryRuleUserModel61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleUserModel68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group__0_in_ruleUserModel94 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSitePermission_in_entryRuleSitePermission121 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSitePermission128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__0_in_ruleSitePermission154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGroup_in_entryRuleGroup183 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleGroup190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group__0_in_ruleGroup216 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUser_in_entryRuleUser243 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleUser250 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__User__Group__0_in_ruleUser276 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRoleAssignment_in_entryRuleRoleAssignment303 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRoleAssignment310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__0_in_ruleRoleAssignment336 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRoleDefinition_in_entryRuleRoleDefinition363 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRoleDefinition370 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__0_in_ruleRoleDefinition396 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName423 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName430 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName456 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BasePermission__Alternatives_in_ruleBasePermission493 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__BasePermission__Alternatives530 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__BasePermission__Alternatives551 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__BasePermission__Alternatives572 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__BasePermission__Alternatives593 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__BasePermission__Alternatives614 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__BasePermission__Alternatives635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__BasePermission__Alternatives656 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__BasePermission__Alternatives677 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__BasePermission__Alternatives698 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__BasePermission__Alternatives719 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__BasePermission__Alternatives740 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__BasePermission__Alternatives761 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__BasePermission__Alternatives782 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__BasePermission__Alternatives803 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__BasePermission__Alternatives824 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__BasePermission__Alternatives845 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__BasePermission__Alternatives866 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__BasePermission__Alternatives887 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__BasePermission__Alternatives908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__BasePermission__Alternatives929 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__BasePermission__Alternatives950 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__BasePermission__Alternatives971 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__BasePermission__Alternatives992 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__BasePermission__Alternatives1013 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__BasePermission__Alternatives1034 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group__0__Impl_in_rule__UserModel__Group__01067 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__UserModel__Group__1_in_rule__UserModel__Group__01070 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__UserModel__Group__0__Impl1098 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group__1__Impl_in_rule__UserModel__Group__11129 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group__2_in_rule__UserModel__Group__11132 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__NameAssignment_1_in_rule__UserModel__Group__1__Impl1159 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group__2__Impl_in_rule__UserModel__Group__21189 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group__3_in_rule__UserModel__Group__21192 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__UserModel__Group__2__Impl1220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group__3__Impl_in_rule__UserModel__Group__31251 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group__4_in_rule__UserModel__Group__31254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__0_in_rule__UserModel__Group__3__Impl1281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group__4__Impl_in_rule__UserModel__Group__41312 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group__5_in_rule__UserModel__Group__41315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__0_in_rule__UserModel__Group__4__Impl1342 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group__5__Impl_in_rule__UserModel__Group__51373 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__UserModel__Group__5__Impl1401 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__0__Impl_in_rule__UserModel__Group_3__01444 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__1_in_rule__UserModel__Group_3__01447 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_rule__UserModel__Group_3__0__Impl1475 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__1__Impl_in_rule__UserModel__Group_3__11506 = new BitSet(new long[]{0x0008000000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__2_in_rule__UserModel__Group_3__11509 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__UserModel__Group_3__1__Impl1537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__2__Impl_in_rule__UserModel__Group_3__21568 = new BitSet(new long[]{0x0008004000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__3_in_rule__UserModel__Group_3__21571 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__UsersAssignment_3_2_in_rule__UserModel__Group_3__2__Impl1598 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__3__Impl_in_rule__UserModel__Group_3__31628 = new BitSet(new long[]{0x0008004000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__4_in_rule__UserModel__Group_3__31631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__UsersAssignment_3_3_in_rule__UserModel__Group_3__3__Impl1658 = new BitSet(new long[]{0x0008000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_3__4__Impl_in_rule__UserModel__Group_3__41689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__UserModel__Group_3__4__Impl1717 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__0__Impl_in_rule__UserModel__Group_4__01758 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__1_in_rule__UserModel__Group_4__01761 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__UserModel__Group_4__0__Impl1789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__1__Impl_in_rule__UserModel__Group_4__11820 = new BitSet(new long[]{0x0000020000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__2_in_rule__UserModel__Group_4__11823 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__UserModel__Group_4__1__Impl1851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__2__Impl_in_rule__UserModel__Group_4__21882 = new BitSet(new long[]{0x0000024000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__3_in_rule__UserModel__Group_4__21885 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__SitePermissionsAssignment_4_2_in_rule__UserModel__Group_4__2__Impl1912 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__3__Impl_in_rule__UserModel__Group_4__31942 = new BitSet(new long[]{0x0000024000000000L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__4_in_rule__UserModel__Group_4__31945 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UserModel__SitePermissionsAssignment_4_3_in_rule__UserModel__Group_4__3__Impl1972 = new BitSet(new long[]{0x0000020000000002L});
    public static final BitSet FOLLOW_rule__UserModel__Group_4__4__Impl_in_rule__UserModel__Group_4__42003 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__UserModel__Group_4__4__Impl2031 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__0__Impl_in_rule__SitePermission__Group__02072 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__1_in_rule__SitePermission__Group__02075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_rule__SitePermission__Group__0__Impl2103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__1__Impl_in_rule__SitePermission__Group__12134 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__2_in_rule__SitePermission__Group__12137 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__NameAssignment_1_in_rule__SitePermission__Group__1__Impl2164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__2__Impl_in_rule__SitePermission__Group__22194 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__3_in_rule__SitePermission__Group__22197 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__SitePermission__Group__2__Impl2225 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__3__Impl_in_rule__SitePermission__Group__32256 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__4_in_rule__SitePermission__Group__32259 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__SitePermission__Group__3__Impl2287 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__4__Impl_in_rule__SitePermission__Group__42318 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__5_in_rule__SitePermission__Group__42321 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__SitePermission__Group__4__Impl2349 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__5__Impl_in_rule__SitePermission__Group__52380 = new BitSet(new long[]{0x0000704000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__6_in_rule__SitePermission__Group__52383 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__WebGUIDAssignment_5_in_rule__SitePermission__Group__5__Impl2410 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__6__Impl_in_rule__SitePermission__Group__62440 = new BitSet(new long[]{0x0000704000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__7_in_rule__SitePermission__Group__62443 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_6__0_in_rule__SitePermission__Group__6__Impl2470 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__7__Impl_in_rule__SitePermission__Group__72501 = new BitSet(new long[]{0x0000704000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__8_in_rule__SitePermission__Group__72504 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_7__0_in_rule__SitePermission__Group__7__Impl2531 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__8__Impl_in_rule__SitePermission__Group__82562 = new BitSet(new long[]{0x0000704000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__9_in_rule__SitePermission__Group__82565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_8__0_in_rule__SitePermission__Group__8__Impl2592 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group__9__Impl_in_rule__SitePermission__Group__92623 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__SitePermission__Group__9__Impl2651 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_6__0__Impl_in_rule__SitePermission__Group_6__02702 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_6__1_in_rule__SitePermission__Group_6__02705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_rule__SitePermission__Group_6__0__Impl2733 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_6__1__Impl_in_rule__SitePermission__Group_6__12764 = new BitSet(new long[]{0x0000804000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_6__2_in_rule__SitePermission__Group_6__12767 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__SitePermission__Group_6__1__Impl2795 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_6__2__Impl_in_rule__SitePermission__Group_6__22826 = new BitSet(new long[]{0x0000804000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_6__3_in_rule__SitePermission__Group_6__22829 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__OwnedGroupAssignment_6_2_in_rule__SitePermission__Group_6__2__Impl2856 = new BitSet(new long[]{0x0000800000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_6__3__Impl_in_rule__SitePermission__Group_6__32887 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__SitePermission__Group_6__3__Impl2915 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_7__0__Impl_in_rule__SitePermission__Group_7__02954 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_7__1_in_rule__SitePermission__Group_7__02957 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__SitePermission__Group_7__0__Impl2985 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_7__1__Impl_in_rule__SitePermission__Group_7__13016 = new BitSet(new long[]{0x0080004000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_7__2_in_rule__SitePermission__Group_7__13019 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__SitePermission__Group_7__1__Impl3047 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_7__2__Impl_in_rule__SitePermission__Group_7__23078 = new BitSet(new long[]{0x0080004000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_7__3_in_rule__SitePermission__Group_7__23081 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__OwnedRoleDefinitionAssignment_7_2_in_rule__SitePermission__Group_7__2__Impl3108 = new BitSet(new long[]{0x0080000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_7__3__Impl_in_rule__SitePermission__Group_7__33139 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__SitePermission__Group_7__3__Impl3167 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_8__0__Impl_in_rule__SitePermission__Group_8__03206 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_8__1_in_rule__SitePermission__Group_8__03209 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_rule__SitePermission__Group_8__0__Impl3237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_8__1__Impl_in_rule__SitePermission__Group_8__13268 = new BitSet(new long[]{0x0010004000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_8__2_in_rule__SitePermission__Group_8__13271 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__SitePermission__Group_8__1__Impl3299 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_8__2__Impl_in_rule__SitePermission__Group_8__23330 = new BitSet(new long[]{0x0010004000000000L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_8__3_in_rule__SitePermission__Group_8__23333 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__OwnedRoleAssignmentsAssignment_8_2_in_rule__SitePermission__Group_8__2__Impl3360 = new BitSet(new long[]{0x0010000000000002L});
    public static final BitSet FOLLOW_rule__SitePermission__Group_8__3__Impl_in_rule__SitePermission__Group_8__33391 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__SitePermission__Group_8__3__Impl3419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group__0__Impl_in_rule__Group__Group__03458 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Group__Group__1_in_rule__Group__Group__03461 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_rule__Group__Group__0__Impl3489 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group__1__Impl_in_rule__Group__Group__13520 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__Group__Group__2_in_rule__Group__Group__13523 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__NameAssignment_1_in_rule__Group__Group__1__Impl3550 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group__2__Impl_in_rule__Group__Group__23580 = new BitSet(new long[]{0x000000C000000000L});
    public static final BitSet FOLLOW_rule__Group__Group__3_in_rule__Group__Group__23583 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__Group__Group__2__Impl3611 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group__3__Impl_in_rule__Group__Group__33642 = new BitSet(new long[]{0x000000C000000000L});
    public static final BitSet FOLLOW_rule__Group__Group__4_in_rule__Group__Group__33645 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group_3__0_in_rule__Group__Group__3__Impl3672 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group__4__Impl_in_rule__Group__Group__43703 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__Group__Group__4__Impl3731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group_3__0__Impl_in_rule__Group__Group_3__03772 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_rule__Group__Group_3__1_in_rule__Group__Group_3__03775 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_rule__Group__Group_3__0__Impl3803 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group_3__1__Impl_in_rule__Group__Group_3__13834 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Group__Group_3__2_in_rule__Group__Group_3__13837 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_rule__Group__Group_3__1__Impl3865 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group_3__2__Impl_in_rule__Group__Group_3__23896 = new BitSet(new long[]{0x0006000000000000L});
    public static final BitSet FOLLOW_rule__Group__Group_3__3_in_rule__Group__Group_3__23899 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__UsersAssignment_3_2_in_rule__Group__Group_3__2__Impl3926 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group_3__3__Impl_in_rule__Group__Group_3__33956 = new BitSet(new long[]{0x0006000000000000L});
    public static final BitSet FOLLOW_rule__Group__Group_3__4_in_rule__Group__Group_3__33959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group_3_3__0_in_rule__Group__Group_3__3__Impl3986 = new BitSet(new long[]{0x0004000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group_3__4__Impl_in_rule__Group__Group_3__44017 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_rule__Group__Group_3__4__Impl4045 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group_3_3__0__Impl_in_rule__Group__Group_3_3__04086 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Group__Group_3_3__1_in_rule__Group__Group_3_3__04089 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__Group__Group_3_3__0__Impl4117 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__Group_3_3__1__Impl_in_rule__Group__Group_3_3__14148 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Group__UsersAssignment_3_3_1_in_rule__Group__Group_3_3__1__Impl4175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__User__Group__0__Impl_in_rule__User__Group__04209 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__User__Group__1_in_rule__User__Group__04212 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__User__Group__0__Impl4240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__User__Group__1__Impl_in_rule__User__Group__14271 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__User__Group__2_in_rule__User__Group__14274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__User__NameAssignment_1_in_rule__User__Group__1__Impl4301 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__User__Group__2__Impl_in_rule__User__Group__24331 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__User__Group__3_in_rule__User__Group__24334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__User__Group__2__Impl4362 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__User__Group__3__Impl_in_rule__User__Group__34393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__User__Group__3__Impl4421 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__0__Impl_in_rule__RoleAssignment__Group__04460 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__1_in_rule__RoleAssignment__Group__04463 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_rule__RoleAssignment__Group__0__Impl4491 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__1__Impl_in_rule__RoleAssignment__Group__14522 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__2_in_rule__RoleAssignment__Group__14525 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__NameAssignment_1_in_rule__RoleAssignment__Group__1__Impl4552 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__2__Impl_in_rule__RoleAssignment__Group__24582 = new BitSet(new long[]{0x0020000000000000L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__3_in_rule__RoleAssignment__Group__24585 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__RoleAssignment__Group__2__Impl4613 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__3__Impl_in_rule__RoleAssignment__Group__34644 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__4_in_rule__RoleAssignment__Group__34647 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_rule__RoleAssignment__Group__3__Impl4675 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__4__Impl_in_rule__RoleAssignment__Group__44706 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__5_in_rule__RoleAssignment__Group__44709 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__RoleAssignment__Group__4__Impl4737 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__5__Impl_in_rule__RoleAssignment__Group__54768 = new BitSet(new long[]{0x0040004000000000L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__6_in_rule__RoleAssignment__Group__54771 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__MemberAssignment_5_in_rule__RoleAssignment__Group__5__Impl4798 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__6__Impl_in_rule__RoleAssignment__Group__64828 = new BitSet(new long[]{0x0040004000000000L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__7_in_rule__RoleAssignment__Group__64831 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__0_in_rule__RoleAssignment__Group__6__Impl4858 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group__7__Impl_in_rule__RoleAssignment__Group__74889 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__RoleAssignment__Group__7__Impl4917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__0__Impl_in_rule__RoleAssignment__Group_6__04964 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__1_in_rule__RoleAssignment__Group_6__04967 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_rule__RoleAssignment__Group_6__0__Impl4995 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__1__Impl_in_rule__RoleAssignment__Group_6__15026 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__2_in_rule__RoleAssignment__Group_6__15029 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_rule__RoleAssignment__Group_6__1__Impl5057 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__2__Impl_in_rule__RoleAssignment__Group_6__25088 = new BitSet(new long[]{0x0006000000000000L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__3_in_rule__RoleAssignment__Group_6__25091 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_2_in_rule__RoleAssignment__Group_6__2__Impl5118 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__3__Impl_in_rule__RoleAssignment__Group_6__35148 = new BitSet(new long[]{0x0006000000000000L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__4_in_rule__RoleAssignment__Group_6__35151 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6_3__0_in_rule__RoleAssignment__Group_6__3__Impl5178 = new BitSet(new long[]{0x0004000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6__4__Impl_in_rule__RoleAssignment__Group_6__45209 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_rule__RoleAssignment__Group_6__4__Impl5237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6_3__0__Impl_in_rule__RoleAssignment__Group_6_3__05278 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6_3__1_in_rule__RoleAssignment__Group_6_3__05281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__RoleAssignment__Group_6_3__0__Impl5309 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__Group_6_3__1__Impl_in_rule__RoleAssignment__Group_6_3__15340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_1_in_rule__RoleAssignment__Group_6_3__1__Impl5367 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__0__Impl_in_rule__RoleDefinition__Group__05401 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__1_in_rule__RoleDefinition__Group__05404 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_rule__RoleDefinition__Group__0__Impl5432 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__1__Impl_in_rule__RoleDefinition__Group__15463 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__2_in_rule__RoleDefinition__Group__15466 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__NameAssignment_1_in_rule__RoleDefinition__Group__1__Impl5493 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__2__Impl_in_rule__RoleDefinition__Group__25523 = new BitSet(new long[]{0x0100000000000000L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__3_in_rule__RoleDefinition__Group__25526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__RoleDefinition__Group__2__Impl5554 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__3__Impl_in_rule__RoleDefinition__Group__35585 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__4_in_rule__RoleDefinition__Group__35588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_rule__RoleDefinition__Group__3__Impl5616 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__4__Impl_in_rule__RoleDefinition__Group__45647 = new BitSet(new long[]{0x0000000FFFFFF800L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__5_in_rule__RoleDefinition__Group__45650 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__RoleDefinition__Group__4__Impl5678 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__5__Impl_in_rule__RoleDefinition__Group__55709 = new BitSet(new long[]{0x0004004000000000L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__6_in_rule__RoleDefinition__Group__55712 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__BasePermissionsAssignment_5_in_rule__RoleDefinition__Group__5__Impl5739 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__6__Impl_in_rule__RoleDefinition__Group__65769 = new BitSet(new long[]{0x0004004000000000L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__7_in_rule__RoleDefinition__Group__65772 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group_6__0_in_rule__RoleDefinition__Group__6__Impl5799 = new BitSet(new long[]{0x0004000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__7__Impl_in_rule__RoleDefinition__Group__75830 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__8_in_rule__RoleDefinition__Group__75833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__RoleDefinition__Group__7__Impl5861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group__8__Impl_in_rule__RoleDefinition__Group__85892 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__RoleDefinition__Group__8__Impl5920 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group_6__0__Impl_in_rule__RoleDefinition__Group_6__05969 = new BitSet(new long[]{0x0000000FFFFFF800L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group_6__1_in_rule__RoleDefinition__Group_6__05972 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__RoleDefinition__Group_6__0__Impl6000 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__Group_6__1__Impl_in_rule__RoleDefinition__Group_6__16031 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RoleDefinition__BasePermissionsAssignment_6_1_in_rule__RoleDefinition__Group_6__1__Impl6058 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__06092 = new BitSet(new long[]{0x0200000000000000L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__06095 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__QualifiedName__Group__0__Impl6122 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__16151 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl6178 = new BitSet(new long[]{0x0200000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__06213 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__06216 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_rule__QualifiedName__Group_1__0__Impl6244 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__16275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__QualifiedName__Group_1__1__Impl6302 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__UserModel__NameAssignment_16340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUser_in_rule__UserModel__UsersAssignment_3_26371 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUser_in_rule__UserModel__UsersAssignment_3_36402 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSitePermission_in_rule__UserModel__SitePermissionsAssignment_4_26433 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSitePermission_in_rule__UserModel__SitePermissionsAssignment_4_36464 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__SitePermission__NameAssignment_16495 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__SitePermission__WebGUIDAssignment_56526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGroup_in_rule__SitePermission__OwnedGroupAssignment_6_26557 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRoleDefinition_in_rule__SitePermission__OwnedRoleDefinitionAssignment_7_26588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRoleAssignment_in_rule__SitePermission__OwnedRoleAssignmentsAssignment_8_26619 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Group__NameAssignment_16650 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Group__UsersAssignment_3_26685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Group__UsersAssignment_3_3_16724 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__User__NameAssignment_16759 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__RoleAssignment__NameAssignment_16790 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__RoleAssignment__MemberAssignment_56825 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_26864 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__RoleAssignment__RoleDefinitionBindingsAssignment_6_3_16903 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__RoleDefinition__NameAssignment_16938 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBasePermission_in_rule__RoleDefinition__BasePermissionsAssignment_56969 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBasePermission_in_rule__RoleDefinition__BasePermissionsAssignment_6_17000 = new BitSet(new long[]{0x0000000000000002L});

}