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
def p_while(self, p): 'loop_i : WHILE LPAREN expr RPAREN instr' p[0] = syntax.while_loop(p[3], [], p[5], p.lexpos(1))