implement function macros

- func(a, b, message)
- func_begin(a,b, message) ~ func_end(a, b)
- local_func(a, message)
- local_func_begin(a, message) ~ local_func_end(a)
add sample of sequence diagram