Waddle_Language/examples/example_class.wdl;

44 lines
1.1 KiB
Plaintext
Raw Permalink Normal View History

2025-11-23 06:58:46 +00:00
use Vehicle.Car;
use Vehicle.Engine;
Car/Equinox -> hasEngine {
String model;
Integer year;
Decimal fuelEfficiency;
Boolean isRunning;
Decimal fuelLevel;
Decimal mileage;
fn on_create(String model, Integer year) -> [Null] {
my.model.set(model);
my.year.set(year);
my.fuelEfficiency.set(28.5);
my.isRunning.set(False);
my.fuelLevel.set(100.0);
my.mileage.set(0.0);
rtn Null;
}
fn startEngine() -> [Boolean] {
Boolean engineStatus.set(Boolean.and(my.isRunning.not(True), my.fuelLevel.gt(0.0)));
my.isRunning.set(engineStatus);
rtn engineStatus;
}
fn calculateFuelConsumption(Decimal distance) -> [Decimal] {
Decimal consumption.set(distance.divide(my.fuelEfficiency));
rtn consumption;
}
fn checkMaintenance() -> [Boolean] {
Boolean needsMaintenance.set(my.mileage.gte(50000.0));
rtn needsMaintenance;
}
+fn drive(Decimal miles) -> [Null] {
my.mileage.add(miles);
my.fuelLevel.subtract(my.calculateFuelConsumption(miles));
rtn Null;
}
}