1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
------------------------------------------------------------------------------
-- G P S --
-- --
-- Copyright (C) 2003-2015, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
-- Software Foundation; either version 3, or (at your option) any later --
-- version. This library is distributed in the hope that it will be useful, --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- --
-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. --
-- --
-- --
-- --
-- --
-- --
-- You should have received a copy of the GNU General Public License and --
-- a copy of the GCC Runtime Library Exception along with this program; --
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
-- <http://www.gnu.org/licenses/>. --
-- --
------------------------------------------------------------------------------
with GNAT.IO; use GNAT.IO;
with GNATCOLL.Scripts; use GNATCOLL.Scripts;
with GNATCOLL.Traces; use GNATCOLL.Traces;
package body TestConsole is
Me : constant Trace_Handle := Create ("CONSOLE");
procedure Set_Data_Primitive
(Instance : Class_Instance; Console : access Test_Console) is
begin
Set (Console.Instances, Get_Script (Instance), Instance);
end Set_Data_Primitive;
function Get_Instance
(Script : access Scripting_Language_Record'Class;
Console : access Test_Console) return Class_Instance is
begin
return Get (Console.Instances, Script);
end Get_Instance;
procedure Insert_Text (Console : access Test_Console; Txt : String) is
pragma Unreferenced (Console);
begin
Put (Txt);
end Insert_Text;
procedure Insert_Prompt (Console : access Test_Console; Txt : String) is
pragma Unreferenced (Console, Txt);
begin
null;
end Insert_Prompt;
procedure Insert_Error (Console : access Test_Console; Txt : String) is
pragma Unreferenced (Console);
begin
Put_Line ("Error: " & Txt);
end Insert_Error;
procedure Insert_Log (Console : access Test_Console; Txt : String) is
pragma Unreferenced (Console);
begin
Trace (Me, Txt);
end Insert_Log;
procedure Free (Console : in out Test_Console) is
begin
Free (Console.Instances);
end Free;
function Read
(Console : access Test_Console;
Size : Integer;
Whole_Line : Boolean) return String
is
pragma Unreferenced (Console);
-- At most 20 characters
Str : String (1 .. Integer'Min (20, Size));
Last : Integer := Str'Last;
begin
if Whole_Line then
Str (Last) := ASCII.LF;
Last := Last - 1;
end if;
for S in Str'First .. Last loop
Str (S) := Character'Val (Character'Pos ('A') + S - Str'First);
end loop;
return Str;
end Read;
end TestConsole;
|