def p_for(self, p): 'loop_i : FOR LPAREN assign_e SEMICOLON expr SEMICOLON assign_e RPAREN instr' pre = syntax.evaluation(p[3]) mid = p[5] post = syntax.evaluation(p[7]) body = p[9] p[0] = syntax.block_statement([pre, syntax.while_loop(mid, post, body, p.lexpos(1))])
def test_while_loop(self): self.assertEqual("12345", syntax.while_loop(5)) self.assertEqual("12", syntax.while_loop(2)) self.assertEqual(None, syntax.while_loop("string")) self.assertEqual(None, syntax.while_loop(-5))
def test_while_loop(): assert syntax.while_loop(4) == 1