blob: 06bbaa8849a0ea43993d476241a2b3a14d0f4b1c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
use crate::*;
use SemanticTokenVariant as SemVar;
pub fn generate_symbols_file(semantic_tokens: &[SemanticToken]) -> String {
let mut symbols = String::new();
for token in semantic_tokens {
if let SemVar::LabelDefinition(definition) = &token.variant {
let address = token.bytecode.location.address;
if address > 0xffff { break; }
let name = &definition.name;
let path = match &token.source.in_source {
Some(source) => &source.path,
None => &token.source.in_merged.path,
};
if let Some(path) = path {
let path = path.as_os_str().to_string_lossy();
symbols.push_str(&format!("{address:04x} {name} {path}\n"));
} else {
symbols.push_str(&format!("{address:04x} {name}\n"));
}
}
}
return symbols;
}
|