public void TestWhile() { var while_ = new While(); while_.Init(new Rel(new Token('>'), new Constant(42), new Constant(99)), new Stmt()); while_.Gen(10, 88); //output: // iffalse 42 > 99 goto L88 //L1: goto L 10 }
public void WhileGenTest() { using (var cout = new StringWriter()) { Node.Cout = cout; var variable = new Id(new Word("x", Tag.ID), VarType.INT, 0); var constant = new Constant(new Num(12), VarType.INT); var expresion = new Rel(Word.EQ, variable, constant); var whilenode = new While(); whilenode.Init(expresion, new Stmt()); whilenode.Gen(11, 22); var actual = cout.ToString(); Assert.AreEqual("\tiffalse x == 12 goto L22\r\nL1:\r\n\tgoto L11\r\n", actual); } }