gt:             catch (RecognitionException re) { 
context: package nl.sison.dsl.mobgen.parser.antlr.internal; 
  
  import org.eclipse.xtext.*;
  import org.eclipse.xtext.parser.*;
  import org.eclipse.xtext.parser.impl.*;
  import org.eclipse.emf.ecore.util.EcoreUtil;
  import org.eclipse.emf.ecore.EObject;
  import org.eclipse.emf.common.util.Enumerator;
  import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
  import org.eclipse.xtext.parser.antlr.XtextTokenStream;
  import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
  import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
  import nl.sison.dsl.mobgen.services.RestfulGrammarAccess;
  
  
  
  import org.antlr.runtime.*;
  import java.util.Stack;
  import java.util.List;
  import java.util.ArrayList;
  
  @SuppressWarnings("all")
  public class InternalRestfulParser extends AbstractInternalAntlrParser {
      public static final String[] tokenNames = new String[] {
          "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_EMPTY_JSON_OBJECT", "RULE_EMPTY_JSON_ARRAY", "RULE_JSON_LITERAL_NULL", "RULE_JSON_NUMBER_FLOAT", "RULE_INT", "RULE_URL_PREFIX", "RULE_URL_PATH", "RULE_URL_QUERY", "RULE_URL_QUERY_SUFFIX", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'call'", "':'", "'from'", "'with'", "'headers'", "'request'", "'and'", "'response'", "'client'", "'expects'", "'server'", "'\\'\\'\\''", "'{'", "','", "'}'", "'='", "'['", "']'", "'enum'", "'map'", "'PUT'", "'POST'", "'GET'", "'DELETE'", "'boolean'", "'number'", "'string'", "'true'", "'false'"
      };
      public static final int RULE_JSON_LITERAL_NULL=8;
      public static final int T__19=19;
      public static final int RULE_EMPTY_JSON_ARRAY=7;
      public static final int RULE_ID=4;
      public static final int RULE_URL_QUERY=13;
      public static final int T__26=26;
      public static final int T__27=27;
      public static final int T__28=28;
      public static final int RULE_INT=10;
      public static final int T__29=29;
      public static final int T__22=22;
      public static final int RULE_ML_COMMENT=15;
      public static final int T__23=23;
      public static final int T__24=24;
      public static final int T__25=25;
      public static final int RULE_EMPTY_JSON_OBJECT=6;
      public static final int T__20=20;
      public static final int T__21=21;
      public static final int RULE_URL_QUERY_SUFFIX=14;
      public static final int RULE_STRING=5;
      public static final int RULE_SL_COMMENT=16;
      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 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 EOF=-1;
      public static final int T__30=30;
      public static final int T__31=31;
      public static final int T__32=32;
      public static final int RULE_URL_PATH=12;
      public static final int RULE_WS=17;
      public static final int RULE_JSON_NUMBER_FLOAT=9;
      public static final int RULE_ANY_OTHER=18;
      public static final int RULE_URL_PREFIX=11;
      public static final int T__44=44;
      public static final int T__45=45;
      public static final int T__46=46;
      public static final int T__47=47;
      public static final int T__40=40;
      public static final int T__41=41;
      public static final int T__42=42;
      public static final int T__43=43;
  
      // delegates
      // delegators
  
  
          public InternalRestfulParser(TokenStream input) {
              this(input, new RecognizerSharedState());
          }
          public InternalRestfulParser(TokenStream input, RecognizerSharedState state) {
              super(input, state);
               
          }
          
  
      public String[] getTokenNames() { return InternalRestfulParser.tokenNames; }
      public String getGrammarFileName() { return "../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g"; }
  
  
  
       	private RestfulGrammarAccess grammarAccess;
       	
          public InternalRestfulParser(TokenStream input, RestfulGrammarAccess grammarAccess) {
              this(input);
              this.grammarAccess = grammarAccess;
              registerRules(grammarAccess.getGrammar());
          }
          
          @Override
          protected String getFirstRuleName() {
          	return "Mobgen";	
         	}
         	
         	@Override
         	protected RestfulGrammarAccess getGrammarAccess() {
         		return grammarAccess;
         	}
  
  
  
      // $ANTLR start "entryRuleMobgen"
      // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:68:1: entryRuleMobgen returns [EObject current=null] : iv_ruleMobgen= ruleMobgen EOF ;
      public final EObject entryRuleMobgen() throws RecognitionException {
          EObject current = null;
  
          EObject iv_ruleMobgen = null;
  
  
          try {
              // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:69:2: (iv_ruleMobgen= ruleMobgen EOF )
              // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:70:2: iv_ruleMobgen= ruleMobgen EOF
              {
               newCompositeNode(grammarAccess.getMobgenRule()); 
              pushFollow(FOLLOW_ruleMobgen_in_entryRuleMobgen75);
              iv_ruleMobgen=ruleMobgen();
  
              state._fsp--;
  
               current =iv_ruleMobgen; 
              match(input,EOF,FOLLOW_EOF_in_entryRuleMobgen85); 
  
              }
  
          }
           
              catch (RecognitionException re) { 
                  recover(input,re); 
                  appendSkippedTokens();
              } 
          finally {
          }
          return current;
      }
      // $ANTLR end "entryRuleMobgen"
  
  
      // $ANTLR start "ruleMobgen"
      // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:77:1: ruleMobgen returns [EObject current=null] : ( ( (lv_resources_0_0= ruleMobgenResourceDefinition ) ) | ( (lv_calls_1_0= ruleMobgenCallDefinition ) ) )* ;
      public final EObject ruleMobgen() throws RecognitionException {
          EObject current = null;
  
          EObject lv_resources_0_0 = null;
  
          EObject lv_calls_1_0 = null;
  
  
           enterRule(); 
              
          try {
              // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:80:28: ( ( ( (lv_resources_0_0= ruleMobgenResourceDefinition ) ) | ( (lv_calls_1_0= ruleMobgenCallDefinition ) ) )* )
              // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:81:1: ( ( (lv_resources_0_0= ruleMobgenResourceDefinition ) ) | ( (lv_calls_1_0= ruleMobgenCallDefinition ) ) )*
              {
              // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:81:1: ( ( (lv_resources_0_0= ruleMobgenResourceDefinition ) ) | ( (lv_calls_1_0= ruleMobgenCallDefinition ) ) )*
              loop1:
              do {
                  int alt1=3;
                  int LA1_0 = input.LA(1);
  
                  if ( ((LA1_0>=37 && LA1_0<=38)) ) {
                      alt1=1;
                  }
                  else if ( (LA1_0==19) ) {
                      alt1=2;
                  }
  
  
                  switch (alt1) {
              	case 1 :
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:81:2: ( (lv_resources_0_0= ruleMobgenResourceDefinition ) )
              	    {
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:81:2: ( (lv_resources_0_0= ruleMobgenResourceDefinition ) )
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:82:1: (lv_resources_0_0= ruleMobgenResourceDefinition )
              	    {
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:82:1: (lv_resources_0_0= ruleMobgenResourceDefinition )
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:83:3: lv_resources_0_0= ruleMobgenResourceDefinition
              	    {
              	     
              	    	        newCompositeNode(grammarAccess.getMobgenAccess().getResourcesMobgenResourceDefinitionParserRuleCall_0_0()); 
              	    	    
              	    pushFollow(FOLLOW_ruleMobgenResourceDefinition_in_ruleMobgen131);
              	    lv_resources_0_0=ruleMobgenResourceDefinition();
  
              	    state._fsp--;
  
  
              	    	        if (current==null) {
              	    	            current = createModelElementForParent(grammarAccess.getMobgenRule());
              	    	        }
              	           		add(
              	           			current, 
              	           			"resources",
              	            		lv_resources_0_0, 
              	            		"MobgenResourceDefinition");
              	    	        afterParserOrEnumRuleCall();
              	    	    
  
              	    }
  
  
              	    }
  
  
              	    }
              	    break;
              	case 2 :
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:100:6: ( (lv_calls_1_0= ruleMobgenCallDefinition ) )
              	    {
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:100:6: ( (lv_calls_1_0= ruleMobgenCallDefinition ) )
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:101:1: (lv_calls_1_0= ruleMobgenCallDefinition )
              	    {
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:101:1: (lv_calls_1_0= ruleMobgenCallDefinition )
              	    // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:102:3: lv_calls_1_0= ruleMobgenCallDefinition
              	    {
              	     
              	    	        newCompositeNode(grammarAccess.getMobgenAccess().getCallsMobgenCallDefinitionParserRuleCall_1_0()); 
              	    	    
              	    pushFollow(FOLLOW_ruleMobgenCallDefinition_in_ruleMobgen158);
              	    lv_calls_1_0=ruleMobgenCallDefinition();
  
              	    state._fsp--;
  
  
              	    	        if (current==null) {
              	    	            current = createModelElementForParent(grammarAccess.getMobgenRule());
              	    	        }
              	           		add(
              	           			current, 
              	           			"calls",
              	            		lv_calls_1_0, 
              	            		"MobgenCallDefinition");
              	    	        afterParserOrEnumRuleCall();
              	    	    
  
              	    }
  
  
              	    }
  
  
              	    }
              	    break;
  
              	default :
              	    break loop1;
                  }
              } while (true);
  
  
              }
  
               leaveRule(); 
          }
           
              catch (RecognitionException re) { 
                  recover(input,re); 
                  appendSkippedTokens();
              } 
          finally {
          }
          return current;
      }
      // $ANTLR end "ruleMobgen"
  
  
      // $ANTLR start "entryRuleMobgenCallDefinition"
      // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:126:1: entryRuleMobgenCallDefinition returns [EObject current=null] : iv_ruleMobgenCallDefinition= ruleMobgenCallDefinition EOF ;
      public final EObject entryRuleMobgenCallDefinition() throws RecognitionException {
          EObject current = null;
  
          EObject iv_ruleMobgenCallDefinition = null;
  
  
          try {
              // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:127:2: (iv_ruleMobgenCallDefinition= ruleMobgenCallDefinition EOF )
              // ../nl.sison.dsl.mobgen.Restful/src-gen/nl/sison/dsl/mobgen/parser/antlr/internal/InternalRestful.g:128:2: iv_ruleMobgenCallDefinition= ruleMobgenCallDefinition EOF
              {
               newCompositeNode(grammarAccess.getMobgenCallDefinitionRule()); 
              pushFollow(FOLLOW_ruleMobgenCallDefinition_in_entryRuleMobgenCallDefinition195);
              iv_ruleMobgenCallDefinition=ruleMobgenCallDefinition();
  
              state._fsp--;
  
               current =iv_ruleMobgenCallDefinition; 
              match(input,EOF,FOLLOW_EOF_in_entryRuleMobgenCallDefinition205); 
  
              }
  
          }
           
  