com/dyuproject/protostuff/parser/ProtoParser.g:641:1: ignore_block : LEFTCURLY ( ignore_block_body )* RIGHTCURLY ;
6012
public final ProtoParser.ignore_block_return ignore_block() throws RecognitionException {
        ProtoParser.ignore_block_return retval = new ProtoParser.ignore_block_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token LEFTCURLY166=null;
        Token RIGHTCURLY168=null;
        ProtoParser.ignore_block_body_return ignore_block_body167 = null;


        Object LEFTCURLY166_tree=null;
        Object RIGHTCURLY168_tree=null;

        try {
            // com/dyuproject/protostuff/parser/ProtoParser.g:642:5: ( LEFTCURLY ( ignore_block_body )* RIGHTCURLY )
            // com/dyuproject/protostuff/parser/ProtoParser.g:642:9: LEFTCURLY ( ignore_block_body )* RIGHTCURLY
            {
            root_0 = (Object)adaptor.nil();

            LEFTCURLY166=(Token)match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_ignore_block2623); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            LEFTCURLY166_tree = (Object)adaptor.create(LEFTCURLY166);
            adaptor.addChild(root_0, LEFTCURLY166_tree);
            }
            // com/dyuproject/protostuff/parser/ProtoParser.g:642:19: ( ignore_block_body )*
            loop38:
            do {
                int alt38=2;
                switch ( input.LA(1) ) {
                case ASSIGN:
                case AT:
                case LEFTCURLY:
                case LEFTPAREN:
                case RIGHTPAREN:
                case LEFTSQUARE:
                case RIGHTSQUARE:
                case SEMICOLON:
                case COMMA:
                case PLUS:
                case MINUS:
                case TO:
                case TRUE:
                case FALSE:
                case PKG:
                case SYNTAX:
                case IMPORT:
                case OPTION:
                case MESSAGE:
                case SERVICE:
                case ENUM:
                case REQUIRED:
                case OPTIONAL:
                case REPEATED:
                case EXTENSIONS:
                case EXTEND:
                case GROUP:
                case RPC:
                case RETURNS:
                case INT32:
                case INT64:
                case UINT32:
                case UINT64:
                case SINT32:
                case SINT64:
                case FIXED32:
                case FIXED64:
                case SFIXED32:
                case SFIXED64:
                case FLOAT:
                case DOUBLE:
                case BOOL:
                case STRING:
                case BYTES:
                case DEFAULT:
                case MAX:
                case VOID:
                case ID:
                case FULL_ID:
                case NUMINT:
                case EXP:
                case NUMFLOAT:
                case NUMDOUBLE:
                case HEX_DIGIT:
                case HEX:
                case OCTAL:
                case COMMENT:
                case WS:
                case ESC_SEQ:
                case STRING_LITERAL:
                case UNICODE_ESC:
                case OCTAL_ESC:
                    {
                    alt38=1;
                    }
                    break;

                }

                switch (alt38) {
            	case 1 :
            	    // com/dyuproject/protostuff/parser/ProtoParser.g:642:19: ignore_block_body
            	    {
            	    pushFollow(FOLLOW_ignore_block_body_in_ignore_block2625);
            	    ignore_block_body167=ignore_block_body();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, ignore_block_body167.getTree());

            	    }
            	    break;

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

            RIGHTCURLY168=(Token)match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_ignore_block2628); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            RIGHTCURLY168_tree = (Object)adaptor.create(RIGHTCURLY168);
            adaptor.addChild(root_0, RIGHTCURLY168_tree);
            }

            }

            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 re) {
            reportError(re);
            recover(input,re);
    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);

        }
        finally {
        }
        return retval;
    }
