Skip to main content

oak_objective_c/language/
mod.rs

1use oak_core::{Language, LanguageCategory};
2
3pub struct ObjectiveCLanguage {
4    pub arc_enabled: bool,
5    pub strict_mode: bool,
6}
7
8impl ObjectiveCLanguage {
9    pub fn new() -> Self {
10        Self { arc_enabled: true, strict_mode: false }
11    }
12
13    pub fn with_arc(mut self, enabled: bool) -> Self {
14        self.arc_enabled = enabled;
15        self
16    }
17
18    pub fn with_strict_mode(mut self, enabled: bool) -> Self {
19        self.strict_mode = enabled;
20        self
21    }
22}
23
24impl Default for ObjectiveCLanguage {
25    fn default() -> Self {
26        Self { arc_enabled: true, strict_mode: false }
27    }
28}
29
30impl Language for ObjectiveCLanguage {
31    const NAME: &'static str = "objective-c";
32    const CATEGORY: LanguageCategory = LanguageCategory::Programming;
33
34    type TokenType = crate::kind::ObjectiveCSyntaxKind;
35    type ElementType = crate::kind::ObjectiveCSyntaxKind;
36    type TypedRoot = crate::ast::ObjectiveCRoot;
37}