# Token * see * add macros: TPL_TOKENS_BEGIN(TokensName) TPL_TOKEN(tokenType, RegExT) TPL_TOKENS_END(); * add example: tpl/examples/token # Find/Token * see * add functions: Rule paragraph(); // ==> token<0x0a, 0x0d>() * enhancement (http://code.google.com/p/winx/source/detail?r=990): Report unstoppable loop in debug version: *Rule, +Rule, *Grammar, +Grammar * rename str_token to token: Rule > str_token Rule > token * add functions peek, peek_not: Rule > peek(); Rule > peek_not(); # Terminal * see * add functions ch_mask, op_mask: Rule > ch_mask(); Rule > op_mask(); # UComposition * see * add function not_eol: Rule not_eol(); # Action * see , * modify: Now an Action is also a Rule class ActionT : public RuleT { ... } * add action: println Action > println(PredT pred); // Action > info(const CharT* prompt); // see macro TPL_INFO(prompt) * add simple action: erase (We already provide: push, push_back, push_front, append, insert, clear, etc). usage: Rule/erase(string) Rule/clear(container) Rule/push(container, value) Rule/push_back(container, value) Rule/push_front(container, value) Rule/append(container, value) Rule/insert(container, value) # Predicate (http://code.google.com/p/winx/issues/detail?id=87) * see * add predicate: neICase (That is: !eqIgnoreCase) * support Predicate composition: operator &&, operator ||, operator! * add function: meet Predicate meet(const PredT& pred); # C Lex * see * add function: c_token (example: tpl/examples/token) Rule c_token(); * add function: c_integer_suffix, c_integer_with_suffix Rule c_integer_suffix(); Rule c_integer_with_suffix(); * bugfix: c_integer() can't parse text "0" correctly (http://code.google.com/p/winx/source/detail?r=983). * add c_pp_skip_, c_pp_skip_plus_, and declare c_skip_non_eol_ deprecated. # HTHL Lex (http://code.google.com/p/winx/issues/detail?id=83) * see * bugfix: html_value can't ended loop in some condition. * enhance: html_entity (http://code.google.com/p/winx/source/detail?r=920) # Examples * tpl/examples/token * tpl/examples/validation