예제 #1
0
 /// <summary>
 /// Called when an <see cref="IfBlock"/> block is read.
 /// Verifies the structure of the IF condition and calls the corresponding
 /// functions that handle the code generation for the condition.
 /// Called by <see cref="INSTRUCTION"/>.
 /// </summary>
 void IFF()
 {
     Expect(31);         // "if"
     Expect(10);         // '('
     SUPER_EXP();
     Expect(12);         // ')'
     try { QuadrupleManager.IfAfterCondition(); }
     catch (Exception e) { SemErr(e.Message); }
     Expect(7);         // '{'
     while (StartOf(1))
     {
         INSTRUCTION();
     }
     Expect(8);         // '}'
     try { QuadrupleManager.IfEnd(); }
     catch (Exception e) { SemErr(e.Message); }
 }