Lines Matching refs:symbol
81 void program::add_symbol(std::shared_ptr<symbol> symbol) { in add_symbol() argument
82 const auto &existing = pioasm->get_symbol(symbol->name, this); in add_symbol()
85 if (symbol->is_label != existing->is_label) { in add_symbol()
86 …msg << "'" << symbol->name << "' was already defined as a " << (existing->is_label ? "label" : "va… in add_symbol()
88 } else if (symbol->is_label) { in add_symbol()
89 msg << "label '" << symbol->name << "' was already defined at " << existing->location; in add_symbol()
91 msg << "'" << symbol->name << "' was already defined at " << existing->location; in add_symbol()
93 throw syntax_error(symbol->location, msg.str()); in add_symbol()
95 symbols.insert(std::pair<std::string, std::shared_ptr<::symbol>>(symbol->name, symbol)); in add_symbol()
96 ordered_symbols.push_back(symbol); in add_symbol()
238 auto symbol = pioasm->get_symbol(name, program); in resolve() local
239 if (symbol) { in resolve()
240 if (symbol->resolve_started) { in resolve()
246 symbol->resolve_started++; in resolve()
247 int rc = symbol->value->resolve(pioasm, program, scope); in resolve()
248 symbol->resolve_started--; in resolve()
251 symbol->resolve_started--; in resolve()
439 std::vector<compiled_source::symbol> pio_assembler::public_symbols(program &program) { in public_symbols()
440 std::vector<std::shared_ptr<symbol>> public_symbols; in public_symbols()
443 [](const std::shared_ptr<symbol> &s) { return !s->is_public; }); in public_symbols()
445 std::vector<compiled_source::symbol> rc; in public_symbols()
447 [&](const std::shared_ptr<symbol> &s) { in public_symbols()
448 … return compiled_source::symbol(s->name, s->value->resolve(program), s->is_label); in public_symbols()