private void EmitLibraryMethodInvocationExpression(BoundLibraryMethodInvocationExpression expression) { switch (expression.Method.Library.Name.ToUpperInvariant()) { case "TEXTWINDOW": { switch (expression.Method.Name.ToUpperInvariant()) { case "READ": this.instructions.Add(new BlockOnStringInputInstruction(expression.Syntax.Range)); break; case "READNUMBER": this.instructions.Add(new BlockOnNumberInputInstruction(expression.Syntax.Range)); break; } break; } } foreach (BaseBoundExpression index in expression.Arguments) { this.EmitExpression(index); } this.instructions.Add(new MethodInvocationInstruction(expression.Method.Library.Name, expression.Method.Name, expression.Syntax.Range)); }
private void EmitLibraryMethodInvocationExpression(BoundLibraryMethodInvocationExpression expression) { switch (expression.Method.Library.Name) { case "TextWindow": { switch (expression.Method.Name) { case "Read": this.instructions.Add(new BlockOnStringInputInstruction(expression.Syntax.Range)); break; case "ReadNumber": this.instructions.Add(new BlockOnNumberInputInstruction(expression.Syntax.Range)); break; } break; } } foreach (BaseBoundExpression index in expression.Arguments) { this.EmitExpression(index); } this.instructions.Add(new MethodInvocationInstruction(expression.Method.Library.Name, expression.Method.Name, expression.Syntax.Range)); }