432582
public final void mEOL() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:80:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:81:12: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
			{
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:81:12: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
			int alt2=3;
			int LA2_0 = input.LA(1);
			if ( (LA2_0=='\r') ) {
				int LA2_1 = input.LA(2);
				if ( (LA2_1=='\n') && (synpred1_DRL5Lexer())) {
					alt2=1;
				}

			}
			else if ( (LA2_0=='\n') ) {
				alt2=3;
			}

			else {
				if (state.backtracking>0) {state.failed=true; return;}
				NoViableAltException nvae =
					new NoViableAltException("", 2, 0, input);
				throw nvae;
			}

			switch (alt2) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:81:20: ( '\\r\\n' )=> '\\r\\n'
					{
					match("\r\n"); if (state.failed) return;

					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:82:25: '\\r'
					{
					match('\r'); if (state.failed) return;
					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:83:25: '\\n'
					{
					match('\n'); if (state.failed) return;
					}
					break;

			}

			}

		}
		finally {
			// do for sure before leaving
		}
	}
401927
public final ProtoParser.enum_block_return enum_block(Proto proto, Message message) throws RecognitionException {
        ProtoParser.enum_block_return retval = new ProtoParser.enum_block_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token ENUM118=null;
        Token ID119=null;
        Token LEFTCURLY120=null;
        Token RIGHTCURLY122=null;
        Token SEMICOLON123=null;
        ProtoParser.enum_body_return enum_body121 = null;


        Object ENUM118_tree=null;
        Object ID119_tree=null;
        Object LEFTCURLY120_tree=null;
        Object RIGHTCURLY122_tree=null;
        Object SEMICOLON123_tree=null;


            EnumGroup enumGroup = null;

        try {
            // com/dyuproject/protostuff/parser/ProtoParser.g:527:5: ( ENUM ID LEFTCURLY ( enum_body[proto, message, enumGroup] )* RIGHTCURLY ( ( SEMICOLON )? ) )
            // com/dyuproject/protostuff/parser/ProtoParser.g:527:9: ENUM ID LEFTCURLY ( enum_body[proto, message, enumGroup] )* RIGHTCURLY ( ( SEMICOLON )? )
            {
            root_0 = (Object)adaptor.nil();

            ENUM118=(Token)match(input,ENUM,FOLLOW_ENUM_in_enum_block2076); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            ENUM118_tree = (Object)adaptor.create(ENUM118);
            adaptor.addChild(root_0, ENUM118_tree);
            }
            ID119=(Token)match(input,ID,FOLLOW_ID_in_enum_block2078); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            ID119_tree = (Object)adaptor.create(ID119);
            adaptor.addChild(root_0, ID119_tree);
            }
            if ( state.backtracking==0 ) {
               
                          enumGroup = new EnumGroup((ID119!=null?ID119.getText():null), message, proto);
                          proto.addAnnotationsTo(enumGroup);
                      
            }
            LEFTCURLY120=(Token)match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_enum_block2091); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            LEFTCURLY120_tree = (Object)adaptor.create(LEFTCURLY120);
            adaptor.addChild(root_0, LEFTCURLY120_tree);
            }
            // com/dyuproject/protostuff/parser/ProtoParser.g:531:19: ( enum_body[proto, message, enumGroup] )*
            loop22:
            do {
                int alt22=2;
                switch ( input.LA(1) ) {
                case AT:
                case OPTION:
                case ID:
                    {
                    alt22=1;
                    }
                    break;

                }

                switch (alt22) {
            	case 1 :
            	    // com/dyuproject/protostuff/parser/ProtoParser.g:531:20: enum_body[proto, message, enumGroup]
            	    {
            	    pushFollow(FOLLOW_enum_body_in_enum_block2094);
            	    enum_body121=enum_body(proto, message, enumGroup);

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, enum_body121.getTree());

            	    }
            	    break;

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

            RIGHTCURLY122=(Token)match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_enum_block2099); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            RIGHTCURLY122_tree = (Object)adaptor.create(RIGHTCURLY122);
            adaptor.addChild(root_0, RIGHTCURLY122_tree);
            }
            if ( state.backtracking==0 ) {

                          if(!proto.annotations.isEmpty())
                              throw new IllegalStateException("Misplaced annotations: " + proto.annotations);
                      
            }
            // com/dyuproject/protostuff/parser/ProtoParser.g:534:11: ( ( SEMICOLON )? )
            // com/dyuproject/protostuff/parser/ProtoParser.g:534:12: ( SEMICOLON )?
            {
            // com/dyuproject/protostuff/parser/ProtoParser.g:534:12: ( SEMICOLON )?
            int alt23=2;
            switch ( input.LA(1) ) {
                case SEMICOLON:
                    {
                    alt23=1;
                    }
                    break;
            }

            switch (alt23) {
                case 1 :
                    // com/dyuproject/protostuff/parser/ProtoParser.g:534:12: SEMICOLON
                    {
                    SEMICOLON123=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_enum_block2104); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    SEMICOLON123_tree = (Object)adaptor.create(SEMICOLON123);
                    adaptor.addChild(root_0, SEMICOLON123_tree);
                    }

                    }
                    break;

            }


            }


            }

            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 re) {
            reportError(re);
            recover(input,re);
    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);

        }
        finally {
        }
        return retval;
    }
