Frontend refactor, prep for emulator intergration

Signed-off-by: Rachel <508861+Ryex@users.noreply.github.com>
This commit is contained in:
Rachel
2024-03-23 17:04:10 -07:00
parent bdbe218bf1
commit 45f24e01b5
27 changed files with 3975 additions and 2306 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -94,7 +94,14 @@ pub struct Program {
pub instructions: Vec<Instruction>,
}
impl Default for Program {
fn default() -> Self {
Program::new()
}
}
impl Program {
pub fn new() -> Self { Program { instructions: Vec::new() }}
pub fn try_from_code(input: &str) -> Result<Self, String> {
let mut code = input.to_string();
if let Some((i, _)) = code.char_indices().rev().nth(0) {

File diff suppressed because it is too large Load Diff

View File

@@ -2,10 +2,10 @@
#[derive(PartialEq, Debug, IntoStaticStr, AsRefStr)]
pub enum Constant {
#[rust_sitter::leaf(text = "epsilon" )]Epsilon,
#[rust_sitter::leaf(text = "nan" )]Nan,
#[rust_sitter::leaf(text = "ninf" )]Ninf,
#[rust_sitter::leaf(text = "pinf" )]Pinf,
#[rust_sitter::leaf(text = "pi" )]Pi,
#[rust_sitter::leaf(text = "ninf" )]Ninf,
#[rust_sitter::leaf(text = "deg2rad" )]Deg2Rad,
#[rust_sitter::leaf(text = "pi" )]Pi,
#[rust_sitter::leaf(text = "nan" )]Nan,
#[rust_sitter::leaf(text = "rad2deg" )]Rad2Deg,
}

View File

@@ -1,368 +1,368 @@
// GENERATED CODE DO NOT MODIFY
#[derive(PartialEq, Debug, IntoStaticStr, AsRefStr)]
pub enum Enum {
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxideInput2" )]LogicTypeRatioCarbonDioxideInput2,
#[rust_sitter::leaf(text = "LogicType.CelestialParentHash" )]LogicTypeCelestialParentHash,
#[rust_sitter::leaf(text = "LogicType.RatioWater" )]LogicTypeRatioWater,
#[rust_sitter::leaf(text = "LogicType.SignalID" )]LogicTypeSignalId,
#[rust_sitter::leaf(text = "SlotClass.CreditCard" )]SlotClassCreditCard,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxide" )]LogicTypeRatioLiquidNitrousOxide,
#[rust_sitter::leaf(text = "LogicType.CelestialHash" )]LogicTypeCelestialHash,
#[rust_sitter::leaf(text = "LogicType.Volume" )]LogicTypeVolume,
#[rust_sitter::leaf(text = "SlotClass.Helmet" )]SlotClassHelmet,
#[rust_sitter::leaf(text = "LogicType.PressureExternal" )]LogicTypePressureExternal,
#[rust_sitter::leaf(text = "LogicType.Channel5" )]LogicTypeChannel5,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutantInput" )]LogicTypeRatioLiquidPollutantInput,
#[rust_sitter::leaf(text = "SlotClass.Magazine" )]SlotClassMagazine,
#[rust_sitter::leaf(text = "AirControl.Offline" )]AirControlOffline,
#[rust_sitter::leaf(text = "Color.Gray" )]ColorGray,
#[rust_sitter::leaf(text = "LogicType.WattsReachingContact" )]LogicTypeWattsReachingContact,
#[rust_sitter::leaf(text = "LogicType.Bpm" )]LogicTypeBpm,
#[rust_sitter::leaf(text = "LogicType.AlignmentError" )]LogicTypeAlignmentError,
#[rust_sitter::leaf(text = "SlotClass.Appliance" )]SlotClassAppliance,
#[rust_sitter::leaf(text = "LogicType.Fuel" )]LogicTypeFuel,
#[rust_sitter::leaf(text = "SlotClass.GasFilter" )]SlotClassGasFilter,
#[rust_sitter::leaf(text = "SlotClass.Circuitboard" )]SlotClassCircuitboard,
#[rust_sitter::leaf(text = "DaylightSensorMode.Default" )]DaylightSensorModeDefault,
#[rust_sitter::leaf(text = "SlotClass.Torpedo" )]SlotClassTorpedo,
#[rust_sitter::leaf(text = "Color.Black" )]ColorBlack,
#[rust_sitter::leaf(text = "NotEquals" )]NotEquals,
#[rust_sitter::leaf(text = "LogicType.RatioVolatiles" )]LogicTypeRatioVolatiles,
#[rust_sitter::leaf(text = "LogicType.HorizontalRatio" )]LogicTypeHorizontalRatio,
#[rust_sitter::leaf(text = "LogicType.VelocityRelativeY" )]LogicTypeVelocityRelativeY,
#[rust_sitter::leaf(text = "LogicType.ClearMemory" )]LogicTypeClearMemory,
#[rust_sitter::leaf(text = "LogicType.CombustionLimiter" )]LogicTypeCombustionLimiter,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatiles" )]LogicTypeRatioLiquidVolatiles,
#[rust_sitter::leaf(text = "LogicType.ForwardX" )]LogicTypeForwardX,
#[rust_sitter::leaf(text = "SlotClass.Egg" )]SlotClassEgg,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxideOutput" )]LogicTypeRatioLiquidCarbonDioxideOutput,
#[rust_sitter::leaf(text = "LogicType.ExhaustVelocity" )]LogicTypeExhaustVelocity,
#[rust_sitter::leaf(text = "LogicType.TemperatureExternal" )]LogicTypeTemperatureExternal,
#[rust_sitter::leaf(text = "LogicSlotType.PrefabHash" )]LogicSlotTypePrefabHash,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogen" )]LogicTypeRatioNitrogen,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygen" )]LogicTypeRatioLiquidOxygen,
#[rust_sitter::leaf(text = "LogicSlotType.Growth" )]LogicSlotTypeGrowth,
#[rust_sitter::leaf(text = "LogicType.Temperature" )]LogicTypeTemperature,
#[rust_sitter::leaf(text = "Color.Green" )]ColorGreen,
#[rust_sitter::leaf(text = "PowerMode.Idle" )]PowerModeIdle,
#[rust_sitter::leaf(text = "SortingClass.Default" )]SortingClassDefault,
#[rust_sitter::leaf(text = "Equals" )]Equals,
#[rust_sitter::leaf(text = "LogicType.SizeY" )]LogicTypeSizeY,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatilesInput2" )]LogicTypeRatioLiquidVolatilesInput2,
#[rust_sitter::leaf(text = "RobotMode.PathToTarget" )]RobotModePathToTarget,
#[rust_sitter::leaf(text = "LogicType.MineablesInQueue" )]LogicTypeMineablesInQueue,
#[rust_sitter::leaf(text = "SlotClass.Uniform" )]SlotClassUniform,
#[rust_sitter::leaf(text = "LogicType.InterrogationProgress" )]LogicTypeInterrogationProgress,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxideOutput2" )]LogicTypeRatioLiquidNitrousOxideOutput2,
#[rust_sitter::leaf(text = "LogicSlotType.PressureWaste" )]LogicSlotTypePressureWaste,
#[rust_sitter::leaf(text = "LogicType.RatioWaterOutput" )]LogicTypeRatioWaterOutput,
#[rust_sitter::leaf(text = "LogicType.PressureInternal" )]LogicTypePressureInternal,
#[rust_sitter::leaf(text = "LogicType.DestinationCode" )]LogicTypeDestinationCode,
#[rust_sitter::leaf(text = "LogicType.PressureInput" )]LogicTypePressureInput,
#[rust_sitter::leaf(text = "LogicType.OrbitPeriod" )]LogicTypeOrbitPeriod,
#[rust_sitter::leaf(text = "Color.Brown" )]ColorBrown,
#[rust_sitter::leaf(text = "LogicSlotType.Class" )]LogicSlotTypeClass,
#[rust_sitter::leaf(text = "SlotClass.Motherboard" )]SlotClassMotherboard,
#[rust_sitter::leaf(text = "SlotClass.LiquidCanister" )]SlotClassLiquidCanister,
#[rust_sitter::leaf(text = "LogicType.RatioVolatilesInput" )]LogicTypeRatioVolatilesInput,
#[rust_sitter::leaf(text = "LogicType.RatioPollutantOutput2" )]LogicTypeRatioPollutantOutput2,
#[rust_sitter::leaf(text = "LogicType.ReEntryAltitude" )]LogicTypeReEntryAltitude,
#[rust_sitter::leaf(text = "LogicSlotType.Temperature" )]LogicSlotTypeTemperature,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogenOutput" )]LogicTypeRatioLiquidNitrogenOutput,
#[rust_sitter::leaf(text = "LogicType.TargetY" )]LogicTypeTargetY,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxide" )]LogicTypeRatioLiquidCarbonDioxide,
#[rust_sitter::leaf(text = "LogicType.ImportCount" )]LogicTypeImportCount,
#[rust_sitter::leaf(text = "LogicType.Quantity" )]LogicTypeQuantity,
#[rust_sitter::leaf(text = "LogicSlotType.Charge" )]LogicSlotTypeCharge,
#[rust_sitter::leaf(text = "LogicType.Power" )]LogicTypePower,
#[rust_sitter::leaf(text = "GasType.Steam" )]GasTypeSteam,
#[rust_sitter::leaf(text = "AirControl.Pressure" )]AirControlPressure,
#[rust_sitter::leaf(text = "LogicType.TemperatureOutput" )]LogicTypeTemperatureOutput,
#[rust_sitter::leaf(text = "Color.Orange" )]ColorOrange,
#[rust_sitter::leaf(text = "LogicType.Color" )]LogicTypeColor,
#[rust_sitter::leaf(text = "SlotClass.Plant" )]SlotClassPlant,
#[rust_sitter::leaf(text = "LogicType.Horizontal" )]LogicTypeHorizontal,
#[rust_sitter::leaf(text = "LogicType.RatioSteamOutput2" )]LogicTypeRatioSteamOutput2,
#[rust_sitter::leaf(text = "LogicType.BurnTimeRemaining" )]LogicTypeBurnTimeRemaining,
#[rust_sitter::leaf(text = "LogicType.Maximum" )]LogicTypeMaximum,
#[rust_sitter::leaf(text = "LogicType.PrefabHash" )]LogicTypePrefabHash,
#[rust_sitter::leaf(text = "LogicType.Orientation" )]LogicTypeOrientation,
#[rust_sitter::leaf(text = "LogicType.Channel3" )]LogicTypeChannel3,
#[rust_sitter::leaf(text = "LogicType.PowerGeneration" )]LogicTypePowerGeneration,
#[rust_sitter::leaf(text = "LogicType.Charge" )]LogicTypeCharge,
#[rust_sitter::leaf(text = "SlotClass.DirtCanister" )]SlotClassDirtCanister,
#[rust_sitter::leaf(text = "LogicType.VerticalRatio" )]LogicTypeVerticalRatio,
#[rust_sitter::leaf(text = "LogicType.PressureOutput2" )]LogicTypePressureOutput2,
#[rust_sitter::leaf(text = "LogicType.Eccentricity" )]LogicTypeEccentricity,
#[rust_sitter::leaf(text = "ElevatorMode.Downward" )]ElevatorModeDownward,
#[rust_sitter::leaf(text = "LogicType.On" )]LogicTypeOn,
#[rust_sitter::leaf(text = "LogicSlotType.None" )]LogicSlotTypeNone,
#[rust_sitter::leaf(text = "LogicType.Lock" )]LogicTypeLock,
#[rust_sitter::leaf(text = "GasType.Nitrogen" )]GasTypeNitrogen,
#[rust_sitter::leaf(text = "LogicType.SizeX" )]LogicTypeSizeX,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogenOutput2" )]LogicTypeRatioLiquidNitrogenOutput2,
#[rust_sitter::leaf(text = "LogicType.DrillCondition" )]LogicTypeDrillCondition,
#[rust_sitter::leaf(text = "LogicSlotType.Health" )]LogicSlotTypeHealth,
#[rust_sitter::leaf(text = "GasType.Pollutant" )]GasTypePollutant,
#[rust_sitter::leaf(text = "LogicType.VelocityMagnitude" )]LogicTypeVelocityMagnitude,
#[rust_sitter::leaf(text = "LogicType.TemperatureInput" )]LogicTypeTemperatureInput,
#[rust_sitter::leaf(text = "GasType.CarbonDioxide" )]GasTypeCarbonDioxide,
#[rust_sitter::leaf(text = "Vent.Outward" )]VentOutward,
#[rust_sitter::leaf(text = "LogicType.RatioWaterInput2" )]LogicTypeRatioWaterInput2,
#[rust_sitter::leaf(text = "LogicType.AutoLand" )]LogicTypeAutoLand,
#[rust_sitter::leaf(text = "LogicType.RatioOxygenInput" )]LogicTypeRatioOxygenInput,
#[rust_sitter::leaf(text = "LogicType.RatioOxygenOutput" )]LogicTypeRatioOxygenOutput,
#[rust_sitter::leaf(text = "PowerMode.Charging" )]PowerModeCharging,
#[rust_sitter::leaf(text = "LogicType.RequiredPower" )]LogicTypeRequiredPower,
#[rust_sitter::leaf(text = "LogicType.SettingInput" )]LogicTypeSettingInput,
#[rust_sitter::leaf(text = "LogicSlotType.Damage" )]LogicSlotTypeDamage,
#[rust_sitter::leaf(text = "LogicType.RatioSteamInput" )]LogicTypeRatioSteamInput,
#[rust_sitter::leaf(text = "LogicType.RatioOxygenInput2" )]LogicTypeRatioOxygenInput2,
#[rust_sitter::leaf(text = "LogicType.VelocityY" )]LogicTypeVelocityY,
#[rust_sitter::leaf(text = "SlotClass.Battery" )]SlotClassBattery,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxide" )]LogicTypeRatioNitrousOxide,
#[rust_sitter::leaf(text = "RobotMode.StorageFull" )]RobotModeStorageFull,
#[rust_sitter::leaf(text = "LogicType.RecipeHash" )]LogicTypeRecipeHash,
#[rust_sitter::leaf(text = "LogicType.SoundAlert" )]LogicTypeSoundAlert,
#[rust_sitter::leaf(text = "SortingClass.Atmospherics" )]SortingClassAtmospherics,
#[rust_sitter::leaf(text = "LogicType.ForwardY" )]LogicTypeForwardY,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxideOutput2" )]LogicTypeRatioLiquidCarbonDioxideOutput2,
#[rust_sitter::leaf(text = "LogicType.MinimumWattsToContact" )]LogicTypeMinimumWattsToContact,
#[rust_sitter::leaf(text = "GasType.Undefined" )]GasTypeUndefined,
#[rust_sitter::leaf(text = "SortingClass.Clothing" )]SortingClassClothing,
#[rust_sitter::leaf(text = "LogicType.Pressure" )]LogicTypePressure,
#[rust_sitter::leaf(text = "LogicType.OperationalTemperatureEfficiency" )]LogicTypeOperationalTemperatureEfficiency,
#[rust_sitter::leaf(text = "LogicSlotType.Open" )]LogicSlotTypeOpen,
#[rust_sitter::leaf(text = "LogicType.TemperatureDifferentialEfficiency" )]LogicTypeTemperatureDifferentialEfficiency,
#[rust_sitter::leaf(text = "LogicType.CombustionOutput2" )]LogicTypeCombustionOutput2,
#[rust_sitter::leaf(text = "SlotClass.Back" )]SlotClassBack,
#[rust_sitter::leaf(text = "Color.Khaki" )]ColorKhaki,
#[rust_sitter::leaf(text = "LogicType.Acceleration" )]LogicTypeAcceleration,
#[rust_sitter::leaf(text = "LogicSlotType.Seeding" )]LogicSlotTypeSeeding,
#[rust_sitter::leaf(text = "LogicSlotType.LineNumber" )]LogicSlotTypeLineNumber,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogenOutput2" )]LogicTypeRatioNitrogenOutput2,
#[rust_sitter::leaf(text = "LogicType.SolarAngle" )]LogicTypeSolarAngle,
#[rust_sitter::leaf(text = "LogicType.WorkingGasEfficiency" )]LogicTypeWorkingGasEfficiency,
#[rust_sitter::leaf(text = "LogicType.Output" )]LogicTypeOutput,
#[rust_sitter::leaf(text = "LogicType.FlightControlRule" )]LogicTypeFlightControlRule,
#[rust_sitter::leaf(text = "LogicSlotType.MaxQuantity" )]LogicSlotTypeMaxQuantity,
#[rust_sitter::leaf(text = "LogicSlotType.Pressure" )]LogicSlotTypePressure,
#[rust_sitter::leaf(text = "LogicType.VelocityX" )]LogicTypeVelocityX,
#[rust_sitter::leaf(text = "LogicType.RatioPollutantInput2" )]LogicTypeRatioPollutantInput2,
#[rust_sitter::leaf(text = "DaylightSensorMode.Vertical" )]DaylightSensorModeVertical,
#[rust_sitter::leaf(text = "LogicType.TotalMolesOutput2" )]LogicTypeTotalMolesOutput2,
#[rust_sitter::leaf(text = "SlotClass.DataDisk" )]SlotClassDataDisk,
#[rust_sitter::leaf(text = "LogicType.Channel0" )]LogicTypeChannel0,
#[rust_sitter::leaf(text = "LogicType.Ratio" )]LogicTypeRatio,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxideInput2" )]LogicTypeRatioLiquidCarbonDioxideInput2,
#[rust_sitter::leaf(text = "GasType.NitrousOxide" )]GasTypeNitrousOxide,
#[rust_sitter::leaf(text = "DaylightSensorMode.Horizontal" )]DaylightSensorModeHorizontal,
#[rust_sitter::leaf(text = "LogicType.PowerActual" )]LogicTypePowerActual,
#[rust_sitter::leaf(text = "LogicType.CollectableGoods" )]LogicTypeCollectableGoods,
#[rust_sitter::leaf(text = "LogicType.RatioOxygenOutput2" )]LogicTypeRatioOxygenOutput2,
#[rust_sitter::leaf(text = "LogicType.AutoShutOff" )]LogicTypeAutoShutOff,
#[rust_sitter::leaf(text = "LogicType.DryMass" )]LogicTypeDryMass,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxideInput" )]LogicTypeRatioLiquidNitrousOxideInput,
#[rust_sitter::leaf(text = "LogicType.Harvest" )]LogicTypeHarvest,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxideOutput" )]LogicTypeRatioLiquidNitrousOxideOutput,
#[rust_sitter::leaf(text = "SlotClass.ProgrammableChip" )]SlotClassProgrammableChip,
#[rust_sitter::leaf(text = "SlotClass.Flare" )]SlotClassFlare,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutantOutput2" )]LogicTypeRatioLiquidPollutantOutput2,
#[rust_sitter::leaf(text = "SortingClass.Ores" )]SortingClassOres,
#[rust_sitter::leaf(text = "AirCon.Hot" )]AirConHot,
#[rust_sitter::leaf(text = "LogicType.ContactTypeId" )]LogicTypeContactTypeId,
#[rust_sitter::leaf(text = "LogicSlotType.Occupied" )]LogicSlotTypeOccupied,
#[rust_sitter::leaf(text = "LogicType.ForwardZ" )]LogicTypeForwardZ,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygenInput" )]LogicTypeRatioLiquidOxygenInput,
#[rust_sitter::leaf(text = "SortingClass.Storage" )]SortingClassStorage,
#[rust_sitter::leaf(text = "LogicType.CombustionInput2" )]LogicTypeCombustionInput2,
#[rust_sitter::leaf(text = "LogicType.TemperatureOutput2" )]LogicTypeTemperatureOutput2,
#[rust_sitter::leaf(text = "Color.Red" )]ColorRed,
#[rust_sitter::leaf(text = "LogicType.DistanceAu" )]LogicTypeDistanceAu,
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxideOutput2" )]LogicTypeRatioCarbonDioxideOutput2,
#[rust_sitter::leaf(text = "SlotClass.Wreckage" )]SlotClassWreckage,
#[rust_sitter::leaf(text = "LogicType.Rpm" )]LogicTypeRpm,
#[rust_sitter::leaf(text = "LogicType.PressureOutput" )]LogicTypePressureOutput,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutantInput2" )]LogicTypeRatioLiquidPollutantInput2,
#[rust_sitter::leaf(text = "LogicType.ForceWrite" )]LogicTypeForceWrite,
#[rust_sitter::leaf(text = "LogicType.Throttle" )]LogicTypeThrottle,
#[rust_sitter::leaf(text = "LogicType.AirRelease" )]LogicTypeAirRelease,
#[rust_sitter::leaf(text = "LogicType.PowerPotential" )]LogicTypePowerPotential,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygenInput2" )]LogicTypeRatioLiquidOxygenInput2,
#[rust_sitter::leaf(text = "LogicType.Apex" )]LogicTypeApex,
#[rust_sitter::leaf(text = "SlotClass.Ore" )]SlotClassOre,
#[rust_sitter::leaf(text = "LogicType.Time" )]LogicTypeTime,
#[rust_sitter::leaf(text = "LogicType.RatioPollutantOutput" )]LogicTypeRatioPollutantOutput,
#[rust_sitter::leaf(text = "AirControl.None" )]AirControlNone,
#[rust_sitter::leaf(text = "Color.Pink" )]ColorPink,
#[rust_sitter::leaf(text = "LogicSlotType.ReferenceId" )]LogicSlotTypeReferenceId,
#[rust_sitter::leaf(text = "SlotClass.Blocked" )]SlotClassBlocked,
#[rust_sitter::leaf(text = "LogicType.Thrust" )]LogicTypeThrust,
#[rust_sitter::leaf(text = "LogicType.RatioSteamInput2" )]LogicTypeRatioSteamInput2,
#[rust_sitter::leaf(text = "GasType.Volatiles" )]GasTypeVolatiles,
#[rust_sitter::leaf(text = "ElevatorMode.Upward" )]ElevatorModeUpward,
#[rust_sitter::leaf(text = "LogicType.ThrustToWeight" )]LogicTypeThrustToWeight,
#[rust_sitter::leaf(text = "LogicType.VelocityRelativeZ" )]LogicTypeVelocityRelativeZ,
#[rust_sitter::leaf(text = "RobotMode.MoveToTarget" )]RobotModeMoveToTarget,
#[rust_sitter::leaf(text = "RobotMode.Roam" )]RobotModeRoam,
#[rust_sitter::leaf(text = "Less" )]Less,
#[rust_sitter::leaf(text = "LogicType.Vertical" )]LogicTypeVertical,
#[rust_sitter::leaf(text = "LogicType.SignalStrength" )]LogicTypeSignalStrength,
#[rust_sitter::leaf(text = "LogicType.Activate" )]LogicTypeActivate,
#[rust_sitter::leaf(text = "LogicType.DistanceKm" )]LogicTypeDistanceKm,
#[rust_sitter::leaf(text = "LogicType.CombustionOutput" )]LogicTypeCombustionOutput,
#[rust_sitter::leaf(text = "LogicType.Open" )]LogicTypeOpen,
#[rust_sitter::leaf(text = "LogicType.Channel7" )]LogicTypeChannel7,
#[rust_sitter::leaf(text = "LogicSlotType.PressureAir" )]LogicSlotTypePressureAir,
#[rust_sitter::leaf(text = "LogicType.Reagents" )]LogicTypeReagents,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogenOutput" )]LogicTypeRatioNitrogenOutput,
#[rust_sitter::leaf(text = "LogicType.TemperatureSetting" )]LogicTypeTemperatureSetting,
#[rust_sitter::leaf(text = "LogicType.VolumeOfLiquid" )]LogicTypeVolumeOfLiquid,
#[rust_sitter::leaf(text = "SlotClass.Glasses" )]SlotClassGlasses,
#[rust_sitter::leaf(text = "Greater" )]Greater,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxideInput" )]LogicTypeRatioNitrousOxideInput,
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxideInput" )]LogicTypeRatioCarbonDioxideInput,
#[rust_sitter::leaf(text = "PowerMode.Discharged" )]PowerModeDischarged,
#[rust_sitter::leaf(text = "LogicType.ManualResearchRequiredPod" )]LogicTypeManualResearchRequiredPod,
#[rust_sitter::leaf(text = "SlotClass.Organ" )]SlotClassOrgan,
#[rust_sitter::leaf(text = "LogicSlotType.Efficiency" )]LogicSlotTypeEfficiency,
#[rust_sitter::leaf(text = "LogicType.TargetPadIndex" )]LogicTypeTargetPadIndex,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxideOutput" )]LogicTypeRatioNitrousOxideOutput,
#[rust_sitter::leaf(text = "Color.Blue" )]ColorBlue,
#[rust_sitter::leaf(text = "PowerMode.Charged" )]PowerModeCharged,
#[rust_sitter::leaf(text = "LogicType.TargetZ" )]LogicTypeTargetZ,
#[rust_sitter::leaf(text = "LogicType.Channel1" )]LogicTypeChannel1,
#[rust_sitter::leaf(text = "LogicType.EntityState" )]LogicTypeEntityState,
#[rust_sitter::leaf(text = "LogicType.RatioPollutant" )]LogicTypeRatioPollutant,
#[rust_sitter::leaf(text = "LogicType.ReturnFuelCost" )]LogicTypeReturnFuelCost,
#[rust_sitter::leaf(text = "LogicSlotType.On" )]LogicSlotTypeOn,
#[rust_sitter::leaf(text = "LogicType.Filtration" )]LogicTypeFiltration,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogenInput" )]LogicTypeRatioLiquidNitrogenInput,
#[rust_sitter::leaf(text = "LogicType.RatioWaterOutput2" )]LogicTypeRatioWaterOutput2,
#[rust_sitter::leaf(text = "LogicType.RatioSteam" )]LogicTypeRatioSteam,
#[rust_sitter::leaf(text = "LogicType.RatioSteamOutput" )]LogicTypeRatioSteamOutput,
#[rust_sitter::leaf(text = "LogicType.Mass" )]LogicTypeMass,
#[rust_sitter::leaf(text = "LogicType.Progress" )]LogicTypeProgress,
#[rust_sitter::leaf(text = "LogicType.RequestHash" )]LogicTypeRequestHash,
#[rust_sitter::leaf(text = "LogicType.VelocityZ" )]LogicTypeVelocityZ,
#[rust_sitter::leaf(text = "SlotClass.Suit" )]SlotClassSuit,
#[rust_sitter::leaf(text = "LogicType.CombustionInput" )]LogicTypeCombustionInput,
#[rust_sitter::leaf(text = "SlotClass.SoundCartridge" )]SlotClassSoundCartridge,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatilesOutput" )]LogicTypeRatioLiquidVolatilesOutput,
#[rust_sitter::leaf(text = "GasType.LiquidCarbonDioxide" )]GasTypeLiquidCarbonDioxide,
#[rust_sitter::leaf(text = "AirControl.Draught" )]AirControlDraught,
#[rust_sitter::leaf(text = "EntityState.Dead" )]EntityStateDead,
#[rust_sitter::leaf(text = "RobotMode.Unload" )]RobotModeUnload,
#[rust_sitter::leaf(text = "SortingClass.Appliances" )]SortingClassAppliances,
#[rust_sitter::leaf(text = "LogicType.ElevatorSpeed" )]LogicTypeElevatorSpeed,
#[rust_sitter::leaf(text = "LogicType.NextWeatherEventTime" )]LogicTypeNextWeatherEventTime,
#[rust_sitter::leaf(text = "GasType.Water" )]GasTypeWater,
#[rust_sitter::leaf(text = "EntityState.Unconscious" )]EntityStateUnconscious,
#[rust_sitter::leaf(text = "SlotClass.SensorProcessingUnit" )]SlotClassSensorProcessingUnit,
#[rust_sitter::leaf(text = "LogicSlotType.SortingClass" )]LogicSlotTypeSortingClass,
#[rust_sitter::leaf(text = "LogicType.PowerRequired" )]LogicTypePowerRequired,
#[rust_sitter::leaf(text = "LogicType.TotalMoles" )]LogicTypeTotalMoles,
#[rust_sitter::leaf(text = "LogicType.TargetX" )]LogicTypeTargetX,
#[rust_sitter::leaf(text = "GasType.LiquidVolatiles" )]GasTypeLiquidVolatiles,
#[rust_sitter::leaf(text = "PowerMode.Discharging" )]PowerModeDischarging,
#[rust_sitter::leaf(text = "SlotClass.Cartridge" )]SlotClassCartridge,
#[rust_sitter::leaf(text = "SortingClass.Tools" )]SortingClassTools,
#[rust_sitter::leaf(text = "LogicType.Error" )]LogicTypeError,
#[rust_sitter::leaf(text = "LogicType.VelocityRelativeX" )]LogicTypeVelocityRelativeX,
#[rust_sitter::leaf(text = "GasType.LiquidNitrousOxide" )]GasTypeLiquidNitrousOxide,
#[rust_sitter::leaf(text = "EntityState.Alive" )]EntityStateAlive,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatilesInput" )]LogicTypeRatioLiquidVolatilesInput,
#[rust_sitter::leaf(text = "SortingClass.Ices" )]SortingClassIces,
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxideOutput" )]LogicTypeRatioCarbonDioxideOutput,
#[rust_sitter::leaf(text = "LogicType.RatioVolatilesInput2" )]LogicTypeRatioVolatilesInput2,
#[rust_sitter::leaf(text = "LogicType.Plant" )]LogicTypePlant,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutant" )]LogicTypeRatioLiquidPollutant,
#[rust_sitter::leaf(text = "LogicType.Weight" )]LogicTypeWeight,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxideInput2" )]LogicTypeRatioNitrousOxideInput2,
#[rust_sitter::leaf(text = "LogicSlotType.Mature" )]LogicSlotTypeMature,
#[rust_sitter::leaf(text = "SlotClass.DrillHead" )]SlotClassDrillHead,
#[rust_sitter::leaf(text = "LogicType.MineablesInVicinity" )]LogicTypeMineablesInVicinity,
#[rust_sitter::leaf(text = "LogicSlotType.OccupantHash" )]LogicSlotTypeOccupantHash,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogenInput2" )]LogicTypeRatioNitrogenInput2,
#[rust_sitter::leaf(text = "LogicType.PassedMoles" )]LogicTypePassedMoles,
#[rust_sitter::leaf(text = "LogicType.Channel6" )]LogicTypeChannel6,
#[rust_sitter::leaf(text = "LogicType.SemiMajorAxis" )]LogicTypeSemiMajorAxis,
#[rust_sitter::leaf(text = "LogicType.TotalMolesInput2" )]LogicTypeTotalMolesInput2,
#[rust_sitter::leaf(text = "LogicType.TimeToDestination" )]LogicTypeTimeToDestination,
#[rust_sitter::leaf(text = "LogicSlotType.ChargeRatio" )]LogicSlotTypeChargeRatio,
#[rust_sitter::leaf(text = "SlotClass.AccessCard" )]SlotClassAccessCard,
#[rust_sitter::leaf(text = "SlotClass.ScanningHead" )]SlotClassScanningHead,
#[rust_sitter::leaf(text = "LogicType.Stress" )]LogicTypeStress,
#[rust_sitter::leaf(text = "TransmitterMode.Active" )]TransmitterModeActive,
#[rust_sitter::leaf(text = "SlotClass.Ingot" )]SlotClassIngot,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogen" )]LogicTypeRatioNitrogen,
#[rust_sitter::leaf(text = "LogicType.RatioVolatilesInput" )]LogicTypeRatioVolatilesInput,
#[rust_sitter::leaf(text = "LogicType.Channel4" )]LogicTypeChannel4,
#[rust_sitter::leaf(text = "SortingClass.Resources" )]SortingClassResources,
#[rust_sitter::leaf(text = "LogicSlotType.Volume" )]LogicSlotTypeVolume,
#[rust_sitter::leaf(text = "Color.Yellow" )]ColorYellow,
#[rust_sitter::leaf(text = "LogicType.CurrentResearchPodType" )]LogicTypeCurrentResearchPodType,
#[rust_sitter::leaf(text = "LogicType.ElevatorLevel" )]LogicTypeElevatorLevel,
#[rust_sitter::leaf(text = "GasType.Oxygen" )]GasTypeOxygen,
#[rust_sitter::leaf(text = "LogicType.SettingOutput" )]LogicTypeSettingOutput,
#[rust_sitter::leaf(text = "LogicType.Idle" )]LogicTypeIdle,
#[rust_sitter::leaf(text = "LogicType.Combustion" )]LogicTypeCombustion,
#[rust_sitter::leaf(text = "LogicType.Index" )]LogicTypeIndex,
#[rust_sitter::leaf(text = "SlotClass.None" )]SlotClassNone,
#[rust_sitter::leaf(text = "SlotClass.Bottle" )]SlotClassBottle,
#[rust_sitter::leaf(text = "SortingClass.Kits" )]SortingClassKits,
#[rust_sitter::leaf(text = "LogicType.TotalMolesOutput" )]LogicTypeTotalMolesOutput,
#[rust_sitter::leaf(text = "LogicType.TrueAnomaly" )]LogicTypeTrueAnomaly,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogen" )]LogicTypeRatioLiquidNitrogen,
#[rust_sitter::leaf(text = "LogicType.PressureInput2" )]LogicTypePressureInput2,
#[rust_sitter::leaf(text = "LogicType.TemperatureInput2" )]LogicTypeTemperatureInput2,
#[rust_sitter::leaf(text = "SlotClass.Tool" )]SlotClassTool,
#[rust_sitter::leaf(text = "LogicType.SizeZ" )]LogicTypeSizeZ,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutantOutput" )]LogicTypeRatioLiquidPollutantOutput,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxideOutput" )]LogicTypeRatioLiquidCarbonDioxideOutput,
#[rust_sitter::leaf(text = "LogicType.PositionZ" )]LogicTypePositionZ,
#[rust_sitter::leaf(text = "LogicType.ExportCount" )]LogicTypeExportCount,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxideOutput2" )]LogicTypeRatioNitrousOxideOutput2,
#[rust_sitter::leaf(text = "GasType.LiquidNitrogen" )]GasTypeLiquidNitrogen,
#[rust_sitter::leaf(text = "LogicType.SolarIrradiance" )]LogicTypeSolarIrradiance,
#[rust_sitter::leaf(text = "LogicSlotType.Lock" )]LogicSlotTypeLock,
#[rust_sitter::leaf(text = "LogicType.Setting" )]LogicTypeSetting,
#[rust_sitter::leaf(text = "SlotClass.LiquidBottle" )]SlotClassLiquidBottle,
#[rust_sitter::leaf(text = "ElevatorMode.Stationary" )]ElevatorModeStationary,
#[rust_sitter::leaf(text = "LogicType.RatioWaterInput" )]LogicTypeRatioWaterInput,
#[rust_sitter::leaf(text = "LogicType.EnvironmentEfficiency" )]LogicTypeEnvironmentEfficiency,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogenInput" )]LogicTypeRatioNitrogenInput,
#[rust_sitter::leaf(text = "EntityState.Decay" )]EntityStateDecay,
#[rust_sitter::leaf(text = "LogicSlotType.FilterType" )]LogicSlotTypeFilterType,
#[rust_sitter::leaf(text = "LogicType.RatioVolatilesOutput" )]LogicTypeRatioVolatilesOutput,
#[rust_sitter::leaf(text = "LogicType.TotalMolesInput" )]LogicTypeTotalMolesInput,
#[rust_sitter::leaf(text = "LogicType.PressureEfficiency" )]LogicTypePressureEfficiency,
#[rust_sitter::leaf(text = "SlotClass.Belt" )]SlotClassBelt,
#[rust_sitter::leaf(text = "LogicType.Flush" )]LogicTypeFlush,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxideInput" )]LogicTypeRatioLiquidCarbonDioxideInput,
#[rust_sitter::leaf(text = "LogicType.CompletionRatio" )]LogicTypeCompletionRatio,
#[rust_sitter::leaf(text = "LogicType.Mode" )]LogicTypeMode,
#[rust_sitter::leaf(text = "Color.White" )]ColorWhite,
#[rust_sitter::leaf(text = "AirCon.Cold" )]AirConCold,
#[rust_sitter::leaf(text = "RobotMode.None" )]RobotModeNone,
#[rust_sitter::leaf(text = "LogicType.Inclination" )]LogicTypeInclination,
#[rust_sitter::leaf(text = "SortingClass.Food" )]SortingClassFood,
#[rust_sitter::leaf(text = "PowerMode.Idle" )]PowerModeIdle,
#[rust_sitter::leaf(text = "LogicType.TemperatureOutput2" )]LogicTypeTemperatureOutput2,
#[rust_sitter::leaf(text = "LogicType.SignalStrength" )]LogicTypeSignalStrength,
#[rust_sitter::leaf(text = "LogicType.ReferenceId" )]LogicTypeReferenceId,
#[rust_sitter::leaf(text = "LogicType.PositionX" )]LogicTypePositionX,
#[rust_sitter::leaf(text = "RobotMode.Follow" )]RobotModeFollow,
#[rust_sitter::leaf(text = "GasType.LiquidPollutant" )]GasTypeLiquidPollutant,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatilesOutput2" )]LogicTypeRatioLiquidVolatilesOutput2,
#[rust_sitter::leaf(text = "LogicType.Channel2" )]LogicTypeChannel2,
#[rust_sitter::leaf(text = "LogicType.RatioOxygen" )]LogicTypeRatioOxygen,
#[rust_sitter::leaf(text = "LogicSlotType.Quantity" )]LogicSlotTypeQuantity,
#[rust_sitter::leaf(text = "SortingClass.Default" )]SortingClassDefault,
#[rust_sitter::leaf(text = "LogicType.InterrogationProgress" )]LogicTypeInterrogationProgress,
#[rust_sitter::leaf(text = "LogicType.Activate" )]LogicTypeActivate,
#[rust_sitter::leaf(text = "LogicType.BurnTimeRemaining" )]LogicTypeBurnTimeRemaining,
#[rust_sitter::leaf(text = "LogicType.PressureOutput2" )]LogicTypePressureOutput2,
#[rust_sitter::leaf(text = "LogicType.Volume" )]LogicTypeVolume,
#[rust_sitter::leaf(text = "LogicType.TemperatureInput2" )]LogicTypeTemperatureInput2,
#[rust_sitter::leaf(text = "LogicType.Ratio" )]LogicTypeRatio,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogenOutput2" )]LogicTypeRatioNitrogenOutput2,
#[rust_sitter::leaf(text = "LogicType.Channel5" )]LogicTypeChannel5,
#[rust_sitter::leaf(text = "LogicType.RatioSteamInput2" )]LogicTypeRatioSteamInput2,
#[rust_sitter::leaf(text = "LogicType.Channel7" )]LogicTypeChannel7,
#[rust_sitter::leaf(text = "LogicType.ForwardZ" )]LogicTypeForwardZ,
#[rust_sitter::leaf(text = "SlotClass.Appliance" )]SlotClassAppliance,
#[rust_sitter::leaf(text = "LogicType.CelestialParentHash" )]LogicTypeCelestialParentHash,
#[rust_sitter::leaf(text = "LogicType.DistanceKm" )]LogicTypeDistanceKm,
#[rust_sitter::leaf(text = "AirControl.Offline" )]AirControlOffline,
#[rust_sitter::leaf(text = "SortingClass.Kits" )]SortingClassKits,
#[rust_sitter::leaf(text = "LogicSlotType.Seeding" )]LogicSlotTypeSeeding,
#[rust_sitter::leaf(text = "LogicType.Error" )]LogicTypeError,
#[rust_sitter::leaf(text = "EntityState.Dead" )]EntityStateDead,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxideInput2" )]LogicTypeRatioLiquidCarbonDioxideInput2,
#[rust_sitter::leaf(text = "LogicType.PressureSetting" )]LogicTypePressureSetting,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogenInput2" )]LogicTypeRatioLiquidNitrogenInput2,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygenOutput" )]LogicTypeRatioLiquidOxygenOutput,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxideInput2" )]LogicTypeRatioLiquidNitrousOxideInput2,
#[rust_sitter::leaf(text = "TransmitterMode.Passive" )]TransmitterModePassive,
#[rust_sitter::leaf(text = "Vent.Inward" )]VentInward,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygenOutput2" )]LogicTypeRatioLiquidOxygenOutput2,
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxide" )]LogicTypeRatioCarbonDioxide,
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxideOutput" )]LogicTypeRatioCarbonDioxideOutput,
#[rust_sitter::leaf(text = "LogicType.Time" )]LogicTypeTime,
#[rust_sitter::leaf(text = "LogicSlotType.Mature" )]LogicSlotTypeMature,
#[rust_sitter::leaf(text = "LogicType.WattsReachingContact" )]LogicTypeWattsReachingContact,
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxideInput" )]LogicTypeRatioCarbonDioxideInput,
#[rust_sitter::leaf(text = "LogicType.RatioWaterInput2" )]LogicTypeRatioWaterInput2,
#[rust_sitter::leaf(text = "SlotClass.CreditCard" )]SlotClassCreditCard,
#[rust_sitter::leaf(text = "LogicType.ExportCount" )]LogicTypeExportCount,
#[rust_sitter::leaf(text = "LogicType.VelocityZ" )]LogicTypeVelocityZ,
#[rust_sitter::leaf(text = "LogicType.Channel0" )]LogicTypeChannel0,
#[rust_sitter::leaf(text = "LogicType.RequestHash" )]LogicTypeRequestHash,
#[rust_sitter::leaf(text = "SlotClass.Torpedo" )]SlotClassTorpedo,
#[rust_sitter::leaf(text = "LogicType.PowerActual" )]LogicTypePowerActual,
#[rust_sitter::leaf(text = "LogicSlotType.SortingClass" )]LogicSlotTypeSortingClass,
#[rust_sitter::leaf(text = "AirControl.Draught" )]AirControlDraught,
#[rust_sitter::leaf(text = "Color.Yellow" )]ColorYellow,
#[rust_sitter::leaf(text = "PowerMode.Discharging" )]PowerModeDischarging,
#[rust_sitter::leaf(text = "LogicType.Maximum" )]LogicTypeMaximum,
#[rust_sitter::leaf(text = "LogicType.RatioVolatilesOutput" )]LogicTypeRatioVolatilesOutput,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygenInput" )]LogicTypeRatioLiquidOxygenInput,
#[rust_sitter::leaf(text = "SlotClass.Wreckage" )]SlotClassWreckage,
#[rust_sitter::leaf(text = "Color.Red" )]ColorRed,
#[rust_sitter::leaf(text = "Color.Brown" )]ColorBrown,
#[rust_sitter::leaf(text = "SlotClass.LiquidBottle" )]SlotClassLiquidBottle,
#[rust_sitter::leaf(text = "RobotMode.Follow" )]RobotModeFollow,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutantOutput2" )]LogicTypeRatioLiquidPollutantOutput2,
#[rust_sitter::leaf(text = "LogicType.TemperatureOutput" )]LogicTypeTemperatureOutput,
#[rust_sitter::leaf(text = "GasType.LiquidCarbonDioxide" )]GasTypeLiquidCarbonDioxide,
#[rust_sitter::leaf(text = "SlotClass.None" )]SlotClassNone,
#[rust_sitter::leaf(text = "SortingClass.Clothing" )]SortingClassClothing,
#[rust_sitter::leaf(text = "SlotClass.Suit" )]SlotClassSuit,
#[rust_sitter::leaf(text = "LogicType.ThrustToWeight" )]LogicTypeThrustToWeight,
#[rust_sitter::leaf(text = "Greater" )]Greater,
#[rust_sitter::leaf(text = "LogicType.TotalMolesOutput" )]LogicTypeTotalMolesOutput,
#[rust_sitter::leaf(text = "LogicType.AutoShutOff" )]LogicTypeAutoShutOff,
#[rust_sitter::leaf(text = "LogicType.RatioPollutantInput2" )]LogicTypeRatioPollutantInput2,
#[rust_sitter::leaf(text = "LogicType.Open" )]LogicTypeOpen,
#[rust_sitter::leaf(text = "LogicType.RecipeHash" )]LogicTypeRecipeHash,
#[rust_sitter::leaf(text = "LogicType.TargetPadIndex" )]LogicTypeTargetPadIndex,
#[rust_sitter::leaf(text = "LogicType.TimeToDestination" )]LogicTypeTimeToDestination,
#[rust_sitter::leaf(text = "LogicType.RatioWaterOutput" )]LogicTypeRatioWaterOutput,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxide" )]LogicTypeRatioLiquidCarbonDioxide,
#[rust_sitter::leaf(text = "SlotClass.Ore" )]SlotClassOre,
#[rust_sitter::leaf(text = "SortingClass.Ores" )]SortingClassOres,
#[rust_sitter::leaf(text = "LogicType.Reagents" )]LogicTypeReagents,
#[rust_sitter::leaf(text = "LogicType.MinimumWattsToContact" )]LogicTypeMinimumWattsToContact,
#[rust_sitter::leaf(text = "LogicType.SettingInput" )]LogicTypeSettingInput,
#[rust_sitter::leaf(text = "LogicType.CompletionRatio" )]LogicTypeCompletionRatio,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxideInput2" )]LogicTypeRatioNitrousOxideInput2,
#[rust_sitter::leaf(text = "LogicType.RatioVolatilesOutput2" )]LogicTypeRatioVolatilesOutput2,
#[rust_sitter::leaf(text = "SlotClass.Circuit" )]SlotClassCircuit,
#[rust_sitter::leaf(text = "LogicType.Mass" )]LogicTypeMass,
#[rust_sitter::leaf(text = "NotEquals" )]NotEquals,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxideInput" )]LogicTypeRatioLiquidCarbonDioxideInput,
#[rust_sitter::leaf(text = "LogicType.CombustionLimiter" )]LogicTypeCombustionLimiter,
#[rust_sitter::leaf(text = "LogicType.FlightControlRule" )]LogicTypeFlightControlRule,
#[rust_sitter::leaf(text = "LogicType.PowerPotential" )]LogicTypePowerPotential,
#[rust_sitter::leaf(text = "LogicSlotType.PressureWaste" )]LogicSlotTypePressureWaste,
#[rust_sitter::leaf(text = "LogicType.RatioPollutant" )]LogicTypeRatioPollutant,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxideOutput" )]LogicTypeRatioLiquidNitrousOxideOutput,
#[rust_sitter::leaf(text = "LogicType.DestinationCode" )]LogicTypeDestinationCode,
#[rust_sitter::leaf(text = "LogicType.OrbitPeriod" )]LogicTypeOrbitPeriod,
#[rust_sitter::leaf(text = "Color.Blue" )]ColorBlue,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatilesInput" )]LogicTypeRatioLiquidVolatilesInput,
#[rust_sitter::leaf(text = "LogicType.Harvest" )]LogicTypeHarvest,
#[rust_sitter::leaf(text = "LogicType.CollectableGoods" )]LogicTypeCollectableGoods,
#[rust_sitter::leaf(text = "LogicType.Filtration" )]LogicTypeFiltration,
#[rust_sitter::leaf(text = "LogicType.CombustionInput2" )]LogicTypeCombustionInput2,
#[rust_sitter::leaf(text = "RobotMode.MoveToTarget" )]RobotModeMoveToTarget,
#[rust_sitter::leaf(text = "LogicType.PressureEfficiency" )]LogicTypePressureEfficiency,
#[rust_sitter::leaf(text = "LogicSlotType.Temperature" )]LogicSlotTypeTemperature,
#[rust_sitter::leaf(text = "GasType.NitrousOxide" )]GasTypeNitrousOxide,
#[rust_sitter::leaf(text = "Color.White" )]ColorWhite,
#[rust_sitter::leaf(text = "SlotClass.Circuitboard" )]SlotClassCircuitboard,
#[rust_sitter::leaf(text = "LogicType.Combustion" )]LogicTypeCombustion,
#[rust_sitter::leaf(text = "LogicSlotType.Volume" )]LogicSlotTypeVolume,
#[rust_sitter::leaf(text = "LogicType.SolarAngle" )]LogicTypeSolarAngle,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxide" )]LogicTypeRatioLiquidNitrousOxide,
#[rust_sitter::leaf(text = "LogicType.TargetZ" )]LogicTypeTargetZ,
#[rust_sitter::leaf(text = "LogicType.TotalMolesInput" )]LogicTypeTotalMolesInput,
#[rust_sitter::leaf(text = "LogicType.VelocityY" )]LogicTypeVelocityY,
#[rust_sitter::leaf(text = "LogicType.Apex" )]LogicTypeApex,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutantOutput" )]LogicTypeRatioLiquidPollutantOutput,
#[rust_sitter::leaf(text = "LogicType.EntityState" )]LogicTypeEntityState,
#[rust_sitter::leaf(text = "SlotClass.Uniform" )]SlotClassUniform,
#[rust_sitter::leaf(text = "SlotClass.Flare" )]SlotClassFlare,
#[rust_sitter::leaf(text = "GasType.Water" )]GasTypeWater,
#[rust_sitter::leaf(text = "GasType.LiquidNitrousOxide" )]GasTypeLiquidNitrousOxide,
#[rust_sitter::leaf(text = "PowerMode.Discharged" )]PowerModeDischarged,
#[rust_sitter::leaf(text = "RobotMode.PathToTarget" )]RobotModePathToTarget,
#[rust_sitter::leaf(text = "LogicType.OperationalTemperatureEfficiency" )]LogicTypeOperationalTemperatureEfficiency,
#[rust_sitter::leaf(text = "LogicSlotType.LineNumber" )]LogicSlotTypeLineNumber,
#[rust_sitter::leaf(text = "LogicType.TemperatureInput" )]LogicTypeTemperatureInput,
#[rust_sitter::leaf(text = "LogicType.SizeY" )]LogicTypeSizeY,
#[rust_sitter::leaf(text = "LogicType.Channel1" )]LogicTypeChannel1,
#[rust_sitter::leaf(text = "SlotClass.Blocked" )]SlotClassBlocked,
#[rust_sitter::leaf(text = "LogicType.Throttle" )]LogicTypeThrottle,
#[rust_sitter::leaf(text = "SlotClass.Magazine" )]SlotClassMagazine,
#[rust_sitter::leaf(text = "LogicType.ElevatorSpeed" )]LogicTypeElevatorSpeed,
#[rust_sitter::leaf(text = "ElevatorMode.Upward" )]ElevatorModeUpward,
#[rust_sitter::leaf(text = "LogicType.ReEntryAltitude" )]LogicTypeReEntryAltitude,
#[rust_sitter::leaf(text = "Less" )]Less,
#[rust_sitter::leaf(text = "SortingClass.Food" )]SortingClassFood,
#[rust_sitter::leaf(text = "Color.Orange" )]ColorOrange,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxideInput" )]LogicTypeRatioNitrousOxideInput,
#[rust_sitter::leaf(text = "LogicType.VolumeOfLiquid" )]LogicTypeVolumeOfLiquid,
#[rust_sitter::leaf(text = "LogicType.Inclination" )]LogicTypeInclination,
#[rust_sitter::leaf(text = "EntityState.Alive" )]EntityStateAlive,
#[rust_sitter::leaf(text = "LogicType.PressureExternal" )]LogicTypePressureExternal,
#[rust_sitter::leaf(text = "LogicType.RatioWaterInput" )]LogicTypeRatioWaterInput,
#[rust_sitter::leaf(text = "LogicSlotType.Class" )]LogicSlotTypeClass,
#[rust_sitter::leaf(text = "SlotClass.Ingot" )]SlotClassIngot,
#[rust_sitter::leaf(text = "LogicType.On" )]LogicTypeOn,
#[rust_sitter::leaf(text = "LogicType.Flush" )]LogicTypeFlush,
#[rust_sitter::leaf(text = "LogicType.VelocityX" )]LogicTypeVelocityX,
#[rust_sitter::leaf(text = "LogicType.RatioOxygenOutput2" )]LogicTypeRatioOxygenOutput2,
#[rust_sitter::leaf(text = "LogicType.RatioSteamOutput" )]LogicTypeRatioSteamOutput,
#[rust_sitter::leaf(text = "LogicType.DryMass" )]LogicTypeDryMass,
#[rust_sitter::leaf(text = "RobotMode.Roam" )]RobotModeRoam,
#[rust_sitter::leaf(text = "SortingClass.Tools" )]SortingClassTools,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygenOutput2" )]LogicTypeRatioLiquidOxygenOutput2,
#[rust_sitter::leaf(text = "LogicSlotType.Health" )]LogicSlotTypeHealth,
#[rust_sitter::leaf(text = "LogicType.PassedMoles" )]LogicTypePassedMoles,
#[rust_sitter::leaf(text = "SlotClass.DirtCanister" )]SlotClassDirtCanister,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogenOutput" )]LogicTypeRatioLiquidNitrogenOutput,
#[rust_sitter::leaf(text = "GasType.Steam" )]GasTypeSteam,
#[rust_sitter::leaf(text = "LogicType.ReturnFuelCost" )]LogicTypeReturnFuelCost,
#[rust_sitter::leaf(text = "SlotClass.Glasses" )]SlotClassGlasses,
#[rust_sitter::leaf(text = "Color.Black" )]ColorBlack,
#[rust_sitter::leaf(text = "LogicType.Orientation" )]LogicTypeOrientation,
#[rust_sitter::leaf(text = "SortingClass.Appliances" )]SortingClassAppliances,
#[rust_sitter::leaf(text = "LogicType.DrillCondition" )]LogicTypeDrillCondition,
#[rust_sitter::leaf(text = "LogicType.Vertical" )]LogicTypeVertical,
#[rust_sitter::leaf(text = "LogicType.ForwardY" )]LogicTypeForwardY,
#[rust_sitter::leaf(text = "LogicType.TargetY" )]LogicTypeTargetY,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxideOutput2" )]LogicTypeRatioLiquidNitrousOxideOutput2,
#[rust_sitter::leaf(text = "LogicType.Fuel" )]LogicTypeFuel,
#[rust_sitter::leaf(text = "LogicSlotType.PrefabHash" )]LogicSlotTypePrefabHash,
#[rust_sitter::leaf(text = "LogicType.Output" )]LogicTypeOutput,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutant" )]LogicTypeRatioLiquidPollutant,
#[rust_sitter::leaf(text = "LogicType.EnvironmentEfficiency" )]LogicTypeEnvironmentEfficiency,
#[rust_sitter::leaf(text = "LogicType.Weight" )]LogicTypeWeight,
#[rust_sitter::leaf(text = "SlotClass.Battery" )]SlotClassBattery,
#[rust_sitter::leaf(text = "AirCon.Cold" )]AirConCold,
#[rust_sitter::leaf(text = "PowerMode.Charged" )]PowerModeCharged,
#[rust_sitter::leaf(text = "LogicType.CurrentResearchPodType" )]LogicTypeCurrentResearchPodType,
#[rust_sitter::leaf(text = "LogicType.Rpm" )]LogicTypeRpm,
#[rust_sitter::leaf(text = "LogicType.TemperatureExternal" )]LogicTypeTemperatureExternal,
#[rust_sitter::leaf(text = "GasType.Oxygen" )]GasTypeOxygen,
#[rust_sitter::leaf(text = "LogicType.RatioOxygenOutput" )]LogicTypeRatioOxygenOutput,
#[rust_sitter::leaf(text = "Color.Green" )]ColorGreen,
#[rust_sitter::leaf(text = "LogicType.Acceleration" )]LogicTypeAcceleration,
#[rust_sitter::leaf(text = "LogicSlotType.Lock" )]LogicSlotTypeLock,
#[rust_sitter::leaf(text = "LogicType.AirRelease" )]LogicTypeAirRelease,
#[rust_sitter::leaf(text = "LogicType.VelocityRelativeX" )]LogicTypeVelocityRelativeX,
#[rust_sitter::leaf(text = "LogicType.RatioOxygenInput" )]LogicTypeRatioOxygenInput,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogenOutput" )]LogicTypeRatioNitrogenOutput,
#[rust_sitter::leaf(text = "LogicType.VerticalRatio" )]LogicTypeVerticalRatio,
#[rust_sitter::leaf(text = "SlotClass.ScanningHead" )]SlotClassScanningHead,
#[rust_sitter::leaf(text = "LogicType.LineNumber" )]LogicTypeLineNumber,
#[rust_sitter::leaf(text = "Color.Purple" )]ColorPurple,
#[rust_sitter::leaf(text = "SlotClass.SoundCartridge" )]SlotClassSoundCartridge,
#[rust_sitter::leaf(text = "AirCon.Hot" )]AirConHot,
#[rust_sitter::leaf(text = "LogicType.VelocityRelativeY" )]LogicTypeVelocityRelativeY,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogenInput2" )]LogicTypeRatioNitrogenInput2,
#[rust_sitter::leaf(text = "LogicSlotType.Damage" )]LogicSlotTypeDamage,
#[rust_sitter::leaf(text = "LogicType.RequiredPower" )]LogicTypeRequiredPower,
#[rust_sitter::leaf(text = "LogicType.CelestialHash" )]LogicTypeCelestialHash,
#[rust_sitter::leaf(text = "LogicSlotType.OccupantHash" )]LogicSlotTypeOccupantHash,
#[rust_sitter::leaf(text = "AirControl.None" )]AirControlNone,
#[rust_sitter::leaf(text = "Vent.Inward" )]VentInward,
#[rust_sitter::leaf(text = "LogicType.SoundAlert" )]LogicTypeSoundAlert,
#[rust_sitter::leaf(text = "RobotMode.Unload" )]RobotModeUnload,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidCarbonDioxideOutput2" )]LogicTypeRatioLiquidCarbonDioxideOutput2,
#[rust_sitter::leaf(text = "LogicType.ElevatorLevel" )]LogicTypeElevatorLevel,
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxideInput2" )]LogicTypeRatioCarbonDioxideInput2,
#[rust_sitter::leaf(text = "LogicType.Channel3" )]LogicTypeChannel3,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygenOutput" )]LogicTypeRatioLiquidOxygenOutput,
#[rust_sitter::leaf(text = "LogicSlotType.Quantity" )]LogicSlotTypeQuantity,
#[rust_sitter::leaf(text = "LogicType.Eccentricity" )]LogicTypeEccentricity,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygenInput2" )]LogicTypeRatioLiquidOxygenInput2,
#[rust_sitter::leaf(text = "SlotClass.Circuit" )]SlotClassCircuit,
#[rust_sitter::leaf(text = "Vent.Outward" )]VentOutward,
#[rust_sitter::leaf(text = "LogicType.MineablesInQueue" )]LogicTypeMineablesInQueue,
#[rust_sitter::leaf(text = "LogicType.Channel2" )]LogicTypeChannel2,
#[rust_sitter::leaf(text = "SlotClass.Tool" )]SlotClassTool,
#[rust_sitter::leaf(text = "LogicType.RatioWater" )]LogicTypeRatioWater,
#[rust_sitter::leaf(text = "LogicType.HorizontalRatio" )]LogicTypeHorizontalRatio,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogen" )]LogicTypeRatioLiquidNitrogen,
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxide" )]LogicTypeRatioCarbonDioxide,
#[rust_sitter::leaf(text = "LogicSlotType.Growth" )]LogicSlotTypeGrowth,
#[rust_sitter::leaf(text = "LogicType.PressureOutput" )]LogicTypePressureOutput,
#[rust_sitter::leaf(text = "SlotClass.Helmet" )]SlotClassHelmet,
#[rust_sitter::leaf(text = "Color.Pink" )]ColorPink,
#[rust_sitter::leaf(text = "RobotMode.None" )]RobotModeNone,
#[rust_sitter::leaf(text = "SlotClass.Motherboard" )]SlotClassMotherboard,
#[rust_sitter::leaf(text = "LogicType.PowerRequired" )]LogicTypePowerRequired,
#[rust_sitter::leaf(text = "LogicType.ClearMemory" )]LogicTypeClearMemory,
#[rust_sitter::leaf(text = "LogicSlotType.PressureAir" )]LogicSlotTypePressureAir,
#[rust_sitter::leaf(text = "EntityState.Decay" )]EntityStateDecay,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogenInput" )]LogicTypeRatioLiquidNitrogenInput,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidOxygen" )]LogicTypeRatioLiquidOxygen,
#[rust_sitter::leaf(text = "GasType.LiquidPollutant" )]GasTypeLiquidPollutant,
#[rust_sitter::leaf(text = "SortingClass.Resources" )]SortingClassResources,
#[rust_sitter::leaf(text = "LogicType.CombustionInput" )]LogicTypeCombustionInput,
#[rust_sitter::leaf(text = "LogicType.Pressure" )]LogicTypePressure,
#[rust_sitter::leaf(text = "DaylightSensorMode.Default" )]DaylightSensorModeDefault,
#[rust_sitter::leaf(text = "LogicType.RatioPollutantInput" )]LogicTypeRatioPollutantInput,
#[rust_sitter::leaf(text = "LogicType.SemiMajorAxis" )]LogicTypeSemiMajorAxis,
#[rust_sitter::leaf(text = "SlotClass.DataDisk" )]SlotClassDataDisk,
#[rust_sitter::leaf(text = "SlotClass.SensorProcessingUnit" )]SlotClassSensorProcessingUnit,
#[rust_sitter::leaf(text = "GasType.Undefined" )]GasTypeUndefined,
#[rust_sitter::leaf(text = "LogicType.PressureInternal" )]LogicTypePressureInternal,
#[rust_sitter::leaf(text = "LogicType.Quantity" )]LogicTypeQuantity,
#[rust_sitter::leaf(text = "GasType.Nitrogen" )]GasTypeNitrogen,
#[rust_sitter::leaf(text = "Equals" )]Equals,
#[rust_sitter::leaf(text = "LogicType.RatioNitrogenInput" )]LogicTypeRatioNitrogenInput,
#[rust_sitter::leaf(text = "LogicType.DistanceAu" )]LogicTypeDistanceAu,
#[rust_sitter::leaf(text = "ElevatorMode.Downward" )]ElevatorModeDownward,
#[rust_sitter::leaf(text = "SlotClass.Bottle" )]SlotClassBottle,
#[rust_sitter::leaf(text = "LogicSlotType.None" )]LogicSlotTypeNone,
#[rust_sitter::leaf(text = "SlotClass.GasFilter" )]SlotClassGasFilter,
#[rust_sitter::leaf(text = "TransmitterMode.Active" )]TransmitterModeActive,
#[rust_sitter::leaf(text = "LogicType.Bpm" )]LogicTypeBpm,
#[rust_sitter::leaf(text = "LogicType.RatioSteamOutput2" )]LogicTypeRatioSteamOutput2,
#[rust_sitter::leaf(text = "LogicType.SolarIrradiance" )]LogicTypeSolarIrradiance,
#[rust_sitter::leaf(text = "LogicType.VelocityRelativeZ" )]LogicTypeVelocityRelativeZ,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxideInput2" )]LogicTypeRatioLiquidNitrousOxideInput2,
#[rust_sitter::leaf(text = "SlotClass.Egg" )]SlotClassEgg,
#[rust_sitter::leaf(text = "SlotClass.AccessCard" )]SlotClassAccessCard,
#[rust_sitter::leaf(text = "LogicType.RatioPollutantOutput2" )]LogicTypeRatioPollutantOutput2,
#[rust_sitter::leaf(text = "SortingClass.Ices" )]SortingClassIces,
#[rust_sitter::leaf(text = "SlotClass.LiquidCanister" )]SlotClassLiquidCanister,
#[rust_sitter::leaf(text = "LogicType.RatioCarbonDioxideOutput2" )]LogicTypeRatioCarbonDioxideOutput2,
#[rust_sitter::leaf(text = "TransmitterMode.Passive" )]TransmitterModePassive,
#[rust_sitter::leaf(text = "LogicType.Index" )]LogicTypeIndex,
#[rust_sitter::leaf(text = "LogicType.NextWeatherEventTime" )]LogicTypeNextWeatherEventTime,
#[rust_sitter::leaf(text = "LogicType.Plant" )]LogicTypePlant,
#[rust_sitter::leaf(text = "LogicType.Temperature" )]LogicTypeTemperature,
#[rust_sitter::leaf(text = "LogicType.RatioOxygenInput2" )]LogicTypeRatioOxygenInput2,
#[rust_sitter::leaf(text = "LogicType.SettingOutput" )]LogicTypeSettingOutput,
#[rust_sitter::leaf(text = "EntityState.Unconscious" )]EntityStateUnconscious,
#[rust_sitter::leaf(text = "LogicSlotType.MaxQuantity" )]LogicSlotTypeMaxQuantity,
#[rust_sitter::leaf(text = "LogicType.CombustionOutput" )]LogicTypeCombustionOutput,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogenOutput2" )]LogicTypeRatioLiquidNitrogenOutput2,
#[rust_sitter::leaf(text = "LogicType.MineablesInVicinity" )]LogicTypeMineablesInVicinity,
#[rust_sitter::leaf(text = "LogicType.TemperatureDifferentialEfficiency" )]LogicTypeTemperatureDifferentialEfficiency,
#[rust_sitter::leaf(text = "AirControl.Pressure" )]AirControlPressure,
#[rust_sitter::leaf(text = "LogicType.VelocityMagnitude" )]LogicTypeVelocityMagnitude,
#[rust_sitter::leaf(text = "LogicType.TotalMolesInput2" )]LogicTypeTotalMolesInput2,
#[rust_sitter::leaf(text = "PowerMode.Charging" )]PowerModeCharging,
#[rust_sitter::leaf(text = "LogicType.PressureInput" )]LogicTypePressureInput,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxideOutput2" )]LogicTypeRatioNitrousOxideOutput2,
#[rust_sitter::leaf(text = "LogicType.TotalMoles" )]LogicTypeTotalMoles,
#[rust_sitter::leaf(text = "GasType.CarbonDioxide" )]GasTypeCarbonDioxide,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxide" )]LogicTypeRatioNitrousOxide,
#[rust_sitter::leaf(text = "LogicType.TemperatureSetting" )]LogicTypeTemperatureSetting,
#[rust_sitter::leaf(text = "LogicType.RatioVolatiles" )]LogicTypeRatioVolatiles,
#[rust_sitter::leaf(text = "LogicType.AutoLand" )]LogicTypeAutoLand,
#[rust_sitter::leaf(text = "LogicSlotType.Charge" )]LogicSlotTypeCharge,
#[rust_sitter::leaf(text = "SortingClass.Atmospherics" )]SortingClassAtmospherics,
#[rust_sitter::leaf(text = "LogicType.RatioOxygen" )]LogicTypeRatioOxygen,
#[rust_sitter::leaf(text = "LogicType.Idle" )]LogicTypeIdle,
#[rust_sitter::leaf(text = "LogicType.PositionX" )]LogicTypePositionX,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrogenInput2" )]LogicTypeRatioLiquidNitrogenInput2,
#[rust_sitter::leaf(text = "LogicType.PrefabHash" )]LogicTypePrefabHash,
#[rust_sitter::leaf(text = "SlotClass.Belt" )]SlotClassBelt,
#[rust_sitter::leaf(text = "LogicType.Mode" )]LogicTypeMode,
#[rust_sitter::leaf(text = "LogicType.SizeX" )]LogicTypeSizeX,
#[rust_sitter::leaf(text = "GasType.Volatiles" )]GasTypeVolatiles,
#[rust_sitter::leaf(text = "LogicType.SignalID" )]LogicTypeSignalId,
#[rust_sitter::leaf(text = "Color.Khaki" )]ColorKhaki,
#[rust_sitter::leaf(text = "LogicSlotType.Efficiency" )]LogicSlotTypeEfficiency,
#[rust_sitter::leaf(text = "DaylightSensorMode.Vertical" )]DaylightSensorModeVertical,
#[rust_sitter::leaf(text = "LogicType.Stress" )]LogicTypeStress,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutantInput2" )]LogicTypeRatioLiquidPollutantInput2,
#[rust_sitter::leaf(text = "SlotClass.Cartridge" )]SlotClassCartridge,
#[rust_sitter::leaf(text = "LogicType.TrueAnomaly" )]LogicTypeTrueAnomaly,
#[rust_sitter::leaf(text = "LogicSlotType.On" )]LogicSlotTypeOn,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatilesInput2" )]LogicTypeRatioLiquidVolatilesInput2,
#[rust_sitter::leaf(text = "LogicType.Setting" )]LogicTypeSetting,
#[rust_sitter::leaf(text = "LogicType.PressureInput2" )]LogicTypePressureInput2,
#[rust_sitter::leaf(text = "LogicType.RatioNitrousOxideOutput" )]LogicTypeRatioNitrousOxideOutput,
#[rust_sitter::leaf(text = "SlotClass.Organ" )]SlotClassOrgan,
#[rust_sitter::leaf(text = "SlotClass.Plant" )]SlotClassPlant,
#[rust_sitter::leaf(text = "LogicSlotType.ChargeRatio" )]LogicSlotTypeChargeRatio,
#[rust_sitter::leaf(text = "LogicSlotType.Occupied" )]LogicSlotTypeOccupied,
#[rust_sitter::leaf(text = "SlotClass.DrillHead" )]SlotClassDrillHead,
#[rust_sitter::leaf(text = "LogicType.Power" )]LogicTypePower,
#[rust_sitter::leaf(text = "LogicType.RatioSteam" )]LogicTypeRatioSteam,
#[rust_sitter::leaf(text = "LogicType.RatioVolatilesInput2" )]LogicTypeRatioVolatilesInput2,
#[rust_sitter::leaf(text = "LogicType.Channel6" )]LogicTypeChannel6,
#[rust_sitter::leaf(text = "GasType.LiquidVolatiles" )]GasTypeLiquidVolatiles,
#[rust_sitter::leaf(text = "LogicType.SizeZ" )]LogicTypeSizeZ,
#[rust_sitter::leaf(text = "DaylightSensorMode.Horizontal" )]DaylightSensorModeHorizontal,
#[rust_sitter::leaf(text = "LogicType.ForceWrite" )]LogicTypeForceWrite,
#[rust_sitter::leaf(text = "LogicType.WorkingGasEfficiency" )]LogicTypeWorkingGasEfficiency,
#[rust_sitter::leaf(text = "LogicType.ContactTypeId" )]LogicTypeContactTypeId,
#[rust_sitter::leaf(text = "LogicType.RatioWaterOutput2" )]LogicTypeRatioWaterOutput2,
#[rust_sitter::leaf(text = "LogicType.CombustionOutput2" )]LogicTypeCombustionOutput2,
#[rust_sitter::leaf(text = "LogicSlotType.Pressure" )]LogicSlotTypePressure,
#[rust_sitter::leaf(text = "LogicType.Lock" )]LogicTypeLock,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatilesOutput" )]LogicTypeRatioLiquidVolatilesOutput,
#[rust_sitter::leaf(text = "LogicType.ExhaustVelocity" )]LogicTypeExhaustVelocity,
#[rust_sitter::leaf(text = "LogicType.TargetX" )]LogicTypeTargetX,
#[rust_sitter::leaf(text = "LogicType.AlignmentError" )]LogicTypeAlignmentError,
#[rust_sitter::leaf(text = "LogicType.Progress" )]LogicTypeProgress,
#[rust_sitter::leaf(text = "LogicSlotType.ReferenceId" )]LogicSlotTypeReferenceId,
#[rust_sitter::leaf(text = "GasType.Pollutant" )]GasTypePollutant,
#[rust_sitter::leaf(text = "Color.Purple" )]ColorPurple,
#[rust_sitter::leaf(text = "LogicType.RatioSteamInput" )]LogicTypeRatioSteamInput,
#[rust_sitter::leaf(text = "RobotMode.StorageFull" )]RobotModeStorageFull,
#[rust_sitter::leaf(text = "SortingClass.Storage" )]SortingClassStorage,
#[rust_sitter::leaf(text = "LogicType.Charge" )]LogicTypeCharge,
#[rust_sitter::leaf(text = "LogicSlotType.FilterType" )]LogicSlotTypeFilterType,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidPollutantInput" )]LogicTypeRatioLiquidPollutantInput,
#[rust_sitter::leaf(text = "LogicType.ForwardX" )]LogicTypeForwardX,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatilesOutput2" )]LogicTypeRatioLiquidVolatilesOutput2,
#[rust_sitter::leaf(text = "LogicType.ImportCount" )]LogicTypeImportCount,
#[rust_sitter::leaf(text = "SlotClass.ProgrammableChip" )]SlotClassProgrammableChip,
#[rust_sitter::leaf(text = "LogicType.Color" )]LogicTypeColor,
#[rust_sitter::leaf(text = "GasType.LiquidNitrogen" )]GasTypeLiquidNitrogen,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidNitrousOxideInput" )]LogicTypeRatioLiquidNitrousOxideInput,
#[rust_sitter::leaf(text = "ElevatorMode.Stationary" )]ElevatorModeStationary,
#[rust_sitter::leaf(text = "LogicType.PowerGeneration" )]LogicTypePowerGeneration,
#[rust_sitter::leaf(text = "LogicType.Thrust" )]LogicTypeThrust,
#[rust_sitter::leaf(text = "LogicType.RatioPollutantOutput" )]LogicTypeRatioPollutantOutput,
#[rust_sitter::leaf(text = "LogicType.Horizontal" )]LogicTypeHorizontal,
#[rust_sitter::leaf(text = "SlotClass.Back" )]SlotClassBack,
#[rust_sitter::leaf(text = "LogicType.ManualResearchRequiredPod" )]LogicTypeManualResearchRequiredPod,
#[rust_sitter::leaf(text = "LogicSlotType.Open" )]LogicSlotTypeOpen,
#[rust_sitter::leaf(text = "Color.Gray" )]ColorGray,
#[rust_sitter::leaf(text = "LogicType.RatioLiquidVolatiles" )]LogicTypeRatioLiquidVolatiles,
}

View File

@@ -1,145 +1,145 @@
// GENERATED CODE DO NOT MODIFY
#[derive(PartialEq, Debug, IntoStaticStr, AsRefStr)]
pub enum InstructionOp {
#[rust_sitter::leaf(text = "sne" )]Sne,
#[rust_sitter::leaf(text = "bna" )]Bna,
#[rust_sitter::leaf(text = "get" )]Get,
#[rust_sitter::leaf(text = "lbns" )]Lbns,
#[rust_sitter::leaf(text = "bge" )]Bge,
#[rust_sitter::leaf(text = "peek" )]Peek,
#[rust_sitter::leaf(text = "bne" )]Bne,
#[rust_sitter::leaf(text = "blez" )]Blez,
#[rust_sitter::leaf(text = "xor" )]Xor,
#[rust_sitter::leaf(text = "bgtz" )]Bgtz,
#[rust_sitter::leaf(text = "alias" )]Alias,
#[rust_sitter::leaf(text = "cos" )]Cos,
#[rust_sitter::leaf(text = "brna" )]Brna,
#[rust_sitter::leaf(text = "round" )]Round,
#[rust_sitter::leaf(text = "atan" )]Atan,
#[rust_sitter::leaf(text = "poke" )]Poke,
#[rust_sitter::leaf(text = "rand" )]Rand,
#[rust_sitter::leaf(text = "srl" )]Srl,
#[rust_sitter::leaf(text = "acos" )]Acos,
#[rust_sitter::leaf(text = "sna" )]Sna,
#[rust_sitter::leaf(text = "beqal" )]Beqal,
#[rust_sitter::leaf(text = "brgez" )]Brgez,
#[rust_sitter::leaf(text = "sgtz" )]Sgtz,
#[rust_sitter::leaf(text = "blt" )]Blt,
#[rust_sitter::leaf(text = "div" )]Div,
#[rust_sitter::leaf(text = "brdse" )]Brdse,
#[rust_sitter::leaf(text = "bgezal" )]Bgezal,
#[rust_sitter::leaf(text = "max" )]Max,
#[rust_sitter::leaf(text = "brgtz" )]Brgtz,
#[rust_sitter::leaf(text = "push" )]Push,
#[rust_sitter::leaf(text = "trunc" )]Trunc,
#[rust_sitter::leaf(text = "ble" )]Ble,
#[rust_sitter::leaf(text = "l" )]L,
#[rust_sitter::leaf(text = "seq" )]Seq,
#[rust_sitter::leaf(text = "sra" )]Sra,
#[rust_sitter::leaf(text = "bdseal" )]Bdseal,
#[rust_sitter::leaf(text = "mul" )]Mul,
#[rust_sitter::leaf(text = "and" )]And,
#[rust_sitter::leaf(text = "j" )]J,
#[rust_sitter::leaf(text = "brltz" )]Brltz,
#[rust_sitter::leaf(text = "bgeal" )]Bgeal,
#[rust_sitter::leaf(text = "s" )]S,
#[rust_sitter::leaf(text = "min" )]Min,
#[rust_sitter::leaf(text = "blezal" )]Blezal,
#[rust_sitter::leaf(text = "sle" )]Sle,
#[rust_sitter::leaf(text = "sap" )]Sap,
#[rust_sitter::leaf(text = "move" )]Move,
#[rust_sitter::leaf(text = "sltz" )]Sltz,
#[rust_sitter::leaf(text = "bltzal" )]Bltzal,
#[rust_sitter::leaf(text = "sdns" )]Sdns,
#[rust_sitter::leaf(text = "slez" )]Slez,
#[rust_sitter::leaf(text = "ld" )]Ld,
#[rust_sitter::leaf(text = "sll" )]Sll,
#[rust_sitter::leaf(text = "ble" )]Ble,
#[rust_sitter::leaf(text = "sb" )]Sb,
#[rust_sitter::leaf(text = "l" )]L,
#[rust_sitter::leaf(text = "brdse" )]Brdse,
#[rust_sitter::leaf(text = "add" )]Add,
#[rust_sitter::leaf(text = "seq" )]Seq,
#[rust_sitter::leaf(text = "getd" )]Getd,
#[rust_sitter::leaf(text = "bap" )]Bap,
#[rust_sitter::leaf(text = "ceil" )]Ceil,
#[rust_sitter::leaf(text = "sra" )]Sra,
#[rust_sitter::leaf(text = "lbs" )]Lbs,
#[rust_sitter::leaf(text = "sd" )]Sd,
#[rust_sitter::leaf(text = "bapz" )]Bapz,
#[rust_sitter::leaf(text = "snez" )]Snez,
#[rust_sitter::leaf(text = "bgezal" )]Bgezal,
#[rust_sitter::leaf(text = "log" )]Log,
#[rust_sitter::leaf(text = "and" )]And,
#[rust_sitter::leaf(text = "nor" )]Nor,
#[rust_sitter::leaf(text = "bgtal" )]Bgtal,
#[rust_sitter::leaf(text = "sleep" )]Sleep,
#[rust_sitter::leaf(text = "beqzal" )]Beqzal,
#[rust_sitter::leaf(text = "bnan" )]Bnan,
#[rust_sitter::leaf(text = "put" )]Put,
#[rust_sitter::leaf(text = "sbn" )]Sbn,
#[rust_sitter::leaf(text = "seqz" )]Seqz,
#[rust_sitter::leaf(text = "sapz" )]Sapz,
#[rust_sitter::leaf(text = "blez" )]Blez,
#[rust_sitter::leaf(text = "bnez" )]Bnez,
#[rust_sitter::leaf(text = "jal" )]Jal,
#[rust_sitter::leaf(text = "snan" )]Snan,
#[rust_sitter::leaf(text = "snanz" )]Snanz,
#[rust_sitter::leaf(text = "xor" )]Xor,
#[rust_sitter::leaf(text = "brap" )]Brap,
#[rust_sitter::leaf(text = "brgtz" )]Brgtz,
#[rust_sitter::leaf(text = "bnazal" )]Bnazal,
#[rust_sitter::leaf(text = "select" )]Select,
#[rust_sitter::leaf(text = "bneal" )]Bneal,
#[rust_sitter::leaf(text = "sgt" )]Sgt,
#[rust_sitter::leaf(text = "slt" )]Slt,
#[rust_sitter::leaf(text = "brnaz" )]Brnaz,
#[rust_sitter::leaf(text = "bge" )]Bge,
#[rust_sitter::leaf(text = "push" )]Push,
#[rust_sitter::leaf(text = "ss" )]Ss,
#[rust_sitter::leaf(text = "abs" )]Abs,
#[rust_sitter::leaf(text = "atan" )]Atan,
#[rust_sitter::leaf(text = "asin" )]Asin,
#[rust_sitter::leaf(text = "beq" )]Beq,
#[rust_sitter::leaf(text = "beqz" )]Beqz,
#[rust_sitter::leaf(text = "brlez" )]Brlez,
#[rust_sitter::leaf(text = "hcf" )]Hcf,
#[rust_sitter::leaf(text = "sgez" )]Sgez,
#[rust_sitter::leaf(text = "bne" )]Bne,
#[rust_sitter::leaf(text = "atan2" )]Atan2,
#[rust_sitter::leaf(text = "bltal" )]Bltal,
#[rust_sitter::leaf(text = "bnaal" )]Bnaal,
#[rust_sitter::leaf(text = "cos" )]Cos,
#[rust_sitter::leaf(text = "lbn" )]Lbn,
#[rust_sitter::leaf(text = "brapz" )]Brapz,
#[rust_sitter::leaf(text = "bnaz" )]Bnaz,
#[rust_sitter::leaf(text = "brltz" )]Brltz,
#[rust_sitter::leaf(text = "pop" )]Pop,
#[rust_sitter::leaf(text = "bdnsal" )]Bdnsal,
#[rust_sitter::leaf(text = "brlt" )]Brlt,
#[rust_sitter::leaf(text = "sla" )]Sla,
#[rust_sitter::leaf(text = "sdse" )]Sdse,
#[rust_sitter::leaf(text = "brgt" )]Brgt,
#[rust_sitter::leaf(text = "bgtz" )]Bgtz,
#[rust_sitter::leaf(text = "bnezal" )]Bnezal,
#[rust_sitter::leaf(text = "breq" )]Breq,
#[rust_sitter::leaf(text = "lr" )]Lr,
#[rust_sitter::leaf(text = "snaz" )]Snaz,
#[rust_sitter::leaf(text = "bdseal" )]Bdseal,
#[rust_sitter::leaf(text = "alias" )]Alias,
#[rust_sitter::leaf(text = "bleal" )]Bleal,
#[rust_sitter::leaf(text = "floor" )]Floor,
#[rust_sitter::leaf(text = "round" )]Round,
#[rust_sitter::leaf(text = "exp" )]Exp,
#[rust_sitter::leaf(text = "brna" )]Brna,
#[rust_sitter::leaf(text = "trunc" )]Trunc,
#[rust_sitter::leaf(text = "ls" )]Ls,
#[rust_sitter::leaf(text = "putd" )]Putd,
#[rust_sitter::leaf(text = "brnan" )]Brnan,
#[rust_sitter::leaf(text = "bgeal" )]Bgeal,
#[rust_sitter::leaf(text = "sin" )]Sin,
#[rust_sitter::leaf(text = "bapal" )]Bapal,
#[rust_sitter::leaf(text = "sqrt" )]Sqrt,
#[rust_sitter::leaf(text = "sub" )]Sub,
#[rust_sitter::leaf(text = "brne" )]Brne,
#[rust_sitter::leaf(text = "define" )]Define,
#[rust_sitter::leaf(text = "max" )]Max,
#[rust_sitter::leaf(text = "label" )]Label,
#[rust_sitter::leaf(text = "mul" )]Mul,
#[rust_sitter::leaf(text = "brge" )]Brge,
#[rust_sitter::leaf(text = "min" )]Min,
#[rust_sitter::leaf(text = "brdns" )]Brdns,
#[rust_sitter::leaf(text = "mod" )]Mod,
#[rust_sitter::leaf(text = "j" )]J,
#[rust_sitter::leaf(text = "or" )]Or,
#[rust_sitter::leaf(text = "bdns" )]Bdns,
#[rust_sitter::leaf(text = "breqz" )]Breqz,
#[rust_sitter::leaf(text = "brle" )]Brle,
#[rust_sitter::leaf(text = "sbs" )]Sbs,
#[rust_sitter::leaf(text = "jr" )]Jr,
#[rust_sitter::leaf(text = "blezal" )]Blezal,
#[rust_sitter::leaf(text = "bapzal" )]Bapzal,
#[rust_sitter::leaf(text = "s" )]S,
#[rust_sitter::leaf(text = "sge" )]Sge,
#[rust_sitter::leaf(text = "bgtzal" )]Bgtzal,
#[rust_sitter::leaf(text = "lb" )]Lb,
#[rust_sitter::leaf(text = "peek" )]Peek,
#[rust_sitter::leaf(text = "brnez" )]Brnez,
#[rust_sitter::leaf(text = "bgez" )]Bgez,
#[rust_sitter::leaf(text = "not" )]Not,
#[rust_sitter::leaf(text = "yield" )]Yield,
#[rust_sitter::leaf(text = "bnezal" )]Bnezal,
#[rust_sitter::leaf(text = "get" )]Get,
#[rust_sitter::leaf(text = "bdse" )]Bdse,
#[rust_sitter::leaf(text = "bgt" )]Bgt,
#[rust_sitter::leaf(text = "sll" )]Sll,
#[rust_sitter::leaf(text = "snaz" )]Snaz,
#[rust_sitter::leaf(text = "slez" )]Slez,
#[rust_sitter::leaf(text = "bnan" )]Bnan,
#[rust_sitter::leaf(text = "sbn" )]Sbn,
#[rust_sitter::leaf(text = "tan" )]Tan,
#[rust_sitter::leaf(text = "yield" )]Yield,
#[rust_sitter::leaf(text = "brnan" )]Brnan,
#[rust_sitter::leaf(text = "bneal" )]Bneal,
#[rust_sitter::leaf(text = "blt" )]Blt,
#[rust_sitter::leaf(text = "brgez" )]Brgez,
#[rust_sitter::leaf(text = "exp" )]Exp,
#[rust_sitter::leaf(text = "ceil" )]Ceil,
#[rust_sitter::leaf(text = "sne" )]Sne,
#[rust_sitter::leaf(text = "brnaz" )]Brnaz,
#[rust_sitter::leaf(text = "sdns" )]Sdns,
#[rust_sitter::leaf(text = "beq" )]Beq,
#[rust_sitter::leaf(text = "brge" )]Brge,
#[rust_sitter::leaf(text = "floor" )]Floor,
#[rust_sitter::leaf(text = "bnez" )]Bnez,
#[rust_sitter::leaf(text = "beqzal" )]Beqzal,
#[rust_sitter::leaf(text = "brlt" )]Brlt,
#[rust_sitter::leaf(text = "ls" )]Ls,
#[rust_sitter::leaf(text = "bgtal" )]Bgtal,
#[rust_sitter::leaf(text = "bltzal" )]Bltzal,
#[rust_sitter::leaf(text = "bnaz" )]Bnaz,
#[rust_sitter::leaf(text = "seqz" )]Seqz,
#[rust_sitter::leaf(text = "beqal" )]Beqal,
#[rust_sitter::leaf(text = "breq" )]Breq,
#[rust_sitter::leaf(text = "sla" )]Sla,
#[rust_sitter::leaf(text = "log" )]Log,
#[rust_sitter::leaf(text = "bapzal" )]Bapzal,
#[rust_sitter::leaf(text = "bgtzal" )]Bgtzal,
#[rust_sitter::leaf(text = "bleal" )]Bleal,
#[rust_sitter::leaf(text = "jr" )]Jr,
#[rust_sitter::leaf(text = "lbn" )]Lbn,
#[rust_sitter::leaf(text = "ld" )]Ld,
#[rust_sitter::leaf(text = "move" )]Move,
#[rust_sitter::leaf(text = "sdse" )]Sdse,
#[rust_sitter::leaf(text = "slt" )]Slt,
#[rust_sitter::leaf(text = "sltz" )]Sltz,
#[rust_sitter::leaf(text = "srl" )]Srl,
#[rust_sitter::leaf(text = "bdns" )]Bdns,
#[rust_sitter::leaf(text = "lbns" )]Lbns,
#[rust_sitter::leaf(text = "lr" )]Lr,
#[rust_sitter::leaf(text = "rand" )]Rand,
#[rust_sitter::leaf(text = "bltal" )]Bltal,
#[rust_sitter::leaf(text = "brlez" )]Brlez,
#[rust_sitter::leaf(text = "bgez" )]Bgez,
#[rust_sitter::leaf(text = "nor" )]Nor,
#[rust_sitter::leaf(text = "label" )]Label,
#[rust_sitter::leaf(text = "putd" )]Putd,
#[rust_sitter::leaf(text = "sgt" )]Sgt,
#[rust_sitter::leaf(text = "snan" )]Snan,
#[rust_sitter::leaf(text = "or" )]Or,
#[rust_sitter::leaf(text = "sge" )]Sge,
#[rust_sitter::leaf(text = "lb" )]Lb,
#[rust_sitter::leaf(text = "brgt" )]Brgt,
#[rust_sitter::leaf(text = "sbs" )]Sbs,
#[rust_sitter::leaf(text = "bapz" )]Bapz,
#[rust_sitter::leaf(text = "pop" )]Pop,
#[rust_sitter::leaf(text = "bgt" )]Bgt,
#[rust_sitter::leaf(text = "brnez" )]Brnez,
#[rust_sitter::leaf(text = "put" )]Put,
#[rust_sitter::leaf(text = "beqz" )]Beqz,
#[rust_sitter::leaf(text = "brle" )]Brle,
#[rust_sitter::leaf(text = "brapz" )]Brapz,
#[rust_sitter::leaf(text = "not" )]Not,
#[rust_sitter::leaf(text = "hcf" )]Hcf,
#[rust_sitter::leaf(text = "sb" )]Sb,
#[rust_sitter::leaf(text = "define" )]Define,
#[rust_sitter::leaf(text = "sd" )]Sd,
#[rust_sitter::leaf(text = "bltz" )]Bltz,
#[rust_sitter::leaf(text = "acos" )]Acos,
#[rust_sitter::leaf(text = "bap" )]Bap,
#[rust_sitter::leaf(text = "jal" )]Jal,
#[rust_sitter::leaf(text = "sgez" )]Sgez,
#[rust_sitter::leaf(text = "bdnsal" )]Bdnsal,
#[rust_sitter::leaf(text = "brne" )]Brne,
#[rust_sitter::leaf(text = "mod" )]Mod,
#[rust_sitter::leaf(text = "brdns" )]Brdns,
#[rust_sitter::leaf(text = "sleep" )]Sleep,
#[rust_sitter::leaf(text = "asin" )]Asin,
#[rust_sitter::leaf(text = "bapal" )]Bapal,
#[rust_sitter::leaf(text = "abs" )]Abs,
#[rust_sitter::leaf(text = "bnazal" )]Bnazal,
#[rust_sitter::leaf(text = "getd" )]Getd,
#[rust_sitter::leaf(text = "snanz" )]Snanz,
#[rust_sitter::leaf(text = "atan2" )]Atan2,
#[rust_sitter::leaf(text = "sub" )]Sub,
#[rust_sitter::leaf(text = "sqrt" )]Sqrt,
#[rust_sitter::leaf(text = "add" )]Add,
#[rust_sitter::leaf(text = "brap" )]Brap,
#[rust_sitter::leaf(text = "select" )]Select,
#[rust_sitter::leaf(text = "lbs" )]Lbs,
#[rust_sitter::leaf(text = "sna" )]Sna,
#[rust_sitter::leaf(text = "bna" )]Bna,
#[rust_sitter::leaf(text = "sgtz" )]Sgtz,
#[rust_sitter::leaf(text = "sin" )]Sin,
#[rust_sitter::leaf(text = "bnaal" )]Bnaal,
#[rust_sitter::leaf(text = "div" )]Div,
#[rust_sitter::leaf(text = "ss" )]Ss,
#[rust_sitter::leaf(text = "sapz" )]Sapz,
#[rust_sitter::leaf(text = "snez" )]Snez,
}

View File

@@ -1,284 +1,284 @@
// GENERATED CODE DO NOT MODIFY
#[derive(PartialEq, Debug, IntoStaticStr, AsRefStr)]
pub enum LogicType {
#[rust_sitter::leaf(text = "TotalMolesOutput2" )]TotalMolesOutput2,
#[rust_sitter::leaf(text = "Apex" )]Apex,
#[rust_sitter::leaf(text = "PositionY" )]PositionY,
#[rust_sitter::leaf(text = "DryMass" )]DryMass,
#[rust_sitter::leaf(text = "RatioLiquidPollutantOutput2" )]RatioLiquidPollutantOutput2,
#[rust_sitter::leaf(text = "PlantEfficiency2" )]PlantEfficiency2,
#[rust_sitter::leaf(text = "TargetPadIndex" )]TargetPadIndex,
#[rust_sitter::leaf(text = "RatioLiquidOxygenInput" )]RatioLiquidOxygenInput,
#[rust_sitter::leaf(text = "Open" )]Open,
#[rust_sitter::leaf(text = "MinimumWattsToContact" )]MinimumWattsToContact,
#[rust_sitter::leaf(text = "ClearMemory" )]ClearMemory,
#[rust_sitter::leaf(text = "RatioNitrousOxideInput2" )]RatioNitrousOxideInput2,
#[rust_sitter::leaf(text = "TemperatureSetting" )]TemperatureSetting,
#[rust_sitter::leaf(text = "TemperatureOutput" )]TemperatureOutput,
#[rust_sitter::leaf(text = "Combustion" )]Combustion,
#[rust_sitter::leaf(text = "AutoLand" )]AutoLand,
#[rust_sitter::leaf(text = "ForceWrite" )]ForceWrite,
#[rust_sitter::leaf(text = "On" )]On,
#[rust_sitter::leaf(text = "RatioSteam" )]RatioSteam,
#[rust_sitter::leaf(text = "ThrustToWeight" )]ThrustToWeight,
#[rust_sitter::leaf(text = "Contents" )]Contents,
#[rust_sitter::leaf(text = "ImportSlotHash" )]ImportSlotHash,
#[rust_sitter::leaf(text = "PressureOutput" )]PressureOutput,
#[rust_sitter::leaf(text = "TrueAnomaly" )]TrueAnomaly,
#[rust_sitter::leaf(text = "RatioLiquidVolatilesOutput2" )]RatioLiquidVolatilesOutput2,
#[rust_sitter::leaf(text = "Bpm" )]Bpm,
#[rust_sitter::leaf(text = "TotalMoles" )]TotalMoles,
#[rust_sitter::leaf(text = "PlantHealth2" )]PlantHealth2,
#[rust_sitter::leaf(text = "Inclination" )]Inclination,
#[rust_sitter::leaf(text = "ExhaustVelocity" )]ExhaustVelocity,
#[rust_sitter::leaf(text = "RatioLiquidNitrogenInput2" )]RatioLiquidNitrogenInput2,
#[rust_sitter::leaf(text = "ElevatorSpeed" )]ElevatorSpeed,
#[rust_sitter::leaf(text = "RatioPollutantInput" )]RatioPollutantInput,
#[rust_sitter::leaf(text = "SettingOutput" )]SettingOutput,
#[rust_sitter::leaf(text = "VelocityZ" )]VelocityZ,
#[rust_sitter::leaf(text = "PressureInternal" )]PressureInternal,
#[rust_sitter::leaf(text = "SignalStrength" )]SignalStrength,
#[rust_sitter::leaf(text = "Progress" )]Progress,
#[rust_sitter::leaf(text = "Vertical" )]Vertical,
#[rust_sitter::leaf(text = "RatioOxygenOutput" )]RatioOxygenOutput,
#[rust_sitter::leaf(text = "CelestialHash" )]CelestialHash,
#[rust_sitter::leaf(text = "RatioLiquidNitrogenInput" )]RatioLiquidNitrogenInput,
#[rust_sitter::leaf(text = "RatioCarbonDioxideOutput2" )]RatioCarbonDioxideOutput2,
#[rust_sitter::leaf(text = "PlantHealth4" )]PlantHealth4,
#[rust_sitter::leaf(text = "SizeX" )]SizeX,
#[rust_sitter::leaf(text = "Stress" )]Stress,
#[rust_sitter::leaf(text = "Quantity" )]Quantity,
#[rust_sitter::leaf(text = "RatioLiquidPollutantOutput" )]RatioLiquidPollutantOutput,
#[rust_sitter::leaf(text = "RatioWaterOutput" )]RatioWaterOutput,
#[rust_sitter::leaf(text = "Mass" )]Mass,
#[rust_sitter::leaf(text = "Thrust" )]Thrust,
#[rust_sitter::leaf(text = "PositionZ" )]PositionZ,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxideOutput" )]RatioLiquidNitrousOxideOutput,
#[rust_sitter::leaf(text = "SolarIrradiance" )]SolarIrradiance,
#[rust_sitter::leaf(text = "Temperature" )]Temperature,
#[rust_sitter::leaf(text = "ChargeRatio" )]ChargeRatio,
#[rust_sitter::leaf(text = "RatioNitrogenInput" )]RatioNitrogenInput,
#[rust_sitter::leaf(text = "HorizontalRatio" )]HorizontalRatio,
#[rust_sitter::leaf(text = "PressureEfficiency" )]PressureEfficiency,
#[rust_sitter::leaf(text = "SettingInput" )]SettingInput,
#[rust_sitter::leaf(text = "TotalMolesInput2" )]TotalMolesInput2,
#[rust_sitter::leaf(text = "RatioCarbonDioxideInput2" )]RatioCarbonDioxideInput2,
#[rust_sitter::leaf(text = "PrefabHash" )]PrefabHash,
#[rust_sitter::leaf(text = "PlantHealth1" )]PlantHealth1,
#[rust_sitter::leaf(text = "RequiredPower" )]RequiredPower,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxide" )]RatioLiquidNitrousOxide,
#[rust_sitter::leaf(text = "PassedMoles" )]PassedMoles,
#[rust_sitter::leaf(text = "PlantGrowth2" )]PlantGrowth2,
#[rust_sitter::leaf(text = "RatioWaterOutput2" )]RatioWaterOutput2,
#[rust_sitter::leaf(text = "Rpm" )]Rpm,
#[rust_sitter::leaf(text = "FilterType" )]FilterType,
#[rust_sitter::leaf(text = "Occupied" )]Occupied,
#[rust_sitter::leaf(text = "PressureExternal" )]PressureExternal,
#[rust_sitter::leaf(text = "PowerPotential" )]PowerPotential,
#[rust_sitter::leaf(text = "PowerGeneration" )]PowerGeneration,
#[rust_sitter::leaf(text = "RatioPollutantInput2" )]RatioPollutantInput2,
#[rust_sitter::leaf(text = "ManualResearchRequiredPod" )]ManualResearchRequiredPod,
#[rust_sitter::leaf(text = "Efficiency" )]Efficiency,
#[rust_sitter::leaf(text = "ReferenceId" )]ReferenceId,
#[rust_sitter::leaf(text = "VelocityRelativeX" )]VelocityRelativeX,
#[rust_sitter::leaf(text = "WattsReachingContact" )]WattsReachingContact,
#[rust_sitter::leaf(text = "Channel2" )]Channel2,
#[rust_sitter::leaf(text = "RatioNitrogenOutput" )]RatioNitrogenOutput,
#[rust_sitter::leaf(text = "PressureInput" )]PressureInput,
#[rust_sitter::leaf(text = "RatioNitrousOxideOutput" )]RatioNitrousOxideOutput,
#[rust_sitter::leaf(text = "ReEntryAltitude" )]ReEntryAltitude,
#[rust_sitter::leaf(text = "TemperatureOutput2" )]TemperatureOutput2,
#[rust_sitter::leaf(text = "CelestialParentHash" )]CelestialParentHash,
#[rust_sitter::leaf(text = "Plant" )]Plant,
#[rust_sitter::leaf(text = "RatioLiquidPollutantInput" )]RatioLiquidPollutantInput,
#[rust_sitter::leaf(text = "Fuel" )]Fuel,
#[rust_sitter::leaf(text = "DestinationCode" )]DestinationCode,
#[rust_sitter::leaf(text = "RatioNitrogenOutput2" )]RatioNitrogenOutput2,
#[rust_sitter::leaf(text = "SoundAlert" )]SoundAlert,
#[rust_sitter::leaf(text = "RatioOxygenInput2" )]RatioOxygenInput2,
#[rust_sitter::leaf(text = "Activate" )]Activate,
#[rust_sitter::leaf(text = "MineablesInVicinity" )]MineablesInVicinity,
#[rust_sitter::leaf(text = "ImportCount" )]ImportCount,
#[rust_sitter::leaf(text = "PlantHash4" )]PlantHash4,
#[rust_sitter::leaf(text = "RatioNitrousOxide" )]RatioNitrousOxide,
#[rust_sitter::leaf(text = "SettingOutputHash" )]SettingOutputHash,
#[rust_sitter::leaf(text = "CombustionLimiter" )]CombustionLimiter,
#[rust_sitter::leaf(text = "DistanceAu" )]DistanceAu,
#[rust_sitter::leaf(text = "RatioVolatilesOutput2" )]RatioVolatilesOutput2,
#[rust_sitter::leaf(text = "RatioLiquidNitrogenOutput" )]RatioLiquidNitrogenOutput,
#[rust_sitter::leaf(text = "SettingInputHash" )]SettingInputHash,
#[rust_sitter::leaf(text = "CombustionOutput2" )]CombustionOutput2,
#[rust_sitter::leaf(text = "Idle" )]Idle,
#[rust_sitter::leaf(text = "ForwardY" )]ForwardY,
#[rust_sitter::leaf(text = "RatioLiquidVolatilesInput2" )]RatioLiquidVolatilesInput2,
#[rust_sitter::leaf(text = "RatioWater" )]RatioWater,
#[rust_sitter::leaf(text = "PressureInput2" )]PressureInput2,
#[rust_sitter::leaf(text = "Class" )]Class,
#[rust_sitter::leaf(text = "Growth" )]Growth,
#[rust_sitter::leaf(text = "PlantGrowth1" )]PlantGrowth1,
#[rust_sitter::leaf(text = "PlantHash3" )]PlantHash3,
#[rust_sitter::leaf(text = "RecipeHash" )]RecipeHash,
#[rust_sitter::leaf(text = "FlightControlRule" )]FlightControlRule,
#[rust_sitter::leaf(text = "SolarConstant" )]SolarConstant,
#[rust_sitter::leaf(text = "RatioOxygenInput" )]RatioOxygenInput,
#[rust_sitter::leaf(text = "AirRelease" )]AirRelease,
#[rust_sitter::leaf(text = "PlantGrowth4" )]PlantGrowth4,
#[rust_sitter::leaf(text = "Channel7" )]Channel7,
#[rust_sitter::leaf(text = "RatioLiquidPollutantInput2" )]RatioLiquidPollutantInput2,
#[rust_sitter::leaf(text = "RatioNitrousOxideInput" )]RatioNitrousOxideInput,
#[rust_sitter::leaf(text = "NextWeatherEventTime" )]NextWeatherEventTime,
#[rust_sitter::leaf(text = "RatioNitrogen" )]RatioNitrogen,
#[rust_sitter::leaf(text = "TargetX" )]TargetX,
#[rust_sitter::leaf(text = "RatioPollutantOutput2" )]RatioPollutantOutput2,
#[rust_sitter::leaf(text = "RatioVolatilesInput" )]RatioVolatilesInput,
#[rust_sitter::leaf(text = "TemperatureInput" )]TemperatureInput,
#[rust_sitter::leaf(text = "VelocityRelativeY" )]VelocityRelativeY,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxideOutput2" )]RatioLiquidCarbonDioxideOutput2,
#[rust_sitter::leaf(text = "WattsReachingContact" )]WattsReachingContact,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxide" )]RatioLiquidNitrousOxide,
#[rust_sitter::leaf(text = "PressureEfficiency" )]PressureEfficiency,
#[rust_sitter::leaf(text = "Channel0" )]Channel0,
#[rust_sitter::leaf(text = "TemperatureExternal" )]TemperatureExternal,
#[rust_sitter::leaf(text = "TimeToDestination" )]TimeToDestination,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxideInput2" )]RatioLiquidCarbonDioxideInput2,
#[rust_sitter::leaf(text = "Output" )]Output,
#[rust_sitter::leaf(text = "Channel6" )]Channel6,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxideOutput2" )]RatioLiquidNitrousOxideOutput2,
#[rust_sitter::leaf(text = "RatioWaterInput" )]RatioWaterInput,
#[rust_sitter::leaf(text = "RatioLiquidNitrogenOutput2" )]RatioLiquidNitrogenOutput2,
#[rust_sitter::leaf(text = "ForwardX" )]ForwardX,
#[rust_sitter::leaf(text = "RatioNitrousOxideOutput2" )]RatioNitrousOxideOutput2,
#[rust_sitter::leaf(text = "ExportSlotHash" )]ExportSlotHash,
#[rust_sitter::leaf(text = "RatioOxygenOutput2" )]RatioOxygenOutput2,
#[rust_sitter::leaf(text = "RatioSteamInput2" )]RatioSteamInput2,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxideInput2" )]RatioLiquidNitrousOxideInput2,
#[rust_sitter::leaf(text = "Channel1" )]Channel1,
#[rust_sitter::leaf(text = "RatioLiquidOxygenInput2" )]RatioLiquidOxygenInput2,
#[rust_sitter::leaf(text = "TotalMolesOutput" )]TotalMolesOutput,
#[rust_sitter::leaf(text = "Mode" )]Mode,
#[rust_sitter::leaf(text = "OrbitPeriod" )]OrbitPeriod,
#[rust_sitter::leaf(text = "PowerRequired" )]PowerRequired,
#[rust_sitter::leaf(text = "InterrogationProgress" )]InterrogationProgress,
#[rust_sitter::leaf(text = "RatioPollutant" )]RatioPollutant,
#[rust_sitter::leaf(text = "RatioVolatilesOutput" )]RatioVolatilesOutput,
#[rust_sitter::leaf(text = "Volume" )]Volume,
#[rust_sitter::leaf(text = "Harvest" )]Harvest,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxideOutput2" )]RatioLiquidCarbonDioxideOutput2,
#[rust_sitter::leaf(text = "RatioPollutantOutput" )]RatioPollutantOutput,
#[rust_sitter::leaf(text = "TargetZ" )]TargetZ,
#[rust_sitter::leaf(text = "Charge" )]Charge,
#[rust_sitter::leaf(text = "RatioLiquidPollutant" )]RatioLiquidPollutant,
#[rust_sitter::leaf(text = "PressureWaste" )]PressureWaste,
#[rust_sitter::leaf(text = "Flush" )]Flush,
#[rust_sitter::leaf(text = "ImportQuantity" )]ImportQuantity,
#[rust_sitter::leaf(text = "VelocityX" )]VelocityX,
#[rust_sitter::leaf(text = "Channel" )]Channel,
#[rust_sitter::leaf(text = "RatioLiquidOxygen" )]RatioLiquidOxygen,
#[rust_sitter::leaf(text = "TotalMolesInput" )]TotalMolesInput,
#[rust_sitter::leaf(text = "WorkingGasEfficiency" )]WorkingGasEfficiency,
#[rust_sitter::leaf(text = "ContactTypeId" )]ContactTypeId,
#[rust_sitter::leaf(text = "Horizontal" )]Horizontal,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxide" )]RatioLiquidCarbonDioxide,
#[rust_sitter::leaf(text = "RatioLiquidVolatilesInput" )]RatioLiquidVolatilesInput,
#[rust_sitter::leaf(text = "PositionX" )]PositionX,
#[rust_sitter::leaf(text = "CurrentResearchPodType" )]CurrentResearchPodType,
#[rust_sitter::leaf(text = "Orientation" )]Orientation,
#[rust_sitter::leaf(text = "OverShootTarget" )]OverShootTarget,
#[rust_sitter::leaf(text = "RatioLiquidOxygenOutput" )]RatioLiquidOxygenOutput,
#[rust_sitter::leaf(text = "RatioLiquidVolatiles" )]RatioLiquidVolatiles,
#[rust_sitter::leaf(text = "CombustionOutput" )]CombustionOutput,
#[rust_sitter::leaf(text = "Bypass" )]Bypass,
#[rust_sitter::leaf(text = "PlantEfficiency4" )]PlantEfficiency4,
#[rust_sitter::leaf(text = "SizeY" )]SizeY,
#[rust_sitter::leaf(text = "SolarAngle" )]SolarAngle,
#[rust_sitter::leaf(text = "Setting" )]Setting,
#[rust_sitter::leaf(text = "Unknown" )]Unknown,
#[rust_sitter::leaf(text = "RatioWaterInput2" )]RatioWaterInput2,
#[rust_sitter::leaf(text = "VelocityY" )]VelocityY,
#[rust_sitter::leaf(text = "PlantEfficiency3" )]PlantEfficiency3,
#[rust_sitter::leaf(text = "TemperatureInput2" )]TemperatureInput2,
#[rust_sitter::leaf(text = "Index" )]Index,
#[rust_sitter::leaf(text = "OccupantHash" )]OccupantHash,
#[rust_sitter::leaf(text = "ImportSlotOccupant" )]ImportSlotOccupant,
#[rust_sitter::leaf(text = "Sum" )]Sum,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxideInput" )]RatioLiquidNitrousOxideInput,
#[rust_sitter::leaf(text = "MineablesInQueue" )]MineablesInQueue,
#[rust_sitter::leaf(text = "None" )]None,
#[rust_sitter::leaf(text = "Lock" )]Lock,
#[rust_sitter::leaf(text = "Mature" )]Mature,
#[rust_sitter::leaf(text = "RatioSteamOutput2" )]RatioSteamOutput2,
#[rust_sitter::leaf(text = "Pressure" )]Pressure,
#[rust_sitter::leaf(text = "AutoShutOff" )]AutoShutOff,
#[rust_sitter::leaf(text = "PressureSetting" )]PressureSetting,
#[rust_sitter::leaf(text = "Seeding" )]Seeding,
#[rust_sitter::leaf(text = "Channel5" )]Channel5,
#[rust_sitter::leaf(text = "Channel3" )]Channel3,
#[rust_sitter::leaf(text = "Power" )]Power,
#[rust_sitter::leaf(text = "DistanceKm" )]DistanceKm,
#[rust_sitter::leaf(text = "PressureAir" )]PressureAir,
#[rust_sitter::leaf(text = "RatioLiquidOxygenOutput2" )]RatioLiquidOxygenOutput2,
#[rust_sitter::leaf(text = "SortingClass" )]SortingClass,
#[rust_sitter::leaf(text = "SemiMajorAxis" )]SemiMajorAxis,
#[rust_sitter::leaf(text = "Average" )]Average,
#[rust_sitter::leaf(text = "BurnTimeRemaining" )]BurnTimeRemaining,
#[rust_sitter::leaf(text = "RequestHash" )]RequestHash,
#[rust_sitter::leaf(text = "MinWattsToContact" )]MinWattsToContact,
#[rust_sitter::leaf(text = "TargetY" )]TargetY,
#[rust_sitter::leaf(text = "PlantHash1" )]PlantHash1,
#[rust_sitter::leaf(text = "Required" )]Required,
#[rust_sitter::leaf(text = "RatioOxygen" )]RatioOxygen,
#[rust_sitter::leaf(text = "VolumeOfLiquid" )]VolumeOfLiquid,
#[rust_sitter::leaf(text = "RatioVolatiles" )]RatioVolatiles,
#[rust_sitter::leaf(text = "MaxQuantity" )]MaxQuantity,
#[rust_sitter::leaf(text = "Time" )]Time,
#[rust_sitter::leaf(text = "RatioSteamOutput" )]RatioSteamOutput,
#[rust_sitter::leaf(text = "PowerActual" )]PowerActual,
#[rust_sitter::leaf(text = "CompletionRatio" )]CompletionRatio,
#[rust_sitter::leaf(text = "ReturnFuelCost" )]ReturnFuelCost,
#[rust_sitter::leaf(text = "SignalID" )]SignalId,
#[rust_sitter::leaf(text = "Minimum" )]Minimum,
#[rust_sitter::leaf(text = "RatioLiquidVolatilesOutput" )]RatioLiquidVolatilesOutput,
#[rust_sitter::leaf(text = "Error" )]Error,
#[rust_sitter::leaf(text = "PlantHash2" )]PlantHash2,
#[rust_sitter::leaf(text = "PlantHealth3" )]PlantHealth3,
#[rust_sitter::leaf(text = "VelocityRelativeY" )]VelocityRelativeY,
#[rust_sitter::leaf(text = "Channel4" )]Channel4,
#[rust_sitter::leaf(text = "Maximum" )]Maximum,
#[rust_sitter::leaf(text = "EnvironmentEfficiency" )]EnvironmentEfficiency,
#[rust_sitter::leaf(text = "RatioCarbonDioxideOutput" )]RatioCarbonDioxideOutput,
#[rust_sitter::leaf(text = "RatioCarbonDioxideInput" )]RatioCarbonDioxideInput,
#[rust_sitter::leaf(text = "TemperatureDifferentialEfficiency" )]TemperatureDifferentialEfficiency,
#[rust_sitter::leaf(text = "VelocityMagnitude" )]VelocityMagnitude,
#[rust_sitter::leaf(text = "Color" )]Color,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxideOutput" )]RatioLiquidCarbonDioxideOutput,
#[rust_sitter::leaf(text = "PlantGrowth3" )]PlantGrowth3,
#[rust_sitter::leaf(text = "RatioLiquidNitrogen" )]RatioLiquidNitrogen,
#[rust_sitter::leaf(text = "Weight" )]Weight,
#[rust_sitter::leaf(text = "ExportQuantity" )]ExportQuantity,
#[rust_sitter::leaf(text = "Recipe" )]Recipe,
#[rust_sitter::leaf(text = "CombustionInput" )]CombustionInput,
#[rust_sitter::leaf(text = "LineNumber" )]LineNumber,
#[rust_sitter::leaf(text = "CombustionInput2" )]CombustionInput2,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxideInput" )]RatioLiquidCarbonDioxideInput,
#[rust_sitter::leaf(text = "Pressure" )]Pressure,
#[rust_sitter::leaf(text = "PlantHash1" )]PlantHash1,
#[rust_sitter::leaf(text = "Apex" )]Apex,
#[rust_sitter::leaf(text = "AirRelease" )]AirRelease,
#[rust_sitter::leaf(text = "RatioPollutantInput2" )]RatioPollutantInput2,
#[rust_sitter::leaf(text = "TotalMolesOutput" )]TotalMolesOutput,
#[rust_sitter::leaf(text = "PositionZ" )]PositionZ,
#[rust_sitter::leaf(text = "RatioLiquidVolatilesOutput" )]RatioLiquidVolatilesOutput,
#[rust_sitter::leaf(text = "RatioSteamInput" )]RatioSteamInput,
#[rust_sitter::leaf(text = "Throttle" )]Throttle,
#[rust_sitter::leaf(text = "ForwardZ" )]ForwardZ,
#[rust_sitter::leaf(text = "ExportCount" )]ExportCount,
#[rust_sitter::leaf(text = "VerticalRatio" )]VerticalRatio,
#[rust_sitter::leaf(text = "Health" )]Health,
#[rust_sitter::leaf(text = "ExportSlotOccupant" )]ExportSlotOccupant,
#[rust_sitter::leaf(text = "CollectableGoods" )]CollectableGoods,
#[rust_sitter::leaf(text = "Acceleration" )]Acceleration,
#[rust_sitter::leaf(text = "Eccentricity" )]Eccentricity,
#[rust_sitter::leaf(text = "ElevatorLevel" )]ElevatorLevel,
#[rust_sitter::leaf(text = "Ratio" )]Ratio,
#[rust_sitter::leaf(text = "RatioNitrogenInput2" )]RatioNitrogenInput2,
#[rust_sitter::leaf(text = "Reagents" )]Reagents,
#[rust_sitter::leaf(text = "Damage" )]Damage,
#[rust_sitter::leaf(text = "Bpm" )]Bpm,
#[rust_sitter::leaf(text = "PlantEfficiency1" )]PlantEfficiency1,
#[rust_sitter::leaf(text = "RatioVolatilesInput2" )]RatioVolatilesInput2,
#[rust_sitter::leaf(text = "Filtration" )]Filtration,
#[rust_sitter::leaf(text = "Channel4" )]Channel4,
#[rust_sitter::leaf(text = "ImportSlotOccupant" )]ImportSlotOccupant,
#[rust_sitter::leaf(text = "SizeZ" )]SizeZ,
#[rust_sitter::leaf(text = "RatioCarbonDioxide" )]RatioCarbonDioxide,
#[rust_sitter::leaf(text = "AlignmentError" )]AlignmentError,
#[rust_sitter::leaf(text = "PressureOutput2" )]PressureOutput2,
#[rust_sitter::leaf(text = "VelocityRelativeZ" )]VelocityRelativeZ,
#[rust_sitter::leaf(text = "OperationalTemperatureEfficiency" )]OperationalTemperatureEfficiency,
#[rust_sitter::leaf(text = "Class" )]Class,
#[rust_sitter::leaf(text = "Channel2" )]Channel2,
#[rust_sitter::leaf(text = "CombustionOutput2" )]CombustionOutput2,
#[rust_sitter::leaf(text = "RatioSteamOutput" )]RatioSteamOutput,
#[rust_sitter::leaf(text = "ReturnFuelCost" )]ReturnFuelCost,
#[rust_sitter::leaf(text = "VelocityZ" )]VelocityZ,
#[rust_sitter::leaf(text = "On" )]On,
#[rust_sitter::leaf(text = "RequiredPower" )]RequiredPower,
#[rust_sitter::leaf(text = "Horizontal" )]Horizontal,
#[rust_sitter::leaf(text = "Ratio" )]Ratio,
#[rust_sitter::leaf(text = "SoundAlert" )]SoundAlert,
#[rust_sitter::leaf(text = "RatioNitrogenInput" )]RatioNitrogenInput,
#[rust_sitter::leaf(text = "Temperature" )]Temperature,
#[rust_sitter::leaf(text = "Charge" )]Charge,
#[rust_sitter::leaf(text = "PressureWaste" )]PressureWaste,
#[rust_sitter::leaf(text = "Stress" )]Stress,
#[rust_sitter::leaf(text = "OccupantHash" )]OccupantHash,
#[rust_sitter::leaf(text = "RatioVolatilesOutput2" )]RatioVolatilesOutput2,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxideInput2" )]RatioLiquidNitrousOxideInput2,
#[rust_sitter::leaf(text = "Contents" )]Contents,
#[rust_sitter::leaf(text = "ImportQuantity" )]ImportQuantity,
#[rust_sitter::leaf(text = "DryMass" )]DryMass,
#[rust_sitter::leaf(text = "PressureAir" )]PressureAir,
#[rust_sitter::leaf(text = "PressureInput2" )]PressureInput2,
#[rust_sitter::leaf(text = "RatioNitrogenOutput" )]RatioNitrogenOutput,
#[rust_sitter::leaf(text = "TotalMolesOutput2" )]TotalMolesOutput2,
#[rust_sitter::leaf(text = "Harvest" )]Harvest,
#[rust_sitter::leaf(text = "VelocityMagnitude" )]VelocityMagnitude,
#[rust_sitter::leaf(text = "MineablesInVicinity" )]MineablesInVicinity,
#[rust_sitter::leaf(text = "Acceleration" )]Acceleration,
#[rust_sitter::leaf(text = "RatioLiquidOxygenInput2" )]RatioLiquidOxygenInput2,
#[rust_sitter::leaf(text = "TargetY" )]TargetY,
#[rust_sitter::leaf(text = "Output" )]Output,
#[rust_sitter::leaf(text = "RatioLiquidPollutantOutput2" )]RatioLiquidPollutantOutput2,
#[rust_sitter::leaf(text = "RatioNitrousOxideOutput" )]RatioNitrousOxideOutput,
#[rust_sitter::leaf(text = "EntityState" )]EntityState,
#[rust_sitter::leaf(text = "AutoLand" )]AutoLand,
#[rust_sitter::leaf(text = "RatioNitrousOxideOutput2" )]RatioNitrousOxideOutput2,
#[rust_sitter::leaf(text = "RatioPollutantOutput" )]RatioPollutantOutput,
#[rust_sitter::leaf(text = "ChargeRatio" )]ChargeRatio,
#[rust_sitter::leaf(text = "CombustionInput2" )]CombustionInput2,
#[rust_sitter::leaf(text = "Idle" )]Idle,
#[rust_sitter::leaf(text = "PlantEfficiency4" )]PlantEfficiency4,
#[rust_sitter::leaf(text = "RatioNitrousOxideInput2" )]RatioNitrousOxideInput2,
#[rust_sitter::leaf(text = "PassedMoles" )]PassedMoles,
#[rust_sitter::leaf(text = "ReferenceId" )]ReferenceId,
#[rust_sitter::leaf(text = "ExportQuantity" )]ExportQuantity,
#[rust_sitter::leaf(text = "RatioNitrogen" )]RatioNitrogen,
#[rust_sitter::leaf(text = "ForwardY" )]ForwardY,
#[rust_sitter::leaf(text = "FlightControlRule" )]FlightControlRule,
#[rust_sitter::leaf(text = "ThrustToWeight" )]ThrustToWeight,
#[rust_sitter::leaf(text = "PlantHealth2" )]PlantHealth2,
#[rust_sitter::leaf(text = "SolarIrradiance" )]SolarIrradiance,
#[rust_sitter::leaf(text = "Time" )]Time,
#[rust_sitter::leaf(text = "RatioSteam" )]RatioSteam,
#[rust_sitter::leaf(text = "RatioWaterInput" )]RatioWaterInput,
#[rust_sitter::leaf(text = "WorkingGasEfficiency" )]WorkingGasEfficiency,
#[rust_sitter::leaf(text = "VerticalRatio" )]VerticalRatio,
#[rust_sitter::leaf(text = "TemperatureOutput2" )]TemperatureOutput2,
#[rust_sitter::leaf(text = "TemperatureInput" )]TemperatureInput,
#[rust_sitter::leaf(text = "SignalID" )]SignalId,
#[rust_sitter::leaf(text = "Channel7" )]Channel7,
#[rust_sitter::leaf(text = "Index" )]Index,
#[rust_sitter::leaf(text = "RatioLiquidPollutant" )]RatioLiquidPollutant,
#[rust_sitter::leaf(text = "ForceWrite" )]ForceWrite,
#[rust_sitter::leaf(text = "RecipeHash" )]RecipeHash,
#[rust_sitter::leaf(text = "InterrogationProgress" )]InterrogationProgress,
#[rust_sitter::leaf(text = "RatioOxygenInput2" )]RatioOxygenInput2,
#[rust_sitter::leaf(text = "TemperatureOutput" )]TemperatureOutput,
#[rust_sitter::leaf(text = "TargetX" )]TargetX,
#[rust_sitter::leaf(text = "PlantEfficiency2" )]PlantEfficiency2,
#[rust_sitter::leaf(text = "PrefabHash" )]PrefabHash,
#[rust_sitter::leaf(text = "MaxQuantity" )]MaxQuantity,
#[rust_sitter::leaf(text = "RatioLiquidVolatilesOutput2" )]RatioLiquidVolatilesOutput2,
#[rust_sitter::leaf(text = "DrillCondition" )]DrillCondition,
#[rust_sitter::leaf(text = "RatioLiquidNitrogenOutput" )]RatioLiquidNitrogenOutput,
#[rust_sitter::leaf(text = "RatioNitrogenInput2" )]RatioNitrogenInput2,
#[rust_sitter::leaf(text = "VelocityY" )]VelocityY,
#[rust_sitter::leaf(text = "RatioLiquidOxygenOutput" )]RatioLiquidOxygenOutput,
#[rust_sitter::leaf(text = "AutoShutOff" )]AutoShutOff,
#[rust_sitter::leaf(text = "Bypass" )]Bypass,
#[rust_sitter::leaf(text = "RatioVolatilesOutput" )]RatioVolatilesOutput,
#[rust_sitter::leaf(text = "RatioWaterOutput2" )]RatioWaterOutput2,
#[rust_sitter::leaf(text = "PressureExternal" )]PressureExternal,
#[rust_sitter::leaf(text = "VolumeOfLiquid" )]VolumeOfLiquid,
#[rust_sitter::leaf(text = "CombustionOutput" )]CombustionOutput,
#[rust_sitter::leaf(text = "SettingInput" )]SettingInput,
#[rust_sitter::leaf(text = "CompletionRatio" )]CompletionRatio,
#[rust_sitter::leaf(text = "None" )]None,
#[rust_sitter::leaf(text = "DistanceAu" )]DistanceAu,
#[rust_sitter::leaf(text = "PlantGrowth3" )]PlantGrowth3,
#[rust_sitter::leaf(text = "CelestialHash" )]CelestialHash,
#[rust_sitter::leaf(text = "RatioNitrogenOutput2" )]RatioNitrogenOutput2,
#[rust_sitter::leaf(text = "CollectableGoods" )]CollectableGoods,
#[rust_sitter::leaf(text = "SettingInputHash" )]SettingInputHash,
#[rust_sitter::leaf(text = "ClearMemory" )]ClearMemory,
#[rust_sitter::leaf(text = "ReEntryAltitude" )]ReEntryAltitude,
#[rust_sitter::leaf(text = "RatioWater" )]RatioWater,
#[rust_sitter::leaf(text = "Required" )]Required,
#[rust_sitter::leaf(text = "PositionY" )]PositionY,
#[rust_sitter::leaf(text = "ForwardX" )]ForwardX,
#[rust_sitter::leaf(text = "TotalMolesInput" )]TotalMolesInput,
#[rust_sitter::leaf(text = "MineablesInQueue" )]MineablesInQueue,
#[rust_sitter::leaf(text = "RatioWaterInput2" )]RatioWaterInput2,
#[rust_sitter::leaf(text = "RatioCarbonDioxideOutput2" )]RatioCarbonDioxideOutput2,
#[rust_sitter::leaf(text = "PlantGrowth1" )]PlantGrowth1,
#[rust_sitter::leaf(text = "TargetZ" )]TargetZ,
#[rust_sitter::leaf(text = "TemperatureDifferentialEfficiency" )]TemperatureDifferentialEfficiency,
#[rust_sitter::leaf(text = "Channel3" )]Channel3,
#[rust_sitter::leaf(text = "OverShootTarget" )]OverShootTarget,
#[rust_sitter::leaf(text = "Combustion" )]Combustion,
#[rust_sitter::leaf(text = "ExportSlotOccupant" )]ExportSlotOccupant,
#[rust_sitter::leaf(text = "Sum" )]Sum,
#[rust_sitter::leaf(text = "Growth" )]Growth,
#[rust_sitter::leaf(text = "RatioLiquidOxygenOutput2" )]RatioLiquidOxygenOutput2,
#[rust_sitter::leaf(text = "PressureOutput" )]PressureOutput,
#[rust_sitter::leaf(text = "RatioOxygenInput" )]RatioOxygenInput,
#[rust_sitter::leaf(text = "TargetPadIndex" )]TargetPadIndex,
#[rust_sitter::leaf(text = "Rpm" )]Rpm,
#[rust_sitter::leaf(text = "PlantEfficiency3" )]PlantEfficiency3,
#[rust_sitter::leaf(text = "ExhaustVelocity" )]ExhaustVelocity,
#[rust_sitter::leaf(text = "Fuel" )]Fuel,
#[rust_sitter::leaf(text = "RatioLiquidVolatiles" )]RatioLiquidVolatiles,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxide" )]RatioLiquidCarbonDioxide,
#[rust_sitter::leaf(text = "RatioPollutantInput" )]RatioPollutantInput,
#[rust_sitter::leaf(text = "RatioVolatiles" )]RatioVolatiles,
#[rust_sitter::leaf(text = "SettingOutput" )]SettingOutput,
#[rust_sitter::leaf(text = "TotalMolesInput2" )]TotalMolesInput2,
#[rust_sitter::leaf(text = "CurrentResearchPodType" )]CurrentResearchPodType,
#[rust_sitter::leaf(text = "RatioCarbonDioxide" )]RatioCarbonDioxide,
#[rust_sitter::leaf(text = "SizeX" )]SizeX,
#[rust_sitter::leaf(text = "EnvironmentEfficiency" )]EnvironmentEfficiency,
#[rust_sitter::leaf(text = "Lock" )]Lock,
#[rust_sitter::leaf(text = "SignalStrength" )]SignalStrength,
#[rust_sitter::leaf(text = "Recipe" )]Recipe,
#[rust_sitter::leaf(text = "Channel6" )]Channel6,
#[rust_sitter::leaf(text = "RatioCarbonDioxideInput" )]RatioCarbonDioxideInput,
#[rust_sitter::leaf(text = "RatioLiquidVolatilesInput" )]RatioLiquidVolatilesInput,
#[rust_sitter::leaf(text = "Mode" )]Mode,
#[rust_sitter::leaf(text = "Activate" )]Activate,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxideInput" )]RatioLiquidNitrousOxideInput,
#[rust_sitter::leaf(text = "RatioLiquidOxygenInput" )]RatioLiquidOxygenInput,
#[rust_sitter::leaf(text = "RatioVolatilesInput" )]RatioVolatilesInput,
#[rust_sitter::leaf(text = "RequestHash" )]RequestHash,
#[rust_sitter::leaf(text = "Channel1" )]Channel1,
#[rust_sitter::leaf(text = "Quantity" )]Quantity,
#[rust_sitter::leaf(text = "Flush" )]Flush,
#[rust_sitter::leaf(text = "Channel5" )]Channel5,
#[rust_sitter::leaf(text = "Plant" )]Plant,
#[rust_sitter::leaf(text = "Filtration" )]Filtration,
#[rust_sitter::leaf(text = "Channel" )]Channel,
#[rust_sitter::leaf(text = "DistanceKm" )]DistanceKm,
#[rust_sitter::leaf(text = "PlantHash4" )]PlantHash4,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxideInput2" )]RatioLiquidCarbonDioxideInput2,
#[rust_sitter::leaf(text = "Seeding" )]Seeding,
#[rust_sitter::leaf(text = "Minimum" )]Minimum,
#[rust_sitter::leaf(text = "RatioLiquidNitrogen" )]RatioLiquidNitrogen,
#[rust_sitter::leaf(text = "PowerGeneration" )]PowerGeneration,
#[rust_sitter::leaf(text = "RatioLiquidPollutantOutput" )]RatioLiquidPollutantOutput,
#[rust_sitter::leaf(text = "RatioLiquidPollutantInput" )]RatioLiquidPollutantInput,
#[rust_sitter::leaf(text = "Throttle" )]Throttle,
#[rust_sitter::leaf(text = "BurnTimeRemaining" )]BurnTimeRemaining,
#[rust_sitter::leaf(text = "CelestialParentHash" )]CelestialParentHash,
#[rust_sitter::leaf(text = "Error" )]Error,
#[rust_sitter::leaf(text = "Health" )]Health,
#[rust_sitter::leaf(text = "SolarConstant" )]SolarConstant,
#[rust_sitter::leaf(text = "RatioPollutant" )]RatioPollutant,
#[rust_sitter::leaf(text = "TemperatureInput2" )]TemperatureInput2,
#[rust_sitter::leaf(text = "Orientation" )]Orientation,
#[rust_sitter::leaf(text = "Power" )]Power,
#[rust_sitter::leaf(text = "RatioLiquidNitrogenInput2" )]RatioLiquidNitrogenInput2,
#[rust_sitter::leaf(text = "PlantGrowth4" )]PlantGrowth4,
#[rust_sitter::leaf(text = "PlantHealth4" )]PlantHealth4,
#[rust_sitter::leaf(text = "Damage" )]Damage,
#[rust_sitter::leaf(text = "MinimumWattsToContact" )]MinimumWattsToContact,
#[rust_sitter::leaf(text = "TemperatureSetting" )]TemperatureSetting,
#[rust_sitter::leaf(text = "VelocityX" )]VelocityX,
#[rust_sitter::leaf(text = "ManualResearchRequiredPod" )]ManualResearchRequiredPod,
#[rust_sitter::leaf(text = "ImportCount" )]ImportCount,
#[rust_sitter::leaf(text = "ElevatorSpeed" )]ElevatorSpeed,
#[rust_sitter::leaf(text = "ContactTypeId" )]ContactTypeId,
#[rust_sitter::leaf(text = "SizeY" )]SizeY,
#[rust_sitter::leaf(text = "RatioSteamOutput2" )]RatioSteamOutput2,
#[rust_sitter::leaf(text = "Maximum" )]Maximum,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxideOutput" )]RatioLiquidCarbonDioxideOutput,
#[rust_sitter::leaf(text = "RatioLiquidPollutantInput2" )]RatioLiquidPollutantInput2,
#[rust_sitter::leaf(text = "SemiMajorAxis" )]SemiMajorAxis,
#[rust_sitter::leaf(text = "TimeToDestination" )]TimeToDestination,
#[rust_sitter::leaf(text = "NextWeatherEventTime" )]NextWeatherEventTime,
#[rust_sitter::leaf(text = "CombustionInput" )]CombustionInput,
#[rust_sitter::leaf(text = "PlantEfficiency1" )]PlantEfficiency1,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxideOutput2" )]RatioLiquidNitrousOxideOutput2,
#[rust_sitter::leaf(text = "RatioLiquidVolatilesInput2" )]RatioLiquidVolatilesInput2,
#[rust_sitter::leaf(text = "PressureInput" )]PressureInput,
#[rust_sitter::leaf(text = "PressureInternal" )]PressureInternal,
#[rust_sitter::leaf(text = "RatioCarbonDioxideInput2" )]RatioCarbonDioxideInput2,
#[rust_sitter::leaf(text = "DestinationCode" )]DestinationCode,
#[rust_sitter::leaf(text = "PressureSetting" )]PressureSetting,
#[rust_sitter::leaf(text = "Average" )]Average,
#[rust_sitter::leaf(text = "PowerActual" )]PowerActual,
#[rust_sitter::leaf(text = "RatioLiquidNitrogenOutput2" )]RatioLiquidNitrogenOutput2,
#[rust_sitter::leaf(text = "RatioOxygenOutput" )]RatioOxygenOutput,
#[rust_sitter::leaf(text = "VelocityRelativeX" )]VelocityRelativeX,
#[rust_sitter::leaf(text = "RatioCarbonDioxideOutput" )]RatioCarbonDioxideOutput,
#[rust_sitter::leaf(text = "Mass" )]Mass,
#[rust_sitter::leaf(text = "Setting" )]Setting,
#[rust_sitter::leaf(text = "HorizontalRatio" )]HorizontalRatio,
#[rust_sitter::leaf(text = "OperationalTemperatureEfficiency" )]OperationalTemperatureEfficiency,
#[rust_sitter::leaf(text = "ExportCount" )]ExportCount,
#[rust_sitter::leaf(text = "PositionX" )]PositionX,
#[rust_sitter::leaf(text = "LineNumber" )]LineNumber,
#[rust_sitter::leaf(text = "PressureOutput2" )]PressureOutput2,
#[rust_sitter::leaf(text = "Color" )]Color,
#[rust_sitter::leaf(text = "PowerPotential" )]PowerPotential,
#[rust_sitter::leaf(text = "PlantHash2" )]PlantHash2,
#[rust_sitter::leaf(text = "RatioLiquidCarbonDioxideInput" )]RatioLiquidCarbonDioxideInput,
#[rust_sitter::leaf(text = "OrbitPeriod" )]OrbitPeriod,
#[rust_sitter::leaf(text = "TrueAnomaly" )]TrueAnomaly,
#[rust_sitter::leaf(text = "Vertical" )]Vertical,
#[rust_sitter::leaf(text = "RatioPollutantOutput2" )]RatioPollutantOutput2,
#[rust_sitter::leaf(text = "PlantHealth1" )]PlantHealth1,
#[rust_sitter::leaf(text = "FilterType" )]FilterType,
#[rust_sitter::leaf(text = "PlantHealth3" )]PlantHealth3,
#[rust_sitter::leaf(text = "Progress" )]Progress,
#[rust_sitter::leaf(text = "RatioOxygenOutput2" )]RatioOxygenOutput2,
#[rust_sitter::leaf(text = "SettingOutputHash" )]SettingOutputHash,
#[rust_sitter::leaf(text = "PowerRequired" )]PowerRequired,
#[rust_sitter::leaf(text = "Mature" )]Mature,
#[rust_sitter::leaf(text = "RatioNitrousOxide" )]RatioNitrousOxide,
#[rust_sitter::leaf(text = "PlantGrowth2" )]PlantGrowth2,
#[rust_sitter::leaf(text = "Thrust" )]Thrust,
#[rust_sitter::leaf(text = "RatioWaterOutput" )]RatioWaterOutput,
#[rust_sitter::leaf(text = "Occupied" )]Occupied,
#[rust_sitter::leaf(text = "VelocityRelativeZ" )]VelocityRelativeZ,
#[rust_sitter::leaf(text = "RatioOxygen" )]RatioOxygen,
#[rust_sitter::leaf(text = "ForwardZ" )]ForwardZ,
#[rust_sitter::leaf(text = "AlignmentError" )]AlignmentError,
#[rust_sitter::leaf(text = "Inclination" )]Inclination,
#[rust_sitter::leaf(text = "RatioSteamInput2" )]RatioSteamInput2,
#[rust_sitter::leaf(text = "RatioLiquidNitrogenInput" )]RatioLiquidNitrogenInput,
#[rust_sitter::leaf(text = "Eccentricity" )]Eccentricity,
#[rust_sitter::leaf(text = "ExportSlotHash" )]ExportSlotHash,
#[rust_sitter::leaf(text = "RatioLiquidOxygen" )]RatioLiquidOxygen,
#[rust_sitter::leaf(text = "ElevatorLevel" )]ElevatorLevel,
#[rust_sitter::leaf(text = "MinWattsToContact" )]MinWattsToContact,
#[rust_sitter::leaf(text = "CombustionLimiter" )]CombustionLimiter,
#[rust_sitter::leaf(text = "SolarAngle" )]SolarAngle,
#[rust_sitter::leaf(text = "Open" )]Open,
#[rust_sitter::leaf(text = "Reagents" )]Reagents,
#[rust_sitter::leaf(text = "Unknown" )]Unknown,
#[rust_sitter::leaf(text = "Efficiency" )]Efficiency,
#[rust_sitter::leaf(text = "PlantHash3" )]PlantHash3,
#[rust_sitter::leaf(text = "RatioLiquidNitrousOxideOutput" )]RatioLiquidNitrousOxideOutput,
#[rust_sitter::leaf(text = "ImportSlotHash" )]ImportSlotHash,
#[rust_sitter::leaf(text = "Volume" )]Volume,
#[rust_sitter::leaf(text = "SortingClass" )]SortingClass,
}

View File

@@ -20,15 +20,10 @@ pub struct LogicField {
}
#[derive(Debug, Default)]
pub struct GenericDevice {
pub struct Device {
pub id: u16,
pub fields: HashMap<u8, LogicField>,
}
#[derive(Debug)]
enum Device {
IC(IC),
Generic(GenericDevice),
pub IC: Option<IC>
}
@@ -40,7 +35,6 @@ pub struct IC {
pub stack: [f64; 512],
pub aliases: HashMap<String, compiler::Operand>,
pub pins: [Option<u16>; 6],
pub fields: HashMap<u8, LogicField>,
pub code: String,
pub program: compiler::Program,
}
@@ -95,27 +89,14 @@ impl IC {
registers: [0.0; 18],
stack: [0.0; 512],
pins: [None; 6],
fields: HashMap::new(),
}
}
}
impl GenericDevice {
pub fn new(id: u16) -> Self {
GenericDevice {
id,
fields: HashMap::new(),
program: compiler::Program::new(),
code: String::new(),
aliases: HashMap::new(),
}
}
}
impl Device {
pub fn id(&self) -> u16 {
match self {
Self::IC(ic) => ic.id,
Self::Generic(d) => d.id,
}
}
}
impl VM {

View File

@@ -5,12 +5,23 @@ from pprint import pprint
def extract_logicable():
logicable = []
pedia = {}
with Path("./FullStationpedia.json").open("r") as f:
with Path("./StationpediaFull.json").open("r") as f:
pedia.update(json.load(f))
for page in pedia["pages"]:
if page["LogicInsert"] or page["LogicSlotInsert"]:
logicable.append(page)
print(f"{len(logicable)} of {len(pedia["pages"])} are logicable")
# print(f"{len(logicable)} of {len(pedia["pages"])} are logicable")
return logicable
def extract_all():
items = []
pedia = {}
with Path("./StationpediaFull.json").open("r") as f:
pedia.update(json.load(f))
for page in pedia["pages"]:
items.append(page)
return items

View File

@@ -1 +1 @@
{"version":"0.2","language":"en","flagWords":[],"words":["brgtz","brlez","brgez","brltz","brna","brap","brne","breq","brge","brle","brgt","brlt","brdns","brdse","bnaz","bapz","bnez","beqz","bgtz","blez","bgez","bltz","bdse","bdns","snaz","sapz","snez","seqz","sgez","slez","sgtz","sltz","sdns","sdse","bdnsal","bdseal","bapal","bapzal","beqal","beqzal","bgeal","bgezal","bgtal","bgtzal","bleal","blezal","bltal","bltzal","bnaal","bnazal","bneal","bnezal","brapz","brnaz","breqz","brnez","trunc","bnan","brnan","lbns","snan","snanz","Mineables","logictype","rocketstation","whos","sattellite","Stationeers","Hardsuit","jetpack","stationpedia","slottype","getd","putd","preproc","tokentype","overcolumn","overcolumn","QUICKFIX","infile","codegen","splitn","Circuitboard","hashables","logictypes","slotlogictypes","Astroloy","Autolathe","slotlogictype","reagentmodes","batchmodes","batchmode","reagentmode","ninf","endpos","Overlength","serde","bgezal","beqzal"]}
{"words":["brgtz","brlez","brgez","brltz","brna","brap","brne","breq","brge","brle","brgt","brlt","brdns","brdse","bnaz","bapz","bnez","beqz","bgtz","blez","bgez","bltz","bdse","bdns","snaz","sapz","snez","seqz","sgez","slez","sgtz","sltz","sdns","sdse","bdnsal","bdseal","bapal","bapzal","beqal","beqzal","bgeal","bgezal","bgtal","bgtzal","bleal","blezal","bltal","bltzal","bnaal","bnazal","bneal","bnezal","brapz","brnaz","breqz","brnez","trunc","bnan","brnan","lbns","snan","snanz","Mineables","logictype","rocketstation","whos","sattellite","Stationeers","Hardsuit","jetpack","stationpedia","slottype","getd","putd","preproc","tokentype","overcolumn","overcolumn","QUICKFIX","infile","codegen","splitn","Circuitboard","hashables","logictypes","slotlogictypes","Astroloy","Autolathe","slotlogictype","reagentmodes","batchmodes","batchmode","reagentmode","ninf","endpos","Overlength","serde","bgezal","beqzal","themelist","modelist","hardwrap","offcanvas","popperjs"],"version":"0.2","language":"en","flagWords":[]}

View File

@@ -25,8 +25,16 @@
"homepage": "https://github.com/ryex/ic10emu#readme",
"devDependencies": {
"@oneidentity/zstd-js": "^1.0.3",
"autoprefixer": "^10.4.19",
"copy-webpack-plugin": "^12.0.2",
"css-loader": "^6.10.0",
"hello-wasm-pack": "^0.1.0",
"html-webpack-plugin": "^5.6.0",
"mini-css-extract-plugin": "^2.8.1",
"postcss-loader": "^8.1.1",
"sass": "^1.72.0",
"sass-loader": "^14.1.1",
"style-loader": "^3.3.4",
"ts-loader": "^9.5.1",
"typescript": "^5.4.2",
"webpack": "^5.90.3",
@@ -34,10 +42,13 @@
"webpack-dev-server": "^5.0.3"
},
"dependencies": {
"@popperjs/core": "^2.11.8",
"ace-code": "^1.32.7",
"ace-linters": "^1.1.1",
"bootstrap": "^5.3.3",
"ic10emu_wasm": "file:../ic10emu_wasm/pkg",
"ic10lsp_wasm": "file:../ic10lsp_wasm/pkg",
"jquery": "^3.7.1",
"lzma-web": "^3.0.1",
"uuid": "^9.0.1"
}

621
www/pnpm-lock.yaml generated
View File

@@ -5,18 +5,27 @@ settings:
excludeLinksFromLockfile: false
dependencies:
'@popperjs/core':
specifier: ^2.11.8
version: 2.11.8
ace-code:
specifier: ^1.32.7
version: 1.32.7
ace-linters:
specifier: ^1.1.1
version: 1.1.1
bootstrap:
specifier: ^5.3.3
version: 5.3.3(@popperjs/core@2.11.8)
ic10emu_wasm:
specifier: file:../ic10emu_wasm/pkg
version: file:../ic10emu_wasm/pkg
ic10lsp_wasm:
specifier: file:../ic10lsp_wasm/pkg
version: file:../ic10lsp_wasm/pkg
jquery:
specifier: ^3.7.1
version: 3.7.1
lzma-web:
specifier: ^3.0.1
version: 3.0.1
@@ -28,12 +37,36 @@ devDependencies:
'@oneidentity/zstd-js':
specifier: ^1.0.3
version: 1.0.3
autoprefixer:
specifier: ^10.4.19
version: 10.4.19(postcss@8.4.38)
copy-webpack-plugin:
specifier: ^12.0.2
version: 12.0.2(webpack@5.90.3)
css-loader:
specifier: ^6.10.0
version: 6.10.0(webpack@5.90.3)
hello-wasm-pack:
specifier: ^0.1.0
version: 0.1.0
html-webpack-plugin:
specifier: ^5.6.0
version: 5.6.0(webpack@5.90.3)
mini-css-extract-plugin:
specifier: ^2.8.1
version: 2.8.1(webpack@5.90.3)
postcss-loader:
specifier: ^8.1.1
version: 8.1.1(postcss@8.4.38)(typescript@5.4.2)(webpack@5.90.3)
sass:
specifier: ^1.72.0
version: 1.72.0
sass-loader:
specifier: ^14.1.1
version: 14.1.1(sass@1.72.0)(webpack@5.90.3)
style-loader:
specifier: ^3.3.4
version: 3.3.4(webpack@5.90.3)
ts-loader:
specifier: ^9.5.1
version: 9.5.1(typescript@5.4.2)(webpack@5.90.3)
@@ -52,6 +85,29 @@ devDependencies:
packages:
/@babel/code-frame@7.24.2:
resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/highlight': 7.24.2
picocolors: 1.0.0
dev: true
/@babel/helper-validator-identifier@7.22.20:
resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
engines: {node: '>=6.9.0'}
dev: true
/@babel/highlight@7.24.2:
resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-validator-identifier': 7.22.20
chalk: 2.4.2
js-tokens: 4.0.0
picocolors: 1.0.0
dev: true
/@discoveryjs/json-ext@0.5.7:
resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
engines: {node: '>=10.0.0'}
@@ -144,6 +200,10 @@ packages:
dev: true
optional: true
/@popperjs/core@2.11.8:
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
dev: false
/@sindresorhus/merge-streams@2.3.0:
resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
engines: {node: '>=18'}
@@ -215,6 +275,10 @@ packages:
'@types/serve-static': 1.15.5
dev: true
/@types/html-minifier-terser@6.1.0:
resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
dev: true
/@types/http-errors@2.0.4:
resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
dev: true
@@ -610,6 +674,13 @@ packages:
engines: {node: '>=12'}
dev: true
/ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
dependencies:
color-convert: 1.9.3
dev: true
/ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
@@ -630,6 +701,10 @@ packages:
picomatch: 2.3.1
dev: true
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
/array-flatten@1.1.1:
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
dev: true
@@ -638,6 +713,22 @@ packages:
resolution: {integrity: sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==}
dev: false
/autoprefixer@10.4.19(postcss@8.4.38):
resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
peerDependencies:
postcss: ^8.1.0
dependencies:
browserslist: 4.23.0
caniuse-lite: 1.0.30001600
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.0.0
postcss: 8.4.38
postcss-value-parser: 4.2.0
dev: true
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -678,6 +769,18 @@ packages:
multicast-dns: 7.2.5
dev: true
/boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
dev: true
/bootstrap@5.3.3(@popperjs/core@2.11.8):
resolution: {integrity: sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==}
peerDependencies:
'@popperjs/core': ^2.11.8
dependencies:
'@popperjs/core': 2.11.8
dev: false
/brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
@@ -742,10 +845,35 @@ packages:
set-function-length: 1.2.2
dev: true
/callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
dev: true
/camel-case@4.1.2:
resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
dependencies:
pascal-case: 3.1.2
tslib: 2.6.2
dev: true
/caniuse-lite@1.0.30001597:
resolution: {integrity: sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==}
dev: true
/caniuse-lite@1.0.30001600:
resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==}
dev: true
/chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'}
dependencies:
ansi-styles: 3.2.1
escape-string-regexp: 1.0.5
supports-color: 5.5.0
dev: true
/chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
@@ -780,6 +908,13 @@ packages:
engines: {node: '>=6.0'}
dev: true
/clean-css@5.3.3:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
dependencies:
source-map: 0.6.1
dev: true
/clone-deep@4.0.1:
resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
engines: {node: '>=6'}
@@ -789,12 +924,22 @@ packages:
shallow-clone: 3.0.1
dev: true
/color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
dependencies:
color-name: 1.1.3
dev: true
/color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
/color-name@1.1.3:
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
dev: true
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
@@ -811,6 +956,11 @@ packages:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: true
/commander@8.3.0:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
engines: {node: '>= 12'}
dev: true
/commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
@@ -887,6 +1037,22 @@ packages:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
dev: true
/cosmiconfig@9.0.0(typescript@5.4.2):
resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
engines: {node: '>=14'}
peerDependencies:
typescript: '>=4.9.5'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
env-paths: 2.2.1
import-fresh: 3.3.0
js-yaml: 4.1.0
parse-json: 5.2.0
typescript: 5.4.2
dev: true
/cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -896,6 +1062,50 @@ packages:
which: 2.0.2
dev: true
/css-loader@6.10.0(webpack@5.90.3):
resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==}
engines: {node: '>= 12.13.0'}
peerDependencies:
'@rspack/core': 0.x || 1.x
webpack: ^5.0.0
peerDependenciesMeta:
'@rspack/core':
optional: true
webpack:
optional: true
dependencies:
icss-utils: 5.1.0(postcss@8.4.38)
postcss: 8.4.38
postcss-modules-extract-imports: 3.0.0(postcss@8.4.38)
postcss-modules-local-by-default: 4.0.4(postcss@8.4.38)
postcss-modules-scope: 3.1.1(postcss@8.4.38)
postcss-modules-values: 4.0.0(postcss@8.4.38)
postcss-value-parser: 4.2.0
semver: 7.6.0
webpack: 5.90.3(webpack-cli@5.1.4)
dev: true
/css-select@4.3.0:
resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
dependencies:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 4.3.1
domutils: 2.8.0
nth-check: 2.1.1
dev: true
/css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
engines: {node: '>= 6'}
dev: true
/cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
hasBin: true
dev: true
/debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
@@ -979,6 +1189,46 @@ packages:
'@leichtgewicht/ip-codec': 2.0.4
dev: true
/dom-converter@0.2.0:
resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
dependencies:
utila: 0.4.0
dev: true
/dom-serializer@1.4.1:
resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
dependencies:
domelementtype: 2.3.0
domhandler: 4.3.1
entities: 2.2.0
dev: true
/domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
dev: true
/domhandler@4.3.1:
resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
dev: true
/domutils@2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
dependencies:
dom-serializer: 1.4.1
domelementtype: 2.3.0
domhandler: 4.3.1
dev: true
/dot-case@3.0.4:
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
dependencies:
no-case: 3.0.4
tslib: 2.6.2
dev: true
/eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: true
@@ -1012,12 +1262,27 @@ packages:
tapable: 2.2.1
dev: true
/entities@2.2.0:
resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
dev: true
/env-paths@2.2.1:
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
engines: {node: '>=6'}
dev: true
/envinfo@7.11.1:
resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
engines: {node: '>=4'}
hasBin: true
dev: true
/error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
dependencies:
is-arrayish: 0.2.1
dev: true
/es-define-property@1.0.0:
resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
engines: {node: '>= 0.4'}
@@ -1043,6 +1308,11 @@ packages:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
dev: true
/escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
dev: true
/eslint-scope@5.1.1:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines: {node: '>=8.0.0'}
@@ -1232,6 +1502,10 @@ packages:
engines: {node: '>= 0.6'}
dev: true
/fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
dev: true
/fresh@0.5.2:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
@@ -1337,6 +1611,11 @@ packages:
resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
dev: true
/has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
dev: true
/has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
@@ -1364,6 +1643,11 @@ packages:
function-bind: 1.1.2
dev: true
/he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
dev: true
/hello-wasm-pack@0.1.0:
resolution: {integrity: sha512-3hx0GDkDLf/a9ThCMV2qG4mwza8N/MCtm8aeFFc/cdBCL2zMJ1kW1wjNl7xPqD1lz8Yl5+uhnc/cpui4dLwz/w==}
dev: true
@@ -1381,6 +1665,40 @@ packages:
resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
dev: true
/html-minifier-terser@6.1.0:
resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==}
engines: {node: '>=12'}
hasBin: true
dependencies:
camel-case: 4.1.2
clean-css: 5.3.3
commander: 8.3.0
he: 1.2.0
param-case: 3.0.4
relateurl: 0.2.7
terser: 5.29.2
dev: true
/html-webpack-plugin@5.6.0(webpack@5.90.3):
resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==}
engines: {node: '>=10.13.0'}
peerDependencies:
'@rspack/core': 0.x || 1.x
webpack: ^5.20.0
peerDependenciesMeta:
'@rspack/core':
optional: true
webpack:
optional: true
dependencies:
'@types/html-minifier-terser': 6.1.0
html-minifier-terser: 6.1.0
lodash: 4.17.21
pretty-error: 4.0.0
tapable: 2.2.1
webpack: 5.90.3(webpack-cli@5.1.4)
dev: true
/htmlhint@1.1.4:
resolution: {integrity: sha512-tSKPefhIaaWDk/vKxAOQbN+QwZmDeJCq3bZZGbJMoMQAfTjepudC+MkuT9MOBbuQI3dLLzDWbmU7fLV3JASC7Q==}
hasBin: true
@@ -1397,6 +1715,15 @@ packages:
- encoding
dev: false
/htmlparser2@6.1.0:
resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
dependencies:
domelementtype: 2.3.0
domhandler: 4.3.1
domutils: 2.8.0
entities: 2.2.0
dev: true
/http-deceiver@1.2.7:
resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
dev: true
@@ -1468,11 +1795,32 @@ packages:
safer-buffer: 2.1.2
dev: true
/icss-utils@5.1.0(postcss@8.4.38):
resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
postcss: 8.4.38
dev: true
/ignore@5.3.1:
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
engines: {node: '>= 4'}
dev: true
/immutable@4.3.5:
resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==}
dev: true
/import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
dev: true
/import-local@3.1.0:
resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
engines: {node: '>=8'}
@@ -1511,6 +1859,10 @@ packages:
engines: {node: '>= 10'}
dev: true
/is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
dev: true
/is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
@@ -1620,6 +1972,26 @@ packages:
supports-color: 8.1.1
dev: true
/jiti@1.21.0:
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
hasBin: true
dev: true
/jquery@3.7.1:
resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==}
dev: false
/js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
dev: true
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
dependencies:
argparse: 2.0.1
dev: true
/json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
dev: true
@@ -1648,6 +2020,10 @@ packages:
shell-quote: 1.8.1
dev: true
/lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
dev: true
/loader-runner@4.3.0:
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
engines: {node: '>=6.11.5'}
@@ -1662,7 +2038,12 @@ packages:
/lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
dev: false
/lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
dependencies:
tslib: 2.6.2
dev: true
/lru-cache@10.2.0:
resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
@@ -1746,6 +2127,17 @@ packages:
engines: {node: '>=6'}
dev: true
/mini-css-extract-plugin@2.8.1(webpack@5.90.3):
resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
engines: {node: '>= 12.13.0'}
peerDependencies:
webpack: ^5.0.0
dependencies:
schema-utils: 4.2.0
tapable: 2.2.1
webpack: 5.90.3(webpack-cli@5.1.4)
dev: true
/minimalistic-assert@1.0.1:
resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
dev: true
@@ -1788,6 +2180,12 @@ packages:
thunky: 1.1.0
dev: true
/nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
/negotiator@0.6.3:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
@@ -1797,6 +2195,13 @@ packages:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
dev: true
/no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
dependencies:
lower-case: 2.0.2
tslib: 2.6.2
dev: true
/node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
@@ -1823,6 +2228,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
/normalize-range@0.1.2:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
dev: true
/npm-run-path@4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
@@ -1830,6 +2240,12 @@ packages:
path-key: 3.1.1
dev: true
/nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
boolbase: 1.0.0
dev: true
/object-inspect@1.13.1:
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
dev: true
@@ -1901,11 +2317,42 @@ packages:
engines: {node: '>=6'}
dev: true
/param-case@3.0.4:
resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
dependencies:
dot-case: 3.0.4
tslib: 2.6.2
dev: true
/parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
dependencies:
callsites: 3.1.0
dev: true
/parse-json@5.2.0:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
dependencies:
'@babel/code-frame': 7.24.2
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
dev: true
/parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
dev: true
/pascal-case@3.1.2:
resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
dependencies:
no-case: 3.0.4
tslib: 2.6.2
dev: true
/path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
@@ -1959,6 +2406,97 @@ packages:
find-up: 4.1.0
dev: true
/postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.2)(webpack@5.90.3):
resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==}
engines: {node: '>= 18.12.0'}
peerDependencies:
'@rspack/core': 0.x || 1.x
postcss: ^7.0.0 || ^8.0.1
webpack: ^5.0.0
peerDependenciesMeta:
'@rspack/core':
optional: true
webpack:
optional: true
dependencies:
cosmiconfig: 9.0.0(typescript@5.4.2)
jiti: 1.21.0
postcss: 8.4.38
semver: 7.6.0
webpack: 5.90.3(webpack-cli@5.1.4)
transitivePeerDependencies:
- typescript
dev: true
/postcss-modules-extract-imports@3.0.0(postcss@8.4.38):
resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
postcss: 8.4.38
dev: true
/postcss-modules-local-by-default@4.0.4(postcss@8.4.38):
resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
icss-utils: 5.1.0(postcss@8.4.38)
postcss: 8.4.38
postcss-selector-parser: 6.0.16
postcss-value-parser: 4.2.0
dev: true
/postcss-modules-scope@3.1.1(postcss@8.4.38):
resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
postcss: 8.4.38
postcss-selector-parser: 6.0.16
dev: true
/postcss-modules-values@4.0.0(postcss@8.4.38):
resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
engines: {node: ^10 || ^12 || >= 14}
peerDependencies:
postcss: ^8.1.0
dependencies:
icss-utils: 5.1.0(postcss@8.4.38)
postcss: 8.4.38
dev: true
/postcss-selector-parser@6.0.16:
resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
engines: {node: '>=4'}
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
dev: true
/postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
dev: true
/postcss@8.4.38:
resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
picocolors: 1.0.0
source-map-js: 1.2.0
dev: true
/pretty-error@4.0.0:
resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
dependencies:
lodash: 4.17.21
renderkid: 3.0.0
dev: true
/process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
dev: true
@@ -2048,6 +2586,21 @@ packages:
resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==}
dev: false
/relateurl@0.2.7:
resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
engines: {node: '>= 0.10'}
dev: true
/renderkid@3.0.0:
resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
dependencies:
css-select: 4.3.0
dom-converter: 0.2.0
htmlparser2: 6.1.0
lodash: 4.17.21
strip-ansi: 6.0.1
dev: true
/require-from-string@2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
@@ -2064,6 +2617,11 @@ packages:
resolve-from: 5.0.0
dev: true
/resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
dev: true
/resolve-from@5.0.0:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
@@ -2119,6 +2677,42 @@ packages:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: true
/sass-loader@14.1.1(sass@1.72.0)(webpack@5.90.3):
resolution: {integrity: sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==}
engines: {node: '>= 18.12.0'}
peerDependencies:
'@rspack/core': 0.x || 1.x
node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
sass: ^1.3.0
sass-embedded: '*'
webpack: ^5.0.0
peerDependenciesMeta:
'@rspack/core':
optional: true
node-sass:
optional: true
sass:
optional: true
sass-embedded:
optional: true
webpack:
optional: true
dependencies:
neo-async: 2.6.2
sass: 1.72.0
webpack: 5.90.3(webpack-cli@5.1.4)
dev: true
/sass@1.72.0:
resolution: {integrity: sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
chokidar: 3.6.0
immutable: 4.3.5
source-map-js: 1.2.0
dev: true
/schema-utils@3.3.0:
resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
engines: {node: '>= 10.13.0'}
@@ -2294,6 +2888,11 @@ packages:
websocket-driver: 0.7.4
dev: true
/source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
dev: true
/source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
dependencies:
@@ -2401,6 +3000,22 @@ packages:
engines: {node: '>=8'}
dev: false
/style-loader@3.3.4(webpack@5.90.3):
resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
engines: {node: '>= 12.13.0'}
peerDependencies:
webpack: ^5.0.0
dependencies:
webpack: 5.90.3(webpack-cli@5.1.4)
dev: true
/supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
dependencies:
has-flag: 3.0.0
dev: true
/supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
@@ -2549,6 +3164,10 @@ packages:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
/utila@0.4.0:
resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
dev: true
/utils-merge@1.0.1:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<html data-bs-theme="dark">
<head>
<meta charset="utf-8">
@@ -11,21 +11,8 @@
<meta property="og:image" content="https://ryex.github.io/ic10emu/img/embed_preview.png" />
<meta property="og:url" content="https://ryex.github.io/ic10emu/" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js"
integrity="sha512-7Pi/otdlbbCR+LnW+F7PwFcSDJOuUJB3OxtEHbg4vSMvzvJjde4Po1v4BR9Gdc9aXNUNFVUY+SK51wWT8WF0Gg=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap-reboot.min.css"
integrity="sha512-HJaQ4y3YcUGCWikWDn8bFeGTy3Z/3IbxFYQ9G3UAWx16PyTL6Nu5P/BDDV9s0WhK3Sq27Wtbk/6IcwGmGSMXYg=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css"
integrity="sha512-jnSuA4Ss2PkkikSOLtYs8BlYIeeIK1h99ty4YfvRPAlzr377vr3CXDb7sb7eEEBYjDtcYj+AjBH3FLv5uSJuXg=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap-grid.min.css"
integrity="sha512-i1b/nzkVo97VN5WbEtaPebBG8REvjWeqNclJ6AItj7msdVcaveKrlIIByDpvjk5nwHjXkIqGZscVxOrTb9tsMA=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap-utilities.min.css"
integrity="sha512-4ocAKAxnrkSm7MvkkF1D435kko3/HWWvoi/U9+7+ln94B/U01Mggca05Pm3W59BIv3abl0U3MPdygAPLo5aeqg=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="./main.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/js/fontawesome.min.js"
integrity="sha512-C8qHv0HOaf4yoA7ISuuCTrsPX8qjolYTZyoFRKNA9dFKnxgzIHnYTOJhXQIt6zwpIFzCrRzUBuVgtC4e5K1nhA=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
@@ -44,13 +31,11 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/brands.min.css"
integrity="sha512-8RxmFOVaKQe/xtg6lbscU9DU0IRhURWEuiI0tXevv+lXbAHfkpamD4VKFQRto9WgfOJDwOZ74c/s9Yesv3VvIQ=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="css/dark.css" />
</head>
<body class="">
<noscript>This page contains webassembly and javascript content, please enable javascript in your browser.</noscript>
<script src="./bootstrap.js"></script>
<div class="App" data-bs-theme="dark">
<div class="App" >
<div id="modelShareLink" class="modal fade" tabindex="-1" aria-hidden="true" data-bs-theme="dark">
<div class="modal-dialog">
<div class="modal-content">

View File

@@ -1,483 +0,0 @@
import { init } from "ic10emu_wasm";
import * as ace from "ace-code";
import { Mode as IC10Mode } from "./ic10_mode";
import * as theme from "ace-code/src/theme/one_dark";
import { AceLanguageClient } from "ace-linters/build/ace-language-client";
import ace_ext_statusbar from "ace-code/src/ext/statusbar";
import ace_ext_keybinding_menu from "ace-code/src/ext/keybinding_menu";
import _ace_ext_langue_tools from "ace-code/src/ext/language_tools";
// make sure Ace can load through webpack
// trimmed down version of https://github.com/ajaxorg/ace-builds/blob/master/esm-resolver.js but for ace-code
ace.config.setModuleLoader("ace/theme/one_dark", () => import("ace-code/src/theme/one_dark"));
ace.config.setModuleLoader('ace/ext/beautify', () => import('ace-code/src/ext/beautify.js'));
ace.config.setModuleLoader('ace/ext/code_lens', () => import('ace-code/src/ext/code_lens.js'));
ace.config.setModuleLoader('ace/ext/command_bar', () => import('ace-code/src/ext/command_bar.js'));
ace.config.setModuleLoader('ace/ext/elastic_tabstops_lite', () => import('ace-code/src/ext/elastic_tabstops_lite.js'));
ace.config.setModuleLoader('ace/ext/emmet', () => import('ace-code/src/ext/emmet.js'));
ace.config.setModuleLoader('ace/ext/error_marker', () => import('ace-code/src/ext/error_marker.js'));
ace.config.setModuleLoader('ace/ext/hardwrap', () => import('ace-code/src/ext/hardwrap.js'));
ace.config.setModuleLoader('ace/ext/inline_autocomplete', () => import('ace-code/src/ext/inline_autocomplete.js'));
ace.config.setModuleLoader('ace/ext/keyboard_menu', () => import('ace-code/src/ext/keybinding_menu.js'));
ace.config.setModuleLoader('ace/ext/language_tools', () => import('ace-code/src/ext/language_tools.js'));
ace.config.setModuleLoader('ace/ext/linking', () => import('ace-code/src/ext/linking.js'));
ace.config.setModuleLoader('ace/ext/modelist', () => import('ace-code/src/ext/modelist.js'));
ace.config.setModuleLoader('ace/ext/options', () => import('ace-code/src/ext/options.js'));
ace.config.setModuleLoader('ace/ext/prompt', () => import('ace-code/src/ext/prompt.js'));
ace.config.setModuleLoader('ace/ext/rtl', () => import('ace-code/src/ext/rtl.js'));
ace.config.setModuleLoader('ace/ext/searchbox', () => import('ace-code/src/ext/searchbox.js'));
// ace.config.setModuleLoader('ace/ext/settings_menu', () => import('ace-code/src/ext/settings_menu.js'));
ace.config.setModuleLoader('ace/ext/simple_tokenizer', () => import('ace-code/src/ext/simple_tokenizer.js'));
ace.config.setModuleLoader('ace/ext/spellcheck', () => import('ace-code/src/ext/spellcheck.js'));
ace.config.setModuleLoader('ace/ext/split', () => import('ace-code/src/ext/split.js'));
ace.config.setModuleLoader('ace/ext/static_highlight', () => import('ace-code/src/ext/static_highlight.js'));
ace.config.setModuleLoader('ace/ext/statusbar', () => import('ace-code/src/ext/statusbar.js'));
ace.config.setModuleLoader('ace/ext/textarea', () => import('ace-code/src/ext/textarea.js'));
ace.config.setModuleLoader('ace/ext/themelist', () => import('ace-code/src/ext/themelist.js'));
ace.config.setModuleLoader('ace/ext/whitespace', () => import('ace-code/src/ext/whitespace.js'));
ace.config.setModuleLoader('ace/keyboard/emacs', () => import('ace-code/src/keyboard/emacs.js'));
ace.config.setModuleLoader('ace/keyboard/sublime', () => import('ace-code/src/keyboard/sublime.js'));
ace.config.setModuleLoader('ace/keyboard/vim', () => import('ace-code/src/keyboard/vim.js'));
ace.config.setModuleLoader('ace/keyboard/vscode', () => import('ace-code/src/keyboard/vscode.js'));
function docReady(fn) {
// see if DOM is already available
if (document.readyState === "complete" || document.readyState === "interactive") {
setTimeout(fn, 1);
} else {
document.addEventListener("DOMContentLoaded", fn);
}
}
init();
const demoCode = `# Highlighting Demo
# This is a comment
# Hover a define id anywhere to see it's definition
define a_def 10
# Hover HASH("String")'s to see computed crc32
# hover here vvvvvvvvvvvvvvvv
define a_hash HASH("This is a String")
# hover over an alias anywhere in the code
# to see it's definition
alias a_var r0
alias a_device d0
# instructions have Auto Completion,
# numeric logic types are identified on hover
s db 12 0
# ^^
# hover here
# Enums and their values are Known, Hover them!
# vvvvvvvvvvvvvvvvvv
move r2 LogicType.Temperature
# same with constants
# vvvv
move r3 pinf
# Labels are known
main:
l r1 dr15 RatioWater
move r2 100000.001
# Hover Hash Strings of Known prefab names
# to get their documentation
# vvvvvvvvvvvvvvv
move r0 HASH("AccessCardBlack")
beqz r1 test
# -2045627372 is the crc32 hash of a SolarPanel,
# hover it to see the documentation!
# vvvvvvvvvv
move r1 -2045627372
jal test
move r1 $FF
beqz 0 test
move r1 %1000
yield
j main
test:
add r15 r15 1
j ra
`
const loaded = w =>
new Promise(r => w.addEventListener("message", r, { once: true }));
function base64url_encode(buffer) {
return btoa(Array.from(new Uint8Array(buffer), b => String.fromCharCode(b)).join(''))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
function base64url_decode(value) {
const m = value.length % 4;
return Uint8Array.from(atob(
value.replace(/-/g, '+')
.replace(/_/g, '/')
.padEnd(value.length + (m === 0 ? 0 : 4 - m), '=')
), c => c.charCodeAt(0)).buffer
}
async function concatUintArrays(arrays) {
const blob = new Blob(arrays);
const buffer = await blob.arrayBuffer();
return new Uint8Array(buffer);
}
async function* streamAsyncIterator(stream) {
// Get a lock on the stream
const reader = stream.getReader();
try {
while (true) {
// Read from the stream
const { done, value } = await reader.read();
if (done) return;
yield value;
}
}
finally {
reader.releaseLock();
}
}
async function compress(bytes) {
const s = new Blob([bytes]).stream();
const cs = s.pipeThrough(
new CompressionStream('deflate-raw')
);
const chunks = [];
for await (const chunk of streamAsyncIterator(cs)) {
chunks.push(chunk);
}
return await concatUintArrays(chunks);
}
async function decompress(bytes) {
const s = new Blob([bytes]).stream();
const ds = s.pipeThrough(
new DecompressionStream('deflate-raw')
);
const chunks = [];
for await (const chunk of streamAsyncIterator(ds)) {
chunks.push(chunk);
}
return await concatUintArrays(chunks);
}
async function setDocFragment(content) {
const obj = JSON.stringify({ sessions: [{ content }] })
const bytes = new TextEncoder().encode(obj);
try {
const c_bytes = await compress(bytes);
const fragment = base64url_encode(c_bytes);
window.history.replaceState(null, "", `#${fragment}`);
} catch (e) {
console.log("Error compressing content fragment:", e);
return;
}
}
async function decompressFragment(c_bytes) {
try {
const bytes = await decompress(c_bytes);
const content = new TextDecoder().decode(bytes);
return content;
} catch (e) {
console.log("Error decompressing content fragment:", e);
return null;
}
}
function isJsonContent(content) {
try {
const obj = JSON.parse(content);
return [true, obj];
} catch (_) {
return [false, null];
}
}
async function getContentFromFragment(editor, default_content) {
const fragment = window.location.hash.slice(1);
if (fragment.length > 0) {
const c_bytes = base64url_decode(fragment);
const data = await decompressFragment(c_bytes);
if (data !== null) {
const [is_json, session] = isJsonContent(data);
if (is_json) {
try {
const content = session.sessions[0].content
editor.getSession().setValue(content);
return;
} catch (e) {
console.log("Bad session data:", e);
}
} else {
editor.getSession().setValue(data);
return;
}
}
}
editor.getSession().setValue(default_content);
}
async function setupLsp(editor, mode) {
// Create a web worker
let worker = new Worker(new URL('./lspWorker.js', import.meta.url));
await Promise.all([loaded(worker)]);
const serverData = {
module: () => import("ace-linters/build/language-client"),
modes: "ic10",
type: "webworker",
worker: worker,
}
// Create a language provider for web worker
let languageProvider = AceLanguageClient.for(serverData);
// Register the editor with the language provider
languageProvider.registerEditor(editor);
let options = mode.options ?? {};
languageProvider.setSessionOptions(editor.session, options);
}
function reCalcEditorSize(editor) {
const navBar = document.getElementById("navBar");
const statusBarContainer = document.getElementById("statusBarContainer");
const correction = navBar.offsetHeight + statusBarContainer.offsetHeight;
const editorContainer = document.getElementById("editor");
editorContainer.style.height = `calc( 100vh - ${correction}px - 0.5rem)`;
editor.resize(true);
}
const EditorSettings = {
keyboard: "ace",
cursor: "ace",
fontSize: 16,
relativeLineNumbers: false,
}
function loadEditorSettings(settings) {
const saved_settings = window.localStorage.getItem("editorSettings");
if (saved_settings !== null && saved_settings.length > 0) {
try {
const saved = JSON.parse(saved_settings);
const temp = Object.assign({}, settings, saved);
console.log("tmp load", temp);
Object.assign(settings, temp);
} catch (e) {
console.log("error loading editor settings", e);
}
}
}
function saveEditorSettings(settings) {
const toSave = JSON.stringify(settings);
window.localStorage.setItem("editorSettings", toSave);
}
function updateEditorSettings(editor, settings) {
if (settings.keyboard === 'ace') {
editor.setOption('keyboardHandler', null);
} else {
editor.setOption('keyboardHandler', `ace/keyboard/${settings.keyboard}`);
}
editor.setOption('cursorStyle', settings.cursor);
editor.setOption('fontSize', `${settings.fontSize}px`);
editor.setOption('relativeLineNumbers', settings.relativeLineNumbers);
}
function displayEditorSettings(settings) {
document.getElementsByName("editorKeybindRadio").forEach((el) => {
el.checked = el.value === settings.keyboard;
});
document.getElementsByName("editorCursorRadio").forEach((el) => {
el.checked = el.value === settings.cursor;
});
document.getElementById("editorSettingsFontSize").value = settings.fontSize;
document.getElementById("editorSettingsRelativeLineNumbers").checked = settings.relativeLineNumbers;
}
docReady(() => {
const mode = new IC10Mode()
var editor = ace.edit("editor", {
mode: mode,
enableBasicAutocompletion: true,
enableLiveAutocompletion: true,
enableSnippets: true,
// theme: theme,
fontSize: "16px",
customScrollbar: false,
firstLineNumber: 0,
printMarginColumn: 52,
});
editor.commands.addCommand({
name: "showSettingsMenu",
description: "Show settings menu",
bindKey: { win: "Ctrl-,", mac: "Command-," },
exec: (_editor) => {
const offCanvas = new bootstrap.Offcanvas(document.getElementById("editorSettings"));
offCanvas.toggle();
}
});
loadEditorSettings(EditorSettings);
displayEditorSettings(EditorSettings);
updateEditorSettings(editor, EditorSettings);
reCalcEditorSize(editor);
window.addEventListener('resize', (e) => { reCalcEditorSize(editor) });
document.getElementsByName("editorKeybindRadio").forEach((el) => {
el.addEventListener('change', (e) => {
EditorSettings.keyboard = e.target.value;
saveEditorSettings(EditorSettings);
updateEditorSettings(editor, EditorSettings);
})
});
document.getElementsByName("editorCursorRadio").forEach((el) => {
el.addEventListener('change', (e) => {
EditorSettings.cursor = e.target.value;
saveEditorSettings(EditorSettings);
updateEditorSettings(editor, EditorSettings);
})
});
document.getElementById("editorSettingsFontSize").addEventListener('change', (e) => {
EditorSettings.fontSize = e.target.value;
saveEditorSettings(EditorSettings);
updateEditorSettings(editor, EditorSettings);
});
document.getElementById("editorSettingsRelativeLineNumbers").addEventListener('change', (e) => {
EditorSettings.relativeLineNumbers = e.target.checked;
saveEditorSettings(EditorSettings);
updateEditorSettings(editor, EditorSettings);
})
console.log(editor.getOption('keyboardHandler'));
let sessionChangeTimeout = 0;
editor.getSession().on('change', () => {
if (sessionChangeTimeout) clearTimeout(sessionChangeTimeout);
sessionChangeTimeout = setTimeout(() => {
var val = editor.getSession().getValue();
setDocFragment(val);
sessionChangeTimeout = 0;
}, 1000);
});
editor.setTheme("ace/theme/one_dark");
var statusBar = new ace_ext_statusbar.StatusBar(editor, document.getElementById("statusBar"));
statusBar.updateStatus(editor);
ace_ext_keybinding_menu.init(editor);
// editor.setOption("keyboardHandler", "ace/keyboard/vim");
editor.setAutoScrollEditorIntoView(true);
editor.session.setValue(demoCode)
setupLsp(editor, mode);
getContentFromFragment(editor, demoCode);
window.addEventListener('hashchange', (_event) => {
getContentFromFragment(editor, "");
});
// Menu
document.getElementById("mainMenuShare").addEventListener('click', (_event) => {
const link = document.getElementById("shareLinkText");
link.setAttribute('value', window.location);
link.setSelectionRange(0, 0);
}, { capture: true });
document.getElementById("shareLinkCopyButton").addEventListener('click', (event) => {
event.preventDefault();
const link = document.getElementById("shareLinkText");
link.select();
link.setSelectionRange(0, 99999);
navigator.clipboard.writeText(link.value);
}, { capture: true });
document.getElementById("mainMenuOpenFile").addEventListener('click', (_event) => {
openFile(editor);
}, { capture: true });
document.getElementById("mainMenuSaveAs").addEventListener('click', (_event) => {
saveFile(editor.getSession().getValue())
}, { capture: true });
document.getElementById("mainMenuKeyboardShortcuts").addEventListener('click', (_event) => {
editor.execCommand("showKeyboardShortcuts");
}, { capture: true });
});
async function saveFile(content) {
const blob = new Blob([content], { type: "text/plain" });
if (typeof window.showSaveFilePicker !== "undefined") {
console.log("Saving via FileSystem API")
const options = {
types: [
{
suggestedName: "code.ic10",
description: 'Text Files',
accept: {
'text/plain': ['.txt', '.ic10'],
},
},
],
};
const saveHandle = await window.showSaveFilePicker(options);
const ws = await saveHandle.createWritable();
await ws.write(blob);
await ws.close();
} else {
console.log("saving file via hidden link event");
var a = document.createElement('a');
a.download = "code.ic10";
a.href = window.URL.createObjectURL(blob);
a.click();
}
}
async function openFile(editor) {
if (typeof window.showOpenFilePicker !== "undefined") {
console.log("opening file via FileSystem Api");
const [fileHandle] = await window.showOpenFilePicker();
const file = await fileHandle.getFile();
const contents = await file.text();
const session = editor.getSession();
session.setValue(contents);
} else {
console.log("opening file via hidden input event");
let input = document.createElement('input');
input.type = 'file';
input.accept = ".txt,.ic10,.mips,text/*";
input.onchange = _ => {
const files = Array.from(input.files);
console.log(files);
const file = files[0];
var reader = new FileReader();
reader.onload = (e) => {
const contents = e.target.result;
const session = editor.getSession();
// session.id = file.name;
session.setValue(contents);
};
reader.readAsText(file);
};
input.click();
}
}

41
www/src/js/editor/ace.js Normal file
View File

@@ -0,0 +1,41 @@
import * as ace from "ace-code"
// make sure Ace can load through webpack
// trimmed down version of https://github.com/ajaxorg/ace-builds/blob/master/esm-resolver.js but for ace-code
ace.config.setModuleLoader("ace/theme/one_dark", () => import("ace-code/src/theme/one_dark"));
ace.config.setModuleLoader("ace/theme/textmate", () => import("ace-code/src/theme/textmate"));
ace.config.setModuleLoader('ace/ext/beautify', () => import('ace-code/src/ext/beautify.js'));
ace.config.setModuleLoader('ace/ext/code_lens', () => import('ace-code/src/ext/code_lens.js'));
ace.config.setModuleLoader('ace/ext/command_bar', () => import('ace-code/src/ext/command_bar.js'));
ace.config.setModuleLoader('ace/ext/elastic_tabstops_lite', () => import('ace-code/src/ext/elastic_tabstops_lite.js'));
ace.config.setModuleLoader('ace/ext/emmet', () => import('ace-code/src/ext/emmet.js'));
ace.config.setModuleLoader('ace/ext/error_marker', () => import('ace-code/src/ext/error_marker.js'));
ace.config.setModuleLoader('ace/ext/hardwrap', () => import('ace-code/src/ext/hardwrap.js'));
ace.config.setModuleLoader('ace/ext/inline_autocomplete', () => import('ace-code/src/ext/inline_autocomplete.js'));
ace.config.setModuleLoader('ace/ext/keyboard_menu', () => import('ace-code/src/ext/keybinding_menu.js'));
ace.config.setModuleLoader('ace/ext/language_tools', () => import('ace-code/src/ext/language_tools.js'));
ace.config.setModuleLoader('ace/ext/linking', () => import('ace-code/src/ext/linking.js'));
ace.config.setModuleLoader('ace/ext/modelist', () => import('ace-code/src/ext/modelist.js'));
ace.config.setModuleLoader('ace/ext/options', () => import('ace-code/src/ext/options.js'));
// ace.config.setModuleLoader('ace/ext/prompt', () => import('ace-code/src/ext/prompt.js'));
ace.config.setModuleLoader('ace/ext/prompt', () => import('./prompt_patch'));
ace.config.setModuleLoader('ace/ext/rtl', () => import('ace-code/src/ext/rtl.js'));
ace.config.setModuleLoader('ace/ext/searchbox', () => import('ace-code/src/ext/searchbox.js'));
// ace.config.setModuleLoader('ace/ext/settings_menu', () => import('ace-code/src/ext/settings_menu.js'));
ace.config.setModuleLoader('ace/ext/simple_tokenizer', () => import('ace-code/src/ext/simple_tokenizer.js'));
ace.config.setModuleLoader('ace/ext/spellcheck', () => import('ace-code/src/ext/spellcheck.js'));
ace.config.setModuleLoader('ace/ext/split', () => import('ace-code/src/ext/split.js'));
ace.config.setModuleLoader('ace/ext/static_highlight', () => import('ace-code/src/ext/static_highlight.js'));
ace.config.setModuleLoader('ace/ext/statusbar', () => import('ace-code/src/ext/statusbar.js'));
ace.config.setModuleLoader('ace/ext/textarea', () => import('ace-code/src/ext/textarea.js'));
ace.config.setModuleLoader('ace/ext/themelist', () => import('ace-code/src/ext/themelist.js'));
ace.config.setModuleLoader('ace/ext/whitespace', () => import('ace-code/src/ext/whitespace.js'));
ace.config.setModuleLoader('ace/keyboard/emacs', () => import('ace-code/src/keyboard/emacs.js'));
ace.config.setModuleLoader('ace/keyboard/sublime', () => import('ace-code/src/keyboard/sublime.js'));
ace.config.setModuleLoader('ace/keyboard/vim', () => import('ace-code/src/keyboard/vim.js'));
ace.config.setModuleLoader('ace/keyboard/vscode', () => import('ace-code/src/keyboard/vscode.js'));
console.log("ace module loaders patched");
export { ace };

179
www/src/js/editor/index.js Normal file
View File

@@ -0,0 +1,179 @@
import { ace } from "./ace.js"
import { Mode as IC10Mode } from "./ic10_mode.js";
import * as one_dark from "ace-code/src/theme/one_dark";
import { AceLanguageClient } from "ace-linters/build/ace-language-client";
import { IC10EditorUI } from './ui.js';
// to make sure language tools are loaded
import _ace_ext_langue_tools from "ace-code/src/ext/language_tools";
const demoCode = `# Highlighting Demo
# This is a comment
# Hover a define id anywhere to see it's definition
define a_def 10
# Hover HASH("String")'s to see computed crc32
# hover here vvvvvvvvvvvvvvvv
define a_hash HASH("This is a String")
# hover over an alias anywhere in the code
# to see it's definition
alias a_var r0
alias a_device d0
# instructions have Auto Completion,
# numeric logic types are identified on hover
s db 12 0
# ^^
# hover here
# Enums and their values are Known, Hover them!
# vvvvvvvvvvvvvvvvvv
move r2 LogicType.Temperature
# same with constants
# vvvv
move r3 pinf
# Labels are known
main:
l r1 dr15 RatioWater
move r2 100000.001
# Hover Hash Strings of Known prefab names
# to get their documentation
# vvvvvvvvvvvvvvv
move r0 HASH("AccessCardBlack")
beqz r1 test
# -2045627372 is the crc32 hash of a SolarPanel,
# hover it to see the documentation!
# vvvvvvvvvv
move r1 -2045627372
jal test
move r1 $FF
beqz 0 test
move r1 %1000
yield
j main
test:
add r15 r15 1
j ra
`
async function setupLspWorker() {
// Create a web worker
let worker = new Worker(new URL('./lspWorker.js', import.meta.url));
const loaded = w =>
new Promise(r => w.addEventListener("message", r, { once: true }));
await Promise.all([loaded(worker)]);
// Register the editor with the language provider
return worker;
}
function IC10Editor(session_id) {
this.mode = new IC10Mode()
this.settings = {
keyboard: "ace",
cursor: "ace",
fontSize: 16,
relativeLineNumbers: false,
};
this.editor = ace.edit('editor', {
mode: this.mode,
enableBasicAutocompletion: true,
enableLiveAutocompletion: true,
enableSnippets: true,
theme: "ace/theme/one_dark",
fontSize: "16px",
customScrollbar: true,
firstLineNumber: 0,
printMarginColumn: 52,
});
this.sessions = {};
this.sessions[session_id] = this.editor.getSession();
this.active_session = session_id;
this.editor.session.setValue(demoCode)
this.languageProvider = null;
this.ui = new IC10EditorUI(this);
}
IC10Editor.prototype.newSession = function(session_id) {
if (this.sessions.hasOwnProperty(session_id)) {
return false;
}
this.sessions[session_id] = ace.createEditSession("", this.mode);
}
IC10Editor.prototype.setupLsp = function(lsp_worker) {
const serverData = {
module: () => import("ace-linters/build/language-client"),
modes: "ic10",
type: "webworker",
worker: lsp_worker,
};
// Create a language provider for web worker
this.languageProvider = AceLanguageClient.for(serverData);
this.languageProvider.registerEditor(this.editor);
for (const session_id in this.sessions) {
let options = this.mode.options ?? {};
this.languageProvider.setSessionOptions(this.sessions[session_id], options);
}
}
IC10Editor.prototype.activateSession = function (session_id) {
if (!this.sessions.hasOwnProperty(session_id)) {
return false;
}
this.editor.setSession(this.sessions[session_id]);
let options = this.mode.options ?? {};
this.languageProvider.setSessionOptions(this.sessions[session_id], options);
return true;
}
IC10Editor.prototype.loadEditorSettings = function () {
const saved_settings = window.localStorage.getItem("editorSettings");
if (saved_settings !== null && saved_settings.length > 0) {
try {
const saved = JSON.parse(saved_settings);
const temp = Object.assign({}, this.settings, saved);
Object.assign(this.settings, temp);
} catch (e) {
console.log("error loading editor settings", e);
}
}
}
IC10Editor.prototype.saveEditorSettings = function () {
const toSave = JSON.stringify(this.settings);
window.localStorage.setItem("editorSettings", toSave);
}
IC10Editor.prototype.destroySession = function(session_id) {
if (!this.sessions.hasOwnProperty(session_id)) {
return false;
}
if (!(Object.keys(this.sessions).length > 1)) {
return false;
}
this.sessions[session_id].destroy();
delete this.sessions[session_id];
return true;
}
export { IC10Editor, setupLspWorker };

View File

@@ -0,0 +1,11 @@
const ace_prompt = require('ace-code/src/ext/prompt.js').prompt;
console.log(ace_prompt);
function prompt(editor, message, options, callback) {
ace_prompt(editor, message, options, callback);
if (editor.cmdLine) {
editor.cmdLine.setTheme("ace/theme/one_dark");
}
}
exports.prompt = prompt;

125
www/src/js/editor/ui.js Normal file
View File

@@ -0,0 +1,125 @@
import { ace } from "./ace";
import { Offcanvas } from 'bootstrap';
function IC10EditorUI(ic10editor) {
const self = this;
self.ic10editor = ic10editor;
self.ic10editor.editor.commands.addCommand({
name: "showSettingsMenu",
description: "Show settings menu",
bindKey: { win: "Ctrl-,", mac: "Command-," },
exec: (_editor) => {
const offCanvas = new Offcanvas(document.getElementById("editorSettings"));
offCanvas.toggle();
}
});
ace.config.loadModule("ace/ext/keyboard_menu", function(module) {
console.log("keybinding_menu loaded");
module.init(self.ic10editor.editor);
})
self.ic10editor.loadEditorSettings();
self.displayEditorSettings();
self.updateEditorSettings();
self.reCalcEditorSize();
window.addEventListener('resize', (e) => { self.reCalcEditorSize() });
document.getElementsByName("editorKeybindRadio").forEach((el) => {
el.addEventListener('change', (e) => {
self.ic10editor.settings.keyboard = e.target.value;
self.ic10editor.saveEditorSettings();
self.updateEditorSettings();
})
});
document.getElementsByName("editorCursorRadio").forEach((el) => {
el.addEventListener('change', (e) => {
self.ic10editor.settings.cursor = e.target.value;
self.ic10editor.saveEditorSettings();
self.updateEditorSettings();
})
});
document.getElementById("editorSettingsFontSize").addEventListener('change', (e) => {
window.App.editorSettings.fontSize = e.target.value;
self.ic10editor.saveEditorSettings();
self.updateEditorSettings();
});
document.getElementById("editorSettingsRelativeLineNumbers").addEventListener('change', (e) => {
window.App.editorSettings.relativeLineNumbers = e.target.checked;
self.ic10editor.saveEditorSettings();
self.updateEditorSettings();
})
console.log(self.ic10editor.editor.getOption('keyboardHandler'));
// let sessionChangeTimeout = 0;
// editor.getSession().on('change', () => {
// if (sessionChangeTimeout) clearTimeout(sessionChangeTimeout);
// sessionChangeTimeout = setTimeout(() => {
// var val = editor.getSession().getValue();
// setDocFragment(val);
// sessionChangeTimeout = 0;
// }, 1000);
// });
self.ic10editor.editor.setTheme("ace/theme/one_dark");
ace.config.loadModule("ace/ext/statusbar", function(module) {
const statusBar = new module.StatusBar(self.ic10editor.editor, document.getElementById("statusBar"));
statusBar.updateStatus(self.ic10editor.editor);
})
// ace_ext_keybinding_menu.init(editor);
// editor.setOption("keyboardHandler", "ace/keyboard/vim");
self.ic10editor.editor.setAutoScrollEditorIntoView(true);
// getContentFromFragment(editor, demoCode);
// window.addEventListener('hashchange', (_event) => {
// getContentFromFragment(editor, "");
// });
}
IC10EditorUI.prototype.updateEditorSettings = function () {
const settings = this.ic10editor.settings;
const editor = this.ic10editor.editor;
if (settings.keyboard === 'ace') {
editor.setOption('keyboardHandler', null);
} else {
editor.setOption('keyboardHandler', `ace/keyboard/${settings.keyboard}`);
}
editor.setOption('cursorStyle', settings.cursor);
editor.setOption('fontSize', `${settings.fontSize}px`);
editor.setOption('relativeLineNumbers', settings.relativeLineNumbers);
}
IC10EditorUI.prototype.displayEditorSettings = function () {
const settings = this.ic10editor.settings;
document.getElementsByName("editorKeybindRadio").forEach((el) => {
el.checked = el.value === settings.keyboard;
});
document.getElementsByName("editorCursorRadio").forEach((el) => {
el.checked = el.value === settings.cursor;
});
document.getElementById("editorSettingsFontSize").value = settings.fontSize;
document.getElementById("editorSettingsRelativeLineNumbers").checked = settings.relativeLineNumbers;
}
IC10EditorUI.prototype.reCalcEditorSize = function () {
const editor = this.ic10editor.editor;
const navBar = document.getElementById("navBar");
const statusBarContainer = document.getElementById("statusBarContainer");
const correction = navBar.offsetHeight + statusBarContainer.offsetHeight;
const editorContainer = document.getElementById("editor");
editorContainer.style.height = `calc( 100vh - ${correction}px - 0.5rem)`;
editor.resize(true);
}
export { IC10EditorUI };

121
www/src/js/index.js Normal file
View File

@@ -0,0 +1,121 @@
import { init } from "ic10emu_wasm";
import { IC10Editor, setupLspWorker } from "./editor";
const App = {
editor: null,
sessions: [],
languageProvider: null,
editorSettings: {
}
};
window.App = App;
function docReady(fn) {
// see if DOM is already available
if (document.readyState === "complete" || document.readyState === "interactive") {
setTimeout(fn, 1);
} else {
document.addEventListener("DOMContentLoaded", fn);
}
}
init();
docReady(() => {
App.editor = new IC10Editor();
setupLspWorker().then((worker) => {
App.editor.setupLsp(worker);
})
// Menu
document.getElementById("mainMenuShare").addEventListener('click', (_event) => {
const link = document.getElementById("shareLinkText");
link.setAttribute('value', window.location);
link.setSelectionRange(0, 0);
}, { capture: true });
document.getElementById("shareLinkCopyButton").addEventListener('click', (event) => {
event.preventDefault();
const link = document.getElementById("shareLinkText");
link.select();
link.setSelectionRange(0, 99999);
navigator.clipboard.writeText(link.value);
}, { capture: true });
document.getElementById("mainMenuOpenFile").addEventListener('click', (_event) => {
openFile(editor);
}, { capture: true });
document.getElementById("mainMenuSaveAs").addEventListener('click', (_event) => {
saveFile(editor.getSession().getValue())
}, { capture: true });
document.getElementById("mainMenuKeyboardShortcuts").addEventListener('click', (_event) => {
App.editor.editor.execCommand("showKeyboardShortcuts");
}, { capture: true });
});
async function saveFile(content) {
const blob = new Blob([content], { type: "text/plain" });
if (typeof window.showSaveFilePicker !== "undefined") {
console.log("Saving via FileSystem API")
const options = {
types: [
{
suggestedName: "code.ic10",
description: 'Text Files',
accept: {
'text/plain': ['.txt', '.ic10'],
},
},
],
};
const saveHandle = await window.showSaveFilePicker(options);
const ws = await saveHandle.createWritable();
await ws.write(blob);
await ws.close();
} else {
console.log("saving file via hidden link event");
var a = document.createElement('a');
a.download = "code.ic10";
a.href = window.URL.createObjectURL(blob);
a.click();
}
}
async function openFile(editor) {
if (typeof window.showOpenFilePicker !== "undefined") {
console.log("opening file via FileSystem Api");
const [fileHandle] = await window.showOpenFilePicker();
const file = await fileHandle.getFile();
const contents = await file.text();
const session = editor.getSession();
session.setValue(contents);
} else {
console.log("opening file via hidden input event");
let input = document.createElement('input');
input.type = 'file';
input.accept = ".txt,.ic10,.mips,text/*";
input.onchange = _ => {
const files = Array.from(input.files);
console.log(files);
const file = files[0];
var reader = new FileReader();
reader.onload = (e) => {
const contents = e.target.result;
const session = editor.getSession();
// session.id = file.name;
session.setValue(contents);
};
reader.readAsText(file);
};
input.click();
}
}

View File

@@ -1,3 +1,8 @@
import '@popperjs/core';
import '../scss/styles.scss';
import { Dropdown, Model, ButtonGroup } from 'bootstrap';
// A dependency graph that contains any wasm must all be imported
// asynchronously. This `bootstrap.js` file does the single async import, so
// that no one else needs to worry about it again.

124
www/src/js/session.js Normal file
View File

@@ -0,0 +1,124 @@
async function setDocFragment(content) {
const obj = JSON.stringify({ sessions: [{ content }] })
const bytes = new TextEncoder().encode(obj);
try {
const c_bytes = await compress(bytes);
const fragment = base64url_encode(c_bytes);
window.history.replaceState(null, "", `#${fragment}`);
} catch (e) {
console.log("Error compressing content fragment:", e);
return;
}
}
async function decompressFragment(c_bytes) {
try {
const bytes = await decompress(c_bytes);
const content = new TextDecoder().decode(bytes);
return content;
} catch (e) {
console.log("Error decompressing content fragment:", e);
return null;
}
}
function isJsonContent(content) {
try {
const obj = JSON.parse(content);
return [true, obj];
} catch (_) {
return [false, null];
}
}
async function getContentFromFragment() {
const fragment = window.location.hash.slice(1);
if (fragment.length > 0) {
const c_bytes = base64url_decode(fragment);
const data = await decompressFragment(c_bytes);
if (data !== null) {
const [is_json, session] = isJsonContent(data);
if (is_json) {
try {
const content = session.sessions[0].content
editor.getSession().setValue(content);
return;
} catch (e) {
console.log("Bad session data:", e);
}
} else {
editor.getSession().setValue(data);
return;
}
}
}
editor.getSession().setValue(default_content);
}
async function* streamAsyncIterator(stream) {
// Get a lock on the stream
const reader = stream.getReader();
try {
while (true) {
// Read from the stream
const { done, value } = await reader.read();
if (done) return;
yield value;
}
}
finally {
reader.releaseLock();
}
}
function base64url_encode(buffer) {
return btoa(Array.from(new Uint8Array(buffer), b => String.fromCharCode(b)).join(''))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
function base64url_decode(value) {
const m = value.length % 4;
return Uint8Array.from(atob(
value.replace(/-/g, '+')
.replace(/_/g, '/')
.padEnd(value.length + (m === 0 ? 0 : 4 - m), '=')
), c => c.charCodeAt(0)).buffer
}
async function concatUintArrays(arrays) {
const blob = new Blob(arrays);
const buffer = await blob.arrayBuffer();
return new Uint8Array(buffer);
}
async function compress(bytes) {
const s = new Blob([bytes]).stream();
const cs = s.pipeThrough(
new CompressionStream('deflate-raw')
);
const chunks = [];
for await (const chunk of streamAsyncIterator(cs)) {
chunks.push(chunk);
}
return await concatUintArrays(chunks);
}
async function decompress(bytes) {
const s = new Blob([bytes]).stream();
const ds = s.pipeThrough(
new DecompressionStream('deflate-raw')
);
const chunks = [];
for await (const chunk of streamAsyncIterator(ds)) {
chunks.push(chunk);
}
return await concatUintArrays(chunks);
}

View File

@@ -88,6 +88,16 @@ body {
background: #f0f0f0;
}
.ace_prompt_container {
max-width: 603px;
width: 100%;
margin: 70px auto;
padding: 3px;
background: #2b3035;
border-radius: 2px;
box-shadow: 0px 2px 3px 0px #555;
}
/* ------------------------------------------------------------------------------------------
* Editor Search Form
* --------------------------------------------------------------------------------------- */
@@ -353,3 +363,49 @@ code {
.modal-body button {
color: #fff
}
.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight {
color: #c678dd;
}
.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {
background-color: rgba(76, 87, 103, .19);
}
.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {
border: 1px solid rgba(8, 121, 144, 0.5);
background: rgba(76, 87, 103, .19);
}
.ace_dark.ace_editor.ace_autocomplete {
border: 1px #484747 solid;
box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);
line-height: 1.4;
background: #282c34;
color: #c1c1c1;
}
.ace_editor.ace_autocomplete {
width: 300px;
z-index: 200000;
border: 1px #484747 solid;
position: fixed;
box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);
line-height: 1.4;
background: #282c34;
color: #c1c1c1;
}
.ace_editor.ace_autocomplete .ace_completion-highlight {
color: #c678dd;
}
.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {
background-color: rgba(76, 87, 103, .19);
}
.ace_editor.ace_autocomplete .ace_line-hover {
border: 1px solid rgba(8, 121, 144, 0.5);
background: rgba(76, 87, 103, .19);
}

67
www/src/scss/styles.scss Normal file
View File

@@ -0,0 +1,67 @@
// Toggle global options
// $enable-gradients: true;
$enable-shadows: true;
$offcanvas-box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175);
// Include functions first
@import "bootstrap/scss/functions";
// Customize some defaults
$body-color: #333;
$body-bg: #fff;
$border-radius: .4rem;
$success: #7952b3;
// Required
@import "bootstrap/scss/variables";
@import "bootstrap/scss/variables-dark";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
@import "bootstrap/scss/root";
@import "bootstrap/scss/reboot";
@import "bootstrap/scss/type";
// @import "bootstrap/scss/images";
@import "bootstrap/scss/containers";
@import "bootstrap/scss/grid";
@import "bootstrap/scss/tables";
@import "bootstrap/scss/forms";
@import "bootstrap/scss/buttons";
@import "bootstrap/scss/transitions";
@import "bootstrap/scss/dropdown";
@import "bootstrap/scss/button-group";
@import "bootstrap/scss/nav";
@import "bootstrap/scss/navbar"; // Requires nav
@import "bootstrap/scss/card";
// @import "bootstrap/scss/breadcrumb";
@import "bootstrap/scss/accordion";
// @import "bootstrap/scss/pagination";
@import "bootstrap/scss/badge";
@import "bootstrap/scss/alert";
@import "bootstrap/scss/progress";
@import "bootstrap/scss/list-group";
@import "bootstrap/scss/close";
@import "bootstrap/scss/toasts";
@import "bootstrap/scss/modal"; // Requires transitions
@import "bootstrap/scss/tooltip";
@import "bootstrap/scss/popover";
// @import "bootstrap/scss/carousel";
@import "bootstrap/scss/spinners";
@import "bootstrap/scss/offcanvas"; // Requires transitions
// @import "bootstrap/scss/placeholders";
// Helpers
@import "bootstrap/scss/helpers";
// Utilities
@import "bootstrap/scss/utilities/api";
@import "./dark.scss"
//
// Custom styles
//

View File

@@ -1,15 +1,26 @@
const CopyWebpackPlugin = require("copy-webpack-plugin");
const HtmlWebpackPlugin = require('html-webpack-plugin');
const miniCssExtractPlugin = require('mini-css-extract-plugin');
const path = require('path');
module.exports = {
entry: "./src/bootstrap.js",
entry: "./src/js/main.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "bootstrap.js",
filename: "main.js",
},
devServer: {
static: path.resolve(__dirname, 'dist'),
port: 8080,
hot: true
},
mode: "development",
plugins: [
new CopyWebpackPlugin({ patterns: ['index.html', 'css/*.css', 'img/*.png'] })
new CopyWebpackPlugin({ patterns: ['img/*.png', 'img/*/*.png'] }),
new HtmlWebpackPlugin({ template: './src/index.html'}),
new miniCssExtractPlugin()
],
module: {
rules: [
@@ -19,13 +30,36 @@ module.exports = {
exclude: /node_modules/,
},
{
test: /\.css$/i,
use: ["style-loader", "css-loader"],
}
],
// parser: {
// javascript : { importMeta: false }
// }
test: /\.(scss)$/,
use: [{
// inject CSS to page
loader: miniCssExtractPlugin.loader
}, {
// translates CSS into CommonJS modules
loader: 'css-loader'
}, {
// Run postcss actions
loader: 'postcss-loader',
options: {
// `postcssOptions` is needed for postcss 8.x;
// if you use postcss 7.x skip the key
postcssOptions: {
// postcss plugins, can be exported to postcss.config.js
plugins: function() {
return [
require('autoprefixer')
];
}
}
}
}, {
// compiles Sass to CSS
loader: 'sass-loader'
}],
// parser: {
// javascript : { importMeta: false }
// }
},],
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],