Skip to content

Commit

Permalink
parser: add name field to left side of assignment
Browse files Browse the repository at this point in the history
  • Loading branch information
jkbz64 committed Sep 3, 2024
1 parent 7f11d6a commit 16e99a9
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 37 deletions.
4 changes: 3 additions & 1 deletion grammar.js
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,9 @@ module.exports = grammar({
when_expression: ($) => seq(kw("WHEN"), $._expression),
assignment: ($) =>
seq(
prec.left(choice($.identifier, $.qualified_name, $.object_access)),
prec.left(
choice(field("name", $.identifier), $.qualified_name, $.object_access)
),
"=",
prec.right($._expression),
optional($.when_expression)
Expand Down
72 changes: 36 additions & 36 deletions test/corpus/basic.txt
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ END.
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(number_literal)))))))

================================================================================
Expand All @@ -400,14 +400,14 @@ END.
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(number_literal)))))
(else_statement
(do_block
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(identifier))))))))

================================================================================
Expand Down Expand Up @@ -435,7 +435,7 @@ END.
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(number_literal)))))
(else_if_statement
condition: (comparison_expression
Expand All @@ -445,14 +445,14 @@ END.
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(identifier))))))
(else_statement
(do_block
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(identifier))))))))

================================================================================
Expand Down Expand Up @@ -483,7 +483,7 @@ End.
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(number_literal)))))
(else_if_statement
condition: (comparison_expression
Expand All @@ -493,14 +493,14 @@ End.
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(identifier))))))
(else_statement
(do_block
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(identifier))))))))

================================================================================
Expand All @@ -518,7 +518,7 @@ IF x > 10 THEN x = 10.
(number_literal))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(number_literal)))))

================================================================================
Expand All @@ -543,35 +543,35 @@ END.
(number_literal))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(number_literal)))
(else_if_statement
condition: (comparison_expression
(identifier)
(number_literal))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(number_literal))))
(else_statement
(variable_assignment
(assignment
(identifier)
name: (identifier)
(identifier)))))
(if_statement
condition: (comparison_expression
(identifier)
(number_literal))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(number_literal)))
(else_statement
(do_block
(body
(variable_assignment
(assignment
(identifier)
name: (identifier)
(number_literal))))))))

================================================================================
Expand All @@ -594,19 +594,19 @@ y = x < 10 OR x = 10.
(source_code
(variable_assignment
(assignment
(identifier)
name: (identifier)
(boolean_literal)))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(boolean_literal)))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(boolean_literal)))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(boolean_literal)))
(if_statement
condition: (logical_expression
Expand All @@ -617,19 +617,19 @@ y = x < 10 OR x = 10.
(double_quoted_string)))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(logical_expression
(boolean_literal)
(boolean_literal))))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(logical_expression
(boolean_literal)
(boolean_literal))))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(logical_expression
(comparison_expression
(identifier)
Expand Down Expand Up @@ -1089,7 +1089,7 @@ w = CAN-FIND(LAST x OF y USING z1 AND FRAME f z2 WHERE z NO-LOCK).
(source_code
(variable_assignment
(assignment
(identifier)
name: (identifier)
(can_find_expression
table: (identifier)
(of
Expand Down Expand Up @@ -1138,7 +1138,7 @@ x = IF x > 10 THEN 10 ELSE x.
(source_code
(variable_assignment
(assignment
(identifier)
name: (identifier)
(ternary_expression
condition: (comparison_expression
(identifier)
Expand All @@ -1157,7 +1157,7 @@ x = (IF NOT x > 10 THEN 10 ELSE x).
(source_code
(variable_assignment
(assignment
(identifier)
name: (identifier)
(parenthesized_expression
(ternary_expression
condition: (unary_expression
Expand Down Expand Up @@ -1276,7 +1276,7 @@ FIND foo WHERE bar CONTAINS "stuff" OR baz CONTAINS "what?".
(source_code
(variable_assignment
(assignment
(identifier)
name: (identifier)
(logical_expression
(comparison_expression
(number_literal)
Expand All @@ -1286,7 +1286,7 @@ FIND foo WHERE bar CONTAINS "stuff" OR baz CONTAINS "what?".
(number_literal)))))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(comparison_expression
(parenthesized_expression
(comparison_expression
Expand All @@ -1302,7 +1302,7 @@ FIND foo WHERE bar CONTAINS "stuff" OR baz CONTAINS "what?".
(number_literal))))))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(comparison_expression
(parenthesized_expression
(comparison_expression
Expand All @@ -1318,13 +1318,13 @@ FIND foo WHERE bar CONTAINS "stuff" OR baz CONTAINS "what?".
(number_literal))))))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(comparison_expression
(double_quoted_string)
(double_quoted_string))))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(comparison_expression
(double_quoted_string)
(double_quoted_string))))
Expand Down Expand Up @@ -1363,7 +1363,7 @@ IF CURRENT-CHANGED x THEN RETURN '!'.
(query_tuning))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(logical_expression
(available_expression
(identifier))
Expand All @@ -1375,15 +1375,15 @@ IF CURRENT-CHANGED x THEN RETURN '!'.
frame: (identifier))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(input_expression
frame: (identifier)
field: (identifier))))
(prompt_for_statement
(identifier))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(input_expression
field: (identifier))))
(if_statement
Expand Down Expand Up @@ -1554,7 +1554,7 @@ END CLASS.
type: (primitive_type))))
(variable_assignment
(assignment
(identifier)
name: (identifier)
(new_expression
(identifier))))
(using_statement
Expand Down Expand Up @@ -1688,12 +1688,12 @@ END CLASS.
(identifier))
(assign_statement
(assignment
(identifier)
name: (identifier)
(qualified_name
(identifier)
(identifier)))
(assignment
(identifier)
name: (identifier)
(qualified_name
(identifier)
(identifier)))))
Expand Down

0 comments on commit 16e99a9

Please sign in to comment.