- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 
                        data::TokenPtr lexer::ReadToken::operator()(AnalyzeState analyze_state)
{
    ReadTokenNum    handler01( nullptr  );
    ReadTokenName   handler02(&handler01);
    ReadTokenPlus   handler03(&handler02);
    ReadTokenMinus  handler04(&handler03);
    ReadTokenDiv    handler05(&handler04);
    ReadTokenMult   handler06(&handler05);
    ReadTokenAssign handler07(&handler06);
    ReadTokenSmcln  handler08(&handler07);
    ReadTokenLpar   handler09(&handler08);
    ReadTokenRpar   handler10(&handler09);
    ReadTokenHandler &start_handler = handler10;
    return
        start_handler.Read(analyze_state);
}
                                 
        
            Вот такая красота получилась при использовании паттерна 'цепочка обязанностей'.
        
        
Комментарии (3) RSS
Добавить комментарий