rouge 3.17.0
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 +40 -0
- data/LICENSE +186 -0
- data/bin/rougify +18 -0
- data/lib/rouge.rb +93 -0
- data/lib/rouge/cli.rb +498 -0
- data/lib/rouge/demos/abap +6 -0
- data/lib/rouge/demos/actionscript +4 -0
- data/lib/rouge/demos/ada +26 -0
- data/lib/rouge/demos/apache +21 -0
- data/lib/rouge/demos/apex +9 -0
- data/lib/rouge/demos/apiblueprint +33 -0
- data/lib/rouge/demos/applescript +2 -0
- data/lib/rouge/demos/armasm +12 -0
- data/lib/rouge/demos/awk +4 -0
- data/lib/rouge/demos/batchfile +3 -0
- data/lib/rouge/demos/bbcbasic +6 -0
- data/lib/rouge/demos/biml +38 -0
- data/lib/rouge/demos/bpf +7 -0
- data/lib/rouge/demos/brainfuck +5 -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/clean +6 -0
- data/lib/rouge/demos/clojure +5 -0
- data/lib/rouge/demos/cmake +7 -0
- data/lib/rouge/demos/cmhg +8 -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/crystal +45 -0
- data/lib/rouge/demos/csharp +5 -0
- data/lib/rouge/demos/css +4 -0
- data/lib/rouge/demos/csvs +8 -0
- data/lib/rouge/demos/cuda +11 -0
- data/lib/rouge/demos/cython +6 -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 +18 -0
- data/lib/rouge/demos/eex +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/epp +4 -0
- data/lib/rouge/demos/erb +1 -0
- data/lib/rouge/demos/erlang +7 -0
- data/lib/rouge/demos/escape +3 -0
- data/lib/rouge/demos/factor +5 -0
- data/lib/rouge/demos/fortran +22 -0
- data/lib/rouge/demos/freefem +16 -0
- data/lib/rouge/demos/fsharp +12 -0
- data/lib/rouge/demos/gdscript +18 -0
- data/lib/rouge/demos/ghc-core +26 -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/haxe +5 -0
- data/lib/rouge/demos/hcl +7 -0
- data/lib/rouge/demos/hocon +8 -0
- data/lib/rouge/demos/hql +5 -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/jsl +3 -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/jsp +29 -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 +10 -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/lustre +6 -0
- data/lib/rouge/demos/lutin +18 -0
- data/lib/rouge/demos/m68k +16 -0
- data/lib/rouge/demos/magik +6 -0
- data/lib/rouge/demos/make +6 -0
- data/lib/rouge/demos/markdown +4 -0
- data/lib/rouge/demos/mason +22 -0
- data/lib/rouge/demos/mathematica +8 -0
- data/lib/rouge/demos/matlab +6 -0
- data/lib/rouge/demos/minizinc +23 -0
- data/lib/rouge/demos/moonscript +16 -0
- data/lib/rouge/demos/mosel +10 -0
- data/lib/rouge/demos/msgtrans +4 -0
- data/lib/rouge/demos/mxml +22 -0
- data/lib/rouge/demos/nasm +26 -0
- data/lib/rouge/demos/nesasm +11 -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/objective_cpp +17 -0
- data/lib/rouge/demos/ocaml +12 -0
- data/lib/rouge/demos/openedge +4 -0
- data/lib/rouge/demos/opentype_feature_file +6 -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 +11 -0
- data/lib/rouge/demos/pony +17 -0
- data/lib/rouge/demos/powershell +13 -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 +8 -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/reasonml +12 -0
- data/lib/rouge/demos/robot_framework +27 -0
- data/lib/rouge/demos/ruby +9 -0
- data/lib/rouge/demos/rust +12 -0
- data/lib/rouge/demos/sas +13 -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/slice +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/sparql +6 -0
- data/lib/rouge/demos/sqf +14 -0
- data/lib/rouge/demos/sql +1 -0
- data/lib/rouge/demos/supercollider +11 -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/terraform +16 -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/ttcn3 +6 -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/vcl +12 -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/xojo +14 -0
- data/lib/rouge/demos/xpath +2 -0
- data/lib/rouge/demos/xquery +22 -0
- data/lib/rouge/demos/yaml +4 -0
- data/lib/rouge/formatter.rb +112 -0
- data/lib/rouge/formatters/html.rb +56 -0
- data/lib/rouge/formatters/html_inline.rb +31 -0
- data/lib/rouge/formatters/html_legacy.rb +45 -0
- data/lib/rouge/formatters/html_line_table.rb +53 -0
- data/lib/rouge/formatters/html_linewise.rb +23 -0
- data/lib/rouge/formatters/html_pygments.rb +18 -0
- data/lib/rouge/formatters/html_table.rb +51 -0
- data/lib/rouge/formatters/null.rb +20 -0
- data/lib/rouge/formatters/terminal256.rb +198 -0
- data/lib/rouge/formatters/terminal_truecolor.rb +37 -0
- data/lib/rouge/formatters/tex.rb +92 -0
- data/lib/rouge/guesser.rb +57 -0
- data/lib/rouge/guessers/disambiguation.rb +136 -0
- data/lib/rouge/guessers/filename.rb +27 -0
- data/lib/rouge/guessers/glob_mapping.rb +45 -0
- data/lib/rouge/guessers/mimetype.rb +16 -0
- data/lib/rouge/guessers/modeline.rb +46 -0
- data/lib/rouge/guessers/source.rb +31 -0
- data/lib/rouge/guessers/util.rb +34 -0
- data/lib/rouge/lexer.rb +516 -0
- data/lib/rouge/lexers/abap.rb +240 -0
- data/lib/rouge/lexers/actionscript.rb +196 -0
- data/lib/rouge/lexers/ada.rb +162 -0
- data/lib/rouge/lexers/apache.rb +73 -0
- data/lib/rouge/lexers/apache/keywords.yml +764 -0
- data/lib/rouge/lexers/apex.rb +126 -0
- data/lib/rouge/lexers/apiblueprint.rb +49 -0
- data/lib/rouge/lexers/apple_script.rb +370 -0
- data/lib/rouge/lexers/armasm.rb +145 -0
- data/lib/rouge/lexers/awk.rb +162 -0
- data/lib/rouge/lexers/batchfile.rb +164 -0
- data/lib/rouge/lexers/bbcbasic.rb +112 -0
- data/lib/rouge/lexers/biml.rb +43 -0
- data/lib/rouge/lexers/bpf.rb +118 -0
- data/lib/rouge/lexers/brainfuck.rb +53 -0
- data/lib/rouge/lexers/bsl.rb +82 -0
- data/lib/rouge/lexers/c.rb +190 -0
- data/lib/rouge/lexers/ceylon.rb +96 -0
- data/lib/rouge/lexers/cfscript.rb +154 -0
- data/lib/rouge/lexers/clean.rb +156 -0
- data/lib/rouge/lexers/clojure.rb +113 -0
- data/lib/rouge/lexers/cmake.rb +207 -0
- data/lib/rouge/lexers/cmhg.rb +34 -0
- data/lib/rouge/lexers/coffeescript.rb +215 -0
- data/lib/rouge/lexers/common_lisp.rb +346 -0
- data/lib/rouge/lexers/conf.rb +25 -0
- data/lib/rouge/lexers/console.rb +174 -0
- data/lib/rouge/lexers/coq.rb +191 -0
- data/lib/rouge/lexers/cpp.rb +82 -0
- data/lib/rouge/lexers/crystal.rb +430 -0
- data/lib/rouge/lexers/csharp.rb +114 -0
- data/lib/rouge/lexers/css.rb +274 -0
- data/lib/rouge/lexers/csvs.rb +44 -0
- data/lib/rouge/lexers/cuda.rb +35 -0
- data/lib/rouge/lexers/cython.rb +151 -0
- data/lib/rouge/lexers/d.rb +177 -0
- data/lib/rouge/lexers/dart.rb +105 -0
- data/lib/rouge/lexers/diff.rb +37 -0
- data/lib/rouge/lexers/digdag.rb +70 -0
- data/lib/rouge/lexers/docker.rb +51 -0
- data/lib/rouge/lexers/dot.rb +69 -0
- data/lib/rouge/lexers/ecl.rb +175 -0
- data/lib/rouge/lexers/eex.rb +52 -0
- data/lib/rouge/lexers/eiffel.rb +66 -0
- data/lib/rouge/lexers/elixir.rb +149 -0
- data/lib/rouge/lexers/elm.rb +90 -0
- data/lib/rouge/lexers/epp.rb +51 -0
- data/lib/rouge/lexers/erb.rb +53 -0
- data/lib/rouge/lexers/erlang.rb +115 -0
- data/lib/rouge/lexers/escape.rb +58 -0
- data/lib/rouge/lexers/factor.rb +303 -0
- data/lib/rouge/lexers/fortran.rb +178 -0
- data/lib/rouge/lexers/freefem.rb +240 -0
- data/lib/rouge/lexers/fsharp.rb +119 -0
- data/lib/rouge/lexers/gdscript.rb +171 -0
- data/lib/rouge/lexers/ghc_core.rb +151 -0
- data/lib/rouge/lexers/gherkin.rb +140 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +16 -0
- data/lib/rouge/lexers/glsl.rb +132 -0
- data/lib/rouge/lexers/go.rb +175 -0
- data/lib/rouge/lexers/gradle.rb +38 -0
- data/lib/rouge/lexers/graphql.rb +261 -0
- data/lib/rouge/lexers/groovy.rb +111 -0
- data/lib/rouge/lexers/hack.rb +49 -0
- data/lib/rouge/lexers/haml.rb +226 -0
- data/lib/rouge/lexers/handlebars.rb +91 -0
- data/lib/rouge/lexers/haskell.rb +199 -0
- data/lib/rouge/lexers/haxe.rb +246 -0
- data/lib/rouge/lexers/hcl.rb +163 -0
- data/lib/rouge/lexers/hocon.rb +86 -0
- data/lib/rouge/lexers/hql.rb +139 -0
- data/lib/rouge/lexers/html.rb +141 -0
- data/lib/rouge/lexers/http.rb +81 -0
- data/lib/rouge/lexers/hylang.rb +94 -0
- data/lib/rouge/lexers/idlang.rb +312 -0
- data/lib/rouge/lexers/igorpro.rb +664 -0
- data/lib/rouge/lexers/ini.rb +54 -0
- data/lib/rouge/lexers/io.rb +69 -0
- data/lib/rouge/lexers/irb.rb +67 -0
- data/lib/rouge/lexers/java.rb +91 -0
- data/lib/rouge/lexers/javascript.rb +279 -0
- data/lib/rouge/lexers/jinja.rb +154 -0
- data/lib/rouge/lexers/jsl.rb +55 -0
- data/lib/rouge/lexers/json.rb +69 -0
- data/lib/rouge/lexers/json_doc.rb +25 -0
- data/lib/rouge/lexers/jsonnet.rb +152 -0
- data/lib/rouge/lexers/jsp.rb +120 -0
- data/lib/rouge/lexers/jsx.rb +104 -0
- data/lib/rouge/lexers/julia.rb +290 -0
- data/lib/rouge/lexers/kotlin.rb +127 -0
- data/lib/rouge/lexers/lasso.rb +215 -0
- data/lib/rouge/lexers/lasso/keywords.yml +446 -0
- data/lib/rouge/lexers/liquid.rb +285 -0
- data/lib/rouge/lexers/literate_coffeescript.rb +34 -0
- data/lib/rouge/lexers/literate_haskell.rb +37 -0
- data/lib/rouge/lexers/llvm.rb +97 -0
- data/lib/rouge/lexers/lua.rb +164 -0
- data/lib/rouge/lexers/lua/builtins.rb +24 -0
- data/lib/rouge/lexers/lustre.rb +79 -0
- data/lib/rouge/lexers/lutin.rb +33 -0
- data/lib/rouge/lexers/m68k.rb +143 -0
- data/lib/rouge/lexers/magik.rb +127 -0
- data/lib/rouge/lexers/make.rb +135 -0
- data/lib/rouge/lexers/markdown.rb +182 -0
- data/lib/rouge/lexers/mason.rb +110 -0
- data/lib/rouge/lexers/mathematica.rb +96 -0
- data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
- data/lib/rouge/lexers/matlab.rb +81 -0
- data/lib/rouge/lexers/matlab/builtins.yml +3515 -0
- data/lib/rouge/lexers/minizinc.rb +87 -0
- data/lib/rouge/lexers/moonscript.rb +115 -0
- data/lib/rouge/lexers/mosel.rb +232 -0
- data/lib/rouge/lexers/msgtrans.rb +26 -0
- data/lib/rouge/lexers/mxml.rb +69 -0
- data/lib/rouge/lexers/nasm.rb +72 -0
- data/lib/rouge/lexers/nesasm.rb +78 -0
- data/lib/rouge/lexers/nginx.rb +72 -0
- data/lib/rouge/lexers/nim.rb +154 -0
- data/lib/rouge/lexers/nix.rb +211 -0
- data/lib/rouge/lexers/objective_c.rb +21 -0
- data/lib/rouge/lexers/objective_c/common.rb +184 -0
- data/lib/rouge/lexers/objective_cpp.rb +31 -0
- data/lib/rouge/lexers/ocaml.rb +65 -0
- data/lib/rouge/lexers/ocaml/common.rb +53 -0
- data/lib/rouge/lexers/openedge.rb +429 -0
- data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
- data/lib/rouge/lexers/pascal.rb +67 -0
- data/lib/rouge/lexers/perl.rb +231 -0
- data/lib/rouge/lexers/php.rb +216 -0
- data/lib/rouge/lexers/php/builtins.rb +203 -0
- data/lib/rouge/lexers/plain_text.rb +27 -0
- data/lib/rouge/lexers/plist.rb +47 -0
- data/lib/rouge/lexers/pony.rb +94 -0
- data/lib/rouge/lexers/powershell.rb +230 -0
- data/lib/rouge/lexers/praat.rb +351 -0
- data/lib/rouge/lexers/prolog.rb +67 -0
- data/lib/rouge/lexers/prometheus.rb +123 -0
- data/lib/rouge/lexers/properties.rb +52 -0
- data/lib/rouge/lexers/protobuf.rb +71 -0
- data/lib/rouge/lexers/puppet.rb +129 -0
- data/lib/rouge/lexers/python.rb +248 -0
- data/lib/rouge/lexers/q.rb +126 -0
- data/lib/rouge/lexers/qml.rb +74 -0
- data/lib/rouge/lexers/r.rb +89 -0
- data/lib/rouge/lexers/racket.rb +545 -0
- data/lib/rouge/lexers/reasonml.rb +65 -0
- data/lib/rouge/lexers/robot_framework.rb +249 -0
- data/lib/rouge/lexers/ruby.rb +444 -0
- data/lib/rouge/lexers/rust.rb +193 -0
- data/lib/rouge/lexers/sas.rb +563 -0
- data/lib/rouge/lexers/sass.rb +75 -0
- data/lib/rouge/lexers/sass/common.rb +181 -0
- data/lib/rouge/lexers/scala.rb +169 -0
- data/lib/rouge/lexers/scheme.rb +113 -0
- data/lib/rouge/lexers/scss.rb +35 -0
- data/lib/rouge/lexers/sed.rb +173 -0
- data/lib/rouge/lexers/shell.rb +201 -0
- data/lib/rouge/lexers/sieve.rb +97 -0
- data/lib/rouge/lexers/slice.rb +32 -0
- data/lib/rouge/lexers/slim.rb +229 -0
- data/lib/rouge/lexers/smalltalk.rb +117 -0
- data/lib/rouge/lexers/smarty.rb +81 -0
- data/lib/rouge/lexers/sml.rb +345 -0
- data/lib/rouge/lexers/sparql.rb +129 -0
- data/lib/rouge/lexers/sqf.rb +109 -0
- data/lib/rouge/lexers/sqf/commands.rb +15 -0
- data/lib/rouge/lexers/sql.rb +161 -0
- data/lib/rouge/lexers/supercollider.rb +116 -0
- data/lib/rouge/lexers/swift.rb +186 -0
- data/lib/rouge/lexers/tap.rb +89 -0
- data/lib/rouge/lexers/tcl.rb +193 -0
- data/lib/rouge/lexers/terraform.rb +113 -0
- data/lib/rouge/lexers/tex.rb +70 -0
- data/lib/rouge/lexers/toml.rb +106 -0
- data/lib/rouge/lexers/tsx.rb +20 -0
- data/lib/rouge/lexers/ttcn3.rb +119 -0
- data/lib/rouge/lexers/tulip.rb +108 -0
- data/lib/rouge/lexers/turtle.rb +61 -0
- data/lib/rouge/lexers/twig.rb +40 -0
- data/lib/rouge/lexers/typescript.rb +30 -0
- data/lib/rouge/lexers/typescript/common.rb +34 -0
- data/lib/rouge/lexers/vala.rb +78 -0
- data/lib/rouge/lexers/varnish.rb +168 -0
- data/lib/rouge/lexers/vb.rb +165 -0
- data/lib/rouge/lexers/verilog.rb +163 -0
- data/lib/rouge/lexers/vhdl.rb +98 -0
- data/lib/rouge/lexers/viml.rb +102 -0
- data/lib/rouge/lexers/viml/keywords.rb +14 -0
- data/lib/rouge/lexers/vue.rb +124 -0
- data/lib/rouge/lexers/wollok.rb +104 -0
- data/lib/rouge/lexers/xml.rb +54 -0
- data/lib/rouge/lexers/xojo.rb +61 -0
- data/lib/rouge/lexers/xpath.rb +332 -0
- data/lib/rouge/lexers/xquery.rb +145 -0
- data/lib/rouge/lexers/yaml.rb +376 -0
- data/lib/rouge/plugins/redcarpet.rb +37 -0
- data/lib/rouge/regex_lexer.rb +443 -0
- data/lib/rouge/template_lexer.rb +21 -0
- data/lib/rouge/tex_theme_renderer.rb +132 -0
- data/lib/rouge/text_analyzer.rb +50 -0
- data/lib/rouge/theme.rb +218 -0
- data/lib/rouge/themes/base16.rb +131 -0
- data/lib/rouge/themes/bw.rb +41 -0
- data/lib/rouge/themes/colorful.rb +68 -0
- data/lib/rouge/themes/github.rb +72 -0
- data/lib/rouge/themes/gruvbox.rb +168 -0
- data/lib/rouge/themes/igor_pro.rb +21 -0
- data/lib/rouge/themes/magritte.rb +78 -0
- data/lib/rouge/themes/molokai.rb +83 -0
- data/lib/rouge/themes/monokai.rb +93 -0
- data/lib/rouge/themes/monokai_sublime.rb +93 -0
- data/lib/rouge/themes/pastie.rb +70 -0
- data/lib/rouge/themes/thankful_eyes.rb +75 -0
- data/lib/rouge/themes/tulip.rb +70 -0
- data/lib/rouge/token.rb +191 -0
- data/lib/rouge/util.rb +102 -0
- data/lib/rouge/version.rb +8 -0
- data/rouge.gemspec +26 -0
- metadata +476 -0
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# vim: set ts=2 sw=2 et:
|
|
5
|
+
|
|
6
|
+
module Rouge
|
|
7
|
+
module Lexers
|
|
8
|
+
class IDLang < RegexLexer
|
|
9
|
+
title "IDL"
|
|
10
|
+
desc "Interactive Data Language"
|
|
11
|
+
|
|
12
|
+
tag 'idlang'
|
|
13
|
+
filenames '*.idl'
|
|
14
|
+
|
|
15
|
+
name = /[_A-Z]\w*/i
|
|
16
|
+
kind_param = /(\d+|#{name})/
|
|
17
|
+
exponent = /[dDeE][+-]\d+/
|
|
18
|
+
|
|
19
|
+
def self.exec_unit
|
|
20
|
+
@exec_unit ||= Set.new %w(
|
|
21
|
+
PRO FUNCTION
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.keywords
|
|
26
|
+
@keywords ||= Set.new %w(
|
|
27
|
+
STRUCT INHERITS
|
|
28
|
+
RETURN CONTINUE BEGIN END BREAK GOTO
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.standalone_statements
|
|
33
|
+
# Must not have a comma afterwards
|
|
34
|
+
@standalone_statements ||= Set.new %w(
|
|
35
|
+
COMMON FORWARD_FUNCTION
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def self.decorators
|
|
40
|
+
# Must not have a comma afterwards
|
|
41
|
+
@decorators ||= Set.new %w(
|
|
42
|
+
COMPILE_OPT
|
|
43
|
+
)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def self.operators
|
|
47
|
+
@operators ||= Set.new %w(
|
|
48
|
+
AND= EQ= GE= GT= LE= LT= MOD= NE= OR= XOR= NOT=
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def self.conditionals
|
|
53
|
+
@conditionals ||= Set.new %w(
|
|
54
|
+
OF DO ENDIF ENDELSE ENDFOR ENDFOREACH ENDWHILE ENDREP ENDCASE ENDSWITCH
|
|
55
|
+
IF THEN ELSE FOR FOREACH WHILE REPEAT UNTIL CASE SWITCH
|
|
56
|
+
AND EQ GE GT LE LT MOD NE OR XOR NOT
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def self.routines
|
|
61
|
+
@routines ||= Set.new %w(
|
|
62
|
+
A_CORRELATE ABS ACOS ADAPT_HIST_EQUAL ALOG ALOG10
|
|
63
|
+
AMOEBA ANNOTATE ARG_PRESENT ARRAY_EQUAL
|
|
64
|
+
ARRAY_INDICES ARROW ASCII_TEMPLATE ASIN ASSOC ATAN
|
|
65
|
+
AXIS BAR_PLOT BESELI BESELJ BESELK BESELY BETA
|
|
66
|
+
BILINEAR BIN_DATE BINARY_TEMPLATE BINDGEN BINOMIAL
|
|
67
|
+
BLAS_AXPY BLK_CON BOX_CURSOR BREAK BREAKPOINT
|
|
68
|
+
BROYDEN BYTARR BYTE BYTEORDER BYTSCL C_CORRELATE
|
|
69
|
+
CALDAT CALENDAR CALL_EXTERNAL CALL_FUNCTION
|
|
70
|
+
CALL_METHOD CALL_PROCEDURE CATCH CD CEIL CHEBYSHEV
|
|
71
|
+
CHECK_MATH CHISQR_CVF CHISQR_PDF CHOLDC CHOLSOL
|
|
72
|
+
CINDGEN CIR_3PNT CLOSE CLUST_WTS CLUSTER
|
|
73
|
+
COLOR_CONVERT COLOR_QUAN COLORMAP_APPLICABLE COMFIT
|
|
74
|
+
COMPLEX COMPLEXARR COMPLEXROUND
|
|
75
|
+
COMPUTE_MESH_NORMALS COND CONGRID CONJ
|
|
76
|
+
CONSTRAINED_MIN CONTOUR CONVERT_COORD CONVOL
|
|
77
|
+
COORD2TO3 CORRELATE COS COSH CRAMER CREATE_STRUCT
|
|
78
|
+
CREATE_VIEW CROSSP CRVLENGTH CT_LUMINANCE CTI_TEST
|
|
79
|
+
CURSOR CURVEFIT CV_COORD CVTTOBM CW_ANIMATE
|
|
80
|
+
CW_ANIMATE_GETP CW_ANIMATE_LOAD CW_ANIMATE_RUN
|
|
81
|
+
CW_ARCBALL CW_BGROUP CW_CLR_INDEX CW_COLORSEL
|
|
82
|
+
CW_DEFROI CW_FIELD CW_FILESEL CW_FORM CW_FSLIDER
|
|
83
|
+
CW_LIGHT_EDITOR CW_LIGHT_EDITOR_GET
|
|
84
|
+
CW_LIGHT_EDITOR_SET CW_ORIENT CW_PALETTE_EDITOR
|
|
85
|
+
CW_PALETTE_EDITOR_GET CW_PALETTE_EDITOR_SET
|
|
86
|
+
CW_PDMENU CW_RGBSLIDER CW_TMPL CW_ZOOM DBLARR
|
|
87
|
+
DCINDGEN DCOMPLEX DCOMPLEXARR DEFINE_KEY DEFROI
|
|
88
|
+
DEFSYSV DELETE_SYMBOL DELLOG DELVAR DERIV DERIVSIG
|
|
89
|
+
DETERM DEVICE DFPMIN DIALOG_MESSAGE
|
|
90
|
+
DIALOG_PICKFILE DIALOG_PRINTERSETUP
|
|
91
|
+
DIALOG_PRINTJOB DIALOG_READ_IMAGE
|
|
92
|
+
DIALOG_WRITE_IMAGE DICTIONARY DIGITAL_FILTER DILATE DINDGEN
|
|
93
|
+
DISSOLVE DIST DLM_LOAD DLM_REGISTER
|
|
94
|
+
DO_APPLE_SCRIPT DOC_LIBRARY DOUBLE DRAW_ROI EFONT
|
|
95
|
+
EIGENQL EIGENVEC ELMHES EMPTY ENABLE_SYSRTN EOF
|
|
96
|
+
ERASE ERODE ERRORF ERRPLOT EXECUTE EXIT EXP EXPAND
|
|
97
|
+
EXPAND_PATH EXPINT EXTRAC EXTRACT_SLICE F_CVF
|
|
98
|
+
F_PDF FACTORIAL FFT FILE_CHMOD FILE_DELETE
|
|
99
|
+
FILE_EXPAND_PATH FILE_MKDIR FILE_TEST FILE_WHICH
|
|
100
|
+
FILE_SEARCH PATH_SEP FILE_DIRNAME FILE_BASENAME
|
|
101
|
+
FILE_INFO FILE_MOVE FILE_COPY FILE_LINK FILE_POLL_INPUT
|
|
102
|
+
FILEPATH FINDFILE FINDGEN FINITE FIX FLICK FLOAT
|
|
103
|
+
FLOOR FLOW3 FLTARR FLUSH FORMAT_AXIS_VALUES
|
|
104
|
+
FORWARD_FUNCTION FREE_LUN FSTAT FULSTR FUNCT
|
|
105
|
+
FV_TEST FX_ROOT FZ_ROOTS GAMMA GAMMA_CT
|
|
106
|
+
GAUSS_CVF GAUSS_PDF GAUSS2DFIT GAUSSFIT GAUSSINT
|
|
107
|
+
GET_DRIVE_LIST GET_KBRD GET_LUN GET_SCREEN_SIZE
|
|
108
|
+
GET_SYMBOL GETENV GOTO GREG2JUL GRID_TPS GRID3 GS_ITER
|
|
109
|
+
H_EQ_CT H_EQ_INT HANNING HASH HEAP_GC HELP HILBERT
|
|
110
|
+
HIST_2D HIST_EQUAL HISTOGRAM HLS HOUGH HQR HSV
|
|
111
|
+
IBETA IDENTITY IDL_CONTAINER IDLANROI
|
|
112
|
+
IDLANROIGROUP IDLFFDICOM IDLFFDXF IDLFFLANGUAGECAT
|
|
113
|
+
IDLFFSHAPE IDLGRAXIS IDLGRBUFFER IDLGRCLIPBOARD
|
|
114
|
+
IDLGRCOLORBAR IDLGRCONTOUR IDLGRFONT IDLGRIMAGE
|
|
115
|
+
IDLGRLEGEND IDLGRLIGHT IDLGRMODEL IDLGRMPEG
|
|
116
|
+
IDLGRPALETTE IDLGRPATTERN IDLGRPLOT IDLGRPOLYGON
|
|
117
|
+
IDLGRPOLYLINE IDLGRPRINTER IDLGRROI IDLGRROIGROUP
|
|
118
|
+
IDLGRSCENE IDLGRSURFACE IDLGRSYMBOL
|
|
119
|
+
IDLGRTESSELLATOR IDLGRTEXT IDLGRVIEW
|
|
120
|
+
IDLGRVIEWGROUP IDLGRVOLUME IDLGRVRML IDLGRWINDOW
|
|
121
|
+
IGAMMA IMAGE_CONT IMAGE_STATISTICS IMAGINARY
|
|
122
|
+
INDGEN INT_2D INT_3D INT_TABULATED INTARR INTERPOL
|
|
123
|
+
INTERPOLATE INVERT IOCTL ISA ISHFT ISOCONTOUR
|
|
124
|
+
ISOSURFACE JOURNAL JUL2GREG JULDAY KEYWORD_SET KRIG2D
|
|
125
|
+
KURTOSIS KW_TEST L64INDGEN LABEL_DATE LABEL_REGION
|
|
126
|
+
LADFIT LAGUERRE LEEFILT LEGENDRE LINBCG LINDGEN
|
|
127
|
+
LINFIT LINKIMAGE LIST LIVE_CONTOUR LIVE_CONTROL
|
|
128
|
+
LIVE_DESTROY LIVE_EXPORT LIVE_IMAGE LIVE_INFO
|
|
129
|
+
LIVE_LINE LIVE_LOAD LIVE_OPLOT LIVE_PLOT
|
|
130
|
+
LIVE_PRINT LIVE_RECT LIVE_STYLE LIVE_SURFACE
|
|
131
|
+
LIVE_TEXT LJLCT LL_ARC_DISTANCE LMFIT LMGR LNGAMMA
|
|
132
|
+
LNP_TEST LOADCT LOCALE_GET LON64ARR LONARR LONG
|
|
133
|
+
LONG64 LSODE LU_COMPLEX LUDC LUMPROVE LUSOL
|
|
134
|
+
M_CORRELATE MACHAR MAKE_ARRAY MAKE_DLL MAP_2POINTS
|
|
135
|
+
MAP_CONTINENTS MAP_GRID MAP_IMAGE MAP_PATCH
|
|
136
|
+
MAP_PROJ_INFO MAP_SET MAX MATRIX_MULTIPLY MD_TEST MEAN
|
|
137
|
+
MEANABSDEV MEDIAN MEMORY MESH_CLIP MESH_DECIMATE
|
|
138
|
+
MESH_ISSOLID MESH_MERGE MESH_NUMTRIANGLES MESH_OBJ
|
|
139
|
+
MESH_SMOOTH MESH_SURFACEAREA MESH_VALIDATE
|
|
140
|
+
MESH_VOLUME MESSAGE MIN MIN_CURVE_SURF MK_HTML_HELP
|
|
141
|
+
MODIFYCT MOMENT MORPH_CLOSE MORPH_DISTANCE
|
|
142
|
+
MORPH_GRADIENT MORPH_HITORMISS MORPH_OPEN
|
|
143
|
+
MORPH_THIN MORPH_TOPHAT MPEG_CLOSE MPEG_OPEN
|
|
144
|
+
MPEG_PUT MPEG_SAVE MSG_CAT_CLOSE MSG_CAT_COMPILE
|
|
145
|
+
MSG_CAT_OPEN MULTI N_ELEMENTS N_PARAMS N_TAGS
|
|
146
|
+
NEWTON NORM OBJ_CLASS OBJ_DESTROY OBJ_ISA OBJ_NEW
|
|
147
|
+
OBJ_VALID OBJARR ON_ERROR ON_IOERROR ONLINE_HELP
|
|
148
|
+
OPEN OPENR OPENW OPENU OPLOT OPLOTERR ORDEREDHASH P_CORRELATE
|
|
149
|
+
PARTICLE_TRACE PCOMP PLOT PLOT_3DBOX PLOT_FIELD
|
|
150
|
+
PLOTERR PLOTS PNT_LINE POINT_LUN POLAR_CONTOUR
|
|
151
|
+
POLAR_SURFACE POLY POLY_2D POLY_AREA POLY_FIT
|
|
152
|
+
POLYFILL POLYFILLV POLYSHADE POLYWARP POPD POWELL
|
|
153
|
+
PRIMES PRINT PRINTF PRINTD PRODUCT PROFILE PROFILER
|
|
154
|
+
PROFILES PROJECT_VOL PS_SHOW_FONTS PSAFM PSEUDO
|
|
155
|
+
PTR_FREE PTR_NEW PTR_VALID PTRARR PUSHD QROMB
|
|
156
|
+
QROMO QSIMP QUERY_CSV R_CORRELATE R_TEST RADON RANDOMN
|
|
157
|
+
RANDOMU RANKS RDPIX READ READF READ_ASCII
|
|
158
|
+
READ_BINARY READ_BMP READ_CSV READ_DICOM READ_IMAGE
|
|
159
|
+
READ_INTERFILE READ_JPEG READ_PICT READ_PNG
|
|
160
|
+
READ_PPM READ_SPR READ_SRF READ_SYLK READ_TIFF
|
|
161
|
+
READ_WAV READ_WAVE READ_X11_BITMAP READ_XWD READS
|
|
162
|
+
READU REBIN RECALL_COMMANDS RECON3 REDUCE_COLORS
|
|
163
|
+
REFORM REGRESS REPLICATE REPLICATE_INPLACE
|
|
164
|
+
RESOLVE_ALL RESOLVE_ROUTINE RESTORE RETALL
|
|
165
|
+
REVERSE REWIND RK4 ROBERTS ROT ROTATE ROUND
|
|
166
|
+
ROUTINE_INFO RS_TEST S_TEST SAVE SAVGOL SCALE3
|
|
167
|
+
SCALE3D SCOPE_LEVEL SCOPE_TRACEBACK SCOPE_VARFETCH
|
|
168
|
+
SCOPE_VARNAME SEARCH2D SEARCH3D SET_PLOT SET_SHADING
|
|
169
|
+
SET_SYMBOL SETENV SETLOG SETUP_KEYS SFIT
|
|
170
|
+
SHADE_SURF SHADE_SURF_IRR SHADE_VOLUME SHIFT SHOW3
|
|
171
|
+
SHOWFONT SIGNUM SIN SINDGEN SINH SIZE SKEWNESS SKIPF
|
|
172
|
+
SLICER3 SLIDE_IMAGE SMOOTH SOBEL SOCKET SORT SPAWN
|
|
173
|
+
SPH_4PNT SPH_SCAT SPHER_HARM SPL_INIT SPL_INTERP
|
|
174
|
+
SPLINE SPLINE_P SPRSAB SPRSAX SPRSIN SPRSTP SQRT
|
|
175
|
+
STANDARDIZE STDDEV STOP STRARR STRCMP STRCOMPRESS
|
|
176
|
+
STREAMLINE STREGEX STRETCH STRING STRJOIN STRLEN
|
|
177
|
+
STRLOWCASE STRMATCH STRMESSAGE STRMID STRPOS
|
|
178
|
+
STRPUT STRSPLIT STRTRIM STRUCT_ASSIGN STRUCT_HIDE
|
|
179
|
+
STRUPCASE SURFACE SURFR SVDC SVDFIT SVSOL
|
|
180
|
+
SWAP_ENDIAN SWITCH SYSTIME T_CVF T_PDF T3D
|
|
181
|
+
TAG_NAMES TAN TANH TAPRD TAPWRT TEK_COLOR
|
|
182
|
+
TEMPORARY TETRA_CLIP TETRA_SURFACE TETRA_VOLUME
|
|
183
|
+
THIN THREED TIME_TEST2 TIMEGEN TM_TEST TOTAL TRACE
|
|
184
|
+
TRANSPOSE TRI_SURF TRIANGULATE TRIGRID TRIQL
|
|
185
|
+
TRIRED TRISOL TRNLOG TS_COEF TS_DIFF TS_FCAST
|
|
186
|
+
TS_SMOOTH TV TVCRS TVLCT TVRD TVSCL TYPENAME UINDGEN UINT
|
|
187
|
+
UINTARR UL64INDGEN ULINDGEN ULON64ARR ULONARR
|
|
188
|
+
ULONG ULONG64 UNIQ USERSYM VALUE_LOCATE VARIANCE
|
|
189
|
+
VAX_FLOAT VECTOR_FIELD VEL VELOVECT VERT_T3D VOIGT
|
|
190
|
+
VORONOI VOXEL_PROJ WAIT WARP_TRI WATERSHED WDELETE
|
|
191
|
+
WEOF WF_DRAW WHERE WIDGET_BASE WIDGET_BUTTON
|
|
192
|
+
WIDGET_CONTROL WIDGET_DRAW WIDGET_DROPLIST
|
|
193
|
+
WIDGET_EVENT WIDGET_INFO WIDGET_LABEL WIDGET_LIST
|
|
194
|
+
WIDGET_SLIDER WIDGET_TABLE WIDGET_TEXT WINDOW
|
|
195
|
+
WRITE_BMP WRITE_CSV WRITE_IMAGE WRITE_JPEG WRITE_NRIF
|
|
196
|
+
WRITE_PICT WRITE_PNG WRITE_PPM WRITE_SPR WRITE_SRF
|
|
197
|
+
WRITE_SYLK WRITE_TIFF WRITE_WAV WRITE_WAVE WRITEU
|
|
198
|
+
WSET WSHOW WTN WV_APPLET WV_CW_WAVELET WV_CWT
|
|
199
|
+
WV_DENOISE WV_DWT WV_FN_COIFLET WV_FN_DAUBECHIES
|
|
200
|
+
WV_FN_GAUSSIAN WV_FN_HAAR WV_FN_MORLET WV_FN_PAUL
|
|
201
|
+
WV_FN_SYMLET WV_IMPORT_DATA WV_IMPORT_WAVELET
|
|
202
|
+
WV_PLOT3D_WPS WV_PLOT_MULTIRES WV_PWT
|
|
203
|
+
WV_TOOL_DENOISE XBM_EDIT XDISPLAYFILE XDXF XFONT
|
|
204
|
+
XINTERANIMATE XLOADCT XMANAGER XMNG_TMPL XMTOOL
|
|
205
|
+
XOBJVIEW XPALETTE XPCOLOR XPLOT3D XREGISTERED XROI
|
|
206
|
+
XSQ_TEST XSURFACE XVAREDIT XVOLUME XVOLUME_ROTATE
|
|
207
|
+
XVOLUME_WRITE_IMAGE XYOUTS ZOOM ZOOM_24
|
|
208
|
+
)
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
state :root do
|
|
212
|
+
rule %r/\s+/, Text::Whitespace
|
|
213
|
+
# Normal comments
|
|
214
|
+
rule %r/;.*$/, Comment::Single
|
|
215
|
+
rule %r/\,\s*\,/, Error
|
|
216
|
+
rule %r/\!#{name}/, Name::Variable::Global
|
|
217
|
+
|
|
218
|
+
rule %r/[(),:\&\$]/, Punctuation
|
|
219
|
+
|
|
220
|
+
## Format statements are quite a strange beast.
|
|
221
|
+
## Better process them in their own state.
|
|
222
|
+
#rule %r/\b(FORMAT)(\s*)(\()/mi do |m|
|
|
223
|
+
# token Keyword, m[1]
|
|
224
|
+
# token Text::Whitespace, m[2]
|
|
225
|
+
# token Punctuation, m[3]
|
|
226
|
+
# push :format_spec
|
|
227
|
+
#end
|
|
228
|
+
|
|
229
|
+
rule %r(
|
|
230
|
+
[+-]? # sign
|
|
231
|
+
(
|
|
232
|
+
(\d+[.]\d*|[.]\d+)(#{exponent})?
|
|
233
|
+
| \d+#{exponent} # exponent is mandatory
|
|
234
|
+
)
|
|
235
|
+
(_#{kind_param})? # kind parameter
|
|
236
|
+
)xi, Num::Float
|
|
237
|
+
|
|
238
|
+
rule %r/\d+(B|S|U|US|LL|L|ULL|UL)?/i, Num::Integer
|
|
239
|
+
rule %r/"[0-7]+(B|O|U|ULL|UL|LL|L)?/i, Num::Oct
|
|
240
|
+
rule %r/'[0-9A-F]+'X(B|S|US|ULL|UL|U|LL|L)?/i, Num::Hex
|
|
241
|
+
rule %r/(#{kind_param}_)?'/, Str::Single, :string_single
|
|
242
|
+
rule %r/(#{kind_param}_)?"/, Str::Double, :string_double
|
|
243
|
+
|
|
244
|
+
rule %r{\#\#|\#|\&\&|\|\||/=|<=|>=|->|\@|\?|[-+*/<=~^{}]}, Operator
|
|
245
|
+
# Structures and the like
|
|
246
|
+
rule %r/(#{name})(\.)([^\s,]*)/i do
|
|
247
|
+
groups Name, Operator, Name
|
|
248
|
+
#delegate IDLang, m[3]
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
rule %r/(function|pro)((?:\s|\$\s)+)/i do
|
|
252
|
+
groups Keyword, Text::Whitespace
|
|
253
|
+
push :funcname
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
rule %r/#{name}/m do |m|
|
|
257
|
+
match = m[0].upcase
|
|
258
|
+
if self.class.keywords.include? match
|
|
259
|
+
token Keyword
|
|
260
|
+
elsif self.class.conditionals.include? match
|
|
261
|
+
token Keyword
|
|
262
|
+
elsif self.class.decorators.include? match
|
|
263
|
+
token Name::Decorator
|
|
264
|
+
elsif self.class.standalone_statements.include? match
|
|
265
|
+
token Keyword::Reserved
|
|
266
|
+
elsif self.class.operators.include? match
|
|
267
|
+
token Operator::Word
|
|
268
|
+
elsif self.class.routines.include? match
|
|
269
|
+
token Name::Builtin
|
|
270
|
+
else
|
|
271
|
+
token Name
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
state :funcname do
|
|
278
|
+
rule %r/#{name}/, Name::Function
|
|
279
|
+
|
|
280
|
+
rule %r/\s+/, Text::Whitespace
|
|
281
|
+
rule %r/(:+|\$)/, Operator
|
|
282
|
+
rule %r/;.*/, Comment::Single
|
|
283
|
+
|
|
284
|
+
# Be done with this state if we hit EOL or comma
|
|
285
|
+
rule %r/$/, Text::Whitespace, :pop!
|
|
286
|
+
rule %r/,/, Operator, :pop!
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
state :string_single do
|
|
290
|
+
rule %r/[^']+/, Str::Single
|
|
291
|
+
rule %r/''/, Str::Escape
|
|
292
|
+
rule %r/'/, Str::Single, :pop!
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
state :string_double do
|
|
296
|
+
rule %r/[^"]+/, Str::Double
|
|
297
|
+
rule %r/"/, Str::Double, :pop!
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
state :format_spec do
|
|
301
|
+
rule %r/'/, Str::Single, :string_single
|
|
302
|
+
rule %r/"/, Str::Double, :string_double
|
|
303
|
+
rule %r/\(/, Punctuation, :format_spec
|
|
304
|
+
rule %r/\)/, Punctuation, :pop!
|
|
305
|
+
rule %r/,/, Punctuation
|
|
306
|
+
rule %r/\s+/, Text::Whitespace
|
|
307
|
+
# Edit descriptors could be seen as a kind of "format literal".
|
|
308
|
+
rule %r/[^\s'"(),]+/, Literal
|
|
309
|
+
end
|
|
310
|
+
end
|
|
311
|
+
end
|
|
312
|
+
end
|
|
@@ -0,0 +1,664 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class IgorPro < RegexLexer
|
|
7
|
+
tag 'igorpro'
|
|
8
|
+
filenames '*.ipf'
|
|
9
|
+
mimetypes 'text/x-igorpro'
|
|
10
|
+
|
|
11
|
+
title "IgorPro"
|
|
12
|
+
desc "WaveMetrics Igor Pro"
|
|
13
|
+
|
|
14
|
+
def self.keywords
|
|
15
|
+
@keywords ||= Set.new %w(
|
|
16
|
+
structure endstructure
|
|
17
|
+
threadsafe static
|
|
18
|
+
macro proc window menu function end
|
|
19
|
+
if else elseif endif switch strswitch endswitch
|
|
20
|
+
break return continue
|
|
21
|
+
for endfor do while
|
|
22
|
+
case default
|
|
23
|
+
try catch endtry
|
|
24
|
+
abortonrte
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.preprocessor
|
|
29
|
+
@preprocessor ||= Set.new %w(
|
|
30
|
+
pragma include
|
|
31
|
+
define ifdef ifndef undef
|
|
32
|
+
if elif else endif
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def self.igorDeclarations
|
|
37
|
+
@igorDeclarations ||= Set.new %w(
|
|
38
|
+
variable string wave strconstant constant
|
|
39
|
+
nvar svar dfref funcref struct
|
|
40
|
+
char uchar int16 uint16 int32 uint32 int64 uint64 float double
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.igorConstants
|
|
45
|
+
@igorConstants ||= Set.new %w(
|
|
46
|
+
nan inf
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def self.igorFunction
|
|
51
|
+
@igorFunction ||= Set.new %w(
|
|
52
|
+
AddListItem AiryA AiryAD AiryB AiryBD AnnotationInfo
|
|
53
|
+
AnnotationList AxisInfo AxisList AxisValFromPixel
|
|
54
|
+
AxonTelegraphAGetDataNum AxonTelegraphAGetDataString
|
|
55
|
+
AxonTelegraphAGetDataStruct AxonTelegraphGetDataNum
|
|
56
|
+
AxonTelegraphGetDataString AxonTelegraphGetDataStruct
|
|
57
|
+
AxonTelegraphGetTimeoutMs AxonTelegraphSetTimeoutMs
|
|
58
|
+
Base64Decode Base64Encode Besseli Besselj Besselk
|
|
59
|
+
Bessely BinarySearch BinarySearchInterp CTabList
|
|
60
|
+
CaptureHistory CaptureHistoryStart CheckName
|
|
61
|
+
ChildWindowList CleanupName ContourInfo ContourNameList
|
|
62
|
+
ContourNameToWaveRef ContourZ ControlNameList
|
|
63
|
+
ConvertTextEncoding CountObjects CountObjectsDFR
|
|
64
|
+
CreationDate CsrInfo CsrWave CsrWaveRef CsrXWave
|
|
65
|
+
CsrXWaveRef DataFolderDir DataFolderExists
|
|
66
|
+
DataFolderRefStatus DataFolderRefsEqual DateToJulian
|
|
67
|
+
Dawson DimDelta DimOffset DimSize Faddeeva FetchURL
|
|
68
|
+
FindDimLabel FindListItem FontList FontSizeHeight
|
|
69
|
+
FontSizeStringWidth FresnelCos FresnelSin FuncRefInfo
|
|
70
|
+
FunctionInfo FunctionList FunctionPath
|
|
71
|
+
GISGetAllFileFormats GISSRefsAreEqual Gauss Gauss1D
|
|
72
|
+
Gauss2D GetBrowserLine GetBrowserSelection
|
|
73
|
+
GetDataFolder GetDataFolderDFR GetDefaultFont
|
|
74
|
+
GetDefaultFontSize GetDefaultFontStyle GetDimLabel
|
|
75
|
+
GetEnvironmentVariable GetErrMessage GetFormula
|
|
76
|
+
GetIndependentModuleName GetIndexedObjName
|
|
77
|
+
GetIndexedObjNameDFR GetKeyState GetRTErrMessage
|
|
78
|
+
GetRTError GetRTLocInfo GetRTLocation GetRTStackInfo
|
|
79
|
+
GetScrapText GetUserData GetWavesDataFolder
|
|
80
|
+
GetWavesDataFolderDFR GizmoInfo GizmoScale GrepList
|
|
81
|
+
GrepString GuideInfo GuideNameList HDF5AttributeInfo
|
|
82
|
+
HDF5DatasetInfo HDF5LibraryInfo HDF5TypeInfo Hash
|
|
83
|
+
HyperG0F1 HyperG1F1 HyperG2F1 HyperGNoise HyperGPFQ
|
|
84
|
+
IgorInfo IgorVersion ImageInfo ImageNameList
|
|
85
|
+
ImageNameToWaveRef IndependentModuleList IndexToScale
|
|
86
|
+
IndexedDir IndexedFile Inf Integrate1D Interp2D
|
|
87
|
+
Interp3D ItemsInList JacobiCn JacobiSn JulianToDate
|
|
88
|
+
Laguerre LaguerreA LaguerreGauss LambertW LayoutInfo
|
|
89
|
+
LegendreA ListMatch ListToTextWave ListToWaveRefWave
|
|
90
|
+
LowerStr MCC_AutoBridgeBal MCC_AutoFastComp
|
|
91
|
+
MCC_AutoPipetteOffset MCC_AutoSlowComp
|
|
92
|
+
MCC_AutoWholeCellComp MCC_GetBridgeBalEnable
|
|
93
|
+
MCC_GetBridgeBalResist MCC_GetFastCompCap
|
|
94
|
+
MCC_GetFastCompTau MCC_GetHolding MCC_GetHoldingEnable
|
|
95
|
+
MCC_GetMode MCC_GetNeutralizationCap
|
|
96
|
+
MCC_GetNeutralizationEnable MCC_GetOscKillerEnable
|
|
97
|
+
MCC_GetPipetteOffset MCC_GetPrimarySignalGain
|
|
98
|
+
MCC_GetPrimarySignalHPF MCC_GetPrimarySignalLPF
|
|
99
|
+
MCC_GetRsCompBandwidth MCC_GetRsCompCorrection
|
|
100
|
+
MCC_GetRsCompEnable MCC_GetRsCompPrediction
|
|
101
|
+
MCC_GetSecondarySignalGain MCC_GetSecondarySignalLPF
|
|
102
|
+
MCC_GetSlowCompCap MCC_GetSlowCompTau
|
|
103
|
+
MCC_GetSlowCompTauX20Enable MCC_GetSlowCurrentInjEnable
|
|
104
|
+
MCC_GetSlowCurrentInjLevel
|
|
105
|
+
MCC_GetSlowCurrentInjSetlTime MCC_GetWholeCellCompCap
|
|
106
|
+
MCC_GetWholeCellCompEnable MCC_GetWholeCellCompResist
|
|
107
|
+
MCC_SelectMultiClamp700B MCC_SetBridgeBalEnable
|
|
108
|
+
MCC_SetBridgeBalResist MCC_SetFastCompCap
|
|
109
|
+
MCC_SetFastCompTau MCC_SetHolding MCC_SetHoldingEnable
|
|
110
|
+
MCC_SetMode MCC_SetNeutralizationCap
|
|
111
|
+
MCC_SetNeutralizationEnable MCC_SetOscKillerEnable
|
|
112
|
+
MCC_SetPipetteOffset MCC_SetPrimarySignalGain
|
|
113
|
+
MCC_SetPrimarySignalHPF MCC_SetPrimarySignalLPF
|
|
114
|
+
MCC_SetRsCompBandwidth MCC_SetRsCompCorrection
|
|
115
|
+
MCC_SetRsCompEnable MCC_SetRsCompPrediction
|
|
116
|
+
MCC_SetSecondarySignalGain MCC_SetSecondarySignalLPF
|
|
117
|
+
MCC_SetSlowCompCap MCC_SetSlowCompTau
|
|
118
|
+
MCC_SetSlowCompTauX20Enable MCC_SetSlowCurrentInjEnable
|
|
119
|
+
MCC_SetSlowCurrentInjLevel
|
|
120
|
+
MCC_SetSlowCurrentInjSetlTime MCC_SetTimeoutMs
|
|
121
|
+
MCC_SetWholeCellCompCap MCC_SetWholeCellCompEnable
|
|
122
|
+
MCC_SetWholeCellCompResist MPFXEMGPeak
|
|
123
|
+
MPFXExpConvExpPeak MPFXGaussPeak MPFXLorenzianPeak
|
|
124
|
+
MPFXVoigtPeak MacroList MandelbrotPoint MarcumQ
|
|
125
|
+
MatrixCondition MatrixDet MatrixDot MatrixRank
|
|
126
|
+
MatrixTrace ModDate NVAR_Exists NaN NameOfWave
|
|
127
|
+
NewFreeDataFolder NewFreeWave NormalizeUnicode
|
|
128
|
+
NumVarOrDefault NumberByKey OperationList PICTInfo
|
|
129
|
+
PICTList PadString PanelResolution ParamIsDefault
|
|
130
|
+
ParseFilePath PathList Pi PixelFromAxisVal PolygonArea
|
|
131
|
+
PossiblyQuoteName ProcedureText RemoveByKey
|
|
132
|
+
RemoveEnding RemoveFromList RemoveListItem
|
|
133
|
+
ReplaceNumberByKey ReplaceString ReplaceStringByKey
|
|
134
|
+
SQL2DBinaryWaveToTextWave SQLAllocHandle SQLAllocStmt
|
|
135
|
+
SQLBinaryWavesToTextWave SQLBindCol SQLBindParameter
|
|
136
|
+
SQLBrowseConnect SQLBulkOperations SQLCancel
|
|
137
|
+
SQLCloseCursor SQLColAttributeNum SQLColAttributeStr
|
|
138
|
+
SQLColumnPrivileges SQLColumns SQLConnect
|
|
139
|
+
SQLDataSources SQLDescribeCol SQLDescribeParam
|
|
140
|
+
SQLDisconnect SQLDriverConnect SQLDrivers SQLEndTran
|
|
141
|
+
SQLError SQLExecDirect SQLExecute SQLFetch
|
|
142
|
+
SQLFetchScroll SQLForeignKeys SQLFreeConnect SQLFreeEnv
|
|
143
|
+
SQLFreeHandle SQLFreeStmt SQLGetConnectAttrNum
|
|
144
|
+
SQLGetConnectAttrStr SQLGetCursorName SQLGetDataNum
|
|
145
|
+
SQLGetDataStr SQLGetDescFieldNum SQLGetDescFieldStr
|
|
146
|
+
SQLGetDescRec SQLGetDiagFieldNum SQLGetDiagFieldStr
|
|
147
|
+
SQLGetDiagRec SQLGetEnvAttrNum SQLGetEnvAttrStr
|
|
148
|
+
SQLGetFunctions SQLGetInfoNum SQLGetInfoStr
|
|
149
|
+
SQLGetStmtAttrNum SQLGetStmtAttrStr SQLGetTypeInfo
|
|
150
|
+
SQLMoreResults SQLNativeSql SQLNumParams
|
|
151
|
+
SQLNumResultCols SQLNumResultRowsIfKnown
|
|
152
|
+
SQLNumRowsFetched SQLParamData SQLPrepare
|
|
153
|
+
SQLPrimaryKeys SQLProcedureColumns SQLProcedures
|
|
154
|
+
SQLPutData SQLReinitialize SQLRowCount
|
|
155
|
+
SQLSetConnectAttrNum SQLSetConnectAttrStr
|
|
156
|
+
SQLSetCursorName SQLSetDescFieldNum SQLSetDescFieldStr
|
|
157
|
+
SQLSetDescRec SQLSetEnvAttrNum SQLSetEnvAttrStr
|
|
158
|
+
SQLSetPos SQLSetStmtAttrNum SQLSetStmtAttrStr
|
|
159
|
+
SQLSpecialColumns SQLStatistics SQLTablePrivileges
|
|
160
|
+
SQLTables SQLTextWaveTo2DBinaryWave
|
|
161
|
+
SQLTextWaveToBinaryWaves SQLUpdateBoundValues
|
|
162
|
+
SQLXOPCheckState SVAR_Exists ScreenResolution Secs2Date
|
|
163
|
+
Secs2Time SelectNumber SelectString
|
|
164
|
+
SetEnvironmentVariable SortList SpecialCharacterInfo
|
|
165
|
+
SpecialCharacterList SpecialDirPath SphericalBessJ
|
|
166
|
+
SphericalBessJD SphericalBessY SphericalBessYD
|
|
167
|
+
SphericalHarmonics StartMSTimer StatsBetaCDF
|
|
168
|
+
StatsBetaPDF StatsBinomialCDF StatsBinomialPDF
|
|
169
|
+
StatsCMSSDCDF StatsCauchyCDF StatsCauchyPDF StatsChiCDF
|
|
170
|
+
StatsChiPDF StatsCorrelation StatsDExpCDF StatsDExpPDF
|
|
171
|
+
StatsEValueCDF StatsEValuePDF StatsErlangCDF
|
|
172
|
+
StatsErlangPDF StatsErrorPDF StatsExpCDF StatsExpPDF
|
|
173
|
+
StatsFCDF StatsFPDF StatsFriedmanCDF StatsGEVCDF
|
|
174
|
+
StatsGEVPDF StatsGammaCDF StatsGammaPDF
|
|
175
|
+
StatsGeometricCDF StatsGeometricPDF StatsHyperGCDF
|
|
176
|
+
StatsHyperGPDF StatsInvBetaCDF StatsInvBinomialCDF
|
|
177
|
+
StatsInvCMSSDCDF StatsInvCauchyCDF StatsInvChiCDF
|
|
178
|
+
StatsInvDExpCDF StatsInvEValueCDF StatsInvExpCDF
|
|
179
|
+
StatsInvFCDF StatsInvFriedmanCDF StatsInvGammaCDF
|
|
180
|
+
StatsInvGeometricCDF StatsInvKuiperCDF
|
|
181
|
+
StatsInvLogNormalCDF StatsInvLogisticCDF
|
|
182
|
+
StatsInvMaxwellCDF StatsInvMooreCDF
|
|
183
|
+
StatsInvNBinomialCDF StatsInvNCChiCDF StatsInvNCFCDF
|
|
184
|
+
StatsInvNormalCDF StatsInvParetoCDF StatsInvPoissonCDF
|
|
185
|
+
StatsInvPowerCDF StatsInvQCDF StatsInvQpCDF
|
|
186
|
+
StatsInvRayleighCDF StatsInvRectangularCDF
|
|
187
|
+
StatsInvSpearmanCDF StatsInvStudentCDF
|
|
188
|
+
StatsInvTopDownCDF StatsInvTriangularCDF
|
|
189
|
+
StatsInvUsquaredCDF StatsInvVonMisesCDF
|
|
190
|
+
StatsInvWeibullCDF StatsKuiperCDF StatsLogNormalCDF
|
|
191
|
+
StatsLogNormalPDF StatsLogisticCDF StatsLogisticPDF
|
|
192
|
+
StatsMaxwellCDF StatsMaxwellPDF StatsMedian
|
|
193
|
+
StatsMooreCDF StatsNBinomialCDF StatsNBinomialPDF
|
|
194
|
+
StatsNCChiCDF StatsNCChiPDF StatsNCFCDF StatsNCFPDF
|
|
195
|
+
StatsNCTCDF StatsNCTPDF StatsNormalCDF StatsNormalPDF
|
|
196
|
+
StatsParetoCDF StatsParetoPDF StatsPermute
|
|
197
|
+
StatsPoissonCDF StatsPoissonPDF StatsPowerCDF
|
|
198
|
+
StatsPowerNoise StatsPowerPDF StatsQCDF StatsQpCDF
|
|
199
|
+
StatsRayleighCDF StatsRayleighPDF StatsRectangularCDF
|
|
200
|
+
StatsRectangularPDF StatsRunsCDF StatsSpearmanRhoCDF
|
|
201
|
+
StatsStudentCDF StatsStudentPDF StatsTopDownCDF
|
|
202
|
+
StatsTriangularCDF StatsTriangularPDF StatsTrimmedMean
|
|
203
|
+
StatsUSquaredCDF StatsVonMisesCDF StatsVonMisesNoise
|
|
204
|
+
StatsVonMisesPDF StatsWaldCDF StatsWaldPDF
|
|
205
|
+
StatsWeibullCDF StatsWeibullPDF StopMSTimer
|
|
206
|
+
StrVarOrDefault StringByKey StringFromList StringList
|
|
207
|
+
StudentA StudentT TDMAddChannel TDMAddGroup
|
|
208
|
+
TDMAppendDataValues TDMAppendDataValuesTime
|
|
209
|
+
TDMChannelPropertyExists TDMCloseChannel TDMCloseFile
|
|
210
|
+
TDMCloseGroup TDMCreateChannelProperty TDMCreateFile
|
|
211
|
+
TDMCreateFileProperty TDMCreateGroupProperty
|
|
212
|
+
TDMFilePropertyExists TDMGetChannelPropertyNames
|
|
213
|
+
TDMGetChannelPropertyNum TDMGetChannelPropertyStr
|
|
214
|
+
TDMGetChannelPropertyTime TDMGetChannelPropertyType
|
|
215
|
+
TDMGetChannelStringPropertyLen TDMGetChannels
|
|
216
|
+
TDMGetDataType TDMGetDataValues TDMGetDataValuesTime
|
|
217
|
+
TDMGetFilePropertyNames TDMGetFilePropertyNum
|
|
218
|
+
TDMGetFilePropertyStr TDMGetFilePropertyTime
|
|
219
|
+
TDMGetFilePropertyType TDMGetFileStringPropertyLen
|
|
220
|
+
TDMGetGroupPropertyNames TDMGetGroupPropertyNum
|
|
221
|
+
TDMGetGroupPropertyStr TDMGetGroupPropertyTime
|
|
222
|
+
TDMGetGroupPropertyType TDMGetGroupStringPropertyLen
|
|
223
|
+
TDMGetGroups TDMGetLibraryErrorDescription
|
|
224
|
+
TDMGetNumChannelProperties TDMGetNumChannels
|
|
225
|
+
TDMGetNumDataValues TDMGetNumFileProperties
|
|
226
|
+
TDMGetNumGroupProperties TDMGetNumGroups
|
|
227
|
+
TDMGroupPropertyExists TDMOpenFile TDMOpenFileEx
|
|
228
|
+
TDMRemoveChannel TDMRemoveGroup TDMReplaceDataValues
|
|
229
|
+
TDMReplaceDataValuesTime TDMSaveFile
|
|
230
|
+
TDMSetChannelPropertyNum TDMSetChannelPropertyStr
|
|
231
|
+
TDMSetChannelPropertyTime TDMSetDataValues
|
|
232
|
+
TDMSetDataValuesTime TDMSetFilePropertyNum
|
|
233
|
+
TDMSetFilePropertyStr TDMSetFilePropertyTime
|
|
234
|
+
TDMSetGroupPropertyNum TDMSetGroupPropertyStr
|
|
235
|
+
TDMSetGroupPropertyTime TableInfo TagVal TagWaveRef
|
|
236
|
+
TextEncodingCode TextEncodingName TextFile
|
|
237
|
+
ThreadGroupCreate ThreadGroupGetDF ThreadGroupGetDFR
|
|
238
|
+
ThreadGroupRelease ThreadGroupWait ThreadProcessorCount
|
|
239
|
+
ThreadReturnValue TraceFromPixel TraceInfo
|
|
240
|
+
TraceNameList TraceNameToWaveRef TrimString URLDecode
|
|
241
|
+
URLEncode UnPadString UniqueName
|
|
242
|
+
UnsetEnvironmentVariable UpperStr VariableList Variance
|
|
243
|
+
VoigtFunc VoigtPeak WaveCRC WaveDims WaveExists
|
|
244
|
+
WaveHash WaveInfo WaveList WaveMax WaveMin WaveName
|
|
245
|
+
WaveRefIndexed WaveRefIndexedDFR WaveRefWaveToList
|
|
246
|
+
WaveRefsEqual WaveTextEncoding WaveType WaveUnits
|
|
247
|
+
WhichListItem WinList WinName WinRecreation WinType
|
|
248
|
+
XWaveName XWaveRefFromTrace ZernikeR abs acos acosh
|
|
249
|
+
alog area areaXY asin asinh atan atan2 atanh beta betai
|
|
250
|
+
binomial binomialNoise binomialln cabs ceil cequal
|
|
251
|
+
char2num chebyshev chebyshevU cmplx cmpstr conj cos
|
|
252
|
+
cosIntegral cosh cot coth cpowi csc csch date date2secs
|
|
253
|
+
datetime defined deltax digamma dilogarithm ei enoise
|
|
254
|
+
equalWaves erf erfc erfcw exists exp expInt
|
|
255
|
+
expIntegralE1 expNoise fDAQmx_AI_GetReader
|
|
256
|
+
fDAQmx_AO_UpdateOutputs fDAQmx_CTR_Finished
|
|
257
|
+
fDAQmx_CTR_IsFinished fDAQmx_CTR_IsPulseFinished
|
|
258
|
+
fDAQmx_CTR_ReadCounter fDAQmx_CTR_ReadWithOptions
|
|
259
|
+
fDAQmx_CTR_SetPulseFrequency fDAQmx_CTR_Start
|
|
260
|
+
fDAQmx_ConnectTerminals fDAQmx_DIO_Finished
|
|
261
|
+
fDAQmx_DIO_PortWidth fDAQmx_DIO_Read fDAQmx_DIO_Write
|
|
262
|
+
fDAQmx_DeviceNames fDAQmx_DisconnectTerminals
|
|
263
|
+
fDAQmx_ErrorString fDAQmx_ExternalCalDate
|
|
264
|
+
fDAQmx_NumAnalogInputs fDAQmx_NumAnalogOutputs
|
|
265
|
+
fDAQmx_NumCounters fDAQmx_NumDIOPorts fDAQmx_ReadChan
|
|
266
|
+
fDAQmx_ReadNamedChan fDAQmx_ResetDevice
|
|
267
|
+
fDAQmx_ScanGetAvailable fDAQmx_ScanGetNextIndex
|
|
268
|
+
fDAQmx_ScanStart fDAQmx_ScanStop fDAQmx_ScanWait
|
|
269
|
+
fDAQmx_ScanWaitWithTimeout fDAQmx_SelfCalDate
|
|
270
|
+
fDAQmx_SelfCalibration fDAQmx_WF_IsFinished
|
|
271
|
+
fDAQmx_WF_WaitUntilFinished fDAQmx_WaveformStart
|
|
272
|
+
fDAQmx_WaveformStop fDAQmx_WriteChan factorial fakedata
|
|
273
|
+
faverage faverageXY floor gamma gammaEuler gammaInc
|
|
274
|
+
gammaNoise gammln gammp gammq gcd gnoise hcsr hermite
|
|
275
|
+
hermiteGauss imag interp inverseERF inverseERFC leftx
|
|
276
|
+
limit ln log logNormalNoise lorentzianNoise magsqr max
|
|
277
|
+
mean median min mod norm note num2char num2istr num2str
|
|
278
|
+
numpnts numtype p2rect pcsr pnt2x poissonNoise poly
|
|
279
|
+
poly2D qcsr r2polar real rightx round sawtooth
|
|
280
|
+
scaleToIndex sec sech sign sin sinIntegral sinc sinh
|
|
281
|
+
sqrt str2num stringCRC stringmatch strlen strsearch sum
|
|
282
|
+
tan tango_close_device tango_command_inout
|
|
283
|
+
tango_compute_image_proj tango_get_dev_attr_list
|
|
284
|
+
tango_get_dev_black_box tango_get_dev_cmd_list
|
|
285
|
+
tango_get_dev_status tango_get_dev_timeout
|
|
286
|
+
tango_get_error_stack tango_open_device
|
|
287
|
+
tango_ping_device tango_read_attribute
|
|
288
|
+
tango_read_attributes tango_reload_dev_interface
|
|
289
|
+
tango_resume_attr_monitor tango_set_attr_monitor_period
|
|
290
|
+
tango_set_dev_timeout tango_start_attr_monitor
|
|
291
|
+
tango_stop_attr_monitor tango_suspend_attr_monitor
|
|
292
|
+
tango_write_attribute tango_write_attributes tanh ticks
|
|
293
|
+
time trunc vcsr viAssertIntrSignal viAssertTrigger
|
|
294
|
+
viAssertUtilSignal viClear viClose viDisableEvent
|
|
295
|
+
viDiscardEvents viEnableEvent viFindNext viFindRsrc
|
|
296
|
+
viGetAttribute viGetAttributeString viGpibCommand
|
|
297
|
+
viGpibControlATN viGpibControlREN viGpibPassControl
|
|
298
|
+
viGpibSendIFC viIn16 viIn32 viIn8 viLock viMapAddress
|
|
299
|
+
viMapTrigger viMemAlloc viMemFree viMoveIn16 viMoveIn32
|
|
300
|
+
viMoveIn8 viMoveOut16 viMoveOut32 viMoveOut8 viOpen
|
|
301
|
+
viOpenDefaultRM viOut16 viOut32 viOut8 viPeek16
|
|
302
|
+
viPeek32 viPeek8 viPoke16 viPoke32 viPoke8 viRead
|
|
303
|
+
viReadSTB viSetAttribute viSetAttributeString
|
|
304
|
+
viStatusDesc viTerminate viUnlock viUnmapAddress
|
|
305
|
+
viUnmapTrigger viUsbControlIn viUsbControlOut
|
|
306
|
+
viVxiCommandQuery viWaitOnEvent viWrite wnoise x2pnt
|
|
307
|
+
xcsr zcsr zeromq_client_connect zeromq_client_connect
|
|
308
|
+
zeromq_client_recv zeromq_client_recv
|
|
309
|
+
zeromq_client_send zeromq_client_send
|
|
310
|
+
zeromq_handler_start zeromq_handler_start
|
|
311
|
+
zeromq_handler_stop zeromq_handler_stop
|
|
312
|
+
zeromq_server_bind zeromq_server_bind
|
|
313
|
+
zeromq_server_recv zeromq_server_recv
|
|
314
|
+
zeromq_server_send zeromq_server_send zeromq_set
|
|
315
|
+
zeromq_set zeromq_stop zeromq_stop
|
|
316
|
+
zeromq_test_callfunction zeromq_test_callfunction
|
|
317
|
+
zeromq_test_serializeWave zeromq_test_serializeWave
|
|
318
|
+
zeta
|
|
319
|
+
)
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
def self.igorOperation
|
|
323
|
+
@igorOperation ||= Set.new %w(
|
|
324
|
+
APMath Abort AddFIFOData AddFIFOVectData AddMovieAudio
|
|
325
|
+
AddMovieFrame AddWavesToBoxPlot AddWavesToViolinPlot
|
|
326
|
+
AdoptFiles Append AppendBoxPlot AppendImage
|
|
327
|
+
AppendLayoutObject AppendMatrixContour AppendText
|
|
328
|
+
AppendToGizmo AppendToGraph AppendToLayout
|
|
329
|
+
AppendToTable AppendViolinPlot AppendXYZContour
|
|
330
|
+
AutoPositionWindow AxonTelegraphFindServers
|
|
331
|
+
BackgroundInfo Beep BoundingBall BoxSmooth BrowseURL
|
|
332
|
+
BuildMenu Button CWT Chart CheckBox CheckDisplayed
|
|
333
|
+
ChooseColor Close CloseHelp CloseMovie CloseProc
|
|
334
|
+
ColorScale ColorTab2Wave Concatenate ControlBar
|
|
335
|
+
ControlInfo ControlUpdate
|
|
336
|
+
ConvertGlobalStringTextEncoding ConvexHull Convolve
|
|
337
|
+
CopyDimLabels CopyFile CopyFolder CopyScales Correlate
|
|
338
|
+
CreateAliasShortcut CreateBrowser Cross CtrlBackground
|
|
339
|
+
CtrlFIFO CtrlNamedBackground Cursor CurveFit
|
|
340
|
+
CustomControl DAQmx_AI_SetupReader DAQmx_AO_SetOutputs
|
|
341
|
+
DAQmx_CTR_CountEdges DAQmx_CTR_OutputPulse
|
|
342
|
+
DAQmx_CTR_Period DAQmx_CTR_PulseWidth DAQmx_DIO_Config
|
|
343
|
+
DAQmx_DIO_WriteNewData DAQmx_Scan DAQmx_WaveformGen
|
|
344
|
+
DPSS DSPDetrend DSPPeriodogram DWT Debugger
|
|
345
|
+
DebuggerOptions DefaultFont DefaultGuiControls
|
|
346
|
+
DefaultGuiFont DefaultTextEncoding DefineGuide
|
|
347
|
+
DelayUpdate DeleteAnnotations DeleteFile DeleteFolder
|
|
348
|
+
DeletePoints Differentiate Display DisplayHelpTopic
|
|
349
|
+
DisplayProcedure DoAlert DoIgorMenu DoUpdate DoWindow
|
|
350
|
+
DoXOPIdle DrawAction DrawArc DrawBezier DrawLine
|
|
351
|
+
DrawOval DrawPICT DrawPoly DrawRRect DrawRect DrawText
|
|
352
|
+
DrawUserShape Duplicate DuplicateDataFolder EdgeStats
|
|
353
|
+
Edit ErrorBars EstimatePeakSizes Execute
|
|
354
|
+
ExecuteScriptText ExperimentInfo ExperimentModified
|
|
355
|
+
ExportGizmo Extract FBinRead FBinWrite FFT FGetPos
|
|
356
|
+
FIFO2Wave FIFOStatus FMaxFlat FPClustering FReadLine
|
|
357
|
+
FSetPos FStatus FTPCreateDirectory FTPDelete
|
|
358
|
+
FTPDownload FTPUpload FastGaussTransform FastOp
|
|
359
|
+
FilterFIR FilterIIR FindAPeak FindContour
|
|
360
|
+
FindDuplicates FindLevel FindLevels FindPeak
|
|
361
|
+
FindPointsInPoly FindRoots FindSequence FindValue
|
|
362
|
+
FuncFit FuncFitMD GBLoadWave GISCreateVectorLayer
|
|
363
|
+
GISGetRasterInfo GISGetRegisteredFileInfo
|
|
364
|
+
GISGetVectorLayerInfo GISLoadRasterData
|
|
365
|
+
GISLoadVectorData GISRasterizeVectorData
|
|
366
|
+
GISRegisterFile GISTransformCoords GISUnRegisterFile
|
|
367
|
+
GISWriteFieldData GISWriteGeometryData GISWriteRaster
|
|
368
|
+
GPIB2 GPIBRead2 GPIBReadBinary2 GPIBReadBinaryWave2
|
|
369
|
+
GPIBReadWave2 GPIBWrite2 GPIBWriteBinary2
|
|
370
|
+
GPIBWriteBinaryWave2 GPIBWriteWave2 GetAxis GetCamera
|
|
371
|
+
GetFileFolderInfo GetGizmo GetLastUserMenuInfo
|
|
372
|
+
GetMarquee GetMouse GetSelection GetWindow GraphNormal
|
|
373
|
+
GraphWaveDraw GraphWaveEdit Grep GroupBox
|
|
374
|
+
HDF5CloseFile HDF5CloseGroup HDF5ConvertColors
|
|
375
|
+
HDF5CreateFile HDF5CreateGroup HDF5CreateLink HDF5Dump
|
|
376
|
+
HDF5DumpErrors HDF5DumpState HDF5FlushFile
|
|
377
|
+
HDF5ListAttributes HDF5ListGroup HDF5LoadData
|
|
378
|
+
HDF5LoadGroup HDF5LoadImage HDF5OpenFile HDF5OpenGroup
|
|
379
|
+
HDF5SaveData HDF5SaveGroup HDF5SaveImage
|
|
380
|
+
HDF5TestOperation HDF5UnlinkObject HDFInfo
|
|
381
|
+
HDFReadImage HDFReadSDS HDFReadVset Hanning
|
|
382
|
+
HideIgorMenus HideInfo HideProcedures HideTools
|
|
383
|
+
HilbertTransform Histogram ICA IFFT ITCCloseAll2
|
|
384
|
+
ITCCloseDevice2 ITCConfigAllChannels2
|
|
385
|
+
ITCConfigChannel2 ITCConfigChannelReset2
|
|
386
|
+
ITCConfigChannelUpload2 ITCFIFOAvailable2
|
|
387
|
+
ITCFIFOAvailableAll2 ITCGetAllChannelsConfig2
|
|
388
|
+
ITCGetChannelConfig2 ITCGetCurrentDevice2
|
|
389
|
+
ITCGetDeviceInfo2 ITCGetDevices2 ITCGetErrorString2
|
|
390
|
+
ITCGetSerialNumber2 ITCGetState2 ITCGetVersions2
|
|
391
|
+
ITCInitialize2 ITCOpenDevice2 ITCReadADC2
|
|
392
|
+
ITCReadDigital2 ITCReadTimer2 ITCSelectDevice2
|
|
393
|
+
ITCSetDAC2 ITCSetGlobals2 ITCSetModes2 ITCSetState2
|
|
394
|
+
ITCStartAcq2 ITCStopAcq2 ITCUpdateFIFOPosition2
|
|
395
|
+
ITCUpdateFIFOPositionAll2 ITCWriteDigital2
|
|
396
|
+
ImageAnalyzeParticles ImageBlend ImageBoundaryToMask
|
|
397
|
+
ImageComposite ImageEdgeDetection ImageFileInfo
|
|
398
|
+
ImageFilter ImageFocus ImageFromXYZ ImageGLCM
|
|
399
|
+
ImageGenerateROIMask ImageHistModification
|
|
400
|
+
ImageHistogram ImageInterpolate ImageLineProfile
|
|
401
|
+
ImageLoad ImageMorphology ImageRegistration
|
|
402
|
+
ImageRemoveBackground ImageRestore ImageRotate
|
|
403
|
+
ImageSave ImageSeedFill ImageSkeleton3d ImageSnake
|
|
404
|
+
ImageStats ImageThreshold ImageTransform
|
|
405
|
+
ImageUnwrapPhase ImageWindow IndexSort InsertPoints
|
|
406
|
+
Integrate Integrate2D IntegrateODE Interp3DPath
|
|
407
|
+
Interpolate2 Interpolate3D JCAMPLoadWave
|
|
408
|
+
JointHistogram KMeans KillBackground KillControl
|
|
409
|
+
KillDataFolder KillFIFO KillFreeAxis KillPICTs
|
|
410
|
+
KillPath KillStrings KillVariables KillWaves
|
|
411
|
+
KillWindow Label Layout LayoutPageAction
|
|
412
|
+
LayoutSlideShow Legend LinearFeedbackShiftRegister
|
|
413
|
+
ListBox LoadData LoadPICT LoadPackagePreferences
|
|
414
|
+
LoadWave Loess LombPeriodogram MCC_FindServers
|
|
415
|
+
MFR_CheckForNewBricklets MFR_CloseResultFile
|
|
416
|
+
MFR_CreateOverviewTable MFR_GetBrickletCount
|
|
417
|
+
MFR_GetBrickletData MFR_GetBrickletDeployData
|
|
418
|
+
MFR_GetBrickletMetaData MFR_GetBrickletRawData
|
|
419
|
+
MFR_GetReportTemplate MFR_GetResultFileMetaData
|
|
420
|
+
MFR_GetResultFileName MFR_GetVernissageVersion
|
|
421
|
+
MFR_GetVersion MFR_GetXOPErrorMessage
|
|
422
|
+
MFR_OpenResultFile
|
|
423
|
+
MLLoadWave Make MakeIndex MarkPerfTestTime
|
|
424
|
+
MatrixConvolve MatrixCorr MatrixEigenV MatrixFilter
|
|
425
|
+
MatrixGLM MatrixGaussJ MatrixInverse MatrixLLS
|
|
426
|
+
MatrixLUBkSub MatrixLUD MatrixLUDTD MatrixLinearSolve
|
|
427
|
+
MatrixLinearSolveTD MatrixMultiply MatrixOP
|
|
428
|
+
MatrixSVBkSub MatrixSVD MatrixSchur MatrixSolve
|
|
429
|
+
MatrixTranspose MeasureStyledText Modify ModifyBoxPlot
|
|
430
|
+
ModifyBrowser ModifyCamera ModifyContour ModifyControl
|
|
431
|
+
ModifyControlList ModifyFreeAxis ModifyGizmo
|
|
432
|
+
ModifyGraph ModifyImage ModifyLayout ModifyPanel
|
|
433
|
+
ModifyTable ModifyViolinPlot ModifyWaterfall
|
|
434
|
+
MoveDataFolder MoveFile MoveFolder MoveString
|
|
435
|
+
MoveSubwindow MoveVariable MoveWave MoveWindow
|
|
436
|
+
MultiTaperPSD MultiThreadingControl NC_CloseFile
|
|
437
|
+
NC_DumpErrors NC_Inquire NC_ListAttributes
|
|
438
|
+
NC_ListObjects NC_LoadData NC_OpenFile NI4882
|
|
439
|
+
NILoadWave NeuralNetworkRun NeuralNetworkTrain
|
|
440
|
+
NewCamera NewDataFolder NewFIFO NewFIFOChan
|
|
441
|
+
NewFreeAxis NewGizmo NewImage NewLayout NewMovie
|
|
442
|
+
NewNotebook NewPanel NewPath NewWaterfall Note
|
|
443
|
+
Notebook NotebookAction Open OpenHelp OpenNotebook
|
|
444
|
+
Optimize PCA ParseOperationTemplate PathInfo
|
|
445
|
+
PauseForUser PauseUpdate PlayMovie PlayMovieAction
|
|
446
|
+
PlaySound PopupContextualMenu PopupMenu Preferences
|
|
447
|
+
PrimeFactors Print PrintGraphs PrintLayout
|
|
448
|
+
PrintNotebook PrintSettings PrintTable Project
|
|
449
|
+
PulseStats PutScrapText Quit RatioFromNumber
|
|
450
|
+
Redimension Remez Remove RemoveContour RemoveFromGizmo
|
|
451
|
+
RemoveFromGraph RemoveFromLayout RemoveFromTable
|
|
452
|
+
RemoveImage RemoveLayoutObjects RemovePath Rename
|
|
453
|
+
RenameDataFolder RenamePICT RenamePath RenameWindow
|
|
454
|
+
ReorderImages ReorderTraces ReplaceText ReplaceWave
|
|
455
|
+
Resample ResumeUpdate Reverse Rotate SQLHighLevelOp
|
|
456
|
+
STFT Save SaveData SaveExperiment SaveGizmoCopy
|
|
457
|
+
SaveGraphCopy SaveNotebook SavePICT
|
|
458
|
+
SavePackagePreferences SaveTableCopy
|
|
459
|
+
SetActiveSubwindow SetAxis SetBackground
|
|
460
|
+
SetDashPattern SetDataFolder SetDimLabel SetDrawEnv
|
|
461
|
+
SetDrawLayer SetFileFolderInfo SetFormula
|
|
462
|
+
SetIdlePeriod SetIgorHook SetIgorMenuMode
|
|
463
|
+
SetIgorOption SetMarquee SetProcessSleep SetRandomSeed
|
|
464
|
+
SetScale SetVariable SetWaveLock SetWaveTextEncoding
|
|
465
|
+
SetWindow ShowIgorMenus ShowInfo ShowTools Silent
|
|
466
|
+
Sleep Slider Smooth SmoothCustom Sort SortColumns
|
|
467
|
+
SoundInRecord SoundInSet SoundInStartChart
|
|
468
|
+
SoundInStatus SoundInStopChart SoundLoadWave
|
|
469
|
+
SoundSaveWave SphericalInterpolate
|
|
470
|
+
SphericalTriangulate SplitString SplitWave Stack
|
|
471
|
+
StackWindows StatsANOVA1Test StatsANOVA2NRTest
|
|
472
|
+
StatsANOVA2RMTest StatsANOVA2Test
|
|
473
|
+
StatsAngularDistanceTest StatsChiTest
|
|
474
|
+
StatsCircularCorrelationTest StatsCircularMeans
|
|
475
|
+
StatsCircularMoments StatsCircularTwoSampleTest
|
|
476
|
+
StatsCochranTest StatsContingencyTable StatsDIPTest
|
|
477
|
+
StatsDunnettTest StatsFTest StatsFriedmanTest
|
|
478
|
+
StatsHodgesAjneTest StatsJBTest StatsKDE StatsKSTest
|
|
479
|
+
StatsKWTest StatsKendallTauTest
|
|
480
|
+
StatsLinearCorrelationTest StatsLinearRegression
|
|
481
|
+
StatsMultiCorrelationTest StatsNPMCTest
|
|
482
|
+
StatsNPNominalSRTest StatsQuantiles
|
|
483
|
+
StatsRankCorrelationTest StatsResample StatsSRTest
|
|
484
|
+
StatsSample StatsScheffeTest StatsShapiroWilkTest
|
|
485
|
+
StatsSignTest StatsTTest StatsTukeyTest
|
|
486
|
+
StatsVariancesTest StatsWRCorrelationTest
|
|
487
|
+
StatsWatsonUSquaredTest StatsWatsonWilliamsTest
|
|
488
|
+
StatsWheelerWatsonTest StatsWilcoxonRankTest String
|
|
489
|
+
StructFill StructGet StructPut SumDimension SumSeries
|
|
490
|
+
TDMLoadData TDMSaveData TabControl Tag TextBox
|
|
491
|
+
ThreadGroupPutDF ThreadStart TickWavesFromAxis Tile
|
|
492
|
+
TileWindows TitleBox ToCommandLine ToolsGrid
|
|
493
|
+
Triangulate3d URLRequest Unwrap VDT2 VDTClosePort2
|
|
494
|
+
VDTGetPortList2 VDTGetStatus2 VDTOpenPort2
|
|
495
|
+
VDTOperationsPort2 VDTRead2 VDTReadBinary2
|
|
496
|
+
VDTReadBinaryWave2 VDTReadHex2 VDTReadHexWave2
|
|
497
|
+
VDTReadWave2 VDTTerminalPort2 VDTWrite2
|
|
498
|
+
VDTWriteBinary2 VDTWriteBinaryWave2 VDTWriteHex2
|
|
499
|
+
VDTWriteHexWave2 VDTWriteWave2 VISAControl VISARead
|
|
500
|
+
VISAReadBinary VISAReadBinaryWave VISAReadWave
|
|
501
|
+
VISAWrite VISAWriteBinary VISAWriteBinaryWave
|
|
502
|
+
VISAWriteWave ValDisplay Variable WaveMeanStdv
|
|
503
|
+
WaveStats WaveTransform WignerTransform WindowFunction
|
|
504
|
+
XLLoadWave cd dir fprintf printf pwd sprintf sscanf
|
|
505
|
+
wfprintf
|
|
506
|
+
)
|
|
507
|
+
end
|
|
508
|
+
|
|
509
|
+
def self.object_name
|
|
510
|
+
/\b[a-z][a-z0-9_\.]*?\b/i
|
|
511
|
+
end
|
|
512
|
+
|
|
513
|
+
object = self.object_name
|
|
514
|
+
noLineBreak = /(?:[ \t]|(?:\\\s*[\r\n]))+/
|
|
515
|
+
operator = %r([\#$~!%^&*+=\|?:<>/-])
|
|
516
|
+
punctuation = /[{}()\[\],.;]/
|
|
517
|
+
number_float= /0x[a-f0-9]+/i
|
|
518
|
+
number_hex = /\d+\.\d+(e[\+\-]?\d+)?/
|
|
519
|
+
number_int = /[\d]+(?:_\d+)*/
|
|
520
|
+
|
|
521
|
+
state :root do
|
|
522
|
+
rule %r(//), Comment, :comments
|
|
523
|
+
|
|
524
|
+
rule %r/#{object}/ do |m|
|
|
525
|
+
if m[0].downcase =~ /function/
|
|
526
|
+
token Keyword::Declaration
|
|
527
|
+
push :parse_function
|
|
528
|
+
elsif self.class.igorDeclarations.include? m[0].downcase
|
|
529
|
+
token Keyword::Declaration
|
|
530
|
+
push :parse_variables
|
|
531
|
+
elsif self.class.keywords.include? m[0].downcase
|
|
532
|
+
token Keyword
|
|
533
|
+
elsif self.class.igorConstants.include? m[0].downcase
|
|
534
|
+
token Keyword::Constant
|
|
535
|
+
elsif self.class.igorFunction.include? m[0].downcase
|
|
536
|
+
token Name::Builtin
|
|
537
|
+
elsif self.class.igorOperation.include? m[0].downcase
|
|
538
|
+
token Keyword::Reserved
|
|
539
|
+
push :operationFlags
|
|
540
|
+
elsif m[0].downcase =~ /\b(v|s|w)_[a-z]+[a-z0-9]*/
|
|
541
|
+
token Name::Constant
|
|
542
|
+
else
|
|
543
|
+
token Name
|
|
544
|
+
end
|
|
545
|
+
end
|
|
546
|
+
|
|
547
|
+
mixin :preprocessor
|
|
548
|
+
mixin :waveFlag
|
|
549
|
+
|
|
550
|
+
mixin :characters
|
|
551
|
+
mixin :numbers
|
|
552
|
+
mixin :whitespace
|
|
553
|
+
end
|
|
554
|
+
|
|
555
|
+
state :preprocessor do
|
|
556
|
+
rule %r((\#)(#{object})) do |m|
|
|
557
|
+
if self.class.preprocessor.include? m[2].downcase
|
|
558
|
+
token Comment::Preproc
|
|
559
|
+
else
|
|
560
|
+
token Punctuation, m[1] #i.e. ModuleFunctions
|
|
561
|
+
token Name, m[2]
|
|
562
|
+
end
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
end
|
|
566
|
+
end
|
|
567
|
+
|
|
568
|
+
state :assignment do
|
|
569
|
+
mixin :whitespace
|
|
570
|
+
rule %r/\"/, Literal::String::Double, :string1 #punctuation for string
|
|
571
|
+
mixin :string2
|
|
572
|
+
rule %r/#{number_float}/, Literal::Number::Float, :pop!
|
|
573
|
+
rule %r/#{number_int}/, Literal::Number::Integer, :pop!
|
|
574
|
+
rule %r/[\(\[\{][^\)\]\}]+[\)\]\}]/, Generic, :pop!
|
|
575
|
+
rule %r/[^\s\/\(]+/, Generic, :pop!
|
|
576
|
+
rule(//) { pop! }
|
|
577
|
+
end
|
|
578
|
+
|
|
579
|
+
state :parse_variables do
|
|
580
|
+
mixin :whitespace
|
|
581
|
+
rule %r/[=]/, Punctuation, :assignment
|
|
582
|
+
rule object, Name::Variable
|
|
583
|
+
rule %r/[\[\]]/, Punctuation # optional variables in functions
|
|
584
|
+
rule %r/[,]/, Punctuation, :parse_variables
|
|
585
|
+
rule %r/\)/, Punctuation, :pop! # end of function
|
|
586
|
+
rule %r([/][a-z]+)i, Keyword::Pseudo, :parse_variables
|
|
587
|
+
rule(//) { pop! }
|
|
588
|
+
end
|
|
589
|
+
|
|
590
|
+
state :parse_function do
|
|
591
|
+
rule %r([/][a-z]+)i, Keyword::Pseudo # only one flag
|
|
592
|
+
mixin :whitespace
|
|
593
|
+
rule object, Name::Function
|
|
594
|
+
rule %r/[\(]/, Punctuation, :parse_variables
|
|
595
|
+
rule(//) { pop! }
|
|
596
|
+
end
|
|
597
|
+
|
|
598
|
+
state :operationFlags do
|
|
599
|
+
rule %r/#{noLineBreak}/, Text
|
|
600
|
+
rule %r/[=]/, Punctuation, :assignment
|
|
601
|
+
rule %r([/][a-z]+)i, Keyword::Pseudo, :operationFlags
|
|
602
|
+
rule %r/(as)(\s*)(#{object})/i do
|
|
603
|
+
groups Keyword::Type, Text, Name::Label
|
|
604
|
+
end
|
|
605
|
+
rule(//) { pop! }
|
|
606
|
+
end
|
|
607
|
+
|
|
608
|
+
# inline variable assignments (i.e. for Make) with strict syntax
|
|
609
|
+
state :waveFlag do
|
|
610
|
+
rule %r(
|
|
611
|
+
(/(?:wave|X|Y))
|
|
612
|
+
(\s*)(=)(\s*)
|
|
613
|
+
(#{object})
|
|
614
|
+
)ix do |m|
|
|
615
|
+
token Keyword::Pseudo, m[1]
|
|
616
|
+
token Text, m[2]
|
|
617
|
+
token Punctuation, m[3]
|
|
618
|
+
token Text, m[4]
|
|
619
|
+
token Name::Variable, m[5]
|
|
620
|
+
end
|
|
621
|
+
end
|
|
622
|
+
|
|
623
|
+
state :characters do
|
|
624
|
+
rule %r/\s/, Text
|
|
625
|
+
rule %r/#{operator}/, Operator
|
|
626
|
+
rule %r/#{punctuation}/, Punctuation
|
|
627
|
+
rule %r/\"/, Literal::String::Double, :string1 #punctuation for string
|
|
628
|
+
mixin :string2
|
|
629
|
+
end
|
|
630
|
+
|
|
631
|
+
state :numbers do
|
|
632
|
+
rule %r/#{number_float}/, Literal::Number::Float
|
|
633
|
+
rule %r/#{number_hex}/, Literal::Number::Hex
|
|
634
|
+
rule %r/#{number_int}/, Literal::Number::Integer
|
|
635
|
+
end
|
|
636
|
+
|
|
637
|
+
state :whitespace do
|
|
638
|
+
rule %r/#{noLineBreak}/, Text
|
|
639
|
+
end
|
|
640
|
+
|
|
641
|
+
state :string1 do
|
|
642
|
+
rule %r/%\w\b/, Literal::String::Other
|
|
643
|
+
rule %r/\\\\/, Literal::String::Escape
|
|
644
|
+
rule %r/\\\"/, Literal::String::Escape
|
|
645
|
+
rule %r/\\/, Literal::String::Escape
|
|
646
|
+
rule %r/[^"]/, Literal::String
|
|
647
|
+
rule %r/\"/, Literal::String::Double, :pop! #punctuation for string
|
|
648
|
+
end
|
|
649
|
+
|
|
650
|
+
state :string2 do
|
|
651
|
+
rule %r/\'[^']*\'/, Literal::String::Single
|
|
652
|
+
end
|
|
653
|
+
|
|
654
|
+
state :comments do
|
|
655
|
+
rule %r{([/]\s*)([@]\w+\b)}i do
|
|
656
|
+
# doxygen comments
|
|
657
|
+
groups Comment, Comment::Special
|
|
658
|
+
end
|
|
659
|
+
rule %r/[^\r\n]/, Comment
|
|
660
|
+
rule(//) { pop! }
|
|
661
|
+
end
|
|
662
|
+
end
|
|
663
|
+
end
|
|
664
|
+
end
|