898816
def visitLexerBlock(self, ctx: jsgParser.LexerBlockContext):
        
        self._rulePattern += '('
        self.visitChildren(ctx)
        self._rulePattern += ')'
1240520
public final void mOCTAL_ESC() throws RecognitionException {
        try {
            // com/dyuproject/protostuff/parser/ProtoLexer.g:287:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
            int alt19=3;
            switch ( input.LA(1) ) {
            case '\\':
                {
                switch ( input.LA(2) ) {
                case '0':
                case '1':
                case '2':
                case '3':
                    {
                    switch ( input.LA(3) ) {
                    case '0':
                    case '1':
                    case '2':
                    case '3':
                    case '4':
                    case '5':
                    case '6':
                    case '7':
                        {
                        switch ( input.LA(4) ) {
                        case '0':
                        case '1':
                        case '2':
                        case '3':
                        case '4':
                        case '5':
                        case '6':
                        case '7':
                            {
                            alt19=1;
                            }
                            break;
                        default:
                            alt19=2;}

                        }
                        break;
                    default:
                        alt19=3;}

                    }
                    break;
                case '4':
                case '5':
                case '6':
                case '7':
                    {
                    switch ( input.LA(3) ) {
                    case '0':
                    case '1':
                    case '2':
                    case '3':
                    case '4':
                    case '5':
                    case '6':
                    case '7':
                        {
                        alt19=2;
                        }
                        break;
                    default:
                        alt19=3;}

                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("", 19, 1, input);

                    throw nvae;
                }

                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 19, 0, input);

                throw nvae;
            }

            switch (alt19) {
                case 1 :
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:287:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                    {
                    match('\\'); 
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:287:14: ( '0' .. '3' )
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:287:15: '0' .. '3'
                    {
                    matchRange('0','3'); 

                    }

                    // com/dyuproject/protostuff/parser/ProtoLexer.g:287:25: ( '0' .. '7' )
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:287:26: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }

                    // com/dyuproject/protostuff/parser/ProtoLexer.g:287:36: ( '0' .. '7' )
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:287:37: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }


                    }
                    break;
                case 2 :
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:288:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                    {
                    match('\\'); 
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:288:14: ( '0' .. '7' )
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:288:15: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }

                    // com/dyuproject/protostuff/parser/ProtoLexer.g:288:25: ( '0' .. '7' )
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:288:26: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }


                    }
                    break;
                case 3 :
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:289:9: '\\\\' ( '0' .. '7' )
                    {
                    match('\\'); 
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:289:14: ( '0' .. '7' )
                    // com/dyuproject/protostuff/parser/ProtoLexer.g:289:15: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }


                    }
                    break;

            }
        }
        finally {
        }
    }
