docs: public final DSLMapParser.entry_return entry() throws RecognitionException {
  		DSLMapParser.entry_return retval = new DSLMapParser.entry_return();
  		retval.start = input.LT(1);
  
  		Object root_0 = null;
  
  		Token EQUALS7=null;
  		Token EOL9=null;
  		Token EOF10=null;
  		ParserRuleReturnScope scope_section4 =null;
  		ParserRuleReturnScope meta_section5 =null;
  		ParserRuleReturnScope key_section6 =null;
  		ParserRuleReturnScope value_section8 =null;
  
  		Object EQUALS7_tree=null;
  		Object EOL9_tree=null;
  		Object EOF10_tree=null;
  		RewriteRuleTokenStream stream_EQUALS=new RewriteRuleTokenStream(adaptor,"token EQUALS");
  		RewriteRuleTokenStream stream_EOL=new RewriteRuleTokenStream(adaptor,"token EOL");
  		RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
  		RewriteRuleSubtreeStream stream_meta_section=new RewriteRuleSubtreeStream(adaptor,"rule meta_section");
  		RewriteRuleSubtreeStream stream_key_section=new RewriteRuleSubtreeStream(adaptor,"rule key_section");
  		RewriteRuleSubtreeStream stream_scope_section=new RewriteRuleSubtreeStream(adaptor,"rule scope_section");
  		RewriteRuleSubtreeStream stream_value_section=new RewriteRuleSubtreeStream(adaptor,"rule value_section");
  
  		try {
  			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:119:8: ( scope_section ( meta_section )? key_section EQUALS ( value_section )? ( EOL | EOF ) -> ^( VT_ENTRY scope_section ( meta_section )? key_section ( value_section )? ) )
  			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:119:10: scope_section ( meta_section )? key_section EQUALS ( value_section )? ( EOL | EOF )
  			{
  			pushFollow(FOLLOW_scope_section_in_entry336);
  			scope_section4=scope_section();
  			state._fsp--;
  			if (state.failed) return retval;
  			if ( state.backtracking==0 ) stream_scope_section.add(scope_section4.getTree());
  			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:119:24: ( meta_section )?
  			int alt3=2;
  			int LA3_0 = input.LA(1);
  			if ( (LA3_0==LEFT_SQUARE) ) {
  				int LA3_1 = input.LA(2);
  				if ( (LA3_1==LITERAL) ) {
  					int LA3_3 = input.LA(3);
  					if ( (LA3_3==RIGHT_SQUARE) ) {
  						int LA3_5 = input.LA(4);
  						if ( (synpred3_DSLMap()) ) {
  							alt3=1;
  						}
  					}
  				}
  				else if ( (LA3_1==RIGHT_SQUARE) ) {
  					int LA3_4 = input.LA(3);
  					if ( (synpred3_DSLMap()) ) {
  						alt3=1;
  					}
  				}
  			}
  			switch (alt3) {
  				case 1 :
  					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:119:24: meta_section
  					{
  					pushFollow(FOLLOW_meta_section_in_entry338);
  					meta_section5=meta_section();
  					state._fsp--;
  					if (state.failed) return retval;
  					if ( state.backtracking==0 ) stream_meta_section.add(meta_section5.getTree());
  					}
  					break;
  
  			}
  
  			pushFollow(FOLLOW_key_section_in_entry341);
  			key_section6=key_section();
  			state._fsp--;
  			if (state.failed) return retval;
  			if ( state.backtracking==0 ) stream_key_section.add(key_section6.getTree());
  			EQUALS7=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_entry343); if (state.failed) return retval; 
  			if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS7);
  
  			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:119:57: ( value_section )?
  			int alt4=2;
  			int LA4_0 = input.LA(1);
  			if ( ((LA4_0 >= COLON && LA4_0 <= DOT)||LA4_0==EQUALS||(LA4_0 >= LEFT_CURLY && LA4_0 <= LITERAL)||LA4_0==RIGHT_SQUARE) ) {
  				alt4=1;
  			}
  			switch (alt4) {
  				case 1 :
  					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:119:57: value_section
  					{
  					pushFollow(FOLLOW_value_section_in_entry345);
  					value_section8=value_section();
  					state._fsp--;
  					if (state.failed) return retval;
  					if ( state.backtracking==0 ) stream_value_section.add(value_section8.getTree());
  					}
  					break;
  
  			}
  
  			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:119:72: ( EOL | EOF )
  			int alt5=2;
  			int LA5_0 = input.LA(1);
  			if ( (LA5_0==EOL) ) {
  				alt5=1;
  			}
  			else if ( (LA5_0==EOF) ) {
  				alt5=2;
  			}
  
  			else {
  				if (state.backtracking>0) {state.failed=true; return retval;}
  				NoViableAltException nvae =
  					new NoViableAltException("", 5, 0, input);
  				throw nvae;
  			}
  
  			switch (alt5) {
  				case 1 :
  					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:119:73: EOL
  					{
  					EOL9=(Token)match(input,EOL,FOLLOW_EOL_in_entry349); if (state.failed) return retval; 
  					if ( state.backtracking==0 ) stream_EOL.add(EOL9);
  
  					}
  					break;
  				case 2 :
  					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:119:77: EOF
  					{
  					EOF10=(Token)match(input,EOF,FOLLOW_EOF_in_entry351); if (state.failed) return retval; 
  					if ( state.backtracking==0 ) stream_EOF.add(EOF10);
  
  					}
  					break;
  
  			}
  
  			// AST REWRITE
  			// elements: meta_section, scope_section, key_section, value_section
  			// token labels: 
  			// rule labels: retval
  			// token list labels: 
  			// rule list labels: 
  			// wildcard labels: 
  			if ( state.backtracking==0 ) {
  			retval.tree = root_0;
  			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
  
  			root_0 = (Object)adaptor.nil();
  			// 120:5: -> ^( VT_ENTRY scope_section ( meta_section )? key_section ( value_section )? )
  			{
  				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:120:8: ^( VT_ENTRY scope_section ( meta_section )? key_section ( value_section )? )
  				{
  				Object root_1 = (Object)adaptor.nil();
  				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_ENTRY, "VT_ENTRY"), root_1);
  				adaptor.addChild(root_1, stream_scope_section.nextTree());
  				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:120:33: ( meta_section )?
  				if ( stream_meta_section.hasNext() ) {
  					adaptor.addChild(root_1, stream_meta_section.nextTree());
  				}
  				stream_meta_section.reset();
  
  				adaptor.addChild(root_1, stream_key_section.nextTree());
  				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:120:59: ( value_section )?
  				if ( stream_value_section.hasNext() ) {
  					adaptor.addChild(root_1, stream_value_section.nextTree());
  				}
  				stream_value_section.reset();
  
  				adaptor.addChild(root_0, root_1);
  				}
  
  			}
  
  
  			retval.tree = root_0;
  			}
  
  			}
  
  			retval.stop = input.LT(-1);
  
  			if ( state.backtracking==0 ) {
  			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
  			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
  			}
  		}
  		catch ( RecognitionException e ) {
  
  			        reportError( e );
  			    
  		}
  		catch ( RewriteEmptyStreamException e ) {
  
  			    
  		}
  
  		finally {
  			// do for sure before leaving
  		}
  		return retval;
  	}