rouge_ecl 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +26 -0
- data/LICENSE +186 -0
- data/bin/rougify +17 -0
- data/lib/rouge.rb +82 -0
- data/lib/rouge/cli.rb +429 -0
- data/lib/rouge/demos/abap +6 -0
- data/lib/rouge/demos/actionscript +4 -0
- data/lib/rouge/demos/apache +21 -0
- data/lib/rouge/demos/apiblueprint +33 -0
- data/lib/rouge/demos/applescript +2 -0
- data/lib/rouge/demos/awk +4 -0
- data/lib/rouge/demos/biml +38 -0
- data/lib/rouge/demos/bsl +7 -0
- data/lib/rouge/demos/c +8 -0
- data/lib/rouge/demos/ceylon +7 -0
- data/lib/rouge/demos/cfscript +18 -0
- data/lib/rouge/demos/clojure +5 -0
- data/lib/rouge/demos/cmake +7 -0
- data/lib/rouge/demos/coffeescript +5 -0
- data/lib/rouge/demos/common_lisp +1 -0
- data/lib/rouge/demos/conf +4 -0
- data/lib/rouge/demos/console +6 -0
- data/lib/rouge/demos/coq +13 -0
- data/lib/rouge/demos/cpp +8 -0
- data/lib/rouge/demos/csharp +5 -0
- data/lib/rouge/demos/css +4 -0
- data/lib/rouge/demos/d +16 -0
- data/lib/rouge/demos/dart +6 -0
- data/lib/rouge/demos/diff +7 -0
- data/lib/rouge/demos/digdag +19 -0
- data/lib/rouge/demos/docker +9 -0
- data/lib/rouge/demos/dot +5 -0
- data/lib/rouge/demos/ecl +1 -0
- data/lib/rouge/demos/eiffel +30 -0
- data/lib/rouge/demos/elixir +1 -0
- data/lib/rouge/demos/elm +4 -0
- data/lib/rouge/demos/erb +1 -0
- data/lib/rouge/demos/erlang +7 -0
- data/lib/rouge/demos/factor +5 -0
- data/lib/rouge/demos/fortran +22 -0
- data/lib/rouge/demos/fsharp +12 -0
- data/lib/rouge/demos/gherkin +17 -0
- data/lib/rouge/demos/glsl +14 -0
- data/lib/rouge/demos/go +7 -0
- data/lib/rouge/demos/gradle +10 -0
- data/lib/rouge/demos/graphql +17 -0
- data/lib/rouge/demos/groovy +9 -0
- data/lib/rouge/demos/hack +5 -0
- data/lib/rouge/demos/haml +5 -0
- data/lib/rouge/demos/handlebars +7 -0
- data/lib/rouge/demos/haskell +6 -0
- data/lib/rouge/demos/html +8 -0
- data/lib/rouge/demos/http +14 -0
- data/lib/rouge/demos/hylang +10 -0
- data/lib/rouge/demos/idlang +8 -0
- data/lib/rouge/demos/igorpro +9 -0
- data/lib/rouge/demos/ini +4 -0
- data/lib/rouge/demos/io +11 -0
- data/lib/rouge/demos/irb +4 -0
- data/lib/rouge/demos/irb_output +2 -0
- data/lib/rouge/demos/java +5 -0
- data/lib/rouge/demos/javascript +1 -0
- data/lib/rouge/demos/jinja +9 -0
- data/lib/rouge/demos/json +1 -0
- data/lib/rouge/demos/json-doc +1 -0
- data/lib/rouge/demos/jsonnet +28 -0
- data/lib/rouge/demos/jsx +17 -0
- data/lib/rouge/demos/julia +11 -0
- data/lib/rouge/demos/kotlin +3 -0
- data/lib/rouge/demos/lasso +12 -0
- data/lib/rouge/demos/liquid +11 -0
- data/lib/rouge/demos/literate_coffeescript +3 -0
- data/lib/rouge/demos/literate_haskell +7 -0
- data/lib/rouge/demos/llvm +20 -0
- data/lib/rouge/demos/lua +12 -0
- data/lib/rouge/demos/make +6 -0
- data/lib/rouge/demos/markdown +4 -0
- data/lib/rouge/demos/matlab +6 -0
- data/lib/rouge/demos/moonscript +16 -0
- data/lib/rouge/demos/mosel +10 -0
- data/lib/rouge/demos/mxml +22 -0
- data/lib/rouge/demos/nasm +26 -0
- data/lib/rouge/demos/nginx +5 -0
- data/lib/rouge/demos/nim +27 -0
- data/lib/rouge/demos/nix +19 -0
- data/lib/rouge/demos/objective_c +18 -0
- data/lib/rouge/demos/ocaml +12 -0
- data/lib/rouge/demos/pascal +14 -0
- data/lib/rouge/demos/perl +5 -0
- data/lib/rouge/demos/php +3 -0
- data/lib/rouge/demos/plaintext +1 -0
- data/lib/rouge/demos/plist +142 -0
- data/lib/rouge/demos/pony +17 -0
- data/lib/rouge/demos/powershell +49 -0
- data/lib/rouge/demos/praat +26 -0
- data/lib/rouge/demos/prolog +9 -0
- data/lib/rouge/demos/prometheus +9 -0
- data/lib/rouge/demos/properties +7 -0
- data/lib/rouge/demos/protobuf +5 -0
- data/lib/rouge/demos/puppet +6 -0
- data/lib/rouge/demos/python +6 -0
- data/lib/rouge/demos/q +2 -0
- data/lib/rouge/demos/qml +9 -0
- data/lib/rouge/demos/r +8 -0
- data/lib/rouge/demos/racket +24 -0
- data/lib/rouge/demos/ruby +9 -0
- data/lib/rouge/demos/rust +12 -0
- data/lib/rouge/demos/sass +3 -0
- data/lib/rouge/demos/scala +3 -0
- data/lib/rouge/demos/scheme +4 -0
- data/lib/rouge/demos/scss +5 -0
- data/lib/rouge/demos/sed +4 -0
- data/lib/rouge/demos/shell +2 -0
- data/lib/rouge/demos/sieve +10 -0
- data/lib/rouge/demos/slim +17 -0
- data/lib/rouge/demos/smalltalk +6 -0
- data/lib/rouge/demos/smarty +12 -0
- data/lib/rouge/demos/sml +4 -0
- data/lib/rouge/demos/sql +1 -0
- data/lib/rouge/demos/swift +5 -0
- data/lib/rouge/demos/tap +5 -0
- data/lib/rouge/demos/tcl +1 -0
- data/lib/rouge/demos/tex +1 -0
- data/lib/rouge/demos/toml +9 -0
- data/lib/rouge/demos/tsx +17 -0
- data/lib/rouge/demos/tulip +13 -0
- data/lib/rouge/demos/turtle +26 -0
- data/lib/rouge/demos/twig +9 -0
- data/lib/rouge/demos/typescript +1 -0
- data/lib/rouge/demos/vala +8 -0
- data/lib/rouge/demos/vb +4 -0
- data/lib/rouge/demos/verilog +27 -0
- data/lib/rouge/demos/vhdl +23 -0
- data/lib/rouge/demos/viml +14 -0
- data/lib/rouge/demos/vue +11 -0
- data/lib/rouge/demos/wollok +11 -0
- data/lib/rouge/demos/xml +2 -0
- data/lib/rouge/demos/yaml +4 -0
- data/lib/rouge/formatter.rb +75 -0
- data/lib/rouge/formatters/html.rb +37 -0
- data/lib/rouge/formatters/html_inline.rb +30 -0
- data/lib/rouge/formatters/html_legacy.rb +44 -0
- data/lib/rouge/formatters/html_linewise.rb +27 -0
- data/lib/rouge/formatters/html_pygments.rb +16 -0
- data/lib/rouge/formatters/html_table.rb +61 -0
- data/lib/rouge/formatters/null.rb +19 -0
- data/lib/rouge/formatters/terminal256.rb +180 -0
- data/lib/rouge/guesser.rb +55 -0
- data/lib/rouge/guessers/disambiguation.rb +101 -0
- data/lib/rouge/guessers/filename.rb +25 -0
- data/lib/rouge/guessers/glob_mapping.rb +43 -0
- data/lib/rouge/guessers/mimetype.rb +14 -0
- data/lib/rouge/guessers/modeline.rb +44 -0
- data/lib/rouge/guessers/source.rb +29 -0
- data/lib/rouge/guessers/util.rb +32 -0
- data/lib/rouge/lexer.rb +461 -0
- data/lib/rouge/lexers/abap.rb +238 -0
- data/lib/rouge/lexers/actionscript.rb +195 -0
- data/lib/rouge/lexers/apache.rb +71 -0
- data/lib/rouge/lexers/apache/keywords.yml +764 -0
- data/lib/rouge/lexers/apiblueprint.rb +47 -0
- data/lib/rouge/lexers/apple_script.rb +367 -0
- data/lib/rouge/lexers/awk.rb +161 -0
- data/lib/rouge/lexers/biml.rb +41 -0
- data/lib/rouge/lexers/bsl.rb +81 -0
- data/lib/rouge/lexers/c.rb +212 -0
- data/lib/rouge/lexers/ceylon.rb +123 -0
- data/lib/rouge/lexers/cfscript.rb +153 -0
- data/lib/rouge/lexers/clojure.rb +112 -0
- data/lib/rouge/lexers/cmake.rb +206 -0
- data/lib/rouge/lexers/coffeescript.rb +174 -0
- data/lib/rouge/lexers/common_lisp.rb +345 -0
- data/lib/rouge/lexers/conf.rb +24 -0
- data/lib/rouge/lexers/console.rb +136 -0
- data/lib/rouge/lexers/coq.rb +187 -0
- data/lib/rouge/lexers/cpp.rb +78 -0
- data/lib/rouge/lexers/csharp.rb +114 -0
- data/lib/rouge/lexers/css.rb +273 -0
- data/lib/rouge/lexers/d.rb +176 -0
- data/lib/rouge/lexers/dart.rb +104 -0
- data/lib/rouge/lexers/diff.rb +31 -0
- data/lib/rouge/lexers/digdag.rb +68 -0
- data/lib/rouge/lexers/docker.rb +50 -0
- data/lib/rouge/lexers/dot.rb +68 -0
- data/lib/rouge/lexers/ecl.rb +138 -0
- data/lib/rouge/lexers/eiffel.rb +65 -0
- data/lib/rouge/lexers/elixir.rb +133 -0
- data/lib/rouge/lexers/elm.rb +89 -0
- data/lib/rouge/lexers/erb.rb +52 -0
- data/lib/rouge/lexers/erlang.rb +114 -0
- data/lib/rouge/lexers/factor.rb +302 -0
- data/lib/rouge/lexers/fortran.rb +176 -0
- data/lib/rouge/lexers/fsharp.rb +118 -0
- data/lib/rouge/lexers/gherkin.rb +137 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
- data/lib/rouge/lexers/glsl.rb +135 -0
- data/lib/rouge/lexers/go.rb +174 -0
- data/lib/rouge/lexers/gradle.rb +37 -0
- data/lib/rouge/lexers/graphql.rb +243 -0
- data/lib/rouge/lexers/groovy.rb +112 -0
- data/lib/rouge/lexers/hack.rb +48 -0
- data/lib/rouge/lexers/haml.rb +229 -0
- data/lib/rouge/lexers/handlebars.rb +79 -0
- data/lib/rouge/lexers/haskell.rb +182 -0
- data/lib/rouge/lexers/html.rb +139 -0
- data/lib/rouge/lexers/http.rb +80 -0
- data/lib/rouge/lexers/hylang.rb +93 -0
- data/lib/rouge/lexers/idlang.rb +310 -0
- data/lib/rouge/lexers/igorpro.rb +408 -0
- data/lib/rouge/lexers/ini.rb +53 -0
- data/lib/rouge/lexers/io.rb +68 -0
- data/lib/rouge/lexers/irb.rb +66 -0
- data/lib/rouge/lexers/java.rb +87 -0
- data/lib/rouge/lexers/javascript.rb +281 -0
- data/lib/rouge/lexers/jinja.rb +137 -0
- data/lib/rouge/lexers/json.rb +29 -0
- data/lib/rouge/lexers/json_doc.rb +23 -0
- data/lib/rouge/lexers/jsonnet.rb +151 -0
- data/lib/rouge/lexers/jsx.rb +102 -0
- data/lib/rouge/lexers/julia.rb +172 -0
- data/lib/rouge/lexers/kotlin.rb +79 -0
- data/lib/rouge/lexers/lasso.rb +214 -0
- data/lib/rouge/lexers/lasso/keywords.yml +446 -0
- data/lib/rouge/lexers/liquid.rb +287 -0
- data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
- data/lib/rouge/lexers/literate_haskell.rb +36 -0
- data/lib/rouge/lexers/llvm.rb +80 -0
- data/lib/rouge/lexers/lua.rb +125 -0
- data/lib/rouge/lexers/lua/builtins.rb +22 -0
- data/lib/rouge/lexers/make.rb +112 -0
- data/lib/rouge/lexers/markdown.rb +154 -0
- data/lib/rouge/lexers/matlab.rb +71 -0
- data/lib/rouge/lexers/matlab/builtins.rb +11 -0
- data/lib/rouge/lexers/moonscript.rb +114 -0
- data/lib/rouge/lexers/mosel.rb +231 -0
- data/lib/rouge/lexers/mxml.rb +68 -0
- data/lib/rouge/lexers/nasm.rb +198 -0
- data/lib/rouge/lexers/nginx.rb +71 -0
- data/lib/rouge/lexers/nim.rb +152 -0
- data/lib/rouge/lexers/nix.rb +205 -0
- data/lib/rouge/lexers/objective_c.rb +194 -0
- data/lib/rouge/lexers/ocaml.rb +100 -0
- data/lib/rouge/lexers/pascal.rb +66 -0
- data/lib/rouge/lexers/perl.rb +196 -0
- data/lib/rouge/lexers/php.rb +193 -0
- data/lib/rouge/lexers/php/builtins.rb +194 -0
- data/lib/rouge/lexers/plain_text.rb +26 -0
- data/lib/rouge/lexers/plist.rb +45 -0
- data/lib/rouge/lexers/pony.rb +93 -0
- data/lib/rouge/lexers/powershell.rb +678 -0
- data/lib/rouge/lexers/praat.rb +350 -0
- data/lib/rouge/lexers/prolog.rb +59 -0
- data/lib/rouge/lexers/prometheus.rb +121 -0
- data/lib/rouge/lexers/properties.rb +51 -0
- data/lib/rouge/lexers/protobuf.rb +70 -0
- data/lib/rouge/lexers/puppet.rb +128 -0
- data/lib/rouge/lexers/python.rb +232 -0
- data/lib/rouge/lexers/q.rb +123 -0
- data/lib/rouge/lexers/qml.rb +73 -0
- data/lib/rouge/lexers/r.rb +89 -0
- data/lib/rouge/lexers/racket.rb +543 -0
- data/lib/rouge/lexers/ruby.rb +437 -0
- data/lib/rouge/lexers/rust.rb +192 -0
- data/lib/rouge/lexers/sass.rb +74 -0
- data/lib/rouge/lexers/sass/common.rb +180 -0
- data/lib/rouge/lexers/scala.rb +142 -0
- data/lib/rouge/lexers/scheme.rb +112 -0
- data/lib/rouge/lexers/scss.rb +34 -0
- data/lib/rouge/lexers/sed.rb +172 -0
- data/lib/rouge/lexers/shell.rb +189 -0
- data/lib/rouge/lexers/sieve.rb +96 -0
- data/lib/rouge/lexers/slim.rb +228 -0
- data/lib/rouge/lexers/smalltalk.rb +116 -0
- data/lib/rouge/lexers/smarty.rb +80 -0
- data/lib/rouge/lexers/sml.rb +344 -0
- data/lib/rouge/lexers/sql.rb +140 -0
- data/lib/rouge/lexers/swift.rb +181 -0
- data/lib/rouge/lexers/tap.rb +87 -0
- data/lib/rouge/lexers/tcl.rb +192 -0
- data/lib/rouge/lexers/tex.rb +69 -0
- data/lib/rouge/lexers/toml.rb +67 -0
- data/lib/rouge/lexers/tsx.rb +19 -0
- data/lib/rouge/lexers/tulip.rb +106 -0
- data/lib/rouge/lexers/turtle.rb +63 -0
- data/lib/rouge/lexers/twig.rb +39 -0
- data/lib/rouge/lexers/typescript.rb +22 -0
- data/lib/rouge/lexers/typescript/common.rb +33 -0
- data/lib/rouge/lexers/vala.rb +77 -0
- data/lib/rouge/lexers/vb.rb +164 -0
- data/lib/rouge/lexers/verilog.rb +164 -0
- data/lib/rouge/lexers/vhdl.rb +97 -0
- data/lib/rouge/lexers/viml.rb +101 -0
- data/lib/rouge/lexers/viml/keywords.rb +12 -0
- data/lib/rouge/lexers/vue.rb +122 -0
- data/lib/rouge/lexers/wollok.rb +103 -0
- data/lib/rouge/lexers/xml.rb +57 -0
- data/lib/rouge/lexers/yaml.rb +373 -0
- data/lib/rouge/plugins/redcarpet.rb +30 -0
- data/lib/rouge/regex_lexer.rb +441 -0
- data/lib/rouge/template_lexer.rb +20 -0
- data/lib/rouge/text_analyzer.rb +49 -0
- data/lib/rouge/theme.rb +213 -0
- data/lib/rouge/themes/base16.rb +130 -0
- data/lib/rouge/themes/colorful.rb +67 -0
- data/lib/rouge/themes/github.rb +71 -0
- data/lib/rouge/themes/gruvbox.rb +167 -0
- data/lib/rouge/themes/igor_pro.rb +20 -0
- data/lib/rouge/themes/molokai.rb +82 -0
- data/lib/rouge/themes/monokai.rb +92 -0
- data/lib/rouge/themes/monokai_sublime.rb +90 -0
- data/lib/rouge/themes/pastie.rb +69 -0
- data/lib/rouge/themes/thankful_eyes.rb +74 -0
- data/lib/rouge/themes/tulip.rb +69 -0
- data/lib/rouge/token.rb +182 -0
- data/lib/rouge/util.rb +101 -0
- data/lib/rouge/version.rb +7 -0
- data/rouge.gemspec +23 -0
- metadata +365 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# vim: set ts=2 sw=2 et:
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class IDLang < RegexLexer
|
|
7
|
+
title "IDL"
|
|
8
|
+
desc "Interactive Data Language"
|
|
9
|
+
|
|
10
|
+
tag 'idlang'
|
|
11
|
+
filenames '*.idl'
|
|
12
|
+
|
|
13
|
+
name = /[_A-Z]\w*/i
|
|
14
|
+
kind_param = /(\d+|#{name})/
|
|
15
|
+
exponent = /[dDeE][+-]\d+/
|
|
16
|
+
|
|
17
|
+
def self.exec_unit
|
|
18
|
+
@exec_unit ||= Set.new %w(
|
|
19
|
+
PRO FUNCTION
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.keywords
|
|
24
|
+
@keywords ||= Set.new %w(
|
|
25
|
+
STRUCT INHERITS
|
|
26
|
+
RETURN CONTINUE BEGIN END BREAK GOTO
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.standalone_statements
|
|
31
|
+
# Must not have a comma afterwards
|
|
32
|
+
@standalone_statements ||= Set.new %w(
|
|
33
|
+
COMMON FORWARD_FUNCTION
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.decorators
|
|
38
|
+
# Must not have a comma afterwards
|
|
39
|
+
@decorators ||= Set.new %w(
|
|
40
|
+
COMPILE_OPT
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.operators
|
|
45
|
+
@operators ||= Set.new %w(
|
|
46
|
+
AND= EQ= GE= GT= LE= LT= MOD= NE= OR= XOR= NOT=
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def self.conditionals
|
|
51
|
+
@conditionals ||= Set.new %w(
|
|
52
|
+
OF DO ENDIF ENDELSE ENDFOR ENDFOREACH ENDWHILE ENDREP ENDCASE ENDSWITCH
|
|
53
|
+
IF THEN ELSE FOR FOREACH WHILE REPEAT UNTIL CASE SWITCH
|
|
54
|
+
AND EQ GE GT LE LT MOD NE OR XOR NOT
|
|
55
|
+
)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def self.routines
|
|
59
|
+
@routines ||= Set.new %w(
|
|
60
|
+
A_CORRELATE ABS ACOS ADAPT_HIST_EQUAL ALOG ALOG10
|
|
61
|
+
AMOEBA ANNOTATE ARG_PRESENT ARRAY_EQUAL
|
|
62
|
+
ARRAY_INDICES ARROW ASCII_TEMPLATE ASIN ASSOC ATAN
|
|
63
|
+
AXIS BAR_PLOT BESELI BESELJ BESELK BESELY BETA
|
|
64
|
+
BILINEAR BIN_DATE BINARY_TEMPLATE BINDGEN BINOMIAL
|
|
65
|
+
BLAS_AXPY BLK_CON BOX_CURSOR BREAK BREAKPOINT
|
|
66
|
+
BROYDEN BYTARR BYTE BYTEORDER BYTSCL C_CORRELATE
|
|
67
|
+
CALDAT CALENDAR CALL_EXTERNAL CALL_FUNCTION
|
|
68
|
+
CALL_METHOD CALL_PROCEDURE CATCH CD CEIL CHEBYSHEV
|
|
69
|
+
CHECK_MATH CHISQR_CVF CHISQR_PDF CHOLDC CHOLSOL
|
|
70
|
+
CINDGEN CIR_3PNT CLOSE CLUST_WTS CLUSTER
|
|
71
|
+
COLOR_CONVERT COLOR_QUAN COLORMAP_APPLICABLE COMFIT
|
|
72
|
+
COMPLEX COMPLEXARR COMPLEXROUND
|
|
73
|
+
COMPUTE_MESH_NORMALS COND CONGRID CONJ
|
|
74
|
+
CONSTRAINED_MIN CONTOUR CONVERT_COORD CONVOL
|
|
75
|
+
COORD2TO3 CORRELATE COS COSH CRAMER CREATE_STRUCT
|
|
76
|
+
CREATE_VIEW CROSSP CRVLENGTH CT_LUMINANCE CTI_TEST
|
|
77
|
+
CURSOR CURVEFIT CV_COORD CVTTOBM CW_ANIMATE
|
|
78
|
+
CW_ANIMATE_GETP CW_ANIMATE_LOAD CW_ANIMATE_RUN
|
|
79
|
+
CW_ARCBALL CW_BGROUP CW_CLR_INDEX CW_COLORSEL
|
|
80
|
+
CW_DEFROI CW_FIELD CW_FILESEL CW_FORM CW_FSLIDER
|
|
81
|
+
CW_LIGHT_EDITOR CW_LIGHT_EDITOR_GET
|
|
82
|
+
CW_LIGHT_EDITOR_SET CW_ORIENT CW_PALETTE_EDITOR
|
|
83
|
+
CW_PALETTE_EDITOR_GET CW_PALETTE_EDITOR_SET
|
|
84
|
+
CW_PDMENU CW_RGBSLIDER CW_TMPL CW_ZOOM DBLARR
|
|
85
|
+
DCINDGEN DCOMPLEX DCOMPLEXARR DEFINE_KEY DEFROI
|
|
86
|
+
DEFSYSV DELETE_SYMBOL DELLOG DELVAR DERIV DERIVSIG
|
|
87
|
+
DETERM DEVICE DFPMIN DIALOG_MESSAGE
|
|
88
|
+
DIALOG_PICKFILE DIALOG_PRINTERSETUP
|
|
89
|
+
DIALOG_PRINTJOB DIALOG_READ_IMAGE
|
|
90
|
+
DIALOG_WRITE_IMAGE DICTIONARY DIGITAL_FILTER DILATE DINDGEN
|
|
91
|
+
DISSOLVE DIST DLM_LOAD DLM_REGISTER
|
|
92
|
+
DO_APPLE_SCRIPT DOC_LIBRARY DOUBLE DRAW_ROI EFONT
|
|
93
|
+
EIGENQL EIGENVEC ELMHES EMPTY ENABLE_SYSRTN EOF
|
|
94
|
+
ERASE ERODE ERRORF ERRPLOT EXECUTE EXIT EXP EXPAND
|
|
95
|
+
EXPAND_PATH EXPINT EXTRAC EXTRACT_SLICE F_CVF
|
|
96
|
+
F_PDF FACTORIAL FFT FILE_CHMOD FILE_DELETE
|
|
97
|
+
FILE_EXPAND_PATH FILE_MKDIR FILE_TEST FILE_WHICH
|
|
98
|
+
FILE_SEARCH PATH_SEP FILE_DIRNAME FILE_BASENAME
|
|
99
|
+
FILE_INFO FILE_MOVE FILE_COPY FILE_LINK FILE_POLL_INPUT
|
|
100
|
+
FILEPATH FINDFILE FINDGEN FINITE FIX FLICK FLOAT
|
|
101
|
+
FLOOR FLOW3 FLTARR FLUSH FORMAT_AXIS_VALUES
|
|
102
|
+
FORWARD_FUNCTION FREE_LUN FSTAT FULSTR FUNCT
|
|
103
|
+
FV_TEST FX_ROOT FZ_ROOTS GAMMA GAMMA_CT
|
|
104
|
+
GAUSS_CVF GAUSS_PDF GAUSS2DFIT GAUSSFIT GAUSSINT
|
|
105
|
+
GET_DRIVE_LIST GET_KBRD GET_LUN GET_SCREEN_SIZE
|
|
106
|
+
GET_SYMBOL GETENV GOTO GREG2JUL GRID_TPS GRID3 GS_ITER
|
|
107
|
+
H_EQ_CT H_EQ_INT HANNING HASH HEAP_GC HELP HILBERT
|
|
108
|
+
HIST_2D HIST_EQUAL HISTOGRAM HLS HOUGH HQR HSV
|
|
109
|
+
IBETA IDENTITY IDL_CONTAINER IDLANROI
|
|
110
|
+
IDLANROIGROUP IDLFFDICOM IDLFFDXF IDLFFLANGUAGECAT
|
|
111
|
+
IDLFFSHAPE IDLGRAXIS IDLGRBUFFER IDLGRCLIPBOARD
|
|
112
|
+
IDLGRCOLORBAR IDLGRCONTOUR IDLGRFONT IDLGRIMAGE
|
|
113
|
+
IDLGRLEGEND IDLGRLIGHT IDLGRMODEL IDLGRMPEG
|
|
114
|
+
IDLGRPALETTE IDLGRPATTERN IDLGRPLOT IDLGRPOLYGON
|
|
115
|
+
IDLGRPOLYLINE IDLGRPRINTER IDLGRROI IDLGRROIGROUP
|
|
116
|
+
IDLGRSCENE IDLGRSURFACE IDLGRSYMBOL
|
|
117
|
+
IDLGRTESSELLATOR IDLGRTEXT IDLGRVIEW
|
|
118
|
+
IDLGRVIEWGROUP IDLGRVOLUME IDLGRVRML IDLGRWINDOW
|
|
119
|
+
IGAMMA IMAGE_CONT IMAGE_STATISTICS IMAGINARY
|
|
120
|
+
INDGEN INT_2D INT_3D INT_TABULATED INTARR INTERPOL
|
|
121
|
+
INTERPOLATE INVERT IOCTL ISA ISHFT ISOCONTOUR
|
|
122
|
+
ISOSURFACE JOURNAL JUL2GREG JULDAY KEYWORD_SET KRIG2D
|
|
123
|
+
KURTOSIS KW_TEST L64INDGEN LABEL_DATE LABEL_REGION
|
|
124
|
+
LADFIT LAGUERRE LEEFILT LEGENDRE LINBCG LINDGEN
|
|
125
|
+
LINFIT LINKIMAGE LIST LIVE_CONTOUR LIVE_CONTROL
|
|
126
|
+
LIVE_DESTROY LIVE_EXPORT LIVE_IMAGE LIVE_INFO
|
|
127
|
+
LIVE_LINE LIVE_LOAD LIVE_OPLOT LIVE_PLOT
|
|
128
|
+
LIVE_PRINT LIVE_RECT LIVE_STYLE LIVE_SURFACE
|
|
129
|
+
LIVE_TEXT LJLCT LL_ARC_DISTANCE LMFIT LMGR LNGAMMA
|
|
130
|
+
LNP_TEST LOADCT LOCALE_GET LON64ARR LONARR LONG
|
|
131
|
+
LONG64 LSODE LU_COMPLEX LUDC LUMPROVE LUSOL
|
|
132
|
+
M_CORRELATE MACHAR MAKE_ARRAY MAKE_DLL MAP_2POINTS
|
|
133
|
+
MAP_CONTINENTS MAP_GRID MAP_IMAGE MAP_PATCH
|
|
134
|
+
MAP_PROJ_INFO MAP_SET MAX MATRIX_MULTIPLY MD_TEST MEAN
|
|
135
|
+
MEANABSDEV MEDIAN MEMORY MESH_CLIP MESH_DECIMATE
|
|
136
|
+
MESH_ISSOLID MESH_MERGE MESH_NUMTRIANGLES MESH_OBJ
|
|
137
|
+
MESH_SMOOTH MESH_SURFACEAREA MESH_VALIDATE
|
|
138
|
+
MESH_VOLUME MESSAGE MIN MIN_CURVE_SURF MK_HTML_HELP
|
|
139
|
+
MODIFYCT MOMENT MORPH_CLOSE MORPH_DISTANCE
|
|
140
|
+
MORPH_GRADIENT MORPH_HITORMISS MORPH_OPEN
|
|
141
|
+
MORPH_THIN MORPH_TOPHAT MPEG_CLOSE MPEG_OPEN
|
|
142
|
+
MPEG_PUT MPEG_SAVE MSG_CAT_CLOSE MSG_CAT_COMPILE
|
|
143
|
+
MSG_CAT_OPEN MULTI N_ELEMENTS N_PARAMS N_TAGS
|
|
144
|
+
NEWTON NORM OBJ_CLASS OBJ_DESTROY OBJ_ISA OBJ_NEW
|
|
145
|
+
OBJ_VALID OBJARR ON_ERROR ON_IOERROR ONLINE_HELP
|
|
146
|
+
OPEN OPENR OPENW OPENU OPLOT OPLOTERR ORDEREDHASH P_CORRELATE
|
|
147
|
+
PARTICLE_TRACE PCOMP PLOT PLOT_3DBOX PLOT_FIELD
|
|
148
|
+
PLOTERR PLOTS PNT_LINE POINT_LUN POLAR_CONTOUR
|
|
149
|
+
POLAR_SURFACE POLY POLY_2D POLY_AREA POLY_FIT
|
|
150
|
+
POLYFILL POLYFILLV POLYSHADE POLYWARP POPD POWELL
|
|
151
|
+
PRIMES PRINT PRINTF PRINTD PRODUCT PROFILE PROFILER
|
|
152
|
+
PROFILES PROJECT_VOL PS_SHOW_FONTS PSAFM PSEUDO
|
|
153
|
+
PTR_FREE PTR_NEW PTR_VALID PTRARR PUSHD QROMB
|
|
154
|
+
QROMO QSIMP QUERY_CSV R_CORRELATE R_TEST RADON RANDOMN
|
|
155
|
+
RANDOMU RANKS RDPIX READ READF READ_ASCII
|
|
156
|
+
READ_BINARY READ_BMP READ_CSV READ_DICOM READ_IMAGE
|
|
157
|
+
READ_INTERFILE READ_JPEG READ_PICT READ_PNG
|
|
158
|
+
READ_PPM READ_SPR READ_SRF READ_SYLK READ_TIFF
|
|
159
|
+
READ_WAV READ_WAVE READ_X11_BITMAP READ_XWD READS
|
|
160
|
+
READU REBIN RECALL_COMMANDS RECON3 REDUCE_COLORS
|
|
161
|
+
REFORM REGRESS REPLICATE REPLICATE_INPLACE
|
|
162
|
+
RESOLVE_ALL RESOLVE_ROUTINE RESTORE RETALL
|
|
163
|
+
REVERSE REWIND RK4 ROBERTS ROT ROTATE ROUND
|
|
164
|
+
ROUTINE_INFO RS_TEST S_TEST SAVE SAVGOL SCALE3
|
|
165
|
+
SCALE3D SCOPE_LEVEL SCOPE_TRACEBACK SCOPE_VARFETCH
|
|
166
|
+
SCOPE_VARNAME SEARCH2D SEARCH3D SET_PLOT SET_SHADING
|
|
167
|
+
SET_SYMBOL SETENV SETLOG SETUP_KEYS SFIT
|
|
168
|
+
SHADE_SURF SHADE_SURF_IRR SHADE_VOLUME SHIFT SHOW3
|
|
169
|
+
SHOWFONT SIGNUM SIN SINDGEN SINH SIZE SKEWNESS SKIPF
|
|
170
|
+
SLICER3 SLIDE_IMAGE SMOOTH SOBEL SOCKET SORT SPAWN
|
|
171
|
+
SPH_4PNT SPH_SCAT SPHER_HARM SPL_INIT SPL_INTERP
|
|
172
|
+
SPLINE SPLINE_P SPRSAB SPRSAX SPRSIN SPRSTP SQRT
|
|
173
|
+
STANDARDIZE STDDEV STOP STRARR STRCMP STRCOMPRESS
|
|
174
|
+
STREAMLINE STREGEX STRETCH STRING STRJOIN STRLEN
|
|
175
|
+
STRLOWCASE STRMATCH STRMESSAGE STRMID STRPOS
|
|
176
|
+
STRPUT STRSPLIT STRTRIM STRUCT_ASSIGN STRUCT_HIDE
|
|
177
|
+
STRUPCASE SURFACE SURFR SVDC SVDFIT SVSOL
|
|
178
|
+
SWAP_ENDIAN SWITCH SYSTIME T_CVF T_PDF T3D
|
|
179
|
+
TAG_NAMES TAN TANH TAPRD TAPWRT TEK_COLOR
|
|
180
|
+
TEMPORARY TETRA_CLIP TETRA_SURFACE TETRA_VOLUME
|
|
181
|
+
THIN THREED TIME_TEST2 TIMEGEN TM_TEST TOTAL TRACE
|
|
182
|
+
TRANSPOSE TRI_SURF TRIANGULATE TRIGRID TRIQL
|
|
183
|
+
TRIRED TRISOL TRNLOG TS_COEF TS_DIFF TS_FCAST
|
|
184
|
+
TS_SMOOTH TV TVCRS TVLCT TVRD TVSCL TYPENAME UINDGEN UINT
|
|
185
|
+
UINTARR UL64INDGEN ULINDGEN ULON64ARR ULONARR
|
|
186
|
+
ULONG ULONG64 UNIQ USERSYM VALUE_LOCATE VARIANCE
|
|
187
|
+
VAX_FLOAT VECTOR_FIELD VEL VELOVECT VERT_T3D VOIGT
|
|
188
|
+
VORONOI VOXEL_PROJ WAIT WARP_TRI WATERSHED WDELETE
|
|
189
|
+
WEOF WF_DRAW WHERE WIDGET_BASE WIDGET_BUTTON
|
|
190
|
+
WIDGET_CONTROL WIDGET_DRAW WIDGET_DROPLIST
|
|
191
|
+
WIDGET_EVENT WIDGET_INFO WIDGET_LABEL WIDGET_LIST
|
|
192
|
+
WIDGET_SLIDER WIDGET_TABLE WIDGET_TEXT WINDOW
|
|
193
|
+
WRITE_BMP WRITE_CSV WRITE_IMAGE WRITE_JPEG WRITE_NRIF
|
|
194
|
+
WRITE_PICT WRITE_PNG WRITE_PPM WRITE_SPR WRITE_SRF
|
|
195
|
+
WRITE_SYLK WRITE_TIFF WRITE_WAV WRITE_WAVE WRITEU
|
|
196
|
+
WSET WSHOW WTN WV_APPLET WV_CW_WAVELET WV_CWT
|
|
197
|
+
WV_DENOISE WV_DWT WV_FN_COIFLET WV_FN_DAUBECHIES
|
|
198
|
+
WV_FN_GAUSSIAN WV_FN_HAAR WV_FN_MORLET WV_FN_PAUL
|
|
199
|
+
WV_FN_SYMLET WV_IMPORT_DATA WV_IMPORT_WAVELET
|
|
200
|
+
WV_PLOT3D_WPS WV_PLOT_MULTIRES WV_PWT
|
|
201
|
+
WV_TOOL_DENOISE XBM_EDIT XDISPLAYFILE XDXF XFONT
|
|
202
|
+
XINTERANIMATE XLOADCT XMANAGER XMNG_TMPL XMTOOL
|
|
203
|
+
XOBJVIEW XPALETTE XPCOLOR XPLOT3D XREGISTERED XROI
|
|
204
|
+
XSQ_TEST XSURFACE XVAREDIT XVOLUME XVOLUME_ROTATE
|
|
205
|
+
XVOLUME_WRITE_IMAGE XYOUTS ZOOM ZOOM_24
|
|
206
|
+
)
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
state :root do
|
|
210
|
+
rule /[\s\n]+/, Text::Whitespace
|
|
211
|
+
# Normal comments
|
|
212
|
+
rule /;.*$/, Comment::Single
|
|
213
|
+
rule /\,\s*\,/, Error
|
|
214
|
+
rule /\!#{name}/, Name::Variable::Global
|
|
215
|
+
|
|
216
|
+
rule /[(),:\&\$]/, Punctuation
|
|
217
|
+
|
|
218
|
+
## Format statements are quite a strange beast.
|
|
219
|
+
## Better process them in their own state.
|
|
220
|
+
#rule /\b(FORMAT)(\s*)(\()/mi do |m|
|
|
221
|
+
# token Keyword, m[1]
|
|
222
|
+
# token Text::Whitespace, m[2]
|
|
223
|
+
# token Punctuation, m[3]
|
|
224
|
+
# push :format_spec
|
|
225
|
+
#end
|
|
226
|
+
|
|
227
|
+
rule %r(
|
|
228
|
+
[+-]? # sign
|
|
229
|
+
(
|
|
230
|
+
(\d+[.]\d*|[.]\d+)(#{exponent})?
|
|
231
|
+
| \d+#{exponent} # exponent is mandatory
|
|
232
|
+
)
|
|
233
|
+
(_#{kind_param})? # kind parameter
|
|
234
|
+
)xi, Num::Float
|
|
235
|
+
|
|
236
|
+
rule /\d+(B|S|U|US|LL|L|ULL|UL)?/i, Num::Integer
|
|
237
|
+
rule /"[0-7]+(B|O|U|ULL|UL|LL|L)?/i, Num::Oct
|
|
238
|
+
rule /'[0-9A-F]+'X(B|S|US|ULL|UL|U|LL|L)?/i, Num::Hex
|
|
239
|
+
rule /(#{kind_param}_)?'/, Str::Single, :string_single
|
|
240
|
+
rule /(#{kind_param}_)?"/, Str::Double, :string_double
|
|
241
|
+
|
|
242
|
+
rule %r{\#\#|\#|\&\&|\|\||/=|<=|>=|->|\@|\?|[-+*/<=~^{}]}, Operator
|
|
243
|
+
# Structures and the like
|
|
244
|
+
rule /(#{name})(\.)([^\s,]*)/i do |m|
|
|
245
|
+
groups Name, Operator, Name
|
|
246
|
+
#delegate IDLang, m[3]
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
rule /(function|pro)((?:\s|\$\s)+)/i do
|
|
250
|
+
groups Keyword, Text::Whitespace
|
|
251
|
+
push :funcname
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
rule /#{name}/m do |m|
|
|
255
|
+
match = m[0].upcase
|
|
256
|
+
if self.class.keywords.include? match
|
|
257
|
+
token Keyword
|
|
258
|
+
elsif self.class.conditionals.include? match
|
|
259
|
+
token Keyword
|
|
260
|
+
elsif self.class.decorators.include? match
|
|
261
|
+
token Name::Decorator
|
|
262
|
+
elsif self.class.standalone_statements.include? match
|
|
263
|
+
token Keyword::Reserved
|
|
264
|
+
elsif self.class.operators.include? match
|
|
265
|
+
token Operator::Word
|
|
266
|
+
elsif self.class.routines.include? match
|
|
267
|
+
token Name::Builtin
|
|
268
|
+
else
|
|
269
|
+
token Name
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
state :funcname do
|
|
276
|
+
rule /#{name}/, Name::Function
|
|
277
|
+
|
|
278
|
+
rule /\s+/, Text::Whitespace
|
|
279
|
+
rule /(:+|\$)/, Operator
|
|
280
|
+
rule /;.*/, Comment::Single
|
|
281
|
+
|
|
282
|
+
# Be done with this state if we hit EOL or comma
|
|
283
|
+
rule /$/, Text::Whitespace, :pop!
|
|
284
|
+
rule /,/, Operator, :pop!
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
state :string_single do
|
|
288
|
+
rule /[^']+/, Str::Single
|
|
289
|
+
rule /''/, Str::Escape
|
|
290
|
+
rule /'/, Str::Single, :pop!
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
state :string_double do
|
|
294
|
+
rule /[^"]+/, Str::Double
|
|
295
|
+
rule /"/, Str::Double, :pop!
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
state :format_spec do
|
|
299
|
+
rule /'/, Str::Single, :string_single
|
|
300
|
+
rule /"/, Str::Double, :string_double
|
|
301
|
+
rule /\(/, Punctuation, :format_spec
|
|
302
|
+
rule /\)/, Punctuation, :pop!
|
|
303
|
+
rule /,/, Punctuation
|
|
304
|
+
rule /[\s\n]+/, Text::Whitespace
|
|
305
|
+
# Edit descriptors could be seen as a kind of "format literal".
|
|
306
|
+
rule /[^\s'"(),]+/, Literal
|
|
307
|
+
end
|
|
308
|
+
end
|
|
309
|
+
end
|
|
310
|
+
end
|
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
|
|
3
|
+
module Rouge
|
|
4
|
+
module Lexers
|
|
5
|
+
class IgorPro < RegexLexer
|
|
6
|
+
tag 'igorpro'
|
|
7
|
+
filenames '*.ipf'
|
|
8
|
+
mimetypes 'text/x-igorpro'
|
|
9
|
+
|
|
10
|
+
title "IgorPro"
|
|
11
|
+
desc "WaveMetrics Igor Pro"
|
|
12
|
+
|
|
13
|
+
def self.keywords
|
|
14
|
+
@keywords ||= Set.new %w(
|
|
15
|
+
structure endstructure
|
|
16
|
+
threadsafe static
|
|
17
|
+
macro proc window menu function end
|
|
18
|
+
if else elseif endif switch strswitch endswitch
|
|
19
|
+
break return continue
|
|
20
|
+
for endfor do while
|
|
21
|
+
case default
|
|
22
|
+
try catch endtry
|
|
23
|
+
abortonrte
|
|
24
|
+
)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.preprocessor
|
|
28
|
+
@preprocessor ||= Set.new %w(
|
|
29
|
+
pragma include
|
|
30
|
+
define ifdef ifndef undef
|
|
31
|
+
if elif else endif
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.igorDeclarations
|
|
36
|
+
@igorDeclarations ||= Set.new %w(
|
|
37
|
+
variable string wave strconstant constant
|
|
38
|
+
nvar svar dfref funcref struct
|
|
39
|
+
char uchar int16 uint16 int32 uint32 int64 uint64 float double
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def self.igorConstants
|
|
44
|
+
@igorConstants ||= Set.new %w(
|
|
45
|
+
nan inf
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def self.igorFunction
|
|
50
|
+
@igorFunction ||= Set.new %w(
|
|
51
|
+
axontelegraphsettimeoutms axontelegraphgettimeoutms
|
|
52
|
+
axontelegraphgetdatanum axontelegraphagetdatanum
|
|
53
|
+
axontelegraphgetdatastring axontelegraphagetdatastring
|
|
54
|
+
axontelegraphgetdatastruct axontelegraphagetdatastruct hdf5datasetinfo
|
|
55
|
+
hdf5attributeinfo hdf5typeinfo hdf5libraryinfo
|
|
56
|
+
mpfxgausspeak mpfxlorenzianpeak mpfxvoigtpeak mpfxemgpeak mpfxexpconvexppeak
|
|
57
|
+
abs acos acosh airya airyad airyb airybd
|
|
58
|
+
alog area areaxy asin asinh atan atan2 atanh axisvalfrompixel besseli
|
|
59
|
+
besselj besselk bessely beta betai binarysearch binarysearchinterp
|
|
60
|
+
binomial binomialln binomialnoise cabs capturehistorystart ceil cequal
|
|
61
|
+
char2num chebyshev chebyshevu checkname cmplx cmpstr conj contourz cos
|
|
62
|
+
cosh cosintegral cot coth countobjects countobjectsdfr cpowi
|
|
63
|
+
creationdate csc csch datafolderexists datafolderrefsequal
|
|
64
|
+
datafolderrefstatus date2secs datetime datetojulian dawson defined
|
|
65
|
+
deltax digamma dilogarithm dimdelta dimoffset dimsize ei enoise
|
|
66
|
+
equalwaves erf erfc erfcw exists exp expint expintegrale1 expnoise
|
|
67
|
+
factorial fakedata faverage faveragexy finddimlabel findlistitem floor
|
|
68
|
+
fontsizeheight fontsizestringwidth fresnelcos fresnelsin gamma
|
|
69
|
+
gammaeuler gammainc gammanoise gammln gammp gammq gauss gauss1d gauss2d
|
|
70
|
+
gcd getbrowserline getdefaultfontsize getdefaultfontstyle getkeystate
|
|
71
|
+
getrterror getrtlocation gizmoinfo gizmoscale gnoise grepstring hcsr
|
|
72
|
+
hermite hermitegauss hyperg0f1 hyperg1f1 hyperg2f1 hypergnoise hypergpfq
|
|
73
|
+
igorversion imag indextoscale integrate1d interp interp2d interp3d
|
|
74
|
+
inverseerf inverseerfc itemsinlist jacobicn jacobisn laguerre laguerrea
|
|
75
|
+
laguerregauss lambertw leftx legendrea limit ln log lognormalnoise
|
|
76
|
+
lorentziannoise magsqr mandelbrotpoint marcumq matrixcondition matrixdet
|
|
77
|
+
matrixdot matrixrank matrixtrace max mean median min mod moddate
|
|
78
|
+
norm numberbykey numpnts numtype numvarordefault nvar_exists p2rect
|
|
79
|
+
panelresolution paramisdefault pcsr pi pixelfromaxisval pnt2x
|
|
80
|
+
poissonnoise poly poly2d polygonarea qcsr r2polar real rightx round
|
|
81
|
+
sawtooth scaletoindex screenresolution sec sech selectnumber
|
|
82
|
+
setenvironmentvariable sign sin sinc sinh sinintegral sphericalbessj
|
|
83
|
+
sphericalbessjd sphericalbessy sphericalbessyd sphericalharmonics sqrt
|
|
84
|
+
startmstimer statsbetacdf statsbetapdf statsbinomialcdf statsbinomialpdf
|
|
85
|
+
statscauchycdf statscauchypdf statschicdf statschipdf statscmssdcdf
|
|
86
|
+
statscorrelation statsdexpcdf statsdexppdf statserlangcdf statserlangpdf
|
|
87
|
+
statserrorpdf statsevaluecdf statsevaluepdf statsexpcdf statsexppdf
|
|
88
|
+
statsfcdf statsfpdf statsfriedmancdf statsgammacdf statsgammapdf
|
|
89
|
+
statsgeometriccdf statsgeometricpdf statsgevcdf statsgevpdf
|
|
90
|
+
statshypergcdf statshypergpdf statsinvbetacdf statsinvbinomialcdf
|
|
91
|
+
statsinvcauchycdf statsinvchicdf statsinvcmssdcdf statsinvdexpcdf
|
|
92
|
+
statsinvevaluecdf statsinvexpcdf statsinvfcdf statsinvfriedmancdf
|
|
93
|
+
statsinvgammacdf statsinvgeometriccdf statsinvkuipercdf
|
|
94
|
+
statsinvlogisticcdf statsinvlognormalcdf statsinvmaxwellcdf
|
|
95
|
+
statsinvmoorecdf statsinvnbinomialcdf statsinvncchicdf statsinvncfcdf
|
|
96
|
+
statsinvnormalcdf statsinvparetocdf statsinvpoissoncdf statsinvpowercdf
|
|
97
|
+
statsinvqcdf statsinvqpcdf statsinvrayleighcdf statsinvrectangularcdf
|
|
98
|
+
statsinvspearmancdf statsinvstudentcdf statsinvtopdowncdf
|
|
99
|
+
statsinvtriangularcdf statsinvusquaredcdf statsinvvonmisescdf
|
|
100
|
+
statsinvweibullcdf statskuipercdf statslogisticcdf statslogisticpdf
|
|
101
|
+
statslognormalcdf statslognormalpdf statsmaxwellcdf statsmaxwellpdf
|
|
102
|
+
statsmedian statsmoorecdf statsnbinomialcdf statsnbinomialpdf
|
|
103
|
+
statsncchicdf statsncchipdf statsncfcdf statsncfpdf statsnctcdf
|
|
104
|
+
statsnctpdf statsnormalcdf statsnormalpdf statsparetocdf statsparetopdf
|
|
105
|
+
statspermute statspoissoncdf statspoissonpdf statspowercdf
|
|
106
|
+
statspowernoise statspowerpdf statsqcdf statsqpcdf statsrayleighcdf
|
|
107
|
+
statsrayleighpdf statsrectangularcdf statsrectangularpdf statsrunscdf
|
|
108
|
+
statsspearmanrhocdf statsstudentcdf statsstudentpdf statstopdowncdf
|
|
109
|
+
statstriangularcdf statstriangularpdf statstrimmedmean statsusquaredcdf
|
|
110
|
+
statsvonmisescdf statsvonmisesnoise statsvonmisespdf statswaldcdf
|
|
111
|
+
statswaldpdf statsweibullcdf statsweibullpdf stopmstimer str2num
|
|
112
|
+
stringcrc stringmatch strlen strsearch studenta studentt sum svar_exists
|
|
113
|
+
tagval tan tanh textencodingcode threadgroupcreate threadgrouprelease
|
|
114
|
+
threadgroupwait threadprocessorcount threadreturnvalue ticks trunc
|
|
115
|
+
unsetenvironmentvariable variance vcsr voigtfunc wavecrc wavedims
|
|
116
|
+
waveexists wavemax wavemin waverefsequal wavetextencoding wavetype
|
|
117
|
+
whichlistitem wintype wnoise x2pnt xcsr zcsr zerniker zeta addlistitem
|
|
118
|
+
annotationinfo annotationlist axisinfo axislist base64_decode
|
|
119
|
+
base64_encode capturehistory childwindowlist cleanupname contourinfo
|
|
120
|
+
contournamelist controlnamelist converttextencoding csrinfo csrwave
|
|
121
|
+
csrxwave ctablist datafolderdir date fetchurl fontlist funcrefinfo
|
|
122
|
+
functioninfo functionlist functionpath getbrowserselection getdatafolder
|
|
123
|
+
getdefaultfont getdimlabel getenvironmentvariable geterrmessage
|
|
124
|
+
getformula getindependentmodulename getindexedobjname
|
|
125
|
+
getindexedobjnamedfr getrterrmessage getrtlocinfo getrtstackinfo
|
|
126
|
+
getscraptext getuserdata getwavesdatafolder greplist guideinfo
|
|
127
|
+
guidenamelist hash igorinfo imageinfo imagenamelist
|
|
128
|
+
independentmodulelist indexeddir indexedfile juliantodate layoutinfo
|
|
129
|
+
listmatch lowerstr macrolist nameofwave normalizeunicode note num2char
|
|
130
|
+
num2istr num2str operationlist padstring parsefilepath pathlist pictinfo
|
|
131
|
+
pictlist possiblyquotename proceduretext removebykey removeending
|
|
132
|
+
removefromlist removelistitem replacenumberbykey replacestring
|
|
133
|
+
replacestringbykey secs2date secs2time selectstring sortlist
|
|
134
|
+
specialcharacterinfo specialcharacterlist specialdirpath stringbykey
|
|
135
|
+
stringfromlist stringlist strvarordefault tableinfo textencodingname
|
|
136
|
+
textfile threadgroupgetdf time tracefrompixel traceinfo tracenamelist
|
|
137
|
+
trimstring uniquename unpadstring upperstr urldecode urlencode
|
|
138
|
+
variablelist waveinfo wavelist wavename waverefwavetolist waveunits
|
|
139
|
+
winlist winname winrecreation wmfindwholeword xwavename
|
|
140
|
+
contournametowaveref csrwaveref csrxwaveref imagenametowaveref
|
|
141
|
+
listtotextwave listtowaverefwave newfreewave tagwaveref
|
|
142
|
+
tracenametowaveref waverefindexed waverefindexeddfr xwavereffromtrace
|
|
143
|
+
getdatafolderdfr getwavesdatafolderdfr newfreedatafolder
|
|
144
|
+
)
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def self.igorOperation
|
|
148
|
+
@igorOperation ||= Set.new %w(
|
|
149
|
+
abort addfifodata addfifovectdata addmovieaudio addmovieframe adoptfiles
|
|
150
|
+
apmath append appendimage appendlayoutobject appendmatrixcontour
|
|
151
|
+
appendtext appendtogizmo appendtograph appendtolayout appendtotable
|
|
152
|
+
appendxyzcontour autopositionwindow backgroundinfo beep boundingball
|
|
153
|
+
browseurl buildmenu button cd chart checkbox checkdisplayed choosecolor
|
|
154
|
+
close closehelp closemovie closeproc colorscale colortab2wave
|
|
155
|
+
concatenate controlbar controlinfo controlupdate
|
|
156
|
+
convertglobalstringtextencoding convexhull convolve copyfile copyfolder
|
|
157
|
+
copyscales correlate createaliasshortcut createbrowser cross
|
|
158
|
+
ctrlbackground ctrlfifo ctrlnamedbackground cursor curvefit
|
|
159
|
+
customcontrol cwt debugger debuggeroptions defaultfont
|
|
160
|
+
defaultguicontrols defaultguifont defaulttextencoding defineguide
|
|
161
|
+
delayupdate deleteannotations deletefile deletefolder deletepoints
|
|
162
|
+
differentiate dir display displayhelptopic displayprocedure doalert
|
|
163
|
+
doigormenu doupdate dowindow doxopidle dpss drawaction drawarc
|
|
164
|
+
drawbezier drawline drawoval drawpict drawpoly drawrect drawrrect
|
|
165
|
+
drawtext drawusershape dspdetrend dspperiodogram duplicate
|
|
166
|
+
duplicatedatafolder dwt edgestats edit errorbars execute
|
|
167
|
+
executescripttext experimentmodified exportgizmo extract
|
|
168
|
+
fastgausstransform fastop fbinread fbinwrite fft fgetpos fifo2wave
|
|
169
|
+
fifostatus filterfir filteriir findcontour findduplicates findlevel
|
|
170
|
+
findlevels findpeak findpointsinpoly findroots findsequence findvalue
|
|
171
|
+
fpclustering fprintf freadline fsetpos fstatus ftpcreatedirectory
|
|
172
|
+
ftpdelete ftpdownload ftpupload funcfit funcfitmd gbloadwave getaxis
|
|
173
|
+
getcamera getfilefolderinfo getgizmo getlastusermenuinfo getmarquee
|
|
174
|
+
getmouse getselection getwindow graphnormal graphwavedraw graphwaveedit
|
|
175
|
+
grep groupbox hanning hideigormenus hideinfo hideprocedures hidetools
|
|
176
|
+
hilberttransform histogram ica ifft imageanalyzeparticles imageblend
|
|
177
|
+
imageboundarytomask imageedgedetection imagefileinfo imagefilter
|
|
178
|
+
imagefocus imagefromxyz imagegenerateroimask imageglcm
|
|
179
|
+
imagehistmodification imagehistogram imageinterpolate imagelineprofile
|
|
180
|
+
imageload imagemorphology imageregistration imageremovebackground
|
|
181
|
+
imagerestore imagerotate imagesave imageseedfill imageskeleton3d
|
|
182
|
+
imagesnake imagestats imagethreshold imagetransform imageunwrapphase
|
|
183
|
+
imagewindow indexsort insertpoints integrate integrate2d integrateode
|
|
184
|
+
interp3dpath interpolate2 interpolate3d jcamploadwave jointhistogram
|
|
185
|
+
killbackground killcontrol killdatafolder killfifo killfreeaxis killpath
|
|
186
|
+
killpicts killstrings killvariables killwaves killwindow kmeans label
|
|
187
|
+
layout layoutpageaction layoutslideshow legend
|
|
188
|
+
linearfeedbackshiftregister listbox loaddata loadpackagepreferences
|
|
189
|
+
loadpict loadwave loess lombperiodogram make makeindex markperftesttime
|
|
190
|
+
matrixconvolve matrixcorr matrixeigenv matrixfilter matrixgaussj
|
|
191
|
+
matrixglm matrixinverse matrixlinearsolve matrixlinearsolvetd matrixlls
|
|
192
|
+
matrixlubksub matrixlud matrixludtd matrixmultiply matrixop matrixschur
|
|
193
|
+
matrixsolve matrixsvbksub matrixsvd matrixtranspose measurestyledtext
|
|
194
|
+
mlloadwave modify modifybrowser modifycamera modifycontour modifycontrol
|
|
195
|
+
modifycontrollist modifyfreeaxis modifygizmo modifygraph modifyimage
|
|
196
|
+
modifylayout modifypanel modifytable modifywaterfall movedatafolder
|
|
197
|
+
movefile movefolder movestring movesubwindow movevariable movewave
|
|
198
|
+
movewindow multitaperpsd multithreadingcontrol neuralnetworkrun
|
|
199
|
+
neuralnetworktrain newcamera newdatafolder newfifo newfifochan
|
|
200
|
+
newfreeaxis newgizmo newimage newlayout newmovie newnotebook newpanel
|
|
201
|
+
newpath newwaterfall note notebook notebookaction open openhelp
|
|
202
|
+
opennotebook optimize parseoperationtemplate pathinfo pauseforuser
|
|
203
|
+
pauseupdate pca playmovie playmovieaction playsound popupcontextualmenu
|
|
204
|
+
popupmenu preferences primefactors print printf printgraphs printlayout
|
|
205
|
+
printnotebook printsettings printtable project pulsestats putscraptext
|
|
206
|
+
pwd quit ratiofromnumber redimension remove removecontour
|
|
207
|
+
removefromgizmo removefromgraph removefromlayout removefromtable
|
|
208
|
+
removeimage removelayoutobjects removepath rename renamedatafolder
|
|
209
|
+
renamepath renamepict renamewindow reorderimages reordertraces
|
|
210
|
+
replacetext replacewave resample resumeupdate reverse rotate save
|
|
211
|
+
savedata saveexperiment savegraphcopy savenotebook
|
|
212
|
+
savepackagepreferences savepict savetablecopy setactivesubwindow setaxis
|
|
213
|
+
setbackground setdashpattern setdatafolder setdimlabel setdrawenv
|
|
214
|
+
setdrawlayer setfilefolderinfo setformula setigorhook setigormenumode
|
|
215
|
+
setigoroption setmarquee setprocesssleep setrandomseed setscale
|
|
216
|
+
setvariable setwavelock setwavetextencoding setwindow showigormenus
|
|
217
|
+
showinfo showtools silent sleep slider smooth smoothcustom sort
|
|
218
|
+
sortcolumns soundinrecord soundinset soundinstartchart soundinstatus
|
|
219
|
+
soundinstopchart soundloadwave soundsavewave sphericalinterpolate
|
|
220
|
+
sphericaltriangulate splitstring splitwave sprintf sscanf stack
|
|
221
|
+
stackwindows statsangulardistancetest statsanova1test statsanova2nrtest
|
|
222
|
+
statsanova2rmtest statsanova2test statschitest
|
|
223
|
+
statscircularcorrelationtest statscircularmeans statscircularmoments
|
|
224
|
+
statscirculartwosampletest statscochrantest statscontingencytable
|
|
225
|
+
statsdiptest statsdunnetttest statsfriedmantest statsftest
|
|
226
|
+
statshodgesajnetest statsjbtest statskde statskendalltautest statskstest
|
|
227
|
+
statskwtest statslinearcorrelationtest statslinearregression
|
|
228
|
+
statsmulticorrelationtest statsnpmctest statsnpnominalsrtest
|
|
229
|
+
statsquantiles statsrankcorrelationtest statsresample statssample
|
|
230
|
+
statsscheffetest statsshapirowilktest statssigntest statssrtest
|
|
231
|
+
statsttest statstukeytest statsvariancestest statswatsonusquaredtest
|
|
232
|
+
statswatsonwilliamstest statswheelerwatsontest statswilcoxonranktest
|
|
233
|
+
statswrcorrelationtest structget structput sumdimension sumseries
|
|
234
|
+
tabcontrol tag textbox threadgroupputdf threadstart tile tilewindows
|
|
235
|
+
titlebox tocommandline toolsgrid triangulate3d unwrap urlrequest
|
|
236
|
+
valdisplay waveclear wavemeanstdv wavestats wavetransform wfprintf
|
|
237
|
+
)
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def self.hdf5Operation
|
|
241
|
+
@hdf5Operation ||= Set.new %w(
|
|
242
|
+
hdf5createfile hdf5openfile hdf5closefile hdf5creategroup hdf5opengroup
|
|
243
|
+
hdf5listgroup hdf5closegroup hdf5listattributes hdf5attributeinfo hdf5datasetinfo
|
|
244
|
+
hdf5loaddata hdf5loadimage hdf5loadgroup hdf5savedata hdf5saveimage hdf5savegroup
|
|
245
|
+
hdf5typeinfo hdf5createlink hdf5unlinkobject hdf5libraryinfo
|
|
246
|
+
hdf5dumpstate hdf5dump hdf5dumperrors
|
|
247
|
+
)
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
def self.object_name
|
|
251
|
+
/\b[a-z][a-z0-9_\.]*?\b/i
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
object = self.object_name
|
|
255
|
+
noLineBreak = /(?:[ \t]|(?:\\\s*[\r\n]))+/
|
|
256
|
+
operator = %r([\#$~!%^&*+=\|?:<>/-])
|
|
257
|
+
punctuation = /[{}()\[\],.;]/
|
|
258
|
+
number_float= /0x[a-f0-9]+/i
|
|
259
|
+
number_hex = /\d+\.\d+(e[\+\-]?\d+)?/
|
|
260
|
+
number_int = /[\d]+(?:_\d+)*/
|
|
261
|
+
|
|
262
|
+
state :root do
|
|
263
|
+
rule %r(//), Comment, :comments
|
|
264
|
+
|
|
265
|
+
rule /#{object}/ do |m|
|
|
266
|
+
if m[0].downcase =~ /function/
|
|
267
|
+
token Keyword::Declaration
|
|
268
|
+
push :parse_function
|
|
269
|
+
elsif self.class.igorDeclarations.include? m[0].downcase
|
|
270
|
+
token Keyword::Declaration
|
|
271
|
+
push :parse_variables
|
|
272
|
+
elsif self.class.keywords.include? m[0].downcase
|
|
273
|
+
token Keyword
|
|
274
|
+
elsif self.class.igorConstants.include? m[0].downcase
|
|
275
|
+
token Keyword::Constant
|
|
276
|
+
elsif self.class.igorFunction.include? m[0].downcase
|
|
277
|
+
token Name::Builtin
|
|
278
|
+
elsif self.class.igorOperation.include? m[0].downcase
|
|
279
|
+
token Keyword::Reserved
|
|
280
|
+
push :operationFlags
|
|
281
|
+
elsif self.class.hdf5Operation.include? m[0].downcase
|
|
282
|
+
token Keyword::Reserved
|
|
283
|
+
push :operationFlags
|
|
284
|
+
elsif m[0].downcase =~ /\b(v|s|w)_[a-z]+[a-z0-9]*/
|
|
285
|
+
token Name::Constant
|
|
286
|
+
else
|
|
287
|
+
token Name
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
mixin :preprocessor
|
|
292
|
+
mixin :waveFlag
|
|
293
|
+
|
|
294
|
+
mixin :characters
|
|
295
|
+
mixin :numbers
|
|
296
|
+
mixin :whitespace
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
state :preprocessor do
|
|
300
|
+
rule %r((\#)(#{object})) do |m|
|
|
301
|
+
if self.class.preprocessor.include? m[2].downcase
|
|
302
|
+
token Comment::Preproc
|
|
303
|
+
else
|
|
304
|
+
token Punctuation, m[1] #i.e. ModuleFunctions
|
|
305
|
+
token Name, m[2]
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
end
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
state :assignment do
|
|
313
|
+
mixin :whitespace
|
|
314
|
+
rule /\"/, Literal::String::Double, :string1 #punctuation for string
|
|
315
|
+
mixin :string2
|
|
316
|
+
rule /#{number_float}/, Literal::Number::Float, :pop!
|
|
317
|
+
rule /#{number_int}/, Literal::Number::Integer, :pop!
|
|
318
|
+
rule /[\(\[\{][^\)\]\}]+[\)\]\}]/, Generic, :pop!
|
|
319
|
+
rule /[^\s\/\(]+/, Generic, :pop!
|
|
320
|
+
rule(//) { pop! }
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
state :parse_variables do
|
|
324
|
+
mixin :whitespace
|
|
325
|
+
rule /[=]/, Punctuation, :assignment
|
|
326
|
+
rule object, Name::Variable
|
|
327
|
+
rule /[\[\]]/, Punctuation # optional variables in functions
|
|
328
|
+
rule /[,]/, Punctuation, :parse_variables
|
|
329
|
+
rule /\)/, Punctuation, :pop! # end of function
|
|
330
|
+
rule %r([/][a-z]+)i, Keyword::Pseudo, :parse_variables
|
|
331
|
+
rule(//) { pop! }
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
state :parse_function do
|
|
335
|
+
rule %r([/][a-z]+)i, Keyword::Pseudo # only one flag
|
|
336
|
+
mixin :whitespace
|
|
337
|
+
rule object, Name::Function
|
|
338
|
+
rule /[\(]/, Punctuation, :parse_variables
|
|
339
|
+
rule(//) { pop! }
|
|
340
|
+
end
|
|
341
|
+
|
|
342
|
+
state :operationFlags do
|
|
343
|
+
rule /#{noLineBreak}/, Text
|
|
344
|
+
rule /[=]/, Punctuation, :assignment
|
|
345
|
+
rule %r([/][a-z]+)i, Keyword::Pseudo, :operationFlags
|
|
346
|
+
rule /(as)(\s*)(#{object})/i do
|
|
347
|
+
groups Keyword::Type, Text, Name::Label
|
|
348
|
+
end
|
|
349
|
+
rule(//) { pop! }
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
# inline variable assignments (i.e. for Make) with strict syntax
|
|
353
|
+
state :waveFlag do
|
|
354
|
+
rule %r(
|
|
355
|
+
(/(?:wave|X|Y))
|
|
356
|
+
(\s*)(=)(\s*)
|
|
357
|
+
(#{object})
|
|
358
|
+
)ix do |m|
|
|
359
|
+
token Keyword::Pseudo, m[1]
|
|
360
|
+
token Text, m[2]
|
|
361
|
+
token Punctuation, m[3]
|
|
362
|
+
token Text, m[4]
|
|
363
|
+
token Name::Variable, m[5]
|
|
364
|
+
end
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
state :characters do
|
|
368
|
+
rule /\s/, Text
|
|
369
|
+
rule /#{operator}/, Operator
|
|
370
|
+
rule /#{punctuation}/, Punctuation
|
|
371
|
+
rule /\"/, Literal::String::Double, :string1 #punctuation for string
|
|
372
|
+
mixin :string2
|
|
373
|
+
end
|
|
374
|
+
|
|
375
|
+
state :numbers do
|
|
376
|
+
rule /#{number_float}/, Literal::Number::Float
|
|
377
|
+
rule /#{number_hex}/, Literal::Number::Hex
|
|
378
|
+
rule /#{number_int}/, Literal::Number::Integer
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
state :whitespace do
|
|
382
|
+
rule /#{noLineBreak}/, Text
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
state :string1 do
|
|
386
|
+
rule /%\w\b/, Literal::String::Other
|
|
387
|
+
rule /\\\\/, Literal::String::Escape
|
|
388
|
+
rule /\\\"/, Literal::String::Escape
|
|
389
|
+
rule /\\/, Literal::String::Escape
|
|
390
|
+
rule /[^"]/, Literal::String
|
|
391
|
+
rule /\"/, Literal::String::Double, :pop! #punctuation for string
|
|
392
|
+
end
|
|
393
|
+
|
|
394
|
+
state :string2 do
|
|
395
|
+
rule /\'[^']*\'/, Literal::String::Single
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
state :comments do
|
|
399
|
+
rule %r{([/]\s*)([@]\w+\b)}i do
|
|
400
|
+
# doxygen comments
|
|
401
|
+
groups Comment, Comment::Special
|
|
402
|
+
end
|
|
403
|
+
rule /[^\r\n]/, Comment
|
|
404
|
+
rule(//) { pop! }
|
|
405
|
+
end
|
|
406
|
+
end
|
|
407
|
+
end
|
|
408
|
+
end
|