890287
public final void mRIGHTPAREN() throws RecognitionException {
        try {
            int _type = RIGHTPAREN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // com/dyuproject/protostuff/parser/ProtoLexer.g:55:5: ( ')' )
            // com/dyuproject/protostuff/parser/ProtoLexer.g:55:9: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
260768
def bsp_left(node: tcod.bsp.BSP) -> Optional[tcod.bsp.BSP]:
    
    return None if not node.children else node.children[0]
161274
private boolean handleCodeBlock(TextCursor cursor, ArrayList<MDSection> paragraphs) {
        if (mode != MODE_ONLY_LINKS) {
            int blockStart = findCodeBlockStart(cursor);
            if (blockStart >= 0) {
                int blockEnd = findCodeBlockEnd(cursor, blockStart);
                if (blockEnd >= 0) {
                    // Adding Text Block if there are some elements before code block
                    if (cursor.currentOffset < blockStart) {
                        handleTextBlock(cursor, blockStart, paragraphs);
                    }

                    String codeContent = cursor.text.substring(cursor.currentOffset + 3, blockEnd - 3).trim();

                    // TODO: Better removing of empty leading and tailing lines
                    // Required to remove only ONE line
                    if (codeContent.startsWith("\n")) {
                        codeContent = codeContent.substring(1);
                    }
                    if (codeContent.endsWith("\n")) {
                        codeContent = codeContent.substring(0, codeContent.length() - 1);
                    }

                    cursor.currentOffset = blockEnd;
                    paragraphs.add(new MDSection(new MDCode(codeContent)));
                    return true;
                }
            }
        }

        // Adding remaining text blocks
        if (cursor.currentOffset < cursor.text.length()) {
            handleTextBlock(cursor, cursor.text.length(), paragraphs);
        }
        return false;
    }
667560
public final void synpred21_DRL6Expressions_fragment() throws RecognitionException {
		// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:541:8: ( LEFT_PAREN type )
		// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:541:9: LEFT_PAREN type
		{
		match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred21_DRL6Expressions2745); if (state.failed) return;
		pushFollow(FOLLOW_type_in_synpred21_DRL6Expressions2747);
		type();
		state._fsp--;
		if (state.failed) return;
		}

	}
723885
public final void synpred5_DRL6Expressions_fragment() throws RecognitionException {
		// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:139:92: ( LEFT_SQUARE RIGHT_SQUARE )
		// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:139:93: LEFT_SQUARE RIGHT_SQUARE
		{
		match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_synpred5_DRL6Expressions611); if (state.failed) return;
		match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_synpred5_DRL6Expressions613); if (state.failed) return;
		}

	}
