========================================== parses simple declarations ========================================== package trivial type x int64 var y = "" func z() {} --- (program (package_directive (package_name)) (type_declaration (type_name) (type_name)) (var_declaration (var_name) (string)) (func_declaration (var_name) (block_statement))) ========================================== parses var declarations ========================================== package trivial var X struct { Y int64 } var Z = "" --- (program (package_directive (package_name)) (var_declaration (var_name) (struct_type (var_name) (type_name))) (var_declaration (var_name) (string))) ========================================== parses comments ========================================== package trivial var x = 1 // on variable func main() { // in function } --- (program (package_directive (package_name)) (var_declaration (var_name) (expression (number) (comment))) (func_declaration (var_name) (block_statement (comment))))