#include <stdio.h>

int main() { printf("main\n"); }

aspect [[Prio::low]] A1 {
    advice execution("% main(...)") : before() { printf("A1, "); }
};

aspect [[Prio::medium]] A2 {
    advice execution("% main(...)") : before() { printf("A2, "); }
};

aspect [[Prio::high]] A3 {
    advice execution("% main(...)") : before() { printf("A3, "); }
};

aspect Prio {
    attribute low(); attribute medium(); attribute high();
    advice execution("% main(...)") : order(high(), medium(), low());
};