1321871
function ontext(template, text, config) {
	var
		blockStubPos = -1,
		cursor = 0,
		children = null,
		nodes = []
	;
	
	config = extend({virtual: template.virtual}, config);

	// Ensures that consecutive textOnly components are merged into a single VText node
	function concatText(text) {
		if ((nodes.length > 0) && nodes[nodes.length - 1].addText) {
			nodes[nodes.length - 1].addText(text);
		} else {
			nodes.push(new VText(text, config));
		}
	}

	// DRY parse
	function concatInterpolatedContent(content) {
		Expression.parseInterpolated(content, {
			ontext: function(text) {
				concatText(text);
			},
			onexpression: function(expr) {
				if (expr.textOnly || (config.virtual === false)) {
					concatText(expr);
				} else {
					nodes.push(expr);
				}
			}
		});
	}

	// While we find more interpolated handlebars blocks
	while ((blockStubPos = text.indexOf(_blockStub, cursor)) > -1) {

		// Get pre-text
		if (blockStubPos > cursor) {
			concatInterpolatedContent(text.substr(cursor, blockStubPos - cursor));
		}

		// Add the block to the list of nodes
		block = template.blocks.shift();
		if (config.virtual === false) {
			block.callback.virtual = false;
			concatText(block);
		} else {
			nodes.push(block);
		}

		// Advance the cursor
		cursor = blockStubPos + _blockStub.length;
	}

	// Get post-text (or the only text)
	if (cursor < text.length) {
		concatInterpolatedContent(text.substr(cursor));
	}

	// textOnly is for things like tagName and attribute values
	return nodes;
}
719630
public final ProtoParser.rpc_body_block_return rpc_body_block(Proto proto, Service.RpcMethod rm) throws RecognitionException {
        ProtoParser.rpc_body_block_return retval = new ProtoParser.rpc_body_block_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token LEFTCURLY154=null;
        Token RIGHTCURLY156=null;
        ProtoParser.option_entry_return option_entry155 = null;


        Object LEFTCURLY154_tree=null;
        Object RIGHTCURLY156_tree=null;

        try {
            // com/dyuproject/protostuff/parser/ProtoParser.g:604:5: ( LEFTCURLY ( option_entry[proto, rm] )* RIGHTCURLY )
            // com/dyuproject/protostuff/parser/ProtoParser.g:604:9: LEFTCURLY ( option_entry[proto, rm] )* RIGHTCURLY
            {
            root_0 = (Object)adaptor.nil();

            LEFTCURLY154=(Token)match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_rpc_body_block2475); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            LEFTCURLY154_tree = (Object)adaptor.create(LEFTCURLY154);
            adaptor.addChild(root_0, LEFTCURLY154_tree);
            }
            // com/dyuproject/protostuff/parser/ProtoParser.g:604:19: ( option_entry[proto, rm] )*
            loop33:
            do {
                int alt33=2;
                switch ( input.LA(1) ) {
                case OPTION:
                    {
                    alt33=1;
                    }
                    break;

                }

                switch (alt33) {
            	case 1 :
            	    // com/dyuproject/protostuff/parser/ProtoParser.g:604:19: option_entry[proto, rm]
            	    {
            	    pushFollow(FOLLOW_option_entry_in_rpc_body_block2477);
            	    option_entry155=option_entry(proto, rm);

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, option_entry155.getTree());

            	    }
            	    break;

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

            RIGHTCURLY156=(Token)match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_rpc_body_block2481); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            RIGHTCURLY156_tree = (Object)adaptor.create(RIGHTCURLY156);
            adaptor.addChild(root_0, RIGHTCURLY156_tree);
            }
            if ( state.backtracking==0 ) {

                          if(!proto.annotations.isEmpty())
                              throw new IllegalStateException("Misplaced annotations: " + proto.annotations);
                      
            }

            }

            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 re) {
            reportError(re);
            recover(input,re);
    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);

        }
        finally {
        }
        return retval;
    }
824615
function myParser (size) {
	if (typeof size !== 'number')
		throw new Error('Invalid block size: ' + size)

	function isEnd () {
		return atok.ending ? atok.length - atok.offset : -1
	}

	atok
		.trim()
		.addRule(size, function (data) {
			self.emit('data', data)
		})
		.addRule('', isEnd, function (data) {
			var len = data.length

			if (typeof data === 'string') {
				var lastBlock = data + new Array(size - len + 1).join('0')
			} else {
				var lastBlock = new Buffer(size)
				lastBlock.fill(0, len)
				data.copy(lastBlock, 0)
			}
			self.emit('data', lastBlock)
		})
		.on('end', function () {
			self.emit('end')
		})
}
1297009
function Lexer(text, cfg) {
        var self = this;
        self.page = new Page(text);
        self.cursor = new Cursor();
        self.nodeFactory = this;
        this.cfg = cfg || {};
    }
359453
public final void synpred2_DRL5Expressions_fragment() throws RecognitionException {
		// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:138:44: ( LEFT_SQUARE RIGHT_SQUARE )
		// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:138:45: LEFT_SQUARE RIGHT_SQUARE
		{
		match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_synpred2_DRL5Expressions559); if (state.failed) return;
		match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_synpred2_DRL5Expressions561); if (state.failed) return;
		}

	}
