# Sheet definitions for IDL (Interactive Data Language)
# Copyright (c) 1997-2000 Robert S. Mallozzi, Manfred Schwarb, Akim Demaille
#                         Miguel Santana.

#
# This file is part of a2ps.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING.  If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#

style IDL is

written by "Robert S. Mallozzi <Robert.Mallozzi@msfc.nasa.gov>, Manfred Schwarb <schwarb@geo.umnw.ethz.ch>"
version is 1.1
requires a2ps version 4.12

documentation is
   "Style sheet for IDL 5.2 (Interactive Data Language)."
   "Obsolete routines are not supported."
   "http://www.rsinc.com."
end documentation

alphabets are
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_.01234567889"

case insensitive

keywords in Keyword_strong are
# statements:
    "if", "then", "else", "endif", "for", "do", "endfor", "while", "endwhile",
    "endelse", "repeat", "until", "endrep", "case", "of", "endcase",
    "goto", "begin", "end", "common", "pro", "function",
    "forward_function", "procedure_name",
# operators:
    "mod", "not", "or", "and", "ge", "gt", "lt", "le", "eq", "ne", "xor",
    ">", "<",
# general routines:
    "a_correlate",
    "abs",
    "acos",
    "alog",
    "alog10",
    "amoeba",
    "annotate",
    "arg_present",
    "arrow",
    "ascii_template",
    "asin",
    "assoc",
    "atan",
    "axis",
    "bar_plot",
    "beseli",
    "beselj",
    "besely",
    "beta",
    "bilinear",
    "bin_date",
    "bindgen",
    "binomial",
    "blas_axpy",
    "blk_con",
    "box_cursor",
    "breakpoint",
    "broyden",
    "bytarr",
    "byte",
    "byteorder",
    "bytscl",
    "c_correlate",
    "caldat",
    "calendar",
    "call_external",
    "call_function",
    "call_method",
    "call_procedure",
    "catch",
    "cd",
    "ceil",
    "chebyshev",
    "check_math",
    "chisqr_cvf",
    "chisqr_pdf",
    "choldc",
    "cholsol",
    "cindgen",
    "cir_3pnt",
    "close",
    "clust_wts",
    "cluster",
    "color_convert",
    "color_quan",
    "comfit",
    "complex",
    "complexarr",
    "complexround",
    "compute_mesh_normals",
    "cond",
    "congrid",
    "conj",
    "constrained_min",
    "contour",
    "convert_coord",
    "convol",
    "coord2to3",
    "correlate",
    "cos",
    "cosh",
    "cramer",
    "create_struct",
    "create_view",
    "crossp",
    "crvlength",
    "ct_luminance",
    "cti_test",
    "cursor",
    "curvefit",
    "cv_coord",
    "cw_animate",
    "cw_animate_load",
    "cw_animate_run",
    "cw_animate_getp",
    "cw_arcball",
    "cw_bgroup",
    "cw_clr_index",
    "cw_colorsel",
    "cw_defroi",
    "cw_dice",
    "cw_field",
    "cw_form",
    "cw_fslider",
    "cw_orient",
    "cw_pdmenu",
    "cw_rgbslider",
    "cw_tmpl",
    "cw_zoom",
    "dblarr",
    "dcindgen",
    "dcomplex",
    "dcomplexarr",
    "define_key",
    "defroi",
    "defsysv",
    "delvar",
    "demo_mode",
    "deriv",
    "derivsig",
    "determ",
    "device",
    "dfpmin",
    "dialog_message",
    "dialog_pickfile",
    "dialog_printjob",
    "dialog_printersetup",
    "digital_filter",
    "dilate",
    "dindgen",
    "dissolve",
    "dist",
    "do_apple_script",
    "doc_library",
    "double",
    "efont",
    "eigenql",
    "eigenvec",
    "elmhes",
    "empty",
    "eof",
    "erase",
    "erode",
    "errorf",
    "errplot",
    "execute",
    "exit",
    "exp",
    "expand",
    "expand_path",
    "expint",
    "extrac",
    "extract_slice",
    "f_cvf",
    "f_pdf",
    "factorial",
    "fft",
    "filepath",
    "findfile",
    "findgen",
    "finite",
    "fix",
    "flick",
    "float",
    "floor",
    "flow3",
    "fltarr",
    "flush",
    "format_axis_values",
    "free_lun",
    "fstat",
    "fulstr",
    "funct",
    "fv_test",
    "fx_root",
    "fz_roots",
    "gamma",
    "gamma_ct",
    "gauss_cvf",
    "gauss_pdf",
    "gauss2dfit",
    "gaussfit",
    "gaussint",
    "get_kbrd",
    "get_lun",
    "getenv",
    "grid3",
    "gs_iter",
    "h_eq_ct",
    "h_eq_int",
    "hanning",
    "hdf_browser",
    "hdf_read",
    "heap_gc",
    "help",
    "hilbert",
    "hist_2d",
    "hist_equal",
    "histogram",
    "hls",
    "hqr",
    "hsv",
    "ibeta",
    "identity",
    "igamma",
    "image_cont",
    "imaginary",
    "indgen",
    "int_2d",
    "int_3d",
    "int_tabulated",
    "intarr",
    "interpol",
    "interpolate",
    "invert",
    "ioctl",
    "ishft",
    "journal",
    "julday",
    "keyword_set",
    "krig2d",
    "kurtosis",
    "kw_test",
    "l64indgen",
    "label_region",
    "ladfit",
    "leefilt",
    "linbcg",
    "lindgen",
    "linfit",
    "linkimage",
    "live_contour",
    "live_control",
    "live_destroy",
    "live_export",
    "live_image",
    "live_info",
    "live_line",
    "live_oplot",
    "live_plot",
    "live_print",
    "live_rect",
    "live_style",
    "live_surface",
    "live_text",
    "ljlct",
    "ll_arc_distance",
    "lmfit",
    "lmgr",
    "lngamma",
    "lnp_test",
    "loadct",
    "lonarr",
    "long",
    "lon64arr",
    "long64",
    "lsode",
    "lu_complex",
    "ludc",
    "lumprove",
    "lusol",
    "m_correlate",
    "machar",
    "make_array",
    "map_continents",
    "map_grid",
    "map_image",
    "map_patch",
    "map_set",
    "max",
    "md_test",
    "mean",
    "meanabsdev",
    "median",
    "mesh_obj",
    "message",
    "min",
    "min_curve_surf",
    "mk_html_help",
    "modifyct",
    "moment",
    "mpeg_close",
    "mpeg_open",
    "mpeg_put",
    "mpeg_save",
    "multi",
    "n_elements",
    "n_params",
    "n_tags",
    "newton",
    "norm",
    "obj_class",
    "obj_destroy",
    "obj_isa",
    "obj_new",
    "obj_valid",
    "objarr",
    "on_error",
    "on_ioerror",
    "online_help",
    "open",
    "openr",
    "openu",
    "openw",
    "oplot",
    "oploterr",
    "p_correlate",
    "pcomp",
    "plot",
    "plot_3dbox",
    "plot_field",
    "ploterr",
    "plots",
    "pnt_line",
    "point_lun",
    "polar_contour",
    "polar_surface",
    "poly",
    "poly_2d",
    "poly_area",
    "poly_fit",
    "polyfill",
    "polyfillv",
    "polyfitw",
    "polyshade",
    "polywarp",
    "popd",
    "powell",
    "primes",
    "print",
    "printf",
    "printd",
    "profile",
    "profiler",
    "profiles",
    "project_vol",
    "ps_show_fonts",
    "psafm",
    "pseudo",
    "ptr_free",
    "ptr_new",
    "ptr_valid",
    "ptrarr",
    "pushd",
    "qromb",
    "qromo",
    "qsimp",
    "query_bmp",
    "query_dicom",
    "query_jpeg",
    "query_pict",
    "query_png",
    "query_ppm",
    "query_srf",
    "query_tiff",
    "r_correlate",
    "r_test",
    "randomn",
    "randomu",
    "ranks",
    "rdpix",
    "read",
    "readf",
    "read_ascii",
    "read_bmp",
    "read_dicom",
    "read_gif",
    "read_interfile",
    "read_jpeg",
    "read_pict",
    "read_png",
    "read_ppm",
    "read_spr",
    "read_srf",
    "read_sylk",
    "read_tiff",
    "read_wave",
    "read_x11_bitmap",
    "read_xwd",
    "reads",
    "readu",
    "rebin",
    "recall_commands",
    "recon3",
    "reduce_colors",
    "reform",
    "regress",
    "replicate",
    "replicate_inplace",
    "resolve_all",
    "resolve_routine",
    "restore",
    "retall",
    "return",
    "reverse",
    "rewind",
    "riemann",
    "rk4",
    "roberts",
    "rot",
    "rotate",
    "round",
    "routine_info",
    "rs_test",
    "rstrpos",
    "s_test",
    "save",
    "scale3",
    "scale3d",
    "search2d",
    "search3d",
    "set_plot",
    "set_shading",
    "set_symbol",
    "setup_keys",
    "sfit",
    "shade_surf",
    "shade_surf_irr",
    "shade_volume",
    "shift",
    "show3",
    "showfont",
    "sin",
    "sindgen",
    "sinh",
    "size",
    "skewness",
    "skipf",
    "slicer3",
    "slide_image",
    "smooth",
    "sobel",
    "sort",
    "spawn",
    "sph_4pnt",
    "sph_scat",
    "spl_init",
    "spl_interp",
    "spline",
    "spline_p",
    "sprsab",
    "sprsax",
    "sprsin",
    "sqrt",
    "standardize",
    "stddev",
    "stop",
    "str_sep",
    "strarr",
    "strcompress",
    "stretch",
    "string",
    "strlen",
    "strlowcase",
    "strmessage",
    "strmid",
    "strpos",
    "strput",
    "strtrim",
    "struct_assign",
    "strupcase",
    "surface",
    "surfr",
    "svdc",
    "svdfit",
    "svsol",
    "swap_endian",
    "systime",
    "t_cvf",
    "t_pdf",
    "t3d",
    "tag_names",
    "tan",
    "tanh",
    "taprd",
    "tapwrt",
    "tek_color",
    "temporary",
    "thin",
    "threed",
    "time_test2",
    "tm_test",
    "total",
    "trace",
    "transpose",
    "tri_surf",
    "triangulate",
    "trigrid",
    "triql",
    "trired",
    "trisol",
    "trnlog",
    "ts_coef",
    "ts_diff",
    "ts_fcast",
    "ts_smooth",
    "tv",
    "tvcrs",
    "tvlct",
    "tvrd",
    "tvscl",
    "uindgen",
    "uint",
    "uintarr",
    "ul64indgen",
    "ulindgen",
    "ulon64arr",
    "ulonarr",
    "ulong",
    "ulong64",
    "uniq",
    "usersym",
    "variance",
    "vax_float",
    "vel",
    "velovect",
    "vert_t3d",
    "voigt",
    "voronoi",
    "voxel_proj",
    "wait",
    "warp_tri",
    "wdelete",
    "weof",
    "wf_draw",
    "where",
    "widget_base",
    "widget_button",
    "widget_control",
    "widget_draw",
    "widget_droplist",
    "widget_event",
    "widget_info",
    "widget_label",
    "widget_list",
    "widget_slider",
    "widget_table",
    "widget_text",
    "window",
    "write_bmp",
    "write_gif",
    "write_jpeg",
    "write_nrif",
    "write_pict",
    "write_png",
    "write_ppm",
    "write_spr",
    "write_srf",
    "write_sylk",
    "write_tiff",
    "write_wave",
    "writeu",
    "wset",
    "wshow",
    "wtn",
    "xbm_edit",
    "xdisplayfile",
    "xfont",
    "xinteranimate",
    "xloadct",
    "xmanager",
    "xmng_tmpl",
    "xmtool",
    "xpalette",
    "xregistered",
    "xsq_test",
    "xsurface",
    "xvaredit",
    "xyouts",
    "zoom",
    "zoom_24",
