tree-sitter/spec/runtime/languages/golang/statements.txt
2014-06-16 21:33:35 -07:00

86 lines
No EOL
2.3 KiB
Text

============================================
parses return statements
============================================
package main
func main() {
return
}
func helper() {
return 1, two, "three"
}
---
(program (package_directive (package_name))
(func_declaration (var_name) (block_statement
(return_statement)))
(func_declaration (var_name) (block_statement
(return_statement (number) (var_name) (string)))))
============================================
parses variable declaration statements
============================================
package main
func main() {
x, y := stuff()
var z = 10
println(x, y, z)
}
---
(program (package_directive (package_name))
(func_declaration (var_name) (block_statement
(declaration_statement (var_name) (var_name) (call_expression (var_name)))
(var_declaration (var_name) (number))
(expression_statement (call_expression (var_name) (var_name) (var_name) (var_name))))))
============================================
parses if statements
============================================
package main
func main() {
if condition1() {
}
if condition2() {
} else {
}
if condition3() {
} else if condition4() {
}
}
---
(program (package_directive (package_name))
(func_declaration (var_name) (block_statement
(if_statement (call_expression (var_name))
(block_statement))
(if_statement (call_expression (var_name))
(block_statement) (block_statement))
(if_statement (call_expression (var_name))
(block_statement)
(if_statement (call_expression (var_name))
(block_statement))))))
=============================================
parses range statements
=============================================
package main
func main() {
for k := range theMap() {
println(k)
}
for k, v := range theMap() {
println(k, v)
}
}
---
(program (package_directive (package_name))
(func_declaration (var_name) (block_statement
(range_statement (var_name) (call_expression (var_name)) (block_statement
(expression_statement (call_expression (var_name) (var_name)))))
(range_statement (var_name) (var_name) (call_expression (var_name)) (block_statement
(expression_statement (call_expression (var_name) (var_name) (var_name))))))))