// a * 3 + b * 2 - c private void TestComplexExpression() { // Initialize variables a, b and c // a = 5 ILocalVariable aVar = emitter.EmitLocalVarDeclaration("A", typeof(int)); emitter.EmitInt32(5); aVar.EmitAssignment(); // b = 6 ILocalVariable bVar = emitter.EmitLocalVarDeclaration("B", typeof(int)); emitter.EmitInt32(6); bVar.EmitAssignment(); // c = 7 ILocalVariable cVar = emitter.EmitLocalVarDeclaration("B", typeof(int)); emitter.EmitInt32(7); cVar.EmitAssignment(); // Emit lhs R Value aVar.EmitValue(); emitter.EmitInt32(3); emitter.EmitBinaryOperator("*"); // Emit rhs R Value bVar.EmitValue(); emitter.EmitInt32(2); emitter.EmitBinaryOperator("*"); emitter.EmitBinaryOperator("+"); cVar.EmitValue(); emitter.EmitBinaryOperator("-"); emitter.EmitWrite(typeof(int)); }