with Ada.Strings.Fixed;
with Ada.Text_IO;
package body OpenToken.Production.Parser.LALR is
function State_Image (Item : in State_Index) return String
is
use Ada.Strings;
use Ada.Strings.Fixed;
begin
return Trim (State_Index'Image (Item), Both);
end State_Image;
procedure Put (Item : in Parse_Action_Rec)
is
use Ada.Text_IO;
begin
case Item.Verb is
when Shift =>
Put ("shift and goto state" & State_Index'Image (Item.State));
when Reduce =>
Put
("reduce" & Integer'Image (Item.Token_Count) & " tokens to " & Token.Token_Image (Token.ID (Item.LHS.all)));
when Accept_It =>
Put ("accept it");
when Error =>
Put ("ERROR");
end case;
end Put;
end OpenToken.Production.Parser.LALR;