use crate::{Language, LanguageSymbols};
pub struct Sparql;
impl Language for Sparql {
fn name(&self) -> &'static str {
"SPARQL"
}
fn extensions(&self) -> &'static [&'static str] {
&["sparql", "rq"]
}
fn grammar_name(&self) -> &'static str {
"sparql"
}
fn as_symbols(&self) -> Option<&dyn LanguageSymbols> {
Some(self)
}
}
impl LanguageSymbols for Sparql {}
#[cfg(test)]
mod tests {
use super::*;
use crate::validate_unused_kinds_audit;
#[test]
fn unused_node_kinds_audit() {
#[rustfmt::skip]
let documented_unused: &[&str] = &[
"select_clause", "where_clause", "construct_query", "construct_template",
"construct_triples", "triples_block",
"solution_modifier", "order_clause", "limit_clause", "offset_clause",
"limit_offset_clauses", "group_clause", "having_clause", "values_clause",
"dataset_clause", "default_graph_clause", "named_graph_clause",
"modify", "insert_clause", "delete_clause", "using_clause", "data_block",
"base_declaration", "prefix_declaration",
"expression_list", "binary_expression", "unary_expression",
"bracketted_expression", "function_call", "build_in_function",
"regex_expression", "substring_expression", "string_replace_expression",
];
validate_unused_kinds_audit(&Sparql, documented_unused)
.expect("SPARQL unused node kinds audit failed");
}
}