// ПростоеВыраж [Отношение ПростоеВыраж] static tType Expression() { tLex Op; tType T = SimpleExpr(); if (Scan.Lex == tLex.lexEQ || Scan.Lex == tLex.lexNE || Scan.Lex == tLex.lexGT || Scan.Lex == tLex.lexGE || Scan.Lex == tLex.lexLT || Scan.Lex == tLex.lexLE) { Op = Scan.Lex; if (T != tType.Int) { Error.Message( "Несоответствие операции типу операнда" ); } Scan.NextLex(); if ((T = SimpleExpr()) != tType.Int) { Error.Expected("выражение целого типа"); } Gen.Comp(Op); //Генерация условного перехода T = tType.Bool; } //иначе тип равен типу первого простого выражения return(T); }