Add for loops to javascript grammar
This commit is contained in:
parent
5deeebc38c
commit
2e11f60710
4 changed files with 3934 additions and 2734 deletions
|
|
@ -24,8 +24,23 @@ namespace tree_sitter {
|
|||
{ "statement", choice({
|
||||
sym("statement_block"),
|
||||
sym("if_statement"),
|
||||
seq({ sym("assignment"), sym("_terminator") }),
|
||||
seq({ sym("expression"), sym("_terminator") }) }) },
|
||||
sym("for_statement"),
|
||||
sym("var_declaration"),
|
||||
sym("expression_statement") }) },
|
||||
{ "expression_statement", seq({
|
||||
sym("expression"),
|
||||
sym("_terminator") }) },
|
||||
{ "for_statement", seq({
|
||||
sym("_for"),
|
||||
str("("),
|
||||
choice({
|
||||
sym("var_declaration"),
|
||||
sym("expression_statement"),
|
||||
}),
|
||||
sym("expression_statement"),
|
||||
sym("expression"),
|
||||
str(")"),
|
||||
sym("statement") }) },
|
||||
{ "if_statement", seq({
|
||||
sym("_if"),
|
||||
str("("),
|
||||
|
|
@ -39,8 +54,13 @@ namespace tree_sitter {
|
|||
str("{"),
|
||||
err(repeat(sym("statement"))),
|
||||
str("}") }) },
|
||||
{ "assignment", seq({
|
||||
{ "var_declaration", seq({
|
||||
sym("_var"),
|
||||
choice({
|
||||
sym("assignment"),
|
||||
sym("identifier") }),
|
||||
sym("_terminator") }) },
|
||||
{ "assignment", seq({
|
||||
sym("identifier"),
|
||||
str("="),
|
||||
sym("expression") })},
|
||||
|
|
@ -48,6 +68,7 @@ namespace tree_sitter {
|
|||
sym("function_expression"),
|
||||
sym("function_call"),
|
||||
sym("property_access"),
|
||||
sym("assignment"),
|
||||
sym("literal"),
|
||||
sym("identifier") }) },
|
||||
{ "function_expression", seq({
|
||||
|
|
@ -92,6 +113,7 @@ namespace tree_sitter {
|
|||
str(";"),
|
||||
str("\n") }) },
|
||||
{ "_var", str("var") },
|
||||
{ "_for", str("for") },
|
||||
{ "_if", str("if") },
|
||||
{ "_function", str("function") },
|
||||
{ "_else", str("else") },
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -8,7 +8,7 @@ if (*nonsense*) {
|
|||
moreStuff();
|
||||
---
|
||||
(program
|
||||
(statement (function_call (identifier)))
|
||||
(expression_statement (function_call (identifier)))
|
||||
(if_statement (ERROR)
|
||||
(statement_block (ERROR)))
|
||||
(statement (function_call (identifier))))
|
||||
(expression_statement (function_call (identifier))))
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ firstFunction(x);
|
|||
secondFunction(x);
|
||||
---
|
||||
(program
|
||||
(statement (assignment (identifier) (object)))
|
||||
(statement (function_call (identifier) (identifier)))
|
||||
(statement (function_call (identifier) (identifier))))
|
||||
(var_declaration (assignment (identifier) (object)))
|
||||
(expression_statement (function_call (identifier) (identifier)))
|
||||
(expression_statement (function_call (identifier) (identifier))))
|
||||
|
||||
==========================================
|
||||
parses if statements
|
||||
|
|
@ -19,7 +19,7 @@ if (isReady()) {
|
|||
---
|
||||
(program
|
||||
(if_statement (function_call (identifier))
|
||||
(statement_block (statement (function_call (property_access (identifier) (identifier)) (identifier))))))
|
||||
(statement_block (expression_statement (function_call (property_access (identifier) (identifier)) (identifier))))))
|
||||
|
||||
==========================================
|
||||
parses if-else statements
|
||||
|
|
@ -32,8 +32,8 @@ if (theCondition) {
|
|||
---
|
||||
(program (if_statement
|
||||
(identifier)
|
||||
(statement_block (statement (function_call (identifier))))
|
||||
(statement_block (statement (function_call (identifier))))))
|
||||
(statement_block (expression_statement (function_call (identifier))))
|
||||
(statement_block (expression_statement (function_call (identifier))))))
|
||||
|
||||
==================================================
|
||||
parses if-else statements with multiple conditions
|
||||
|
|
@ -48,10 +48,23 @@ else {
|
|||
---
|
||||
(program
|
||||
(if_statement (identifier)
|
||||
(statement_block (statement (function_call (identifier))))
|
||||
(statement_block (expression_statement (function_call (identifier))))
|
||||
(if_statement (identifier)
|
||||
(statement (function_call (identifier)))
|
||||
(statement_block (statement (function_call (identifier)))))))
|
||||
(expression_statement (function_call (identifier)))
|
||||
(statement_block (expression_statement (function_call (identifier)))))))
|
||||
|
||||
==========================================
|
||||
parses for loops
|
||||
==========================================
|
||||
for (var i = 1; someCondition(i); i = next()) {
|
||||
doSomething();
|
||||
}
|
||||
---
|
||||
(program (for_statement
|
||||
(var_declaration (assignment (identifier) (number)))
|
||||
(expression_statement (function_call (identifier) (identifier)))
|
||||
(assignment (identifier) (function_call (identifier)))
|
||||
(statement_block (expression_statement (function_call (identifier))))))
|
||||
|
||||
==========================================
|
||||
parses function expressions and calls
|
||||
|
|
@ -65,12 +78,12 @@ var x = {
|
|||
x.theMethod(5, 6);
|
||||
---
|
||||
(program
|
||||
(statement (assignment
|
||||
(var_declaration (assignment
|
||||
(identifier)
|
||||
(object (identifier) (function_expression
|
||||
(formal_parameters (identifier) (identifier))
|
||||
(statement_block (statement (assignment (identifier) (identifier))))))))
|
||||
(statement (function_call
|
||||
(statement_block (var_declaration (assignment (identifier) (identifier))))))))
|
||||
(expression_statement (function_call
|
||||
(property_access (identifier) (identifier))
|
||||
(number) (number))))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue