130 {
131
132 assert(rule);
133
134 MutableArray *selectorSequences = $$(MutableArray, arrayWithCapacity, 8);
135 assert(selectorSequences);
136
138
139 const char *c = rule;
140 while (*c) {
141 const size_t size = strcspn(c,
" \n\t>+~");
143 char *sequence = calloc(1,
size + 1);
144 assert(sequence);
145
146 strncpy(sequence, c,
size);
147
149 assert(selectorSequence);
150
152 assert(selectorSequence->
right);
153
154 selectorSequence->
left = left;
155 left = selectorSequence->
right;
156
157 $(selectorSequences, addObject, selectorSequence);
158
159 release(selectorSequence);
160 free(sequence);
161 }
162
164 c += strspn(c, " \n\t>+~");
165 }
166
167 return (Array *) selectorSequences;
168}
static SequenceCombinator sequenceCombinator(const char *c)
SequenceCombinator
Combinators are operators for chaining SelectorSequences.
SDL_Size size(const Image *self)
SequenceCombinator left
The combinators.