"" "
pygments.lexers.idl
~~~~~~~~~~~~~~~~~~~
Lexers
for IDL.
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE
for details.
"" "
import re
from pygments.lexer
import RegexLexer, words, bygroups
from pygments.token
import Text, Comment, Operator, Keyword, Name, Number, \
String, Whitespace
__all__ = [
'IDLLexer' ]
class IDLLexer(RegexLexer):
"" "
Pygments Lexer
for IDL (Interactive Data Language).
"" "
name =
'IDL'
url =
'https://www.l3harrisgeospatial.com/Software-Technology/IDL '
aliases = [
'idl' ]
filenames = [
'*.pro' ]
mimetypes = [
'text/idl' ]
version_added =
'1.6'
flags = re.IGNORECASE | re.MULTILINE
_RESERVED = (
'and' ,
'begin' ,
'break' ,
'case' ,
'common' ,
'compile_opt' ,
'continue' ,
'do' ,
'else' ,
'end' ,
'endcase' ,
'endelse' ,
'endfor' ,
'endforeach' ,
'endif' ,
'endrep' ,
'endswitch' ,
'endwhile' ,
'eq' ,
'for' ,
'foreach' ,
'forward_function' ,
'function' ,
'ge' ,
'goto' ,
'gt' ,
'if' ,
'inherits' ,
'le' ,
'lt' ,
'mod' ,
'ne' ,
'not' ,
'of' ,
'on_ioerror' ,
'or' ,
'pro' ,
'repeat' ,
'switch' ,
'then' ,
'until' ,
'while' ,
'xor' )
"" "Reserved words from: http://www.exelisvis.com/docs/reswords.html " ""
_BUILTIN_LIB = (
'abs' ,
'acos' ,
'adapt_hist_equal' ,
'alog' ,
'alog10' ,
'amoeba' ,
'annotate' ,
'app_user_dir' ,
'app_user_dir_query' ,
'arg_present' ,
'array_equal' ,
'array_indices' ,
'arrow' ,
'ascii_template' ,
'asin' ,
'assoc' ,
'atan' ,
'axis' ,
'a_correlate' ,
'bandpass_filter' ,
'bandreject_filter' ,
'barplot' ,
'bar_plot' ,
'beseli' ,
'beselj' ,
'beselk' ,
'besely' ,
'beta' ,
'bilinear' ,
'binary_template' ,
'bindgen' ,
'binomial' ,
'bin_date' ,
'bit_ffs' ,
'bit_population' ,
'blas_axpy' ,
'blk_con' ,
'box_cursor' ,
'breakpoint' ,
'broyden' ,
'butterworth' ,
'bytarr' ,
'byte' ,
'byteorder' ,
'bytscl' ,
'caldat' ,
'calendar' ,
'call_external' ,
'call_function' ,
'call_method' ,
'call_procedure' ,
'canny' ,
'catch' ,
'cd' , r
'cdf_\w*' ,
'ceil' ,
'chebyshev' ,
'check_math' ,
'chisqr_cvf' ,
'chisqr_pdf' ,
'choldc' ,
'cholsol' ,
'cindgen' ,
'cir_3pnt' ,
'close' ,
'cluster' ,
'cluster_tree' ,
'clust_wts' ,
'cmyk_convert' ,
'colorbar' ,
'colorize_sample' ,
'colormap_applicable' ,
'colormap_gradient' ,
'colormap_rotation' ,
'colortable' ,
'color_convert' ,
'color_exchange' ,
'color_quan' ,
'color_range_map' ,
'comfit' ,
'command_line_args' ,
'complex' ,
'complexarr' ,
'complexround' ,
'compute_mesh_normals' ,
'cond' ,
'congrid' ,
'conj' ,
'constrained_min' ,
'contour' ,
'convert_coord' ,
'convol' ,
'convol_fft' ,
'coord2to3' ,
'copy_lun' ,
'correlate' ,
'cos' ,
'cosh' ,
'cpu' ,
'cramer' ,
'create_cursor' ,
'create_struct' ,
'create_view' ,
'crossp' ,
'crvlength' ,
'cti_test' ,
'ct_luminance' ,
'cursor' ,
'curvefit' ,
'cvttobm' ,
'cv_coord' ,
'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' ,
'c_correlate' ,
'dblarr' ,
'db_exists' ,
'dcindgen' ,
'dcomplex' ,
'dcomplexarr' ,
'define_key' ,
'define_msgblk' ,
'define_msgblk_from_file' ,
'defroi' ,
'defsysv' ,
'delvar' ,
'dendrogram' ,
'dendro_plot' ,
'deriv' ,
'derivsig' ,
'determ' ,
'device' ,
'dfpmin' ,
'diag_matrix' ,
'dialog_dbconnect' ,
'dialog_message' ,
'dialog_pickfile' ,
'dialog_printersetup' ,
'dialog_printjob' ,
'dialog_read_image' ,
'dialog_write_image' ,
'digital_filter' ,
'dilate' ,
'dindgen' ,
'dissolve' ,
'dist' ,
'distance_measure' ,
'dlm_load' ,
'dlm_register' ,
'doc_library' ,
'double' ,
'draw_roi' ,
'edge_dog' ,
'efont' ,
'eigenql' ,
'eigenvec' ,
'ellipse' ,
'elmhes' ,
'emboss' ,
'empty' ,
'enable_sysrtn' ,
'eof' , r
'eos_\w*' ,
'erase' ,
'erf' ,
'erfc' ,
'erfcx' ,
'erode' ,
'errorplot' ,
'errplot' ,
'estimator_filter' ,
'execute' ,
'exit' ,
'exp' ,
'expand' ,
'expand_path' ,
'expint' ,
'extrac' ,
'extract_slice' ,
'factorial' ,
'fft' ,
'filepath' ,
'file_basename' ,
'file_chmod' ,
'file_copy' ,
'file_delete' ,
'file_dirname' ,
'file_expand_path' ,
'file_info' ,
'file_lines' ,
'file_link' ,
'file_mkdir' ,
'file_move' ,
'file_poll_input' ,
'file_readlink' ,
'file_same' ,
'file_search' ,
'file_test' ,
'file_which' ,
'findgen' ,
'finite' ,
'fix' ,
'flick' ,
'float' ,
'floor' ,
'flow3' ,
'fltarr' ,
'flush' ,
'format_axis_values' ,
'free_lun' ,
'fstat' ,
'fulstr' ,
'funct' ,
'fv_test' ,
'fx_root' ,
'fz_roots' ,
'f_cvf' ,
'f_pdf' ,
'gamma' ,
'gamma_ct' ,
'gauss2dfit' ,
'gaussfit' ,
'gaussian_function' ,
'gaussint' ,
'gauss_cvf' ,
'gauss_pdf' ,
'gauss_smooth' ,
'getenv' ,
'getwindows' ,
'get_drive_list' ,
'get_dxf_objects' ,
'get_kbrd' ,
'get_login_info' ,
'get_lun' ,
'get_screen_size' ,
'greg2jul' , r
'grib_\w*' ,
'grid3' ,
'griddata' ,
'grid_input' ,
'grid_tps' ,
'gs_iter' ,
r
'h5[adfgirst]_\w*' ,
'h5_browser' ,
'h5_close' ,
'h5_create' ,
'h5_get_libversion' ,
'h5_open' ,
'h5_parse' ,
'hanning' ,
'hash' , r
'hdf_\w*' ,
'heap_free' ,
'heap_gc' ,
'heap_nosave' ,
'heap_refcount' ,
'heap_save' ,
'help' ,
'hilbert' ,
'histogram' ,
'hist_2d' ,
'hist_equal' ,
'hls' ,
'hough' ,
'hqr' ,
'hsv' ,
'h_eq_ct' ,
'h_eq_int' ,
'i18n_multibytetoutf8' ,
'i18n_multibytetowidechar' ,
'i18n_utf8tomultibyte' ,
'i18n_widechartomultibyte' ,
'ibeta' ,
'icontour' ,
'iconvertcoord' ,
'idelete' ,
'identity' ,
'idlexbr_assistant' ,
'idlitsys_createtool' ,
'idl_base64' ,
'idl_validname' ,
'iellipse' ,
'igamma' ,
'igetcurrent' ,
'igetdata' ,
'igetid' ,
'igetproperty' ,
'iimage' ,
'image' ,
'image_cont' ,
'image_statistics' ,
'imaginary' ,
'imap' ,
'indgen' ,
'intarr' ,
'interpol' ,
'interpolate' ,
'interval_volume' ,
'int_2d' ,
'int_3d' ,
'int_tabulated' ,
'invert' ,
'ioctl' ,
'iopen' ,
'iplot' ,
'ipolygon' ,
'ipolyline' ,
'iputdata' ,
'iregister' ,
'ireset' ,
'iresolve' ,
'irotate' ,
'ir_filter' ,
'isa' ,
'isave' ,
'iscale' ,
'isetcurrent' ,
'isetproperty' ,
'ishft' ,
'isocontour' ,
'isosurface' ,
'isurface' ,
'itext' ,
'itranslate' ,
'ivector' ,
'ivolume' ,
'izoom' ,
'i_beta' ,
'journal' ,
'json_parse' ,
'json_serialize' ,
'jul2greg' ,
'julday' ,
'keyword_set' ,
'krig2d' ,
'kurtosis' ,
'kw_test' ,
'l64indgen' ,
'label_date' ,
'label_region' ,
'ladfit' ,
'laguerre' ,
'laplacian' ,
'la_choldc' ,
'la_cholmprove' ,
'la_cholsol' ,
'la_determ' ,
'la_eigenproblem' ,
'la_eigenql' ,
'la_eigenvec' ,
'la_elmhes' ,
'la_gm_linear_model' ,
'la_hqr' ,
'la_invert' ,
'la_least_squares' ,
'la_least_square_equality' ,
'la_linear_equation' ,
'la_ludc' ,
'la_lumprove' ,
'la_lusol' ,
'la_svd' ,
'la_tridc' ,
'la_trimprove' ,
'la_triql' ,
'la_trired' ,
'la_trisol' ,
'least_squares_filter' ,
'leefilt' ,
'legend' ,
'legendre' ,
'linbcg' ,
'lindgen' ,
'linfit' ,
'linkimage' ,
'list' ,
'll_arc_distance' ,
'lmfit' ,
'lmgr' ,
'lngamma' ,
'lnp_test' ,
'loadct' ,
'locale_get' ,
'logical_and' ,
'logical_or' ,
'logical_true' ,
'lon64arr' ,
'lonarr' ,
'long' ,
'long64' ,
'lsode' ,
'ludc' ,
'lumprove' ,
'lusol' ,
'lu_complex' ,
'machar' ,
'make_array' ,
'make_dll' ,
'make_rt' ,
'map' ,
'mapcontinents' ,
'mapgrid' ,
'map_2points' ,
'map_continents' ,
'map_grid' ,
'map_image' ,
'map_patch' ,
'map_proj_forward' ,
'map_proj_image' ,
'map_proj_info' ,
'map_proj_init' ,
'map_proj_inverse' ,
'map_set' ,
'matrix_multiply' ,
'matrix_power' ,
'max' ,
'md_test' ,
'mean' ,
'meanabsdev' ,
'mean_filter' ,
'median' ,
'memory' ,
'mesh_clip' ,
'mesh_decimate' ,
'mesh_issolid' ,
'mesh_merge' ,
'mesh_numtriangles' ,
'mesh_obj' ,
'mesh_smooth' ,
'mesh_surfacearea' ,
'mesh_validate' ,
'mesh_volume' ,
'message' ,
'min' ,
'min_curve_surf' ,
'mk_html_help' ,
'modifyct' ,
'moment' ,
'morph_close' ,
'morph_distance' ,
'morph_gradient' ,
'morph_hitormiss' ,
'morph_open' ,
'morph_thin' ,
'morph_tophat' ,
'multi' ,
'm_correlate' ,
r
'ncdf_\w*' ,
'newton' ,
'noise_hurl' ,
'noise_pick' ,
'noise_scatter' ,
'noise_slur' ,
'norm' ,
'n_elements' ,
'n_params' ,
'n_tags' ,
'objarr' ,
'obj_class' ,
'obj_destroy' ,
'obj_hasmethod' ,
'obj_isa' ,
'obj_new' ,
'obj_valid' ,
'online_help' ,
'on_error' ,
'open' ,
'oplot' ,
'oploterr' ,
'parse_url' ,
'particle_trace' ,
'path_cache' ,
'path_sep' ,
'pcomp' ,
'plot' ,
'plot3d' ,
'ploterr' ,
'plots' ,
'plot_3dbox' ,
'plot_field' ,
'pnt_line' ,
'point_lun' ,
'polarplot' ,
'polar_contour' ,
'polar_surface' ,
'poly' ,
'polyfill' ,
'polyfillv' ,
'polygon' ,
'polyline' ,
'polyshade' ,
'polywarp' ,
'poly_2d' ,
'poly_area' ,
'poly_fit' ,
'popd' ,
'powell' ,
'pref_commit' ,
'pref_get' ,
'pref_set' ,
'prewitt' ,
'primes' ,
'print' ,
'printd' ,
'product' ,
'profile' ,
'profiler' ,
'profiles' ,
'project_vol' ,
'psafm' ,
'pseudo' ,
'ps_show_fonts' ,
'ptrarr' ,
'ptr_free' ,
'ptr_new' ,
'ptr_valid' ,
'pushd' ,
'p_correlate' ,
'qgrid3' ,
'qhull' ,
'qromb' ,
'qromo' ,
'qsimp' ,
'query_ascii' ,
'query_bmp' ,
'query_csv' ,
'query_dicom' ,
'query_gif' ,
'query_image' ,
'query_jpeg' ,
'query_jpeg2000' ,
'query_mrsid' ,
'query_pict' ,
'query_png' ,
'query_ppm' ,
'query_srf' ,
'query_tiff' ,
'query_wav' ,
'radon' ,
'randomn' ,
'randomu' ,
'ranks' ,
'rdpix' ,
'read' ,
'reads' ,
'readu' ,
'read_ascii' ,
'read_binary' ,
'read_bmp' ,
'read_csv' ,
'read_dicom' ,
'read_gif' ,
'read_image' ,
'read_interfile' ,
'read_jpeg' ,
'read_jpeg2000' ,
'read_mrsid' ,
'read_pict' ,
'read_png' ,
'read_ppm' ,
'read_spr' ,
'read_srf' ,
'read_sylk' ,
'read_tiff' ,
'read_wav' ,
'read_wave' ,
'read_x11_bitmap' ,
'read_xwd' ,
'real_part' ,
'rebin' ,
'recall_commands' ,
'recon3' ,
'reduce_colors' ,
'reform' ,
'region_grow' ,
'register_cursor' ,
'regress' ,
'replicate' ,
'replicate_inplace' ,
'resolve_all' ,
'resolve_routine' ,
'restore' ,
'retall' ,
'return' ,
'reverse' ,
'rk4' ,
'roberts' ,
'rot' ,
'rotate' ,
'round' ,
'routine_filepath' ,
'routine_info' ,
'rs_test' ,
'r_correlate' ,
'r_test' ,
'save' ,
'savgol' ,
'scale3' ,
'scale3d' ,
'scope_level' ,
'scope_traceback' ,
'scope_varfetch' ,
'scope_varname' ,
'search2d' ,
'search3d' ,
'sem_create' ,
'sem_delete' ,
'sem_lock' ,
'sem_release' ,
'setenv' ,
'set_plot' ,
'set_shading' ,
'sfit' ,
'shade_surf' ,
'shade_surf_irr' ,
'shade_volume' ,
'shift' ,
'shift_diff' ,
'shmdebug' ,
'shmmap' ,
'shmunmap' ,
'shmvar' ,
'show3' ,
'showfont' ,
'simplex' ,
'sin' ,
'sindgen' ,
'sinh' ,
'size' ,
'skewness' ,
'skip_lun' ,
'slicer3' ,
'slide_image' ,
'smooth' ,
'sobel' ,
'socket' ,
'sort' ,
'spawn' ,
'spher_harm' ,
'sph_4pnt' ,
'sph_scat' ,
'spline' ,
'spline_p' ,
'spl_init' ,
'spl_interp' ,
'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' ,
'swap_endian_inplace' ,
'symbol' ,
'systime' ,
's_test' ,
't3d' ,
'tag_names' ,
'tan' ,
'tanh' ,
'tek_color' ,
'temporary' ,
'tetra_clip' ,
'tetra_surface' ,
'tetra_volume' ,
'text' ,
'thin' ,
'threed' ,
'timegen' ,
'time_test2' ,
'tm_test' ,
'total' ,
'trace' ,
'transpose' ,
'triangulate' ,
'trigrid' ,
'triql' ,
'trired' ,
'trisol' ,
'tri_surf' ,
'truncate_lun' ,
'ts_coef' ,
'ts_diff' ,
'ts_fcast' ,
'ts_smooth' ,
'tv' ,
'tvcrs' ,
'tvlct' ,
'tvrd' ,
'tvscl' ,
'typename' ,
't_cvt' ,
't_pdf' ,
'uindgen' ,
'uint' ,
'uintarr' ,
'ul64indgen' ,
'ulindgen' ,
'ulon64arr' ,
'ulonarr' ,
'ulong' ,
'ulong64' ,
'uniq' ,
'unsharp_mask' ,
'usersym' ,
'value_locate' ,
'variance' ,
'vector' ,
'vector_field' ,
'vel' ,
'velovect' ,
'vert_t3d' ,
'voigt' ,
'voronoi' ,
'voxel_proj' ,
'wait' ,
'warp_tri' ,
'watershed' ,
'wdelete' ,
'wf_draw' ,
'where' ,
'widget_base' ,
'widget_button' ,
'widget_combobox' ,
'widget_control' ,
'widget_displaycontextmen' ,
'widget_draw' ,
'widget_droplist' ,
'widget_event' ,
'widget_info' ,
'widget_label' ,
'widget_list' ,
'widget_propertysheet' ,
'widget_slider' ,
'widget_tab' ,
'widget_table' ,
'widget_text' ,
'widget_tree' ,
'widget_tree_move' ,
'widget_window' ,
'wiener_filter' ,
'window' ,
'writeu' ,
'write_bmp' ,
'write_csv' ,
'write_gif' ,
'write_image' ,
'write_jpeg' ,
'write_jpeg2000' ,
'write_nrif' ,
'write_pict' ,
'write_png' ,
'write_ppm' ,
'write_spr' ,
'write_srf' ,
'write_sylk' ,
'write_tiff' ,
'write_wav' ,
'write_wave' ,
'wset' ,
'wshow' ,
'wtn' ,
'wv_applet' ,
'wv_cwt' ,
'wv_cw_wavelet' ,
'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' ,
'xobjview_rotate' ,
'xobjview_write_image' ,
'xpalette' ,
'xpcolor' ,
'xplot3d' ,
'xregistered' ,
'xroi' ,
'xsq_test' ,
'xsurface' ,
'xvaredit' ,
'xvolume' ,
'xvolume_rotate' ,
'xvolume_write_image' ,
'xyouts' ,
'zoom' ,
'zoom_24' )
"" "Functions from: http://www.exelisvis.com/docs/routines-1.html " ""
tokens = {
'root' : [
(r
'(^\s*)(;.*?)(\n)' , bygroups(Whitespace, Comment.Single,
Whitespace)),
(words(_RESERVED, prefix=r
'\b' , suffix=r
'\b' ), Keyword),
(words(_BUILTIN_LIB, prefix=r
'\b' , suffix=r
'\b' ), Name.Builtin),
(r
'\+=|-=|\^=|\*=|/=|#=|##=|<=|>=|=', Operator),
(r
'\+\+|--|->|\+|-|##|#|\*|/|<|>|&&|\^|~|\|\|\?|:', Operator),
(r
'\b(mod=|lt=|le=|eq=|ne=|ge=|gt=|not=|and=|or=|xor=)' , Operator),
(r
'\b(mod|lt|le|eq|ne|ge|gt|not|and|or|xor)\b' , Operator),
(r
'"[^\"]*"' , String.Double),
(r
"'[^\']*'" , String.Single),
(r
'\b[+\-]?([0-9]*\.[0-9]+|[0-9]+\.[0-9]*)(D|E)?([+\-]?[0-9]+)?\b' ,
Number.Float),
(r
'\b\' [+\-]?[0-9A-F]+\
'X(U?(S?|L{1,2})|B)\b' , Number.Hex),
(r
'\b\' [+\-]?[0-7]+\
'O(U?(S?|L{1,2})|B)\b' , Number.Oct),
(r
'\b[+\-]?[0-9]+U?L{1,2}\b' , Number.Integer.Long),
(r
'\b[+\-]?[0-9]+U?S?\b' , Number.Integer),
(r
'\b[+\-]?[0-9]+B\b' , Number),
(r
'[ \t]+' , Whitespace),
(r
'\n' , Whitespace),
(r
'.' , Text),
]
}
def analyse_text(text):
"" "endelse seems to be unique to IDL, endswitch is rare at least." ""
result = 0
if 'endelse' in text:
result += 0.2
if 'endswitch' in text:
result += 0.01
return result
Messung V0.5 C=95 H=90 G=92
¤ Dauer der Verarbeitung: 0.5 Sekunden
¤
*© Formatika GbR, Deutschland