# Interactive Data Language definition file for highlight (http://www.andre-simon.de/)
# http://en.wikipedia.org/wiki/IDL_(programming_language)
#
#------------------------------------------------------------------------------

$DESCRIPTION=Interactive Data Language

$IGNORECASE=true

$STRINGDELIMITERS=" '

$SL_COMMENT=;

$IDENTIFIER=regex([a-zA-Z_][\w\d\*]*)

$KEYWORDS(kwa)= pro function

$CONTINUATIONSYMBOL=$

$KEYWORDS(kwb)= a_correlate abs acos adapt_hist_equal alog alog10
amoeba annotate arg_present array_equal arrow
ascii_template asin assoc atan axis bar_plot
beseli beselj beselk besely beta bilinear bin_date
binary_template bindgen binomial blas_axpy blk_con
box_cursor break 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 colormap_applicable comfit common
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 cvttobm cw_animate
cw_animate_getp cw_animate_load cw_animate_run
cw_arcball cw_bgroup cw_clr_index cw_colorsel
cw_defroi cw_field cw_filesel cw_form cw_fslider
cw_light_editor cw_light_editor_get
cw_light_editor_set cw_orient cw_palette_editor
cw_palette_editor_get cw_palette_editor_set
cw_pdmenu cw_rgbslider cw_tmpl cw_zoom dblarr
dcindgen dcomplex dcomplexarr define_key defroi
defsysv delete_symbol dellog delvar deriv derivsig
determ device dfpmin dialog_message
dialog_pickfile dialog_printersetup
dialog_printjob dialog_read_image
dialog_write_image digital_filter dilate dindgen
dissolve dist dlm_load dlm_register
do_apple_script doc_library double draw_roi efont
eigenql eigenvec elmhes empty enable_sysrtn eof
erase erode errorf errplot execute exit exp expand
expand_path expint extrac extract_slice f_cvf
f_pdf factorial fft file_chmod file_delete
file_expand_path file_mkdir file_test file_which
filepath findfile findgen finite fix flick float
floor flow3 fltarr flush for format_axis_values
forward_function free_lun fstat fulstr funct
fv_test fx_root fz_roots gamma gamma_ct
gauss_cvf gauss_pdf gauss2dfit gaussfit gaussint
get_drive_list get_kbrd get_lun get_screen_size
get_symbol getenv goto grid_tps grid3 gs_iter
h_eq_ct h_eq_int hanning heap_gc help hilbert
hist_2d hist_equal histogram hls hough hqr hsv
ibeta identity idl_container idlanroi
idlanroigroup idlffdicom idlffdxf idlfflanguagecat
idlffshape idlgraxis idlgrbuffer idlgrclipboard
idlgrcolorbar idlgrcontour idlgrfont idlgrimage
idlgrlegend idlgrlight idlgrmodel idlgrmpeg
idlgrpalette idlgrpattern idlgrplot idlgrpolygon
idlgrpolyline idlgrprinter idlgrroi idlgrroigroup
idlgrscene idlgrsurface idlgrsymbol
idlgrtessellator idlgrtext idlgrview
idlgrviewgroup idlgrvolume idlgrvrml idlgrwindow
igamma image_cont image_statistics imaginary
indgen int_2d int_3d int_tabulated intarr interpol
interpolate invert ioctl ishft isocontour
isosurface journal julday keyword_set krig2d
kurtosis kw_test l64indgen label_date label_region
ladfit laguerre leefilt legendre linbcg lindgen
linfit linkimage live_contour live_control
live_destroy live_export live_image live_info
live_line live_load live_oplot live_plot
live_print live_rect live_style live_surface
live_text ljlct ll_arc_distance lmfit lmgr lngamma
lnp_test loadct locale_get lon64arr lonarr long
long64 lsode lu_complex ludc lumprove lusol
m_correlate machar make_array make_dll map_2points
map_continents map_grid map_image map_patch
map_proj_info map_set matrix_multiply md_test mean
meanabsdev median memory mesh_clip mesh_decimate
mesh_issolid mesh_merge mesh_numtriangles mesh_obj
mesh_smooth mesh_surfacearea mesh_validate
mesh_volume message min_curve_surf mk_html_help
modifyct moment morph_close morph_distance
morph_gradient morph_hitormiss morph_open
morph_thin morph_tophat mpeg_close mpeg_open
mpeg_put mpeg_save msg_cat_close msg_cat_compile
msg_cat_open 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 openw oplot oploterr p_correlate
particle_trace 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 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 r_correlate r_test radon randomn
randomu ranks rdpix read readf read_ascii
read_binary read_bmp read_dicom read_image
read_interfile read_jpeg read_pict read_png
read_ppm read_spr read_srf read_sylk read_tiff
read_wav 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 rk4 roberts rot rotate round
routine_info rs_test s_test save savgol scale3
scale3d search2d search3d set_plot set_shading
set_symbol setenv setlog setup_keys sfit
shade_surf shade_surf_irr shade_volume shift show3
showfont sin sindgen sinh size skewness skipf
slicer3 slide_image smooth sobel socket sort spawn
sph_4pnt sph_scat spher_harm spl_init spl_interp
spline spline_p sprsab sprsax sprsin sprstp sqrt
standardize stddev stop strarr strcmp strcompress
streamline stregex stretch string strjoin strlen
strlowcase strmatch strmessage strmid strpos
strput strsplit strtrim struct_assign struct_hide
strupcase surface surfr svdc svdfit svsol
swap_endian switch systime t_cvf t_pdf t3d
tag_names tan tanh taprd tapwrt tek_color
temporary tetra_clip tetra_surface tetra_volume
thin threed time_test2 timegen 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 value_locate variance
vax_float vector_field vel velovect vert_t3d voigt
voronoi voxel_proj wait warp_tri watershed 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_image write_jpeg write_nrif
write_pict write_png write_ppm write_spr write_srf
write_sylk write_tiff write_wav write_wave writeu
wset wshow wtn wv_applet wv_cw_wavelet wv_cwt
wv_denoise wv_dwt wv_fn_coiflet wv_fn_daubechies
wv_fn_gaussian wv_fn_haar wv_fn_morlet wv_fn_paul
wv_fn_symlet wv_import_data wv_import_wavelet
wv_plot3d_wps wv_plot_multires wv_pwt
wv_tool_denoise xbm_edit xdisplayfile xdxf xfont
xinteranimate xloadct xmanager xmng_tmpl xmtool
xobjview xpalette xpcolor xplot3d xregistered xroi
xsq_test xsurface xvaredit xvolume xvolume_rotate
xvolume_write_image xyouts zoom zoom_24

$KEYWORDS(kwc)= if  else  then  for  while  case  switch  endcase  endelse  endfor  endswitch
endif  endrep  endwhile  repeat  until continue 

$KEYWORDS(kwd)= return  continue  mod  do  break  compile_opt  forward_function  goto begin 
common  end  of  inherits  on_ioerror  begin stop and  eq  ge  gt  le  lt  ne  or  xor

$SYMBOLS= ( ) [ ] { } , : & | < > !  = / *  %  + - .

