return None\r
\r
def parse_block_pair(ast):\r
- if ast['start']['name'] == 'with':\r
+ block_name = ast['start']['name']\r
+\r
+ if block_name == 'with':\r
return parse_block_with(ast)\r
\r
+ if block_name == 'for':\r
+ return parse_block_for(ast)\r
+\r
return None\r
\r
+def parse_block_for(ast):\r
+ target = None\r
+ iter = None\r
+ body = parse(ast['contents'])\r
+ else_ = []\r
+ test = None\r
+ recursive = False\r
+\r
+ block_parameters = ast['start']['parameters']\r
+\r
+ if block_parameters[1]['value']['variable'] != 'in':\r
+ raise\r
+\r
+ target = parse_variable(block_parameters[0]['value'], variable_context='store')\r
+ iter = parse_variable(block_parameters[2]['value'])\r
+\r
+ return nodes.For(\r
+ target, iter, body, else_, test, recursive,\r
+ lineno=lineno_from_parseinfo(ast['parseinfo'])\r
+ )\r
+\r
def parse_block_from(ast):\r
names = []\r
parameters = ast['block']['parameters']\r