- 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);
}
Вот такая красота получилась при использовании паттерна 'цепочка обязанностей'.