Hosted by
 |
with Ada.Strings.Unbounded;
use Ada.Strings.Unbounded;
with Ada.Characters.Latin_1;
use Ada.Characters.Latin_1;
with Ada.Text_IO;
use Ada;
package Parsers is
type Parser is private;
Whitespace : constant String := Space & HT & CR & LF;
Parse_Error : exception;
function Current_Input
return Parser;
function Open
(File_Name : in String)
return Parser;
procedure Close
(Parser : in out Parsers.Parser);
procedure Set_Auto_Read
(Parser : in Parsers.Parser;
Auto_Read : in Boolean);
function Next_Line
(Parser : in Parsers.Parser)
return Boolean;
function End_Of_Line
(Parser : in Parsers.Parser)
return Boolean;
function End_Of_File
(Parser : in Parsers.Parser)
return Boolean;
procedure Skip
(Parser : in Parsers.Parser;
Count : in Positive := 1);
function Skip
(Parser : in Parsers.Parser)
return Character;
function Skip
(Parser : in Parsers.Parser;
Count : in Positive)
return String;
function Char
(Parser : in Parsers.Parser)
return Character;
function Rest_Of_Line
(Parser : in Parsers.Parser)
return String;
function Found
(Parser : in Parsers.Parser;
Char : in Character)
return Boolean;
function Found
(Parser : in Parsers.Parser;
Text : in String)
return Boolean;
function Found_Any
(Parser : in Parsers.Parser;
Chars : in String)
return Boolean;
function Skip
(Parser : in Parsers.Parser;
Char : in Character)
return Boolean;
procedure Skip
(Parser : in Parsers.Parser;
Char : in Character);
function Skip
(Parser : in Parsers.Parser;
Text : in String)
return Boolean;
procedure Skip
(Parser : in Parsers.Parser;
Text : in String);
function Skip_Any
(Parser : in Parsers.Parser;
Chars : in String)
return Boolean;
procedure Skip_Any
(Parser : in Parsers.Parser;
Chars : in String);
function Scan
(Parser : in Parsers.Parser;
Char : in Character)
return Boolean;
function Scan
(Parser : in Parsers.Parser;
Text : in String)
return Boolean;
function Scan_Any
(Parser : in Parsers.Parser;
Chars : in String)
return Boolean;
procedure Scan
(Parser : in Parsers.Parser;
Char : in Character);
procedure Scan
(Parser : in Parsers.Parser;
Text : in String);
procedure Scan_Any
(Parser : in Parsers.Parser;
Chars : in String);
function Read_Natural
(Parser : in Parsers.Parser)
return Natural;
function Read_Positive
(Parser : in Parsers.Parser)
return Positive;
function Read_Integer
(Parser : in Parsers.Parser)
return Integer;
function Read_Float
(Parser : in Parsers.Parser)
return Float;
function Read_Word
(Parser : in Parsers.Parser;
Delimiter_Chars : in String := Whitespace)
return String;
function Position
(Parser : in Parsers.Parser)
return String;
procedure Warning
(Parser : in Parsers.Parser;
Message : in String);
procedure Error
(Parser : in Parsers.Parser;
Message : in String);
private
type Parser_Record is record
File : Text_IO.File_Type;
File_Name : Unbounded_String;
Line : Unbounded_String;
Line_Number : Natural := 0;
Cursor : Positive := 1;
End_Of_File : Boolean := False;
Auto_Read : Boolean := False;
end record;
type Parser is access Parser_Record;
end Parsers;
|