oak_objective_c/language/
mod.rs1#![doc = include_str!("readme.md")]
2use oak_core::{Language, LanguageCategory};
3
4pub struct ObjectiveCLanguage {
6 pub arc_enabled: bool,
8 pub strict_mode: bool,
10}
11
12impl ObjectiveCLanguage {
13 pub fn new() -> Self {
15 Self { arc_enabled: true, strict_mode: false }
16 }
17
18 pub fn with_arc(mut self, enabled: bool) -> Self {
20 self.arc_enabled = enabled;
21 self
22 }
23
24 pub fn with_strict_mode(mut self, enabled: bool) -> Self {
26 self.strict_mode = enabled;
27 self
28 }
29}
30
31impl Default for ObjectiveCLanguage {
32 fn default() -> Self {
33 Self { arc_enabled: true, strict_mode: false }
34 }
35}
36
37impl Language for ObjectiveCLanguage {
38 const NAME: &'static str = "objective-c";
39 const CATEGORY: LanguageCategory = LanguageCategory::Programming;
40
41 type TokenType = crate::lexer::token_type::ObjectiveCTokenType;
42 type ElementType = crate::parser::element_type::ObjectiveCElementType;
43 type TypedRoot = crate::ast::ObjectiveCRoot;
44}