DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦116cba937⟧ Ada Source

    Length: 11264 (0x2c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Command_Line_Interface, seg_030b0f

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



with String_Lists;
use String_Lists;
with String_Pkg;
use String_Pkg;

--------------------------------------------------------------------

package Command_Line_Interface is
--| Provides primitives for getting at the command line arguments.

--| Overview
--| This package provides a universal and portable interface to
--| the arguments typed on a command line when a program is invoked.
--| Each command line argument is either a Word (sequence of non-blank
--| characters) or a quoted string, with embedded quotes doubled.
--|
--| Both named and positional arguments may be given on the command
--| line.  However, once a named parameter is used, all the subseqent
--| parameters on the command line must be named parameters.  For example,
--| the commands
--|-
--|     compile  abc pqr xyz library => plib
--|     compile  abc,pqr,unit=>xyz,library=>plib
--|+
--| have one named argument and three positional arguments.  This
--| package separates the named parameters from the positional
--| parameters, ignores spaces around the "bound to" (=>) symbol, and
--| allows parameters to be separated by either spaces or commas,
--| so these command lines are indistinguishable.
--|
--| At program elaboration time, the command line string is automatically
--| obtained from the host operating system and parsed into
--| individual arguments.  The following operations may then be used:
--|-
--| Named_arg_count()\x09\x09Returns number of named arguments entered
--| Positional_arg_count()\x09Returns number of positional arguments
--| Positional_arg_value(N)\x09Returns the Nth positional argument
--| Named_arg_value(Name, Dflt)\x09Returns value of a named argument
--| Arguments()\x09\x09\x09Returns the entire command line
--|+

----------------------------------------------------------------

    Max_Args : constant := 255;
--| Maximum number of command line arguments (arbitrary).

    subtype Argument_Count is Integer range 0 .. Max_Args;
--| For number of arguments
    subtype Argument_Index is Argument_Count range 1 .. Argument_Count'Last;
--| Used to number the command line arguments.

    No_Arg : exception;
    --| Raised when request made for nonexistent argument

    Missing_Positional_Arg : exception;
    --| Raised when command line is missing positional argument (A,,B)

    Invalid_Named_Association : exception;
    --| Raised when command line is missing named argument value (output=> ,A,B)

    Unreferenced_Named_Arg : exception;
    --| Raised when not all named parameters have been retrieved

    Invalid_Parameter_Order : exception;
    --| Raised when a positional parameter occurs after a named parameter
    --  in the command line

--Invalid_Aggregate : exception;
    --| Raised when an aggregate does not begin and end with parentheses
    --  in Parse_Aggregate.

    Unbalanced_Parentheses : exception;
    --| Raised when the number of left paren's does not match the number
    --| of right paren's.

    Invalid_Parameter : exception;
    --| Raised when the conversion of a string to a parameter type is not
    --| possible.

----------------------------------------------------------------

    procedure Initialize (Tool_Name : in String);
    --| Initializes command_line_interface
    --| N/A: modifies, errors, raises

---------------------------------------------------------------------

    function Named_Arg_Count --| Return number of named arguments
                return Argument_Count;
--| N/A: modifies, errors, raises


    function Positional_Arg_Count --| Return number of positional arguments
                return Argument_Count;
--| N/A: modifies, errors, raises


----------------------------------------------------------------

    function Positional_Arg_Value
                ( --| Return an argument value
                 N : Argument_Index         --| Position of desired argument
                 ) return String;              --| Raises: no_arg

--| Effects: Return the Nth argument.  If there is no argument at
--| position N, no_arg is raised.

--| N/A: modifies, errors


    function Positional_Arg_Value
                (     --| Return an argument value
                 N :
                 Argument_Index             --| Position of desired argument
                 ) return String_Type;             --| Raises: no_arg

--| Effects: Return the Nth argument.  If there is no argument at
--| position N, no_arg is raised.

--| N/A: modifies, errors

--------------------------------------------------------------------

    function Named_Arg_Value (--| Return a named argument value
                              Name : String;
                              Default : String) return String;

--| Effects: Return the value associated with Name on the command
--| line.  If there was none, return Default.

--| N/A: modifies, errors

    function Named_Arg_Value (--| Return a named argument value
                              Name : String;
                              Default : String) return String_Type;

--| Effects: Return the value associated with Name on the command
--| line.  If there was none, return Default.

--| N/A: modifies, errors


    function Named_Arg_Value (--| Return a named argument value
                              Name : String;
                              Default : String_Type) return String_Type;

--| Effects: Return the value associated with Name on the command
--| line.  If there was none, return Default.

--| N/A: modifies, errors

----------------------------------------------------------------

    function Arguments --| Return the entire argument string
                return String;
--| Effects: Return the entire command line, except for the name
--| of the command itself.

--| N/A: modifies, errors, raises

----------------------------------------------------------------

    function Parse_Aggregate (Aggregate_Text : in String_Type)
                             return String_Lists.List;

    function Parse_Aggregate (Aggregate_Text : in String)
                             return String_Lists.List;
    --| Effects: Returns components of Aggregate_Text as a String_List.
    --| Raises : Invalid_Aggregate

----------------------------------------------------------------

    generic
        type Parameter_Type is (<>);
        Type_Name : in String;
    function Convert (Parameter_Text : in String) return Parameter_Type;
    --| Raises: Invalid_Parameter

----------------------------------------------------------------

    procedure Finalize;    --| Raises: unrecognized parameters

--| Effects: If not all named parameters have been retrieved
--| unrecognized parameters is raised.
--| N/A: modifies, errors

end Command_Line_Interface;

----------------------------------------------------------------
-- Copyright (c) 1990 Regents of the University of California.
-- All rights reserved.
--
--    The primary authors of ayacc were David Taback and Deepak Tolani.
--    Enhancements were made by Ronald J. Schmalz.
--
--    Send requests for ayacc information to ayacc-info@ics.uci.edu
--    Send bug reports for ayacc to ayacc-bugs@ics.uci.edu
--
-- Redistribution and use in source and binary forms are permitted
-- provided that the above copyright notice and this paragraph are
-- duplicated in all such forms and that any documentation,
-- advertising materials, and other materials related to such
-- distribution and use acknowledge that the software was developed
-- by the University of California, Irvine.  The name of the
-- University may not be used to endorse or promote products derived
-- from this software without specific prior written permission.
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

-- Module       : file_names.ada
-- Component of : ayacc
-- Version      : 1.2
-- Date         : 11/21/86  12:29:16
-- SCCS File    : disk21~/rschm/hasee/sccs/ayacc/sccs/sxfile_names.ada

-- $Header: file_names.a,v 0.1 86/04/01 15:04:19 ada Exp $
-- $Log:\x09file_names.a,v $

-- Revision 0,2  88/03/16
-- Set file names modified to include a file extension parameter.

-- Revision 0.1  86/04/01  15:04:19  ada
--  This version fixes some minor bugs with empty grammars
--  and $$ expansion. It also uses vads5.1b enhancements
--  such as pragma inline.
--
--
-- Revision 0.0  86/02/19  18:36:22  ada
--
-- These files comprise the initial version of Ayacc
-- designed and implemented by David Taback and Deepak Tolani.
-- Ayacc has been compiled and tested under the Verdix Ada compiler
-- version 4.06 on a vax 11/750 running Unix 4.2BSD.
--

-- The collection of all file names used by Ayacc --

E3 Meta Data

    nblk1=a
    nid=0
    hdr6=14
        [0x00] rec0=1b rec1=00 rec2=01 rec3=044
        [0x01] rec0=16 rec1=00 rec2=02 rec3=018
        [0x02] rec0=1a rec1=00 rec2=03 rec3=00c
        [0x03] rec0=1d rec1=00 rec2=04 rec3=032
        [0x04] rec0=1e rec1=00 rec2=05 rec3=02a
        [0x05] rec0=1c rec1=00 rec2=06 rec3=06c
        [0x06] rec0=1d rec1=00 rec2=07 rec3=004
        [0x07] rec0=12 rec1=00 rec2=08 rec3=068
        [0x08] rec0=1d rec1=00 rec2=09 rec3=03e
        [0x09] rec0=02 rec1=00 rec2=0a rec3=000
    tail 0x2172a447884a64fbf84d0 0x42a00088462060003