110466
function nobreaknonadjacent(left, right) {
    left = left || state.tokens.curr;
    right = right || state.tokens.next;
    if (!state.option.laxbreak && left.line !== right.line) {
      warning("W014", right, right.value);
    }
  }
205358
public final void classBodyDeclaration() throws RecognitionException {
		int classBodyDeclaration_StartIndex = input.index();

		try {
			if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return; }

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:359:5: ( ';' | ( 'static' )? block | ( modifier )* memberDecl )
			int alt35=3;
			switch ( input.LA(1) ) {
			case 52:
				{
				alt35=1;
				}
				break;
			case 106:
				{
				int LA35_2 = input.LA(2);
				if ( (LA35_2==121) ) {
					alt35=2;
				}
				else if ( (LA35_2==ENUM||LA35_2==Identifier||LA35_2==53||LA35_2==58||LA35_2==63||LA35_2==65||LA35_2==67||(LA35_2 >= 71 && LA35_2 <= 72)||LA35_2==77||LA35_2==83||LA35_2==85||(LA35_2 >= 92 && LA35_2 <= 94)||LA35_2==96||(LA35_2 >= 100 && LA35_2 <= 102)||(LA35_2 >= 105 && LA35_2 <= 107)||LA35_2==110||LA35_2==114||(LA35_2 >= 118 && LA35_2 <= 119)) ) {
					alt35=3;
				}

				else {
					if (state.backtracking>0) {state.failed=true; return;}
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 35, 2, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

				}
				break;
			case 121:
				{
				alt35=2;
				}
				break;
			case ENUM:
			case Identifier:
			case 53:
			case 58:
			case 63:
			case 65:
			case 67:
			case 71:
			case 72:
			case 77:
			case 83:
			case 85:
			case 92:
			case 93:
			case 94:
			case 96:
			case 100:
			case 101:
			case 102:
			case 105:
			case 107:
			case 110:
			case 114:
			case 118:
			case 119:
				{
				alt35=3;
				}
				break;
			default:
				if (state.backtracking>0) {state.failed=true; return;}
				NoViableAltException nvae =
					new NoViableAltException("", 35, 0, input);
				throw nvae;
			}
			switch (alt35) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:359:7: ';'
					{
					match(input,52,FOLLOW_52_in_classBodyDeclaration671); if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:360:7: ( 'static' )? block
					{
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:360:7: ( 'static' )?
					int alt33=2;
					int LA33_0 = input.LA(1);
					if ( (LA33_0==106) ) {
						alt33=1;
					}
					switch (alt33) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:360:7: 'static'
							{
							match(input,106,FOLLOW_106_in_classBodyDeclaration679); if (state.failed) return;
							}
							break;

					}

					pushFollow(FOLLOW_block_in_classBodyDeclaration682);
					block();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:361:7: ( modifier )* memberDecl
					{
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:361:7: ( modifier )*
					loop34:
					while (true) {
						int alt34=2;
						int LA34_0 = input.LA(1);
						if ( (LA34_0==58) ) {
							int LA34_6 = input.LA(2);
							if ( (LA34_6==Identifier) ) {
								alt34=1;
							}

						}
						else if ( (LA34_0==63||LA34_0==83||LA34_0==96||(LA34_0 >= 100 && LA34_0 <= 102)||(LA34_0 >= 106 && LA34_0 <= 107)||LA34_0==110||LA34_0==114||LA34_0==119) ) {
							alt34=1;
						}

						switch (alt34) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:361:7: modifier
							{
							pushFollow(FOLLOW_modifier_in_classBodyDeclaration690);
							modifier();
							state._fsp--;
							if (state.failed) return;
							}
							break;

						default :
							break loop34;
						}
					}

					pushFollow(FOLLOW_memberDecl_in_classBodyDeclaration693);
					memberDecl();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
			if ( state.backtracking>0 ) { memoize(input, 21, classBodyDeclaration_StartIndex); }

		}
	}