add: scan.first = save;
context:     parse_n(ScannerT& scan)    {        typedef typename parser_result<uint_parser_t, ScannerT>::type RT;        uint_parser<unsigned, 10, 1, 3> uint3_p;        uint_parser<unsigned, 10, 3, 3> uint3_3_p;        if (RT hit = uint3_p.parse(scan))        {            T n;            while (match<> next = (',' >> uint3_3_p[assign_a(n)]).parse(scan))            {                hit.value((hit.value() * 1000) + n);                scan.concat_match(hit, next);            }            return hit;        }        return scan.no_match();    }