Add range statements to golang grammar
This commit is contained in:
parent
a42f498c59
commit
c91c5cb730
3 changed files with 1070 additions and 743 deletions
|
|
@ -83,6 +83,7 @@ namespace tree_sitter_examples {
|
|||
sym("expression_statement"),
|
||||
sym("return_statement"),
|
||||
sym("declaration_statement"),
|
||||
sym("range_statement"),
|
||||
sym("if_statement") }) },
|
||||
{ "return_statement", seq({
|
||||
keyword("return"),
|
||||
|
|
@ -90,6 +91,14 @@ namespace tree_sitter_examples {
|
|||
{ "declaration_statement", choice({
|
||||
sym("var_declaration"),
|
||||
seq({ comma_sep(sym("var_name")), str(":="), sym("expression") }) }) },
|
||||
{ "range_statement", seq({
|
||||
keyword("for"),
|
||||
sym("var_name"),
|
||||
optional(seq({ str(","), sym("var_name") })),
|
||||
str(":="),
|
||||
keyword("range"),
|
||||
sym("expression"),
|
||||
sym("block_statement") }) },
|
||||
{ "if_statement", seq({
|
||||
keyword("if"),
|
||||
sym("expression"),
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -61,4 +61,26 @@ func main() {
|
|||
(if_statement (call_expression (var_name))
|
||||
(block_statement)
|
||||
(if_statement (call_expression (var_name))
|
||||
(block_statement))))))
|
||||
(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))))))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue