1-- Copyright (c) 1990 Regents of the University of California.
2-- All rights reserved.
3--
4--    The primary authors of ayacc were David Taback and Deepak Tolani.
5--    Enhancements were made by Ronald J. Schmalz.
6--
7--    Send requests for ayacc information to ayacc-info@ics.uci.edu
8--    Send bug reports for ayacc to ayacc-bugs@ics.uci.edu
9--
10-- Redistribution and use in source and binary forms are permitted
11-- provided that the above copyright notice and this paragraph are
12-- duplicated in all such forms and that any documentation,
13-- advertising materials, and other materials related to such
14-- distribution and use acknowledge that the software was developed
15-- by the University of California, Irvine.  The name of the
16-- University may not be used to endorse or promote products derived
17-- from this software without specific prior written permission.
18-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
19-- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
20-- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22-- Module       : lexical_analyzer.ada
23-- Component of : ayacc
24-- Version      : 1.2
25-- Date         : 11/21/86  12:30:26
26-- SCCS File    : disk21~/rschm/hasee/sccs/ayacc/sccs/sxlexical_analyzer.ada
27
28-- $Header: lexical_analyzer.a,v 0.1 86/04/01 15:05:14 ada Exp $
29-- $Log:	lexical_analyzer.a,v $
30-- Revision 0.1  86/04/01  15:05:14  ada
31--  This version fixes some minor bugs with empty grammars
32--  and $$ expansion. It also uses vads5.1b enhancements
33--  such as pragma inline.
34--
35--
36-- Revision 0.0  86/02/19  18:36:57  ada
37--
38-- These files comprise the initial version of Ayacc
39-- designed and implemented by David Taback and Deepak Tolani.
40-- Ayacc has been compiled and tested under the Verdix Ada compiler
41-- version 4.06 on a vax 11/750 running Unix 4.2BSD.
42--
43
44with Source_File;
45package Lexical_Analyzer is
46
47
48    function Get_Lexeme_Text return String;   -- Scanned text.
49
50
51    type Ayacc_Token is
52	(Token, Start,
53	 Left, Right, Nonassoc, Prec,
54         With_Clause, Use_Clause,
55	 Identifier, Character_Literal,
56         Comma, Colon, Semicolon, Vertical_Bar, Left_Brace,
57	 Mark, Eof_Token);
58
59
60    function Get_Token return Ayacc_Token;
61
62
63    function Line_Number return Natural;  -- Current line of source file
64
65
66    procedure Handle_Action(Rule, Rule_Length : Integer);
67
68
69    procedure Print_Context_Lines renames Source_File.Print_Context_Lines;
70
71
72    procedure Dump_Declarations;
73
74
75    Illegal_Token         : exception;
76
77
78end Lexical_Analyzer;
79