Exemplo n.º 1
0
        public override void Codegen(CIntermediateLang cil, IndentingStringBuilder sb)
        {
            Lhs.Codegen(cil, sb);
            var lhsTmp = cil.LastUsedVar;

            Rhs.Codegen(cil, sb);
            var rhsTmp = cil.LastUsedVar;

            var tmp = NameGenerator.NewTemp();

            sb.LineDecl(SourceInfo);
            sb.AppendLine(string.Format("{0} {1} = {2} {3} {4};", TryInferType(cil), tmp, lhsTmp, OpString(), rhsTmp));
            cil.LastUsedVar = tmp;
        }