Update declaration syntax
Update declaration syntax

- Restructure the way a declaration is read.
- Require `function` keyword.
- Do not require semicolon at end of struct/enum.
- Do not specify format parameter in format function declaration. The format
  parameter is implied.

wormt/bcc,wormt/bcc