with League.Strings;
with League.String_Vectors;
with Ada.Containers.Vectors;
with Ada.Containers.Ordered_Maps;
with Anagram.Grammars.Parser_Utils;
package Ag_Tokens is
package PU renames Anagram.Grammars.Parser_Utils;
type Value_Kinds is
(None, Image, Vector,
Part, Named_Part, Production, Named_Production, Production_List);
type YYSType (Kind : Value_Kinds := None) is record
case Kind is
when None =>
null;
when Image =>
Image : League.Strings.Universal_String;
when Vector =>
Vector : League.String_Vectors.Universal_String_Vector;
when Named_Part =>
Named_Part : PU.Named_Part;
when Part =>
Part : PU.Part_Access;
when Production =>
Production : PU.Production_Access;
when Named_Production =>
Named_Production : PU.Named_Production;
when Production_List =>
Production_List : PU.Production_List_Access;
end case;
end record;
YYLVal, YYVal : YYSType;
type Token is
(End_Of_Input, Error, Equal_Token, Inherited_Token,
Synthesized_Token, Local_Token, Attributes_Token,
Rules_Token, Priority_Token, Identifier_Token,
Integer_Token, Token_Token, Open_Rule_Token,
Rule_Body_Token, Close_Rule_Token, For_Token,
With_Token, Regexp_Token, ';',
'|', '(', ')',
'<', '>', '{',
'}', '[', ']',
':', ',' );
Syntax_Error : exception;
end Ag_Tokens;