===================================== empty ===================================== %{} --- (source (map)) ===================================== from keywords ===================================== %{a: 1, b: 2} --- (source (map (map_content (keywords (pair (keyword (atom_literal)) (integer)) (pair (keyword (atom_literal)) (integer)))))) ===================================== from arrow entries ===================================== %{:a => 1, "b" => 2, c => 3} --- (source (map (map_content (binary_operator (atom (atom_literal)) (integer)) (binary_operator (string (string_content)) (integer)) (binary_operator (identifier) (integer))))) ===================================== from both arrow entries and keywords ===================================== %{"a" => 1, b: 2, c: 3} --- (source (map (map_content (binary_operator (string (string_content)) (integer)) (keywords (pair (keyword (atom_literal)) (integer)) (pair (keyword (atom_literal)) (integer)))))) ===================================== trailing separator ===================================== %{"a" => 1,} --- (source (map (map_content (binary_operator (string (string_content)) (integer))))) ===================================== update syntax ===================================== %{user | name: "Jane", email: "jane@example.com"} %{user | "name" => "Jane"} --- (source (map (map_content (binary_operator (identifier) (keywords (pair (keyword (atom_literal)) (string (string_content))) (pair (keyword (atom_literal)) (string (string_content))))))) (map (map_content (binary_operator (identifier) (binary_operator (string (string_content)) (string (string_content))))))) ===================================== [error] ordering ===================================== %{b: 2, c: 3, 1 => 1} --- (source (map (map_content (keywords (pair (keyword (atom_literal)) (integer)) (pair (keyword (atom_literal)) (integer)))) (ERROR (integer) (integer)))) ===================================== [error] missing separator ===================================== %{"a" => 1 "b" => 2} --- (source (map (map_content (binary_operator (string (string_content)) (ERROR (integer)) (binary_operator (string (string_content)) (integer))))))