normalize-languages 0.3.2

Tree-sitter language support and dynamic grammar loading
Documentation
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO;

package body Calculator is

   pragma Inline(Add);

   -- Add two integers and return the result
   function Add(A : Integer; B : Integer) return Integer is
   begin
      return A + B;
   end Add;

   function Subtract(A : Integer; B : Integer) return Integer is
   begin
      return A - B;
   end Subtract;

   function Multiply(A : Integer; B : Integer) return Integer is
      Result : Integer := 0;
   begin
      for I in 1 .. A loop
         Result := Result + B;
      end loop;
      return Result;
   end Multiply;

   function Classify(N : Integer) return String is
   begin
      if N < 0 then
         return "negative";
      elsif N = 0 then
         return "zero";
      else
         return "positive";
      end if;
   end Classify;

   procedure Print_Result(Label : String; Value : Integer) is
   begin
      Put(Label);
      Put(": ");
      Ada.Integer_Text_IO.Put(Value);
      New_Line;
   end Print_Result;

   procedure Run_Demo is
      X : Integer := 10;
      Y : Integer := 3;
   begin
      Print_Result("Add", Add(X, Y));
      Print_Result("Subtract", Subtract(X, Y));
      Print_Result("Multiply", Multiply(X, Y));
      Put_Line(Classify(X));
      Put_Line(Classify(-1));
      Put_Line(Classify(0));
   end Run_Demo;

end Calculator;