18 if (
is_nil (
l) || n <= 0)
return;
20 if (
p->item >=
N (
l->item)) {
21 n=
p->item -
N (
l->item);
31 while (!
is_nil (
l) &&
p->item + n >
N (
l->item)) {
32 s <<
l->item (
p->item,
N (
l->item));
33 n-= (
N (
l->item) -
p->item);
38 s <<
l->item (
p->item,
p->item + n);
40 if (
p->item >=
N (
l->item)) {
58 if (
p->item + n <
N (
l->item))
return l->item[
p->item + n];
63 n-= (
N (
ll->item) -
pp->item);
68 return ll->item[
pp->item + n];
74 if (
p->item + n <=
N (
l->item))
return l->item (
p->item,
p->item + n);
81 s <<
ll->item (
pp->item,
pp->item +
m);
92 if (
p->item +
N (s) <=
N (
l->item)) return ::test (
l->item,
p->item, s);
99 return s->test (
what);
107 out << l->item (p->item,
N (l->item));
int N(array< T > a)
Get the length of the array.
The list class represents a linked list.
friend bool test(parse_string s, string what)
SI min(SI i, SI j)
Returns the minimum of two signed integers.
tm_ostream & operator<<(tm_ostream &out, parse_string s)
bool test(parse_string s, string what)