    /*
        quote may be entered from INITIAL and block. 
        quoted constants start with a quote. They may be octal or hex numbers,
        escaped chars, or quoted constants 
    */
                            
<quote>{

"\\"{OCT3}"'"        {
                         if (d_block.skip(yytext))
                             BEGIN block;
                         else
                         {
                             BEGIN INITIAL;
                             octal();        // quoted octal constant
                             return Parser::QUOTE;
                         }
                     }
                     
"\\x"{HEX2}"'"       {
                         if (d_block.skip(yytext))
                             BEGIN block;
                         else
                         {
                             BEGIN INITIAL;
                             hexadecimal(); // quoted hex constant
                             return Parser::QUOTE;
                         }
                     }
                     
"\\"[abfnrtv]"'"     {
                         if (d_block(yytext))
                             BEGIN block;
                         else
                         {
                             BEGIN INITIAL;
                             escape();       // quoted escape char
                             return Parser::QUOTE;
                         }
                     }    
"\\"."'"             {
                         // other quoted escaped char
                         if (d_block.skip(yytext))
                             BEGIN block;
                         else           
                         {
                             BEGIN INITIAL;
                             d_number = yytext[2];
                             return Parser::QUOTE;
                         }
                     }
."'"                 {
                         if (d_block.skip(yytext))
                             BEGIN block;
                         else
                         {
                             BEGIN INITIAL;  // simple quoted constant
                             d_number = yytext[1];
                             return Parser::QUOTE;
                         }
                     }
[^']+"'"             {
                         if (d_block.skip(yytext))
                             BEGIN block;
                         else
                         {
                             lineMsg(emsg) << "multiple characters in "
                                         "quoted constant " << 
                                         yytext << endl;
                             d_number = 0;
                             BEGIN INITIAL;
                             return Parser::QUOTE;
                         }
                     }
}
