Rule block() { return Sequence( openCode(), keyword(BLOCK), mandatory( Sequence( expressionParser.variable(), push(new Block(((Variable) expressionParser.pop()).getIdentifier())), closeCode(), content(), (((Block) peek(1)).setContent(pop())), openCode(), keyword(ENDBLOCK), Optional( expressionParser.variable(), assertEqual( ((Block)peek()).getName(), ((Variable) expressionParser.pop()).getIdentifier() ) ), closeCode() ), new ParseException("Wrong block syntax") ) ); }
Rule block() { return Sequence( openCode(), keyword(BLOCK), mandatory( Sequence( expressionParser.variable(), push(new Block(((Variable) expressionParser.pop()).getIdentifier())), closeCode(), content(), (((Block) peek(1)).setContent(pop())), openCode(), keyword(ENDBLOCK), Optional( expressionParser.variable(), assertEqual( ((Block)peek()).getName(), ((Variable) expressionParser.pop()).getIdentifier() ) ), closeCode() ), new ParseException("Wrong block syntax") ) ); }