use super::*;
use df_ls_core::DFRawFile;
use df_ls_diagnostics::hash_map;
use df_ls_syntax_analysis::TokenDeserialize;
use serde::{Deserialize, Serialize};
pub type DFRaw = DFRawFile<Vec<ObjectToken>>;
#[derive(Serialize, Deserialize, Clone, Debug, Default, TokenDeserialize, PartialEq, Eq)]
#[token_de(second_par_check, token = "OBJECT")]
pub struct ObjectToken {
#[token_de(token = "BODY")]
pub body_tokens: Vec<BodyObjectToken>,
#[token_de(token = "BODY_DETAIL_PLAN")]
pub body_detail_plan_tokens: Vec<BodyDetailPlanToken>,
#[token_de(token = "BUILDING")]
pub building_tokens: Vec<BuildingToken>,
#[token_de(token = "CREATURE")]
pub creature_tokens: Vec<CreatureToken>,
#[token_de(token = "CREATURE_VARIATION")]
pub creature_variation_tokens: Vec<CreatureVariationToken>,
#[token_de(token = "DESCRIPTOR_COLOR")]
pub color_tokens: Vec<ColorToken>,
#[token_de(token = "DESCRIPTOR_PATTERN")]
pub pattern_tokens: Vec<PatternToken>,
#[token_de(token = "DESCRIPTOR_SHAPE")]
pub shape_tokens: Vec<ShapeToken>,
#[token_de(token = "ENTITY")]
pub entity_tokens: Vec<EntityToken>,
#[token_de(token = "GRAPHICS")]
pub graphics_tokens: Vec<GraphicsToken>,
#[token_de(token = "INTERACTION")]
pub interaction_tokens: Vec<InteractionToken>,
#[token_de(token = "INORGANIC")]
pub inorganic_tokens: Vec<InorganicToken>,
#[token_de(token = "ITEM")]
pub item_tokens: Vec<ItemToken>,
#[token_de(token = "LANGUAGE")]
pub language_tokens: Vec<LanguageToken>,
#[token_de(token = "MATERIAL_TEMPLATE")]
pub material_tokens: Vec<MaterialToken>,
#[token_de(token = "PLANT")]
pub plant_tokens: Vec<PlantToken>,
#[token_de(token = "REACTION")]
pub reaction_tokens: Vec<ReactionToken>,
#[token_de(token = "TISSUE_TEMPLATE")]
pub tissue_template_tokens: Vec<TissueToken>,
}