Skip to main content

oak_dockerfile/language/
mod.rs

1#![doc = include_str!("readme.md")]
2use oak_core::{Language, LanguageCategory};
3
4/// Language configuration for Dockerfile.
5#[derive(Debug, Clone, Copy)]
6pub struct DockerfileLanguage {
7    /// Whether to enable strict mode.
8    pub strict_mode: bool,
9    /// Whether to allow multi-stage builds.
10    pub multi_stage: bool,
11}
12
13impl Default for DockerfileLanguage {
14    fn default() -> Self {
15        Self { strict_mode: false, multi_stage: true }
16    }
17}
18
19impl Language for DockerfileLanguage {
20    const NAME: &'static str = "dockerfile";
21    const CATEGORY: LanguageCategory = LanguageCategory::Programming;
22
23    type TokenType = crate::lexer::token_type::DockerfileTokenType;
24    type ElementType = crate::parser::element_type::DockerfileElementType;
25    type TypedRoot = crate::ast::DockerfileRoot;
26}