Skip to main content

oak_actionscript/language/
mod.rs

1#![doc = include_str!("readme.md")]
2use crate::{ast::ActionScriptRoot, lexer::ActionScriptTokenType, parser::ActionScriptElementType};
3use oak_core::{Language, LanguageCategory};
4#[cfg(feature = "serde")]
5use serde::{Deserialize, Serialize};
6
7/// ActionScript 语言配置和元数据。
8#[derive(Clone, Debug, PartialEq, Eq, Hash)]
9#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
10pub struct ActionScriptLanguage {
11    /// Enable strict mode
12    pub strict_mode: bool,
13    /// Enable AS3 specific features
14    pub as3_features: bool,
15}
16
17impl Default for ActionScriptLanguage {
18    fn default() -> Self {
19        Self { strict_mode: true, as3_features: true }
20    }
21}
22
23impl Language for ActionScriptLanguage {
24    const NAME: &'static str = "actionscript";
25    const CATEGORY: LanguageCategory = LanguageCategory::Programming;
26
27    type TokenType = crate::lexer::token_type::ActionScriptTokenType;
28    type ElementType = crate::parser::element_type::ActionScriptElementType;
29    type TypedRoot = ActionScriptRoot;
30}