• Home
  • Raw
  • Download

Lines Matching refs:sym

177 symbol_type_set (symbol *sym, uniqstr type_name, location loc)  in symbol_type_set()  argument
181 if (sym->type_name) in symbol_type_set()
182 symbol_redeclaration (sym, "%type", sym->type_location, loc); in symbol_type_set()
184 sym->type_name = type_name; in symbol_type_set()
185 sym->type_location = loc; in symbol_type_set()
194 symbol_destructor_set (symbol *sym, code_props const *destructor) in symbol_destructor_set() argument
196 if (sym->destructor.code) in symbol_destructor_set()
197 symbol_redeclaration (sym, "%destructor", sym->destructor.location, in symbol_destructor_set()
199 sym->destructor = *destructor; in symbol_destructor_set()
222 symbol_destructor_get (symbol const *sym) in symbol_destructor_get() argument
225 if (sym->destructor.code) in symbol_destructor_get()
226 return &sym->destructor; in symbol_destructor_get()
229 if (sym->type_name) in symbol_destructor_get()
232 &semantic_type_get (sym->type_name)->destructor; in symbol_destructor_get()
238 if (sym->tag[0] == '$' || sym == errtoken) in symbol_destructor_get()
241 if (sym->type_name) in symbol_destructor_get()
251 symbol_printer_set (symbol *sym, code_props const *printer) in symbol_printer_set() argument
253 if (sym->printer.code) in symbol_printer_set()
254 symbol_redeclaration (sym, "%printer", in symbol_printer_set()
255 sym->printer.location, printer->location); in symbol_printer_set()
256 sym->printer = *printer; in symbol_printer_set()
277 symbol_printer_get (symbol const *sym) in symbol_printer_get() argument
280 if (sym->printer.code) in symbol_printer_get()
281 return &sym->printer; in symbol_printer_get()
284 if (sym->type_name) in symbol_printer_get()
286 code_props const *printer = &semantic_type_get (sym->type_name)->printer; in symbol_printer_get()
292 if (sym->tag[0] == '$' || sym == errtoken) in symbol_printer_get()
295 if (sym->type_name) in symbol_printer_get()
306 symbol_precedence_set (symbol *sym, int prec, assoc a, location loc) in symbol_precedence_set() argument
310 if (sym->prec != 0) in symbol_precedence_set()
311 symbol_redeclaration (sym, assoc_to_string (a), sym->prec_location, in symbol_precedence_set()
313 sym->prec = prec; in symbol_precedence_set()
314 sym->assoc = a; in symbol_precedence_set()
315 sym->prec_location = loc; in symbol_precedence_set()
319 symbol_class_set (sym, token_sym, loc, false); in symbol_precedence_set()
328 symbol_class_set (symbol *sym, symbol_class class, location loc, bool declaring) in symbol_class_set() argument
330 if (sym->class != unknown_sym && sym->class != class) in symbol_class_set()
332 complain_at (loc, _("symbol %s redefined"), sym->tag); in symbol_class_set()
333 sym->declared = false; in symbol_class_set()
336 if (class == nterm_sym && sym->class != nterm_sym) in symbol_class_set()
337 sym->number = nvars++; in symbol_class_set()
338 else if (class == token_sym && sym->number == NUMBER_UNDEFINED) in symbol_class_set()
339 sym->number = ntokens++; in symbol_class_set()
341 sym->class = class; in symbol_class_set()
345 if (sym->declared) in symbol_class_set()
346 warn_at (loc, _("symbol %s redeclared"), sym->tag); in symbol_class_set()
347 sym->declared = true; in symbol_class_set()
357 symbol_user_token_number_set (symbol *sym, int user_token_number, location loc) in symbol_user_token_number_set() argument
361 if (sym->user_token_number != USER_NUMBER_HAS_STRING_ALIAS) in symbol_user_token_number_set()
362 user_token_numberp = &sym->user_token_number; in symbol_user_token_number_set()
364 user_token_numberp = &sym->alias->user_token_number; in symbol_user_token_number_set()
367 complain_at (loc, _("redefining user token number of %s"), sym->tag); in symbol_user_token_number_set()
373 endtoken = sym; in symbol_user_token_number_set()
389 symbol_check_defined (symbol *sym) in symbol_check_defined() argument
391 if (sym->class == unknown_sym) in symbol_check_defined()
394 (sym->location, in symbol_check_defined()
396 sym->tag); in symbol_check_defined()
397 sym->class = nterm_sym; in symbol_check_defined()
398 sym->number = nvars++; in symbol_check_defined()
405 symbol_check_defined_processor (void *sym, void *null ATTRIBUTE_UNUSED) in symbol_check_defined_processor() argument
407 return symbol_check_defined (sym); in symbol_check_defined_processor()
412 symbol_make_alias (symbol *sym, symbol *str, location loc) in symbol_make_alias() argument
417 else if (sym->alias) in symbol_make_alias()
419 sym->tag); in symbol_make_alias()
423 str->user_token_number = sym->user_token_number; in symbol_make_alias()
424 sym->user_token_number = USER_NUMBER_HAS_STRING_ALIAS; in symbol_make_alias()
425 str->alias = sym; in symbol_make_alias()
426 sym->alias = str; in symbol_make_alias()
427 str->number = sym->number; in symbol_make_alias()
428 symbol_type_set (str, sym->type_name, loc); in symbol_make_alias()
441 symbol *sym = this; in symbol_check_alias_consistency() local
449 if (str->type_name != sym->type_name) in symbol_check_alias_consistency()
452 symbol_type_set (sym, str->type_name, str->type_location); in symbol_check_alias_consistency()
454 symbol_type_set (str, sym->type_name, sym->type_location); in symbol_check_alias_consistency()
458 if (str->destructor.code || sym->destructor.code) in symbol_check_alias_consistency()
461 symbol_destructor_set (sym, &str->destructor); in symbol_check_alias_consistency()
463 symbol_destructor_set (str, &sym->destructor); in symbol_check_alias_consistency()
466 if (str->printer.code || sym->printer.code) in symbol_check_alias_consistency()
469 symbol_printer_set (sym, &str->printer); in symbol_check_alias_consistency()
471 symbol_printer_set (str, &sym->printer); in symbol_check_alias_consistency()
474 if (sym->prec || str->prec) in symbol_check_alias_consistency()
477 symbol_precedence_set (sym, str->prec, str->assoc, in symbol_check_alias_consistency()
480 symbol_precedence_set (str, sym->prec, sym->assoc, in symbol_check_alias_consistency()
481 sym->prec_location); in symbol_check_alias_consistency()
743 symbol *sym; in dummy_symbol_get() local
746 sym = symbol_get (buf, loc); in dummy_symbol_get()
747 sym->class = nterm_sym; in dummy_symbol_get()
748 sym->number = nvars++; in dummy_symbol_get()
749 return sym; in dummy_symbol_get()
753 symbol_is_dummy (const symbol *sym) in symbol_is_dummy() argument
755 return sym->tag[0] == '@' || (sym->tag[0] == '$' && sym->tag[1] == '@'); in symbol_is_dummy()