File : messages.ads


with Ints, Reps;
use Ints, Reps;

pragma Elaborate (Reps);

package Messages is

  pragma Elaborate_Body;

  procedure Check(B: in Boolean);
  procedure Show(S: in String; Skip: in Natural := 0; NewLine: in Boolean := True);
  procedure Show(S: in String; R: in Rep; Skip: in Natural := 0);
  procedure Show(S: in String; R1,R2: in Rep; Skip: in Natural := 0);
  procedure Show(S: in String; R1,R2,R3: in Rep; Skip: in Natural := 0);
  procedure Error(S: in String; Skip: in Natural := 0);
  procedure Error(S: in String; R: in Rep; Skip: in Natural := 0);
  procedure Error(S: in String; R1,R2: in Rep; Skip: in Natural := 0);
  procedure Error(S: in String; R1,R2,R3: in Rep; Skip: in Natural := 0);

  procedure TraceEnter(Where: in String);
  procedure TraceLeave;

  function GetArg return Boolean;  -- get next command line argument
  function GetArg return Integer;
  function GetArg return String;
  function GetArg return Rep;      -- careful, input may get rounded

  ArgIndex:   Positive := 1;
  DefaultAft: Positive := 3;
  DefaultExp: Positive := 3;

  Verbosity: Natural := 0;  --- 0: just error messages and important warnings
                            --- 1: also high level program info
                            --- 2: also TraceEnter and TraceLeave
                            --- 3: also domain errors with info in numeric programs
                            --- 4: more stuff
                            --- 5: everything

private

  Indent: Natural := 0;
  Dots: constant String := ". . . . . . . . . . . . . . . . . . . . ";

end Messages;