oak_objective_c/language/
mod.rs1use 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}