Skip to main content

oak_actionscript/language/
mod.rs

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