anScript

Object oriented programming in anScript

Use timeWait() at the end of code to see output.

/Here we have a pretty nice class vehicle

instructionCreate(vehicleBegin)
    variableCreateLocal(position,0.i)
    variableCreateLocal(velocity,1.i)
    variableCreateLocal(color,2.i)
}
instructionCreate(vehicleEnd)
    variableDeleteLocal(position,velocity,color)
}
/Constructor
instructionCreate(vehicleConstruct,newVehicle)
    newVehicle.variableAssign(var[])
    newVehicle.arraySetSize(3.i)
    newVehicle[position].variableAssign(0.i)
    newVehicle[velocity].variableAssign(0.i)
    newVehicle[color].variableAssign(transparent.s)
}
instructionCreate(vehicleSpeedUp,vehicle,a)
    vehicle[velocity].basicAddition(vehicle[velocity],a)
}
instructionCreate(vehicleMove,vehicle)
    vehicle[position].basicAddition(vehicle[position],vehicle[velocity])
}
instructionCreate(vehicleCheckPosition,vehicle,S)
    S.variableAssign(vehicle[position])
}
instructionCreate(vehicleAskForNewColor,vehicle)
    /Spaces created with ascii codes
    consolePrint(Type.s,ascii[32.i],in.s,ascii[32.i],new.s,ascii[32.i],color:.s,ascii[32.i])
    consoleScan(vehicle[color])
}
instructionCreate(vehicleTellYourColor,vehicle)
    /Spaces created with new variable and variableCharArray_toSpace instruction
    variableCreateLocal(text,My_color_is:_.s)
    text.variableCharArray_toSpace()
    consolePrint(text,vehicle[color])
    consoleNewLine()
    variableDeleteLocal(text)
}
/Destructor
instructionCreate(vehicleDestruct,vehicle)
    vehicle.variableAssign(var)
}

/So let's start main
vehicleBegin()

variableCreate(myNewCar,var)
myNewCar.vehicleConstruct()
myNewCar.vehicleTellYourColor()
myNewCar.vehicleAskForNewColor()
myNewCar.vehicleTellYourColor()
myNewCar.vehicleSpeedUp(10.i)
myNewCar.vehicleMove()
myNewCar.vehicleMove()
variableCreate(S,var.i)
myNewCar.vehicleCheckPosition(S)
consoleNewLine()
consolePrint(myNewCar_positoin_is_.s,S)
consoleNewLine()

myNewCar.vehicleDestruct()
vehicleEnd()