Execute HQ9+/Ada: Difference between revisions
Content added Content deleted
(Implemented Accumulator) |
m (Fixed syntax highlighting.) |
||
Line 1: | Line 1: | ||
{{implementation|HQ9+}}{{collection|RCHQ9+}} |
{{implementation|HQ9+}}{{collection|RCHQ9+}} |
||
< |
<syntaxhighlight lang="ada">with Ada.Text_IO; |
||
procedure HQ9Plus is |
procedure HQ9Plus is |
||
-- took example from bottle-task |
-- took example from bottle-task |
||
Line 37: | Line 37: | ||
begin |
begin |
||
Interpret_HQ9Plus (Test_Code); |
Interpret_HQ9Plus (Test_Code); |
||
end HQ9Plus;</ |
end HQ9Plus;</syntaxhighlight> |
Latest revision as of 10:04, 1 September 2022
Execute HQ9+/Ada is an implementation of HQ9+.
Other implementations of HQ9+.
Execute HQ9+/Ada is part of RCHQ9+. You may find other members of RCHQ9+ at Category:RCHQ9+.
with Ada.Text_IO;
procedure HQ9Plus is
-- took example from bottle-task
procedure Bottles is
begin
for X in reverse 1..99 loop
Ada.Text_IO.Put_Line(Integer'Image(X) & " bottles of beer on the wall");
Ada.Text_IO.Put_Line(Integer'Image(X) & " bottles of beer");
Ada.Text_IO.Put_Line("Take one down, pass it around");
Ada.Text_IO.Put_Line(Integer'Image(X - 1) & " bottles of beer on the wall");
Ada.Text_IO.New_Line;
end loop;
end Bottles;
procedure Interpret_HQ9Plus (Input : in String) is
Accumulator : Natural := 0;
begin
for I in Input'Range loop
case Input (I) is
when 'H'|'h' =>
Ada.Text_IO.Put_Line ("Hello, World!");
when 'Q'|'q' =>
Ada.Text_IO.Put_Line (Input);
when '9' =>
Bottles;
when '+' =>
Accumulator := Accumulator + 1;
when others =>
null;
end case;
end loop;
end Interpret_HQ9Plus;
Test_Code : String := "hq9+HqQ+Qq";
begin
Interpret_HQ9Plus (Test_Code);
end HQ9Plus;