![]() |
Institut für Astronomie und AstrophysikAbteilung AstronomieSand 1, D-72076 Tübingen, Germany |
![]() |
cafe - syntax
Describe command line syntax
cafe
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 ().
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 "+".
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.
> plot, data:1
-> plot data of group 1.
- If a subtask needs some special parameters they will be passed
in brackets "[]".
> 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.
> setplot, xtitle=time
-> sets internal parameter xtitle at string value "time".
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".
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).
The file "plot.cmd" contains
> plot,data+%p1%
Then calling the script expands to:
> @plot,model
-> process "plot,data+model"
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".
If the command line starts with a "#" the command will not be
echoed into the log file.
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 (").
> ! data = "test.dat"
> setplot, title=Plot of: %data%
-> insert "test.dat" in %data% resulting in: "Plot of: test.dat"
Non existing cafe commands will be interpreted as shell
commands. This allows easy access to the environment.
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
$Id: cafe_syntax.pro,v 1.10 2004/01/26 10:20:47 goehler Exp $
[Home Page] [Software, Documentation] [IDL Documentation] [Quick Reference] [Feedback]