-- A lexical scanner generated by aflex
with text_io; use text_io;
with helena_lex_dfa; use helena_lex_dfa; 
with helena_lex_io; use helena_lex_io; 
--# line 1 "helena_lex.l"
--# line 9 "helena_lex.l"



with
  Ada.Strings.Unbounded,
  Helena_Yacc_Tokens,
  Pn,
  Utils.Strings;

use
  Ada.Strings.Unbounded, 
  Helena_Yacc_Tokens,
  Pn,
  Utils.Strings;

package Helena_Lex is

   function Yylex return Token;

   function get_line_number return natural;

   function get_file return unbounded_string;

   function get_token_value return Unbounded_String;

   function is_valid_symbol
     (sym : in Unbounded_String) return boolean;

   procedure initialize_lexer
     (file_name : in Unbounded_String);

   procedure finalize_lexer;

   subtype sym is Unbounded_String;

   procedure define_symbol
     (s : in sym);

   procedure undefine_symbol
     (s : in sym);

   procedure raise_lexer_exception
     (err : in string);

   function Get_Error_Msg return Unbounded_String;

   lexical_exception : exception;

private


   file_name : Unbounded_String;
   Error_Msg : Unbounded_String;

end Helena_Lex;
