[AIT logo]

Institut für Astronomie und Astrophysik

Abteilung Astronomie

Sand 1, D-72076 Tübingen, Germany
[Uni logo]


cafe - syntax Source code in cafe_syntax.pro

cafe - syntax

Name
           cafe - syntax
Purpose
           Describe command line syntax
Category
           cafe
Description
 In cafe commands have the general form:
    > command,param1,..paramn [,/option1][,/option2]...[,/option42]
 This line consists of a command name ('command') and some required
 parameters, sometimes the group to which the command should applied
 to, and some optional flags. These optional flags always start with "/".
 All parameters/options are separated by ','. The brackets ("[..]")
 above denote optional parameters.
 In general it is not necessary to quote strings (as for example file
 names). Quoting with "" should be done if
  - the string looks like a number
  - the string starts with a '/' (e.g. absolute path). Otherwise the
    string will be interpreted as an option.
  - The string is enclosed in parentheses () or [].
  - White spaces in the string are important.
  If a parameter should be a number most times it is sufficient to
  write the number as usual in the format:
      digits[.digits E digits]
  with digits representing 0..9. If complex expressions are
  used they should be enclosed in parentheses (..) to avoid implicit
  string quoting. For example numbers in expressions should be placed
  in ().
CONVENTIONS:
  The parameter syntax follows some conventions:
   - A command may access several subtasks to perform its goal. These
     are defined with string identifier. Often it is possible to
     combine these subtasks; this will be done with a "+".
Example
       The plot command could be used with different plot styles
       (these are executed by the subtasks) which may be combined
       with "+":
         > plot, data+model
           -> plot data AND model in a single plot panel.
     Help for these subtasks can be get with
         > help, <command>, .
   - If a subtask refers to a certain group, the group will be
     specified with ":" + group number.
Example
         > plot, data:1
           -> plot data of group 1.
   - If a subtask needs some special parameters they will be passed
     in brackets "[]".
Example
         > data, lc.fits[time,rate]
           -> load data with column time=x, rate=y.
   - Setting of internal state parameters is done with the syntax:
        identifier=value
     while the identifier is a string defining what parameter to set
     and value defines at which value to set the parameter.
Example
         > setplot, xtitle=time
           -> sets internal parameter xtitle at string value "time".
Comments
  A command line which does not start with a alphabetic value or a
  "!", "@", "#" (s.b.) is interpreted as a comment and does nothing.
  For convenience it is advised to denote comments with a semicolon
  as used in IDL (";").
 BATCH-PROCESSING:
    If the command line starts with a "@" the following word is
    interpreted as a file name from which cafe commands are read.
    The file is called a "script".
Example
      cafe> @test.cmd
        -> read and execute commands from test.cmd
    If an command needs some user input the input will be read from
    the batch file. Lines starting with ";" are ignored in this case
    (see comments above).
    It is possible to pass parameters to the script processing which
    must be comma separated. The parameters are visible in the script
    as the IDL-variables "p1", "p2"..."p9".
    cafe> @plot,sin,5
    -> pass the parameter p1="sin" and p2=5 to the script.
    This mechanism could be used to make the script flexible. The IDL
    variables could be expanded either using the "()"-Syntax or
    "%"-expressions (see below).
Example
    The file "plot.cmd" contains
     > plot,data+%p1%
    Then calling the script expands to:
     > @plot,model
     -> process "plot,data+model"
ACCESSING IDL:
    If the command line starts with a "!" the following will be
    interpreted as an IDL command.
    This has two purposes:
      1.) To run a separate IDL process (e.g. compute print,2+2)
      2.) To access the cafe inner state for either debugging
          purposes or to run cafe commands directly without syntax
          bypassing by the cafe environment.
          The main interesting part would probably be the cafe
          environment, stored in the struct called "env".
SILENT PROCESSING:
    If the command line starts with a "#" the command will not be
    echoed into the log file.
EXPRESSION EVALUATION:
    Parameters with expressions which should be evaluated when
    calling the command may be encloses within "%". These expressions
    will be transformed into strings.
    The drawback is that scalar values only can be handled. To avoid
    this expression expansion the string must be quoted with double
    quotation marks (").
Example
    > ! data = "test.dat"
    > setplot, title=Plot of: %data%
    -> insert "test.dat" in %data% resulting in: "Plot of: test.dat"
PROCESSING OF SHELL COMMANDS:
    Non existing cafe commands will be interpreted as shell
    commands. This allows easy access to the environment.
Example
        cafe> ls -l
         -> Execute shell command: ls -l
          > -rw-r--r--    1 eckart   users        3718 Mär 16 14:37 cafe_cafe.pro
          > -rw-r--r--    1 eckart   users        2831 Mär 16 14:45 cafe_chgrp.pro
          > -rw-r--r--    1 eckart   users        6559 Mär 16 14:46 cafe_chpar.pro
          > -rw-r--r--    1 eckart   users        5695 Mär 16 14:48 cafe_clean.pro
Revision History
           $Id: cafe_syntax.pro,v 1.10 2004/01/26 10:20:47 goehler Exp $

Last modified by pro2html on 2005 January 04 at 16:22 UTC

[Home Page] [Software, Documentation] [IDL Documentation] [Quick Reference] [Feedback]

Jörn Wilms (wilms@astro.uni-tuebingen.de)
Updated automatically