use super::{
    DecodeDiagnostic, LightItem, LightParseOptions, LightWord, ParseBudgets, ParseMode,
    ParseOptions, SourceEncoding, parse_bytes, parse_bytes_with_encoding, parse_file,
    parse_file_with_encoding, parse_file_with_encoding_and_options, parse_file_with_options,
    parse_light_bytes, parse_light_bytes_with_encoding, parse_light_file,
    parse_light_file_with_encoding_and_options, parse_light_file_with_options,
    parse_light_shared_bytes, parse_light_shared_bytes_with_encoding, parse_light_shared_file,
    parse_light_shared_source, parse_light_source, parse_light_source_with_options,
    parse_shared_bytes, parse_shared_bytes_with_encoding, parse_shared_file,
    parse_shared_file_with_encoding, parse_shared_source, parse_source, parse_source_view_range,
    parse_source_with_options, scan_light_bytes_with_options_and_sink_and_then,
    scan_light_bytes_with_sink, scan_light_file_with_encoding_and_options_and_sink,
    scan_light_shared_bytes_with_encoding_and_options_and_sink,
    scan_light_shared_bytes_with_options_and_sink,
    scan_light_shared_file_with_encoding_and_options_and_sink,
    scan_light_shared_source_with_options_and_sink, scan_light_source_with_options_and_sink,
};
use encoding_rs::{GBK, SHIFT_JIS};
use mel_ast::{
    AssignOp, BinaryOp, Expr, InvokeSurface, Item, ShellWord, Stmt, SwitchLabel, TypeName, UnaryOp,
    UpdateOp, VectorComponent,
};
use mel_syntax::text_range;
use std::{
    cell::RefCell,
    fs,
    sync::Arc,
    time::{SystemTime, UNIX_EPOCH},
};

mod commands;
mod decode;
mod diagnostics;
mod expressions;
mod light;
mod proc;
