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
29
30
31
32
33
34
35
36
|
mod command;
mod distro_file;
mod environment;
mod explicit_link;
mod implicit_link;
mod label_name;
mod label_number;
mod theorem;
mod types;
use crate::syntax::latex;
pub use self::types::*;
use self::{
command::analyze_command,
environment::analyze_begin,
explicit_link::{analyze_import, analyze_include},
implicit_link::analyze_implicit_links,
label_name::analyze_label_name,
label_number::analyze_label_number,
theorem::analyze_theorem_definition,
};
pub fn analyze(context: &mut LatexAnalyzerContext, root: &latex::SyntaxNode) {
analyze_implicit_links(context);
for node in root.descendants() {
analyze_command(context, node)
.or_else(|| analyze_begin(context, node))
.or_else(|| analyze_include(context, node))
.or_else(|| analyze_import(context, node))
.or_else(|| analyze_label_name(context, node))
.or_else(|| analyze_label_number(context, node))
.or_else(|| analyze_theorem_definition(context, node));
}
context.extras.has_document_environment = context.extras.environment_names.contains("document");
}
|