================================================================================ for tuple expression ================================================================================ foo = [for v in ["a", "b"]: v] -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (for_expr (for_tuple_expr (tuple_start) (for_intro (identifier) (expression (collection_value (tuple (tuple_start) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (tuple_end))))) (expression (variable_expr (identifier))) (tuple_end))))))) ================================================================================ for tuple expression with index ================================================================================ foo = [for i, v in ["a", "b"]: i] -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (for_expr (for_tuple_expr (tuple_start) (for_intro (identifier) (identifier) (expression (collection_value (tuple (tuple_start) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (tuple_end))))) (expression (variable_expr (identifier))) (tuple_end))))))) ================================================================================ for tuple expression with predicate ================================================================================ foo = [for i, v in ["a", "b", "c"]: v if pred(i)] -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (for_expr (for_tuple_expr (tuple_start) (for_intro (identifier) (identifier) (expression (collection_value (tuple (tuple_start) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (tuple_end))))) (expression (variable_expr (identifier))) (for_cond (expression (function_call (identifier) (function_arguments (expression (variable_expr (identifier))))))) (tuple_end))))))) ================================================================================ for object expression ================================================================================ foo = {for i, v in ["a", "b"]: v => i} -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (for_expr (for_object_expr (object_start) (for_intro (identifier) (identifier) (expression (collection_value (tuple (tuple_start) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (tuple_end))))) (expression (variable_expr (identifier))) (expression (variable_expr (identifier))) (object_end))))))) ================================================================================ for object expression 2 ================================================================================ foo = {for i, v in ["a", "b"]: v => i...} -------------------------------------------------------------------------------- (config_file (body (attribute (identifier) (expression (for_expr (for_object_expr (object_start) (for_intro (identifier) (identifier) (expression (collection_value (tuple (tuple_start) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (expression (literal_value (string_lit (quoted_template_start) (template_literal) (quoted_template_end)))) (tuple_end))))) (expression (variable_expr (identifier))) (expression (variable_expr (identifier))) (ellipsis) (object_end)))))))