# scientific routines:
    "cdf_attcreate",
    "cdf_attdelete",
    "cdf_attexists",
    "cdf_attget",
    "cdf_attinq",
    "cdf_attnum",
    "cdf_attput",
    "cdf_attrename",
    "cdf_close",
    "cdf_control",
    "cdf_create",
    "cdf_delete",
    "cdf_doc",
    "cdf_encode_epoch",
    "cdf_epoch",
    "cdf_error",
    "cdf_exists",
    "cdf_inquire",
    "cdf_lib_info",
    "cdf_open",
    "cdf_parse_epoch",
    "cdf_varcreate",
    "cdf_vardelete",
    "cdf_varget",
    "cdf_varget1",
    "cdf_varinq",
    "cdf_varnum",
    "cdf_varput",
    "cdf_varrename",
    "hdf_close",
    "hdf_deldd",
    "hdf_df24_addimage",
    "hdf_df24_getimage",
    "hdf_df24_getinfo",
    "hdf_df24_lastref",
    "hdf_df24_nimages",
    "hdf_df24_readref",
    "hdf_df24_restart",
    "hdf_dfan_addfds",
    "hdf_dfan_addfid",
    "hdf_dfan_getdesc",
    "hdf_dfan_getfds",
    "hdf_dfan_getfid",
    "hdf_dfan_getlabel",
    "hdf_dfan_lablist",
    "hdf_dfan_lastref",
    "hdf_dfan_putdesc",
    "hdf_dfan_putlabel",
    "hdf_dfp_addpal",
    "hdf_dfp_getpal",
    "hdf_dfp_lastref",
    "hdf_dfp_npals",
    "hdf_dfp_putpal",
    "hdf_dfp_readref",
    "hdf_dfp_restart",
    "hdf_dfp_writeref",
    "hdf_dfr8_addimage",
    "hdf_dfr8_getimage",
    "hdf_dfr8_getinfo",
    "hdf_dfr8_lastref",
    "hdf_dfr8_nimages",
    "hdf_dfr8_putimage",
    "hdf_dfr8_readref",
    "hdf_dfr8_restart",
    "hdf_dfr8_setpalette",
    "hdf_dfsd_adddata",
    "hdf_dfsd_dimget",
    "hdf_dfsd_dimset",
    "hdf_dfsd_endslice",
    "hdf_dfsd_getdata",
    "hdf_dfsd_getinfo",
    "hdf_dfsd_getslice",
    "hdf_dfsd_putslice",
    "hdf_dfsd_readref",
    "hdf_dfsd_setinfo",
    "hdf_dfsd_startslice",
    "hdf_dupdd",
    "hdf_exists",
    "hdf_ishdf",
    "hdf_lib_info",
    "hdf_newref",
    "hdf_number",
    "hdf_open",
    "hdf_gr_attrinfo",
    "hdf_sd_attrfind",
    "hdf_sd_attrinfo",
    "hdf_sd_attrset",
    "hdf_sd_create",
    "hdf_sd_dimget",
    "hdf_sd_dimgetid",
    "hdf_sd_dimset",
    "hdf_sd_end",
    "hdf_sd_endaccess",
    "hdf_sd_fileinfo",
    "hdf_sd_getdata",
    "hdf_sd_getinfo",
    "hdf_sd_idtoref",
    "hdf_sd_iscoordvar",
    "hdf_sd_nametoindex",
    "hdf_sd_reftoindex",
    "hdf_sd_select",
    "hdf_sd_setextfile",
    "hdf_sd_setinfo",
    "hdf_sd_start",
    "hdf_vd_attach",
    "hdf_vd_detach",
    "hdf_vd_fdefine",
    "hdf_vd_fexist",
    "hdf_vd_find",
    "hdf_vd_get",
    "hdf_vd_getid",
    "hdf_vd_getinfo",
    "hdf_vd_getnext",
    "hdf_vd_insert",
    "hdf_vd_isvd",
    "hdf_vd_isvg",
    "hdf_vd_lone",
    "hdf_vd_read",
    "hdf_vd_seek",
    "hdf_vd_setinfo",
    "hdf_vd_write",
    "hdf_vg_addtr",
    "hdf_vg_attach",
    "hdf_vg_detach",
    "hdf_vg_getid",
    "hdf_vg_getinfo",
    "hdf_vg_getnext",
    "hdf_vg_gettr",
    "hdf_vg_gettrs",
    "hdf_vg_inqtr",
    "hdf_vg_insert",
    "hdf_vg_isvd",
    "hdf_vg_isvg",
    "hdf_vg_lone",
    "hdf_vg_number",
    "hdf_vg_setinfo",
    "ncdf_attcopy",
    "ncdf_attdel",
    "ncdf_attget",
    "ncdf_attinq",
    "ncdf_attname",
    "ncdf_attput",
    "ncdf_attrename",
    "ncdf_close",
    "ncdf_control",
    "ncdf_create",
    "ncdf_dimdef",
    "ncdf_dimid",
    "ncdf_diminq",
    "ncdf_dimrename",
    "ncdf_exists",
    "ncdf_inquire",
    "ncdf_open",
    "ncdf_vardef",
    "ncdf_varget",
    "ncdf_varget1",
    "ncdf_varid",
    "ncdf_varinq",
    "ncdf_varput",
    "ncdf_varrename"
end keywords

optional operators are
    NOT \not,
    OR \vee,
    XOR,
    AND \wedge,
    GE \geq,
    GT >,
    LT <,
    LE \leq,
    EQ \equiv,
    NE \neq,
    <,
    >,
    \#
end operators

sequences are
    ;               Comment,
    # IDL strings and char are not exactly C-char, since 'Foo''bar'
    # represents "Foo'bar"
     "\'" Plain String "\'" Plain
       exceptions are
          "\'\'"
       end exceptions,
     "\"" Plain String "\"" Plain
       exceptions are
          "\"\""
       end exceptions
end sequences

end style
