1#![doc = include_str!("readme.md")]
2#[doc = include_str!("../readme.md")]
3use crate::ast::JRoot;
4use oak_core::{Language, LanguageCategory};
5#[cfg(feature = "serde")]
6use serde::{Deserialize, Serialize};
7
8#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
10#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
11pub struct JLanguage {
12 pub strict_mode: bool,
14}
15
16impl JLanguage {
17 pub fn new() -> Self {
19 Self { strict_mode: false }
20 }
21}
22
23impl Default for JLanguage {
24 fn default() -> Self {
25 Self::new()
26 }
27}
28
29impl Language for JLanguage {
30 const NAME: &'static str = "j";
31 const CATEGORY: LanguageCategory = LanguageCategory::Programming;
32
33 type TokenType = crate::lexer::token_type::JTokenType;
34 type ElementType = crate::parser::element_type::JElementType;
35 type TypedRoot = JRoot;
36}