/** Constraint: (y=LookAhead2 x='b' z='d') */
 protected void sequence_LookAhead1(EObject context, LookAhead1 semanticObject) {
   if (errorAcceptor != null) {
     if (transientValues.isValueTransient(semanticObject, LookaheadLangPackage.Literals.ALTS__X)
         == ValueTransient.YES)
       errorAcceptor.accept(
           diagnosticProvider.createFeatureValueMissing(
               semanticObject, LookaheadLangPackage.Literals.ALTS__X));
     if (transientValues.isValueTransient(
             semanticObject, LookaheadLangPackage.Literals.LOOK_AHEAD1__Y)
         == ValueTransient.YES)
       errorAcceptor.accept(
           diagnosticProvider.createFeatureValueMissing(
               semanticObject, LookaheadLangPackage.Literals.LOOK_AHEAD1__Y));
     if (transientValues.isValueTransient(
             semanticObject, LookaheadLangPackage.Literals.LOOK_AHEAD1__Z)
         == ValueTransient.YES)
       errorAcceptor.accept(
           diagnosticProvider.createFeatureValueMissing(
               semanticObject, LookaheadLangPackage.Literals.LOOK_AHEAD1__Z));
   }
   INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
   SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
   feeder.accept(
       grammarAccess.getLookAhead1Access().getYLookAhead2ParserRuleCall_1_0(),
       semanticObject.getY());
   feeder.accept(grammarAccess.getLookAhead1Access().getXBKeyword_2_0(), semanticObject.getX());
   feeder.accept(grammarAccess.getLookAhead1Access().getZDKeyword_3_0(), semanticObject.getZ());
   feeder.finish();
 }
  // $ANTLR start "ruleLookAhead1"
  // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:205:1: ruleLookAhead1 returns [EObject current=null] : (otherlv_0= 'foo' ( (lv_y_1_0= ruleLookAhead2 ) ) ( (lv_x_2_0= 'b' ) ) ( (lv_x_3_0= 'd' ) ) ) ;
  public final EObject ruleLookAhead1() throws RecognitionException {
    EObject current = null;

    Token otherlv_0 = null;
    Token lv_x_2_0 = null;
    Token lv_x_3_0 = null;
    EObject lv_y_1_0 = null;

    enterRule();

    try {
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:208:28: ( (otherlv_0= 'foo' ( (lv_y_1_0= ruleLookAhead2 ) ) ( (lv_x_2_0= 'b' ) ) ( (lv_x_3_0= 'd' ) ) ) )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:209:1: (otherlv_0= 'foo' ( (lv_y_1_0= ruleLookAhead2 ) ) ( (lv_x_2_0= 'b' ) ) ( (lv_x_3_0= 'd' ) ) )
      {
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:209:1: (otherlv_0= 'foo' ( (lv_y_1_0= ruleLookAhead2 ) ) ( (lv_x_2_0= 'b' ) ) ( (lv_x_3_0= 'd' ) ) )
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:209:3: otherlv_0= 'foo' ( (lv_y_1_0= ruleLookAhead2 ) ) ( (lv_x_2_0= 'b' ) ) ( (lv_x_3_0= 'd' ) )
        {
          otherlv_0 = (Token) match(input, 13, FollowSets000.FOLLOW_13_in_ruleLookAhead1473);

          newLeafNode(otherlv_0, grammarAccess.getLookAhead1Access().getFooKeyword_0());

          // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:213:1: ( (lv_y_1_0= ruleLookAhead2 ) )
          // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:214:1: (lv_y_1_0= ruleLookAhead2 )
          {
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:214:1: (lv_y_1_0= ruleLookAhead2 )
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:215:3: lv_y_1_0= ruleLookAhead2
            {
              newCompositeNode(
                  grammarAccess.getLookAhead1Access().getYLookAhead2ParserRuleCall_1_0());

              pushFollow(FollowSets000.FOLLOW_ruleLookAhead2_in_ruleLookAhead1494);
              lv_y_1_0 = ruleLookAhead2();

              state._fsp--;

              if (current == null) {
                current = createModelElementForParent(grammarAccess.getLookAhead1Rule());
              }
              set(current, "y", lv_y_1_0, "LookAhead2");
              afterParserOrEnumRuleCall();
            }
          }

          // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:231:2: ( (lv_x_2_0= 'b' ) )
          // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:232:1: (lv_x_2_0= 'b' )
          {
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:232:1: (lv_x_2_0= 'b' )
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:233:3: lv_x_2_0= 'b'
            {
              lv_x_2_0 = (Token) match(input, 14, FollowSets000.FOLLOW_14_in_ruleLookAhead1512);

              newLeafNode(lv_x_2_0, grammarAccess.getLookAhead1Access().getXBKeyword_2_0());

              if (current == null) {
                current = createModelElement(grammarAccess.getLookAhead1Rule());
              }
              setWithLastConsumed(current, "x", lv_x_2_0, "b");
            }
          }

          // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:246:2: ( (lv_x_3_0= 'd' ) )
          // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:247:1: (lv_x_3_0= 'd' )
          {
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:247:1: (lv_x_3_0= 'd' )
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/testlanguages/parser/antlr/internal/InternalLookaheadTestLanguage.g:248:3: lv_x_3_0= 'd'
            {
              lv_x_3_0 = (Token) match(input, 15, FollowSets000.FOLLOW_15_in_ruleLookAhead1543);

              newLeafNode(lv_x_3_0, grammarAccess.getLookAhead1Access().getXDKeyword_3_0());

              if (current == null) {
                current = createModelElement(grammarAccess.getLookAhead1Rule());
              }
              setWithLastConsumed(current, "x", lv_x_3_0, "d");
            }
          }
        }
      }

      leaveRule();
    } catch (RecognitionException re) {
      recover(input, re);
      appendSkippedTokens();
    } finally {
    }
    return current;
  }