macro a {
// current package name
package::a
// caller's package name
package_caller::a
}
// @derive trait
#derive(Copy, Clone, Debug, PartialEq, Eq, Hash)
derived macro A (){
}
//
implicit macro print() {
}
micro name ⟨G, R⟩ (g: G) -> R {
1 + 1
a in b
print("Hello, world!")
}
macro outer ⟨L⟩ (lhs: L) -> String {
#mut let mut count = 0
}
micro inner ⟨R⟩ (rhs: R) {
while count < 10 {
count += 1
print("{lhs} {rhs}")
}
"{count}"
}
public static final micro main(mut args: List⟨String⟩) -> Int {
outer("Hello")("world")
return 0
}