enums2.bx
Bx
1extrn printf;
2
3type enum TrafficLight {
4 RED,
5 YELLOW,
6 GREEN
7};
8
9TrafficLight get_next_light(current_light TrafficLight) {
10 if (int(current_light) == GREEN) {
11 return (YELLOW);
12 }
13 if (int(current_light) == YELLOW) {
14 return (RED);
15 }
16 return (GREEN);
17}
18
19void print_action(light TrafficLight) {
20 switch (light) {
21 case RED: printf("RED - Stop.\n"); break;
22 case YELLOW: printf("YELLOW - Caution.\n"); break;
23 case GREEN: printf("GREEN - Go.\n"); break;
24 default: printf("Unknown light.\n");
25 }
26}
27
28int main() {
29 auto current_light = RED;
30
31 print_action(current_light);
32
33 current_light = get_next_light(current_light);
34 print_action(current_light);
35
36 current_light = get_next_light(current_light);
37 print_action(current_light);
38
39 current_light = get_next_light(current_light);
40 print_action(current_light);
41
42 return (0);
43}