    /*
        Blocks start at { and end at their matching } char. They may contain
        comment and whitespace, but whitespace is reduced to single blanks or
        newlines. All STRING and QUOTE constants are kept as-is, and are
        registered as skip-ranges for $-checks
    */

<block>{

"}"         {
                if (d_block.close())    // close a block
                {
                    BEGIN INITIAL;
                    return Parser::BLOCK;
                }
            }

"\""        {
                BEGIN string;
                d_block.beginSkip();
                yymore();
            }

"'"         {
                BEGIN quote;
                d_block.beginSkip();
                yymore();
            }

.           d_block(yytext);

}
