Command Line Interface

command lineinterface

FunnelWeb V1 was implemented in AdaAda and runs on a VMS VAX.vmsvax As such it has a full VMS DCL command line interface. Here is the .CLD file.cldfile for the DCL command line interface.

! FUNNELWEB Command Definition
! ============================
! Ross Williams. 28 April 1987.

module command_table
   define verb dummy_command
   parameter p1           , label=input_file   ,value(required,type=$file)
   qualifier include_files, label=include_files,value(type=$file) ,default
   qualifier output_files , label=output_files ,value(type=$file) ,default
   qualifier delete       , label=delete                          ,default
   qualifier tex_file     , label=tex_file     ,value(type=$file) ,default
   qualifier listing_file , label=listing_file ,value(type=$file) ,default
   qualifier brief        , label=brief,value(type=$number,default=5),default
   qualifier screen       , label=screen       ,value(type=$number,default=0)
   qualifier trace        , label=trace
   qualifier file_spec    , label=file_spec
   qualifier compare

As portability was a key goal of FunnelWeb V3, it was obvious that the command line interface would have to be redesigned. The design goals for the new command line interface were:design goalscommand line interface

  1. The interface should not ıdepend on case. However, it must allow case-sensitive filenames to be transmitted on systems that have case-sensitive filenames.

  2. Each option must have a symmetric positive and negative form. For example, it is confusing for -X to turn on a feature and -Q to turn it off.

  3. The interface must be extensible to allow inclusion of more features at a later date.

  4. Options should be consistent and memorable.

The result is described in the ıFunnelWeb User's Manual.