Lines Matching refs:lb
108 label *lb; in addlabel() local
119 lb = &ll->ll_label[ll->ll_nlabels++]; in addlabel()
120 lb->lb_type = type; in addlabel()
121 lb->lb_str = strdup(str); in addlabel()
124 PyGrammar_LabelRepr(lb)); in addlabel()
125 return Py_SAFE_DOWNCAST(lb - ll->ll_label, intptr_t, int); in addlabel()
168 translabel(grammar *g, label *lb) in translabel() argument
173 printf("Translating label %s ...\n", PyGrammar_LabelRepr(lb)); in translabel()
175 if (lb->lb_type == NAME) { in translabel()
177 if (strcmp(lb->lb_str, g->g_dfa[i].d_name) == 0) { in translabel()
181 lb->lb_str, in translabel()
183 lb->lb_type = g->g_dfa[i].d_type; in translabel()
184 free(lb->lb_str); in translabel()
185 lb->lb_str = NULL; in translabel()
190 if (strcmp(lb->lb_str, _PyParser_TokenNames[i]) == 0) { in translabel()
193 lb->lb_str, i); in translabel()
194 lb->lb_type = i; in translabel()
195 free(lb->lb_str); in translabel()
196 lb->lb_str = NULL; in translabel()
200 printf("Can't translate NAME label '%s'\n", lb->lb_str); in translabel()
204 if (lb->lb_type == STRING) { in translabel()
205 if (isalpha(Py_CHARMASK(lb->lb_str[1])) || in translabel()
206 lb->lb_str[1] == '_') { in translabel()
212 printf("Label %s is a keyword\n", lb->lb_str); in translabel()
213 lb->lb_type = NAME; in translabel()
214 src = lb->lb_str + 1; in translabel()
227 free(lb->lb_str); in translabel()
228 lb->lb_str = dest; in translabel()
230 else if (lb->lb_str[2] == lb->lb_str[0]) { in translabel()
231 int type = (int) PyToken_OneChar(lb->lb_str[1]); in translabel()
233 lb->lb_type = type; in translabel()
234 free(lb->lb_str); in translabel()
235 lb->lb_str = NULL; in translabel()
239 lb->lb_str); in translabel()
241 else if (lb->lb_str[2] && lb->lb_str[3] == lb->lb_str[0]) { in translabel()
242 int type = (int) PyToken_TwoChars(lb->lb_str[1], in translabel()
243 lb->lb_str[2]); in translabel()
245 lb->lb_type = type; in translabel()
246 free(lb->lb_str); in translabel()
247 lb->lb_str = NULL; in translabel()
251 lb->lb_str); in translabel()
253 else if (lb->lb_str[2] && lb->lb_str[3] && lb->lb_str[4] == lb->lb_str[0]) { in translabel()
254 int type = (int) PyToken_ThreeChars(lb->lb_str[1], in translabel()
255 lb->lb_str[2], in translabel()
256 lb->lb_str[3]); in translabel()
258 lb->lb_type = type; in translabel()
259 free(lb->lb_str); in translabel()
260 lb->lb_str = NULL; in translabel()
264 lb->lb_str); in translabel()
268 lb->lb_str); in translabel()
272 PyGrammar_LabelRepr(lb)); in translabel()