diff options
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib')
511 files changed, 41367 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge.rb new file mode 100644 index 0000000..f8cffcb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge.rb @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# stdlib +require 'pathname' + +# The containing module for Rouge +module Rouge + # cache value in a constant since `__dir__` allocates a new string + # on every call. + LIB_DIR = __dir__.freeze + + class << self + def reload! + Object::send :remove_const, :Rouge + Kernel::load __FILE__ + end + + # Highlight some text with a given lexer and formatter. + # + # @example + # Rouge.highlight('@foo = 1', 'ruby', 'html') + # Rouge.highlight('var foo = 1;', 'js', 'terminal256') + # + # # streaming - chunks become available as they are lexed + # Rouge.highlight(large_string, 'ruby', 'html') do |chunk| + # $stdout.print chunk + # end + def highlight(text, lexer, formatter, &b) + lexer = Lexer.find(lexer) unless lexer.respond_to? :lex + raise "unknown lexer #{lexer}" unless lexer + + formatter = Formatter.find(formatter) unless formatter.respond_to? :format + raise "unknown formatter #{formatter}" unless formatter + + formatter.format(lexer.lex(text), &b) + end + + # Load a file relative to the `lib/rouge` path. + # + # @api private + def load_file(path) + Kernel::load File.join(LIB_DIR, "rouge/#{path}.rb") + end + + # Load the lexers in the `lib/rouge/lexers` directory. + # + # @api private + def load_lexers + lexer_dir = Pathname.new(LIB_DIR) / "rouge/lexers" + Pathname.glob(lexer_dir / '*.rb').each do |f| + Lexers.load_lexer(f.relative_path_from(lexer_dir)) + end + end + end +end + +Rouge.load_file 'version' +Rouge.load_file 'util' +Rouge.load_file 'text_analyzer' +Rouge.load_file 'token' + +Rouge.load_file 'lexer' +Rouge.load_file 'regex_lexer' +Rouge.load_file 'template_lexer' + +Rouge.load_lexers + +Rouge.load_file 'guesser' +Rouge.load_file 'guessers/util' +Rouge.load_file 'guessers/glob_mapping' +Rouge.load_file 'guessers/modeline' +Rouge.load_file 'guessers/filename' +Rouge.load_file 'guessers/mimetype' +Rouge.load_file 'guessers/source' +Rouge.load_file 'guessers/disambiguation' + +Rouge.load_file 'formatter' +Rouge.load_file 'formatters/html' +Rouge.load_file 'formatters/html_table' +Rouge.load_file 'formatters/html_pygments' +Rouge.load_file 'formatters/html_legacy' +Rouge.load_file 'formatters/html_linewise' +Rouge.load_file 'formatters/html_line_highlighter' +Rouge.load_file 'formatters/html_line_table' +Rouge.load_file 'formatters/html_inline' +Rouge.load_file 'formatters/terminal256' +Rouge.load_file 'formatters/terminal_truecolor' +Rouge.load_file 'formatters/tex' +Rouge.load_file 'formatters/null' + +Rouge.load_file 'theme' +Rouge.load_file 'tex_theme_renderer' +Rouge.load_file 'themes/thankful_eyes' +Rouge.load_file 'themes/colorful' +Rouge.load_file 'themes/base16' +Rouge.load_file 'themes/github' +Rouge.load_file 'themes/igor_pro' +Rouge.load_file 'themes/monokai' +Rouge.load_file 'themes/molokai' +Rouge.load_file 'themes/monokai_sublime' +Rouge.load_file 'themes/gruvbox' +Rouge.load_file 'themes/tulip' +Rouge.load_file 'themes/pastie' +Rouge.load_file 'themes/bw' +Rouge.load_file 'themes/magritte' diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/cli.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/cli.rb new file mode 100644 index 0000000..49d9df4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/cli.rb @@ -0,0 +1,529 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# not required by the main lib. +# to use this module, require 'rouge/cli'. + +require 'rbconfig' + +module Rouge + class FileReader + attr_reader :input + def initialize(input) + @input = input + end + + def file + case input + when '-' + IO.new($stdin.fileno, 'rt:bom|utf-8') + when String + File.new(input, 'rt:bom|utf-8') + when ->(i){ i.respond_to? :read } + input + end + end + + def read + @read ||= begin + file.read + rescue => e + $stderr.puts "unable to open #{input}: #{e.message}" + exit 1 + ensure + file.close + end + end + end + + class CLI + def self.doc + return enum_for(:doc) unless block_given? + + yield %|usage: rougify {global options} [command] [args...]| + yield %|| + yield %|where <command> is one of:| + yield %| highlight #{Highlight.desc}| + yield %| debug #{Debug.desc}| + yield %| help #{Help.desc}| + yield %| style #{Style.desc}| + yield %| list #{List.desc}| + yield %| guess #{Guess.desc}| + yield %| version #{Version.desc}| + yield %|| + yield %|global options:| + yield %[ --require|-r <fname> require <fname> after loading rouge] + yield %|| + yield %|See `rougify help <command>` for more info.| + end + + class Error < StandardError + attr_reader :message, :status + def initialize(message, status=1) + @message = message + @status = status + end + end + + def self.parse(argv=ARGV) + argv = normalize_syntax(argv) + + while (head = argv.shift) + case head + when '-h', '--help', 'help', '-help' + return Help.parse(argv) + when '--require', '-r' + require argv.shift + else + break + end + end + + klass = class_from_arg(head) + return klass.parse(argv) if klass + + argv.unshift(head) if head + Highlight.parse(argv) + end + + def initialize(options={}) + end + + def self.error!(msg, status=1) + raise Error.new(msg, status) + end + + def error!(*a) + self.class.error!(*a) + end + + def self.class_from_arg(arg) + case arg + when 'version', '--version', '-v' + Version + when 'help', nil + Help + when 'highlight', 'hi' + Highlight + when 'debug' + Debug + when 'style' + Style + when 'list' + List + when 'guess' + Guess + end + end + + class Version < CLI + def self.desc + "print the rouge version number" + end + + def self.parse(*); new; end + + def run + puts Rouge.version + end + end + + class Help < CLI + def self.desc + "print help info" + end + + def self.doc + return enum_for(:doc) unless block_given? + + yield %|usage: rougify help <command>| + yield %|| + yield %|print help info for <command>.| + end + + def self.parse(argv) + opts = { :mode => CLI } + until argv.empty? + arg = argv.shift + klass = class_from_arg(arg) + if klass + opts[:mode] = klass + next + end + end + new(opts) + end + + def initialize(opts={}) + @mode = opts[:mode] + end + + def run + @mode.doc.each(&method(:puts)) + end + end + + class Highlight < CLI + def self.desc + "highlight code" + end + + def self.doc + return enum_for(:doc) unless block_given? + + yield %[usage: rougify highlight <filename> [options...]] + yield %[ rougify highlight [options...]] + yield %[] + yield %[--input-file|-i <filename> specify a file to read, or - to use stdin] + yield %[] + yield %[--lexer|-l <lexer> specify the lexer to use.] + yield %[ If not provided, rougify will try to guess] + yield %[ based on --mimetype, the filename, and the] + yield %[ file contents.] + yield %[] + yield %[--formatter-preset|-f <opts> specify the output formatter to use.] + yield %[ If not provided, rougify will default to] + yield %[ terminal256. options are: terminal256,] + yield %[ terminal-truecolor, html, html-pygments,] + yield %[ html-inline, html-line-table, html-table,] + yield %[ null/raw/tokens, or tex.] + yield %[] + yield %[--theme|-t <theme> specify the theme to use for highlighting] + yield %[ the file. (only applies to some formatters)] + yield %[] + yield %[--mimetype|-m <mimetype> specify a mimetype for lexer guessing] + yield %[] + yield %[--lexer-opts|-L <opts> specify lexer options in CGI format] + yield %[ (opt1=val1&opt2=val2)] + yield %[] + yield %[--formatter-opts|-F <opts> specify formatter options in CGI format] + yield %[ (opt1=val1&opt2=val2)] + yield %[] + yield %[--require|-r <filename> require a filename or library before] + yield %[ highlighting] + yield %[] + yield %[--escape allow the use of escapes between <! and !>] + yield %[] + yield %[--escape-with <l> <r> allow the use of escapes between custom] + yield %[ delimiters. implies --escape] + end + + # There is no consistent way to do this, but this is used elsewhere, + # and we provide explicit opt-in and opt-out with $COLORTERM + def self.supports_truecolor? + return true if %w(24bit truecolor).include?(ENV['COLORTERM']) + return false if ENV['COLORTERM'] && ENV['COLORTERM'] =~ /256/ + + if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ + ENV['ConEmuANSI'] == 'ON' && !ENV['ANSICON'] + else + ENV['TERM'] !~ /(^rxvt)|(-color$)/ + end + end + + def self.parse_opts(argv) + opts = { + :formatter => supports_truecolor? ? 'terminal-truecolor' : 'terminal256', + :theme => 'thankful_eyes', + :css_class => 'codehilite', + :input_file => '-', + :lexer_opts => {}, + :formatter_opts => {}, + :requires => [], + } + + until argv.empty? + arg = argv.shift + case arg + when '-r', '--require' + opts[:requires] << argv.shift + when '--input-file', '-i' + opts[:input_file] = argv.shift + when '--mimetype', '-m' + opts[:mimetype] = argv.shift + when '--lexer', '-l' + opts[:lexer] = argv.shift + when '--formatter-preset', '-f' + opts[:formatter] = argv.shift + when '--theme', '-t' + opts[:theme] = argv.shift + when '--css-class', '-c' + opts[:css_class] = argv.shift + when '--lexer-opts', '-L' + opts[:lexer_opts] = parse_cgi(argv.shift) + when '--escape' + opts[:escape] = ['<!', '!>'] + when '--escape-with' + opts[:escape] = [argv.shift, argv.shift] + when /^--/ + error! "unknown option #{arg.inspect}" + else + opts[:input_file] = arg + end + end + + opts + end + + def self.parse(argv) + new(parse_opts(argv)) + end + + def input_stream + @input_stream ||= FileReader.new(@input_file) + end + + def input + @input ||= input_stream.read + end + + def lexer_class + @lexer_class ||= Lexer.guess( + :filename => @input_file, + :mimetype => @mimetype, + :source => input_stream, + ) + end + + def raw_lexer + lexer_class.new(@lexer_opts) + end + + def escape_lexer + Rouge::Lexers::Escape.new( + start: @escape[0], + end: @escape[1], + lang: raw_lexer, + ) + end + + def lexer + @lexer ||= @escape ? escape_lexer : raw_lexer + end + + attr_reader :input_file, :lexer_name, :mimetype, :formatter, :escape + + def initialize(opts={}) + Rouge::Lexer.enable_debug! + + opts[:requires].each do |r| + require r + end + + @input_file = opts[:input_file] + + if opts[:lexer] + @lexer_class = Lexer.find(opts[:lexer]) \ + or error! "unknown lexer #{opts[:lexer].inspect}" + else + @lexer_name = opts[:lexer] + @mimetype = opts[:mimetype] + end + + @lexer_opts = opts[:lexer_opts] + + theme = Theme.find(opts[:theme]).new or error! "unknown theme #{opts[:theme]}" + + # TODO: document this in --help + @formatter = case opts[:formatter] + when 'terminal256' then Formatters::Terminal256.new(theme) + when 'terminal-truecolor' then Formatters::TerminalTruecolor.new(theme) + when 'html' then Formatters::HTML.new + when 'html-pygments' then Formatters::HTMLPygments.new(Formatters::HTML.new, opts[:css_class]) + when 'html-inline' then Formatters::HTMLInline.new(theme) + when 'html-line-table' then Formatters::HTMLLineTable.new(Formatters::HTML.new) + when 'html-table' then Formatters::HTMLTable.new(Formatters::HTML.new) + when 'null', 'raw', 'tokens' then Formatters::Null.new + when 'tex' then Formatters::Tex.new + else + error! "unknown formatter preset #{opts[:formatter]}" + end + + @escape = opts[:escape] + end + + def run + Formatter.enable_escape! if @escape + formatter.format(lexer.lex(input), &method(:print)) + end + + private_class_method def self.parse_cgi(str) + pairs = CGI.parse(str).map { |k, v| [k.to_sym, v.first] } + Hash[pairs] + end + end + + class Debug < Highlight + def self.desc + end + + def self.doc + return enum_for(:doc) unless block_given? + + yield %|usage: rougify debug [<options>]| + yield %|| + yield %|Debug a lexer. Similar options to `rougify highlight`, but| + yield %|defaults to the `null` formatter, and ensures the `debug`| + yield %|option is enabled, to print debugging information to stdout.| + end + + def self.parse_opts(argv) + out = super(argv) + out[:lexer_opts]['debug'] = '1' + out[:formatter] = 'null' + + out + end + end + + class Style < CLI + def self.desc + "print CSS styles" + end + + def self.doc + return enum_for(:doc) unless block_given? + + yield %|usage: rougify style [<theme-name>] [<options>]| + yield %|| + yield %|Print CSS styles for the given theme. Extra options are| + yield %|passed to the theme. To select a mode (light/dark) for the| + yield %|theme, append '.light' or '.dark' to the <theme-name>| + yield %|respectively. Theme defaults to thankful_eyes.| + yield %|| + yield %|options:| + yield %| --scope (default: .highlight) a css selector to scope by| + yield %| --tex (default: false) render as TeX| + yield %| --tex-prefix (default: RG) a command prefix for TeX| + yield %| implies --tex if specified| + yield %|| + yield %|available themes:| + yield %| #{Theme.registry.keys.sort.join(', ')}| + end + + def self.parse(argv) + opts = { + :theme_name => 'thankful_eyes', + :tex => false, + :tex_prefix => 'RG' + } + + until argv.empty? + arg = argv.shift + case arg + when '--tex' + opts[:tex] = true + when '--tex-prefix' + opts[:tex] = true + opts[:tex_prefix] = argv.shift + when /--(\w+)/ + opts[$1.tr('-', '_').to_sym] = argv.shift + else + opts[:theme_name] = arg + end + end + + new(opts) + end + + def initialize(opts) + theme_name = opts.delete(:theme_name) + theme_class = Theme.find(theme_name) \ + or error! "unknown theme: #{theme_name}" + + @theme = theme_class.new(opts) + if opts[:tex] + tex_prefix = opts[:tex_prefix] + @theme = TexThemeRenderer.new(@theme, prefix: tex_prefix) + end + end + + def run + @theme.render(&method(:puts)) + end + end + + class List < CLI + def self.desc + "list available lexers" + end + + def self.doc + return enum_for(:doc) unless block_given? + + yield %|usage: rouge list| + yield %|| + yield %|print a list of all available lexers with their descriptions.| + end + + def self.parse(argv) + new + end + + def run + puts "== Available Lexers ==" + + Lexer.all.sort_by(&:tag).each do |lexer| + desc = String.new("#{lexer.desc}") + if lexer.aliases.any? + desc << " [aliases: #{lexer.aliases.join(',')}]" + end + puts "%s: %s" % [lexer.tag, desc] + + lexer.option_docs.keys.sort.each do |option| + puts " ?#{option}= #{lexer.option_docs[option]}" + end + + puts + end + end + end + + class Guess < CLI + def self.desc + "guess the languages of file" + end + + def self.parse(args) + new(input_file: args.shift) + end + + attr_reader :input_file, :input_source + + def initialize(opts) + @input_file = opts[:input_file] || '-' + @input_source = FileReader.new(@input_file).read + end + + def lexers + Lexer.guesses( + filename: input_file, + source: input_source, + ) + end + + def run + lexers.each do |l| + puts "{ tag: #{l.tag.inspect}, title: #{l.title.inspect}, desc: #{l.desc.inspect} }" + end + end + end + + + private_class_method def self.normalize_syntax(argv) + out = [] + argv.each do |arg| + case arg + when /^(--\w+)=(.*)$/ + out << $1 << $2 + when /^(-\w)(.+)$/ + out << $1 << $2 + else + out << arg + end + end + + out + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/abap b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/abap new file mode 100644 index 0000000..1f0171b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/abap @@ -0,0 +1,6 @@ +lo_obj ?= lo_obj->do_nothing( 'Char' && ` String` ). + +SELECT SINGLE * FROM mara INTO ls_mara WHERE matkl EQ '1324'. +LOOP AT lt_mara ASSIGNING <mara>. + CHECK <mara>-mtart EQ '0001'. +ENDLOOP. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/actionscript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/actionscript new file mode 100644 index 0000000..f081e25 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/actionscript @@ -0,0 +1,4 @@ +function hello(name:String):void +{ + trace("hello " + name); +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ada b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ada new file mode 100644 index 0000000..36182fb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ada @@ -0,0 +1,26 @@ +with Ada.Directories; +with Ada.Direct_IO; +with Ada.Text_IO; + +procedure Extra_IO.Read_File (Name : String) is + + package Dirs renames Ada.Directories; + package Text_IO renames Ada.Text_IO; + + -- Get the size of the file for a new string. + Size : Natural := Natural (Dirs.Size (Name)); + subtype File_String is String (1 .. Size); + + -- Instantiate Direct_IO for our file type. + package FIO is new Ada.Direct_IO (File_String); + + File : FIO.File_Type; + Contents : File_String; + +begin + FIO.Open (File, FIO.In_File, Name); + FIO.Read (File, Contents); + FIO.Close (File); + + Text_IO.Put (Contents); +end Extra_IO.Read_File; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/apache b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/apache new file mode 100644 index 0000000..ce3e5fc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/apache @@ -0,0 +1,21 @@ +AddDefaultCharset UTF-8 + +RewriteEngine On + +# Serve gzipped version if available and accepted +AddEncoding x-gzip .gz +RewriteCond %{HTTP:Accept-Encoding} gzip +RewriteCond %{REQUEST_FILENAME}.gz -f +RewriteRule ^(.*)$ $1.gz [QSA,L] +<FilesMatch \.css\.gz$> + ForceType text/css + Header append Vary Accept-Encoding +</FilesMatch> +<FilesMatch \.js\.gz$> + ForceType application/javascript + Header append Vary Accept-Encoding +</FilesMatch> +<FilesMatch \.html\.gz$> + ForceType text/html + Header append Vary Accept-Encoding +</FilesMatch> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/apex b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/apex new file mode 100644 index 0000000..5b23b00 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/apex @@ -0,0 +1,9 @@ +public class with sharing Trigger { + @Deprecated + public void resolveSum(int x, int y) { + System.debug('x is ' + x); + System.debug('y is ' + y); + + System.debug('x + y = ' + (x+y)); + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/apiblueprint b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/apiblueprint new file mode 100644 index 0000000..25dc577 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/apiblueprint @@ -0,0 +1,33 @@ +FORMAT: 1A +HOST: http://polls.apiblueprint.org/ + +# Polls + +Polls is a simple API allowing consumers to view polls and vote in them. + +# Polls API Root [/] + +## Group Question + +Resources related to questions in the API. + +## Question [/questions/{question_id}] + ++ Parameters + + question_id: 1 (number, required) - ID of the Question in form of an integer + ++ Attributes + + question: `Favourite programming language?` (required) + + published_at: `2014-11-11T08:40:51.620Z` - An ISO8601 date when the question was published + + choices (array[Choice], required) - An array of Choice objects + + url: /questions/1 + +### View a Questions Detail [GET] + ++ Response 200 (application/json) + + Attributes (Question) + +### Delete a Question [DELETE] + ++ Relation: delete ++ Response 204 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/applescript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/applescript new file mode 100644 index 0000000..c824919 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/applescript @@ -0,0 +1,2 @@ +-- AppleScript playing with iTunes +tell application "iTunes" to get current selection diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/armasm b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/armasm new file mode 100644 index 0000000..b8bdf65 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/armasm @@ -0,0 +1,12 @@ + GET common.s + +RetVal * 0x123 :SHL: 4 + + AREA |Area$$Name|, CODE, READONLY + +MyFunction ROUT ; This is a comment + ASSERT RetVal <> 0 +1 MOVW r0, #RetVal + BX lr + + END diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/augeas b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/augeas new file mode 100644 index 0000000..8f0ab0c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/augeas @@ -0,0 +1,16 @@ +(* + This is a comment +*) +module Foo = +autoload xfm + +let a = b | c . d + +let lns = a* + +let filter = incl "/path/to/file" + . incl "/path/to/other_file" + . Util.stdexcl + +(* xmf is the transform *) +let xmf = transform lns filter diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/awk b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/awk new file mode 100644 index 0000000..fb6ca72 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/awk @@ -0,0 +1,4 @@ +BEGIN { # Simulate echo(1) + for (i = 1; i < ARGC; i++) printf "%s ", ARGV[i] + printf "\n" + exit } diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/batchfile b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/batchfile new file mode 100644 index 0000000..9426eb4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/batchfile @@ -0,0 +1,3 @@ +@echo off +setlocal enableextensions enabledelayedexpansion +for /f "tokens=*" %%a in ("hello !username! hi") do echo %%~a diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bbcbasic b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bbcbasic new file mode 100644 index 0000000..5737a5f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bbcbasic @@ -0,0 +1,6 @@ +REM > DefaultFilename +REM Ordinary comment +FOR n=1 TO 10 +PRINTTAB(n)"Hello there ";FNnumber(n)DIV3+1 +NEXT:END +DEFFNnumber(x%)=ABS(x%-4) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bibtex b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bibtex new file mode 100644 index 0000000..e029265 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bibtex @@ -0,0 +1,12 @@ +@article{Witten:1988hf, + author = "Witten, Edward", + title = "{Quantum Field Theory and the Jones Polynomial}", + journal = "Commun. Math. Phys.", + volume = "121", + year = "1989", + pages = "351-399", + doi = "10.1007/BF01217730", + note = "[,233(1988)]", + reportNumber = "IASSNS-HEP-88-33", + SLACcitation = "%%CITATION = CMPHA,121,351;%%" +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/biml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/biml new file mode 100644 index 0000000..e4d5f68 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/biml @@ -0,0 +1,38 @@ +<#@ template language="C#" #> +<#@ import namespace="System.Data" #> +<Biml xmlns="http://schemas.varigence.com/biml.xsd"> + <Connections> + <!-- Creates a connection to the Adventure Works database --> + <Connection + Name="AdventureWorks" + ConnectionString="Provider=SQLNCLI10.1;Data Source=Localhost;Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=AdventureWorksDW" + /> + </Connections> + <!-- Packages Collection --> + <Packages> + <!-- A Package --> + <Package + Name="MyFirstPackage" + ConstraintMode="Linear" + > + <!-- A Package's Tasks --> + <Tasks> + <ExecuteSQL Name="ExecuteStoredProc" ConnectionName="AdventureWorks"> + <DirectInput>EXEC usp_StoredProc</DirectInput> + </ExecuteSQL> + <# foreach (var table in RootNode.Tables) { #> + <Dataflow Name="Duplicate <#=table.Name#> Data"> + <Transformations> + <OleDbSource Name="Retrieve Data" ConnectionName="AdventureWorks"> + <DirectInput>SELECT * FROM <#=table.Name#></DirectInput> + </OleDbSource> + <OleDbDestination Name="Insert Data" ConnectionName="AdventureWorks"> + <ExternalTableOutput Table="<#=table.Name#>" /> + </OleDbDestination> + </Transformations> + </Dataflow> + <# } #> + </Tasks> + </Package> + </Packages> +</Biml> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bpf b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bpf new file mode 100644 index 0000000..45c2083 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bpf @@ -0,0 +1,7 @@ +r0 = *(u8 *)skb[23] +*(u32 *)(r10 - 4) = r0 +r1 = *(u32 *)(r6 + 4) +r1 = 0 ll +call 1 /* lookup */ +if r0 == 0 goto +2 <LBB0_3> +lock *(u64 *)(r0 + 0) += r1 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/brainfuck b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/brainfuck new file mode 100644 index 0000000..87cc69f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/brainfuck @@ -0,0 +1,5 @@ +[ + This is a sample + comment. +] +.[>+<-]>, diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/brightscript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/brightscript new file mode 100644 index 0000000..72224eb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/brightscript @@ -0,0 +1,6 @@ +function main(args as dynamic) as void + screen = CreateObject("roSGScreen") + 'Create a scene and load /components/helloworld.xml' + scene = screen.CreateScene("HelloWorld") + screen.show() +end function diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bsl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bsl new file mode 100644 index 0000000..8a6a8d9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/bsl @@ -0,0 +1,7 @@ +#Область ПрограммныйИнтерфейс + +Процедура ПриветМир() Экспорт + Сообщить("Привет мир"); +КонецПроцедуры + +#КонецОбласти diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/c b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/c new file mode 100644 index 0000000..34771c8 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/c @@ -0,0 +1,8 @@ +#include "ruby/ruby.h" + +static int +clone_method_i(st_data_t key, st_data_t value, st_data_t data) +{ + clone_method((VALUE)data, (ID)key, (const rb_method_entry_t *)value); + return ST_CONTINUE; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ceylon b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ceylon new file mode 100644 index 0000000..fcf19e0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ceylon @@ -0,0 +1,7 @@ +shared class CeylonClass<Parameter>() + given Parameter satisfies Object { + + shared String name => "CeylonClass"; +} + +shared void run() => CeylonClass(); diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cfscript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cfscript new file mode 100644 index 0000000..b91d82d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cfscript @@ -0,0 +1,18 @@ +component accessors="true" { + + property type="string" name="firstName" default=""; + property string username; + + function init(){ + return this; + } + + public any function submitOrder( required product, coupon="", boolean results=true ){ + + var foo = function( required string baz, x=true, y=false ){ + return "bar!"; + }; + + return foo; + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cisco_ios b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cisco_ios new file mode 100644 index 0000000..c4d4e69 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cisco_ios @@ -0,0 +1,19 @@ +interface FastEthernet0.20 + encapsulation dot1Q 20 + no ip route-cache + bridge-group 1 + no bridge-group 1 source-learning + bridge-group 1 spanning-disabled + +! Supports shortened versions of config words, too +inter gi0.10 +encap dot1q 10 native +inter gi0 + +banner login # Authenticate yourself! # + +! Supports #, $ and % to delimit banners, and multiline +banner motd $ +Attention! +We will be having scheduled system maintenance on this device. +$ diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/clean b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/clean new file mode 100644 index 0000000..9f947f6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/clean @@ -0,0 +1,6 @@ +delete :: !a !.(Set a) -> Set a | < a +delete x Tip = Tip +delete x (Bin _ y l r) + | x < y = balanceR y (delete x l) r + | x > y = balanceL y l (delete x r) + | otherwise = glue l r diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/clojure b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/clojure new file mode 100644 index 0000000..a9b682e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/clojure @@ -0,0 +1,5 @@ +(defn make-adder [x] + (let [y x] + (fn [z] (+ y z)))) +(def add2 (make-adder 2)) +(add2 4) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cmake b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cmake new file mode 100644 index 0000000..89fcc51 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cmake @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 2.8.3) + +project(foo C) + +# some note +add_executable(foo utils.c "foo.c") +target_link_libraries(foo ${LIBRARIES}) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cmhg b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cmhg new file mode 100644 index 0000000..76eeaf9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cmhg @@ -0,0 +1,8 @@ +; Header comments + +#include "definitions.h" + +command-keyword-table: command_handler + foo(min-args:0, max-args:0,; comment + international:, + invalid-syntax: "syntaxtoken" help-text: "helptoken") diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cobol b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cobol new file mode 100644 index 0000000..ad2691a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cobol @@ -0,0 +1,103 @@ + *----------------------- + * This file was sourced from https://github.com/openmainframeproject/cobol-programming-course + * Credits: + * The course materials were made available through a joint collaboration between IBM, its clients, and + * American River College and proposed as a new project by IBM. + *----------------------- + * Copyright Contributors to the COBOL Programming Course + * SPDX-License-Identifier: CC-BY-4.0 + *----------------------- + IDENTIFICATION DIVISION. + *----------------------- + PROGRAM-ID. CBL0001 + AUTHOR. Otto B. Fun. + *-------------------- + ENVIRONMENT DIVISION. + *-------------------- + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT PRINT-LINE ASSIGN TO PRTLINE. + SELECT ACCT-REC ASSIGN TO ACCTREC. + *SELECT clause creates an internal file name + *ASSIGN clause creates a name for an external data source, + *which is associated with the JCL DDNAME used by the z/OS + *e.g. ACCTREC is linked in JCL file CBL0001J to &SYSUID..DATA + *where &SYSUID. stands for Your z/OS user id + *e.g. if Your user id is Z54321, + *the data set used for ACCTREC is Z54321.DATA + *------------- + DATA DIVISION. + *------------- + FILE SECTION. + FD PRINT-LINE RECORDING MODE F. + 01 PRINT-REC. + 05 ACCT-NO-O PIC X(8). + 05 ACCT-LIMIT-O PIC $$,$$$,$$9.99. + 05 ACCT-BALANCE-O PIC $$,$$$,$$9.99. + * PIC $$,$$$,$$9.99 -- Alternative for PIC on chapter 7.2.3, + * using $ to allow values of different amounts of digits + * and .99 instead of v99 to allow period display on output + 05 LAST-NAME-O PIC X(20). + 05 FIRST-NAME-O PIC X(15). + 05 COMMENTS-O PIC X(50). + * since the level 05 is higher than level 01, + * all variables belong to PRINT-REC (see chapter 7.3.3) + * + FD ACCT-REC RECORDING MODE F. + 01 ACCT-FIELDS. + 05 ACCT-NO PIC X(8). + 05 ACCT-LIMIT PIC S9(7)V99 COMP-3. + 05 ACCT-BALANCE PIC S9(7)V99 COMP-3. + * PIC S9(7)v99 -- seven-digit plus a sign digit value + * COMP-3 -- packed BCD (binary coded decimal) representation + 05 LAST-NAME PIC X(20). + 05 FIRST-NAME PIC X(15). + 05 CLIENT-ADDR. + 10 STREET-ADDR PIC X(25). + 10 CITY-COUNTY PIC X(20). + 10 USA-STATE PIC X(15). + 05 RESERVED PIC X(7). + 05 COMMENTS PIC X(50). + * + WORKING-STORAGE SECTION. + 01 FLAGS. + 05 LASTREC PIC X VALUE SPACE. + *------------------ + PROCEDURE DIVISION. + *------------------ + OPEN-FILES. + OPEN INPUT ACCT-REC. + OPEN OUTPUT PRINT-LINE. + * + READ-NEXT-RECORD. + PERFORM READ-RECORD + * The previous statement is needed before entering the loop. + * Both the loop condition LASTREC = 'Y' + * and the call to WRITE-RECORD depend on READ-RECORD having + * been executed before. + * The loop starts at the next line with PERFORM UNTIL + PERFORM UNTIL LASTREC = 'Y' + PERFORM WRITE-RECORD + PERFORM READ-RECORD + END-PERFORM + . + * + CLOSE-STOP. + CLOSE ACCT-REC. + CLOSE PRINT-LINE. + GOBACK. + * + READ-RECORD. + READ ACCT-REC + AT END MOVE 'Y' TO LASTREC + END-READ. + * + WRITE-RECORD. + MOVE ACCT-NO TO ACCT-NO-O. + MOVE ACCT-LIMIT TO ACCT-LIMIT-O. + MOVE ACCT-BALANCE TO ACCT-BALANCE-O. + MOVE LAST-NAME TO LAST-NAME-O. + MOVE FIRST-NAME TO FIRST-NAME-O. + MOVE COMMENTS TO COMMENTS-O. + WRITE PRINT-REC. + * diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/codeowners b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/codeowners new file mode 100644 index 0000000..e4d88dc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/codeowners @@ -0,0 +1,6 @@ +# Specify a default Code Owner by using a wildcard: +* @default-codeowner + +/docs/ @all-docs + +[Development] @dev-team diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/coffeescript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/coffeescript new file mode 100644 index 0000000..a562db6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/coffeescript @@ -0,0 +1,5 @@ +# Objects: +math = + root: Math.sqrt + square: square + cube: (x) -> x * square x diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/common_lisp b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/common_lisp new file mode 100644 index 0000000..c6d2861 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/common_lisp @@ -0,0 +1 @@ +(defun square (x) (* x x)) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/conf b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/conf new file mode 100644 index 0000000..5386d4e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/conf @@ -0,0 +1,4 @@ +# A generic configuration file +option1 "val1" +option2 23 +option3 'val3' diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/console b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/console new file mode 100644 index 0000000..9d6ed1c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/console @@ -0,0 +1,6 @@ +# prints "hello, world" to the screen +~# echo Hello, World +Hello, World + +# don't run this +~# rm -rf --no-preserve-root / diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/coq b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/coq new file mode 100644 index 0000000..eadd44a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/coq @@ -0,0 +1,16 @@ +Require Import Coq.Lists.List. + +Section with_T. + Context {T : Type}. + + Fixpoint length (ls : list T) : nat := + match ls with + | nil => 0 + | _ :: ls => S (length ls) + end. +End with_T. + +Definition a_string := "hello +world". +Definition escape_string := "0123". +Definition zero_string := "0". diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cpp b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cpp new file mode 100644 index 0000000..c20cf27 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cpp @@ -0,0 +1,8 @@ +#include<iostream> + +using namespace std; + +int main() +{ + cout << "Hello World" << endl; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/crystal b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/crystal new file mode 100644 index 0000000..988753e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/crystal @@ -0,0 +1,45 @@ +lib LibC + WNOHANG = 0x00000001 + + @[ReturnsTwice] + fun fork : PidT + fun getpgid(pid : PidT) : PidT + fun kill(pid : PidT, signal : Int) : Int + fun getpid : PidT + fun getppid : PidT + fun exit(status : Int) : NoReturn + + ifdef x86_64 + alias ClockT = UInt64 + else + alias ClockT = UInt32 + end + + SC_CLK_TCK = 3 + + struct Tms + utime : ClockT + stime : ClockT + cutime : ClockT + cstime : ClockT + end + + fun times(buffer : Tms*) : ClockT + fun sysconf(name : Int) : Long +end + +class Process + def self.exit(status = 0) + LibC.exit(status) + end + + def self.pid + LibC.getpid + end + + def self.getpgid(pid : Int32) + ret = LibC.getpgid(pid) + raise Errno.new(ret) if ret < 0 + ret + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/csharp b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/csharp new file mode 100644 index 0000000..04e4a8e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/csharp @@ -0,0 +1,5 @@ +// reverse byte order (16-bit) +public static UInt16 ReverseBytes(UInt16 value) +{ + return (UInt16)((value & 0xFFU) << 8 | (value & 0xFF00U) >> 8); +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/css b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/css new file mode 100644 index 0000000..0d1fe74 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/css @@ -0,0 +1,4 @@ +body { + font-size: 12pt; + background: #fff url(temp.png) top left no-repeat; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/csvs b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/csvs new file mode 100644 index 0000000..6112b7c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/csvs @@ -0,0 +1,8 @@ +version 1.1 +@totalColumns 5 +@separator ',' +Transaction_Date: xDate +Transaction_ID: notEmpty +Originator_Name: notEmpty +Originator_Address: any("yes","no") +Originator_Country: notEmpty diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cuda b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cuda new file mode 100644 index 0000000..6f9fa56 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cuda @@ -0,0 +1,11 @@ +#include <cstdio> + +__global__ void helloFromGPU() { + std::printf("Hello World\n"); + __syncthreads(); +} + +int main() { + dim3 block(1, 10); + helloFromGPU<<<1, block>>>(); +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cypher b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cypher new file mode 100644 index 0000000..098df7c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cypher @@ -0,0 +1,5 @@ +// Cypher Mode for Rouge +CREATE (john:Person {name: 'John'}) +MATCH (user)-[:friend]->(follower) +WHERE user.name IN ['Joe', 'John', 'Sara', 'Maria', 'Steve'] AND follower.name =~ 'S.*' +RETURN user.name, follower.name diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cython b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cython new file mode 100644 index 0000000..be57661 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/cython @@ -0,0 +1,6 @@ +cdef extern from 'foo.h': + int foo_int + struct foo_struct: + pass + +ctypedef int word diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/d b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/d new file mode 100644 index 0000000..65d4945 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/d @@ -0,0 +1,16 @@ +import std.algorithm, std.conv, std.functional, + std.math, std.regex, std.stdio; + +alias round = pipe!(to!real, std.math.round, to!string); +static reFloatingPoint = ctRegex!`[0-9]+\.[0-9]+`; + +void main() +{ + // Replace anything that looks like a real + // number with the rounded equivalent. + stdin + .byLine + .map!(l => l.replaceAll!(c => c.hit.round) + (reFloatingPoint)) + .each!writeln; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/dafny b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/dafny new file mode 100644 index 0000000..66415a7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/dafny @@ -0,0 +1,16 @@ +module A { + const i: int := 56_78 +} + +method m(b: bool, s: string) { + var x: string; + var i: int; + if b then i := 1; else i := 2; + i := if b 1 else 2; + assert b; + assume b; + print s; + expect b; +} + +function f(i: int): int { i + 1 } diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/dart b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/dart new file mode 100644 index 0000000..4b40da5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/dart @@ -0,0 +1,6 @@ +void main() { + var collection=[1,2,3,4,5]; + for(var a in collection){ + print(a); + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/datastudio b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/datastudio new file mode 100644 index 0000000..17db7a5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/datastudio @@ -0,0 +1,20 @@ + +Get_Variable("EUSER","ENV","USERNAME"); + +Message("Le Login Windows est : %EUSER%"); + +Get_Variable("st","JOB","FOLDER1.date_err.SYSTEM.STATUS"); + + +AFFECT("filter1", '%%/"t"'); +AFFECT("filter2", '%%/"pi"'); +JSONTOSQL("%{jsonpath}%/file.json", "", + " JSONPATH like '%filter1%' ", "a = JSONVALUE", + " JSONPATH like '%filter2%' ", "b = JSONVALUE; output(json_data, a, b)"); + + +Affect(VAR1,'%TEST%'); //Créer et affecter la variable VAR1 avec une chaîne +select * from TABLE1 where COL1 like %VAR1%; //utiliser la variable VAR1 dans une requête + +select * from TEST_TABLE; //exécution d'une requête Select pour ramener des valeurs +Affect_LastColumns("TEST1"); //création du paramètre TEST1 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/diff b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/diff new file mode 100644 index 0000000..ab4f316 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/diff @@ -0,0 +1,7 @@ +--- file1 2012-10-16 15:07:58.086886874 +0100 ++++ file2 2012-10-16 15:08:07.642887236 +0100 +@@ -1,3 +1,3 @@ + a b c +-d e f ++D E F + g h i diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/digdag b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/digdag new file mode 100644 index 0000000..f7dbad0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/digdag @@ -0,0 +1,19 @@ +# this is digdag task definitions +timezone: UTC + ++setup: + echo>: start ${session_time} + ++disp_current_date: + echo>: ${moment(session_time).utc().format('YYYY-MM-DD HH:mm:ss Z')} + ++repeat: + for_each>: + order: [first, second, third] + animal: [dog, cat] + _do: + echo>: ${order} ${animal} + _parallel: true + ++teardown: + echo>: finish ${session_time} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/docker b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/docker new file mode 100644 index 0000000..656d2bc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/docker @@ -0,0 +1,9 @@ +maintainer First O'Last + +run echo \ + 123 $bar +# comment +onbuild add . /app/src +onbuild run echo \ + 123 $bar +CMD /bin/bash diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/dot b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/dot new file mode 100644 index 0000000..243ee73 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/dot @@ -0,0 +1,5 @@ +// The graph name and the semicolons are optional +graph G { + a -- b -- c; + b -- d; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ecl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ecl new file mode 100644 index 0000000..b63b320 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ecl @@ -0,0 +1,17 @@ +/* + Example code - use without restriction. +*/ +Layout_Person := RECORD + UNSIGNED1 PersonID; + STRING15 FirstName; + STRING25 LastName; +END; + +allPeople := DATASET([ {1,'Fred','Smith'}, + {2,'Joe','Blow'}, + {3,'Jane','Smith'}],Layout_Person); + +somePeople := allPeople(LastName = 'Smith'); + +// Outputs --- +somePeople; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/eex b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/eex new file mode 100644 index 0000000..1f922b6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/eex @@ -0,0 +1 @@ +<title><%= @title %></title> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/eiffel b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/eiffel new file mode 100644 index 0000000..ec025cc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/eiffel @@ -0,0 +1,30 @@ +note + description: "Represents a person." + +class + PERSON + +create + make, make_unknown + +feature {NONE} -- Creation + + make (a_name: like name) + -- Create a person with `a_name' as `name'. + do + name := a_name + ensure + name = a_name + end + + make_unknown + do ensure + name = Void + end + +feature -- Access + + name: detachable STRING + -- Full name or Void if unknown. + +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/elixir b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/elixir new file mode 100644 index 0000000..f81d641 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/elixir @@ -0,0 +1 @@ +Enum.map([1,2,3], fn(x) -> x * 2 end) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/elm b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/elm new file mode 100644 index 0000000..8d38380 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/elm @@ -0,0 +1,4 @@ +import Html exposing (text) + +main = + text "Hello, World!" diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/email b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/email new file mode 100644 index 0000000..b355729 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/email @@ -0,0 +1,11 @@ +From: Me <me@example.com> +To: You <you@example.com> +Date: Tue, 21 Jul 2020 15:14:03 +0000 +Subject: A very important message + +> Please investigate. Thank you. + +I have investigated. + +-- +This message is highly confidential and will self-destruct. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/epp b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/epp new file mode 100644 index 0000000..e8decec --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/epp @@ -0,0 +1,4 @@ +<%- | + Optional[String] $title, +| -%> +<title><%= $title %></title> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/erb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/erb new file mode 100644 index 0000000..1f922b6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/erb @@ -0,0 +1 @@ +<title><%= @title %></title> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/erlang b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/erlang new file mode 100644 index 0000000..4c3cb99 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/erlang @@ -0,0 +1,7 @@ +%%% Geometry module. +-module(geometry). +-export([area/1]). + +%% Compute rectangle and circle area. +area({rectangle, Width, Ht}) -> Width * Ht; +area({circle, R}) -> 3.14159 * R * R. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/escape b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/escape new file mode 100644 index 0000000..b71d6b3 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/escape @@ -0,0 +1,3 @@ +If Formatter.enable_escape! is called, this allows escaping into html +or the parent format with a special delimiter. For example: +<!<span style="text-decoration: underline">!>underlined text!<!</span>!> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/factor b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/factor new file mode 100644 index 0000000..2538dff --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/factor @@ -0,0 +1,5 @@ +USING: io kernel sequences ; + +4 iota [ + "Happy Birthday " write 2 = "dear NAME" "to You" ? print +] each diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/fluent b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/fluent new file mode 100644 index 0000000..2e7ac8f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/fluent @@ -0,0 +1,13 @@ +# Simple things are simple. +hello-user = Hello, {$userName}! + +# Complex things are possible. +shared-photos = + {$userName} {$photoCount -> + [one] added a new photo + *[other] added {$photoCount} new photos + } to {$userGender -> + [male] his stream + [female] her stream + *[other] their stream + }. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/fortran b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/fortran new file mode 100644 index 0000000..4fc52c5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/fortran @@ -0,0 +1,22 @@ +program bottles + + implicit none + integer :: nbottles + + do nbottles = 99, 1, -1 + call print_bottles(nbottles) + end do + +contains + + subroutine print_bottles(n) + implicit none + integer, intent(in) :: n + + write(*, "(I0, 1X, 'bottles of beer on the wall,')") n + write(*, "(I0, 1X, 'bottles of beer.')") n + write(*, "('Take one down, pass it around,')") + write(*, "(I0, 1X, 'bottles of beer on the wall.', /)") n - 1 + end subroutine print_bottles + +end program bottles diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/freefem b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/freefem new file mode 100644 index 0000000..9205675 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/freefem @@ -0,0 +1,16 @@ +include "MUMPS" + +// Parameters +func f = 1.; + +// Mesh +int nn = 25; //Mesh quality +mesh Th = square(nn, nn); + +// Fespace +func Pk = P2; +fespace Uh(Th, Pk); +Uh u; + +// Plot +plot(u, nbiso=30, fill=true, value=true, cmm="A"); diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/fsharp b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/fsharp new file mode 100644 index 0000000..2e58e03 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/fsharp @@ -0,0 +1,12 @@ +(* Binary tree with leaves carrying an integer. *) +type Tree = Leaf of int | Node of Tree * Tree + +let rec existsLeaf test tree = + match tree with + | Leaf v -> test v + | Node (left, right) -> + existsLeaf test left + || existsLeaf test right + +let hasEvenLeaf tree = + existsLeaf (fun n -> n % 2 = 0) tree diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/gdscript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/gdscript new file mode 100644 index 0000000..72ba52c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/gdscript @@ -0,0 +1,18 @@ +extends Node + +# Variables & Built-in Types + +var a = 5 +var b = true +var s = "Hello" +var arr = [1, 2, 3] + +# Constants & Enums + +const ANSWER = 42 +enum { UNIT_NEUTRAL, UNIT_ENEMY, UNIT_ALLY } + +# Functions + +func _ready(): + print("Hello, World") diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ghc-cmm b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ghc-cmm new file mode 100644 index 0000000..72b764e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ghc-cmm @@ -0,0 +1,23 @@ +[lvl_s4t3_entry() // [R1] + { info_tbls: [(c4uB, + label: lvl_s4t3_info + rep: HeapRep 1 ptrs { Thunk } + srt: Nothing)] + stack_info: arg_space: 8 updfr_space: Just 8 + } + {offset + c4uB: // global + if ((Sp + -32) < SpLim) (likely: False) goto c4uC; else goto c4uD; + c4uC: // global + R1 = R1; + call (stg_gc_enter_1)(R1) args: 8, res: 0, upd: 8; + c4uD: // global + I64[Sp - 16] = stg_upd_frame_info; + P64[Sp - 8] = R1; + R2 = P64[R1 + 16]; + I64[Sp - 32] = stg_ap_p_info; + P64[Sp - 24] = Main.fib3_closure+1; + Sp = Sp - 32; + call GHC.Num.fromInteger_info(R2) args: 40, res: 0, upd: 24; + } + } diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ghc-core b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ghc-core new file mode 100644 index 0000000..a421f79 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ghc-core @@ -0,0 +1,26 @@ +Rec { +-- RHS size: {terms: 24, types: 3, coercions: 0, joins: 0/0} +Main.fib_fib [Occ=LoopBreaker] :: Integer -> Integer +[GblId, Arity=1, Str=<S,U>, Unf=OtherCon []] +Main.fib_fib + = \ (ds_d2OU :: Integer) -> + case integer-gmp-1.0.2.0:GHC.Integer.Type.eqInteger# + ds_d2OU Main.fib1 + of { + __DEFAULT -> + case integer-gmp-1.0.2.0:GHC.Integer.Type.eqInteger# + ds_d2OU Main.fib3 + of { + __DEFAULT -> + integer-gmp-1.0.2.0:GHC.Integer.Type.plusInteger + (Main.fib_fib + (integer-gmp-1.0.2.0:GHC.Integer.Type.minusInteger + ds_d2OU Main.fib3)) + (Main.fib_fib + (integer-gmp-1.0.2.0:GHC.Integer.Type.minusInteger + ds_d2OU Main.fib2)); + 1# -> Main.fib3 + }; + 1# -> Main.fib1 + } +end Rec } diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/gherkin b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/gherkin new file mode 100644 index 0000000..78e4ba6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/gherkin @@ -0,0 +1,17 @@ +# language: en +Feature: Addition + In order to avoid silly mistakes + As someone who has trouble with mental math + I want to be told the sum of two numbers + + Scenario Outline: Add two numbers + Given I have entered <input_1> into the calculator + And I have entered <input_2> into the calculator + When I press <button> + Then the result should be <output> on the screen + + Examples: + | input_1 | input_2 | button | output | + | 20 | 30 | add | 50 | + | 2 | 5 | add | 7 | + | 0 | 40 | add | 40 | diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/glsl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/glsl new file mode 100644 index 0000000..3383e90 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/glsl @@ -0,0 +1,14 @@ +#version 330 core + +uniform mat4 worldMatrix; + +layout(location = 0) in vec2 position; +layout(location = 1) in vec4 color; + +out vec4 vertexColor; + +void main() +{ + vertexColor = color; + gl_Position = vec4(position, 0.0, 1.0); +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/go b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/go new file mode 100644 index 0000000..078ddff --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("Hello, 世界") +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/gradle b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/gradle new file mode 100644 index 0000000..5a191f9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/gradle @@ -0,0 +1,10 @@ +apply plugin: 'java' + +repositories { + jcenter() +} + +dependencies { + compile 'org.openjdk.jmh:jmh-core:1.12' + compile 'org.openjdk.jmh:jmh-generator-annprocess:1.12' +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/graphql b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/graphql new file mode 100644 index 0000000..2fe9ec1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/graphql @@ -0,0 +1,17 @@ +query myQuery($variable: Boolean) { + # Queries can have comments! + friends(ids: ["a1", "a2"]) { + id + name + + ...someFields + + ... @include(if: $variable) { + foo + } + + ... @skip(if: true) { + bar + } + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/groovy b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/groovy new file mode 100644 index 0000000..6be7311 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/groovy @@ -0,0 +1,9 @@ +class Greet { + def name + Greet(who) { name = who[0].toUpperCase() + + who[1..-1] } + def salute() { println "Hello $name!" } +} + +g = new Greet('world') // create object +g.salute() // output "Hello World!" diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hack b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hack new file mode 100644 index 0000000..1e695ea --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hack @@ -0,0 +1,5 @@ +<?hh // strict + +async function foo(): Awaitable<string> { + return await (() ==> 'Hello, world')(); +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/haml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/haml new file mode 100644 index 0000000..4dcb687 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/haml @@ -0,0 +1,5 @@ +%section.container + %h1= post.title + %h2= post.subtitle + .content + = post.content diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/handlebars b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/handlebars new file mode 100644 index 0000000..6dc4a7e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/handlebars @@ -0,0 +1,7 @@ +<div class="entry"> + <h1>{{title}}</h1> + {{#with story}} + <div class="intro">{{{intro}}}</div> + <div class="body">{{{body}}}</div> + {{/with}} +</div> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/haskell b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/haskell new file mode 100644 index 0000000..2672159 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/haskell @@ -0,0 +1,6 @@ +quicksort :: Ord a => [a] -> [a] +quicksort [] = [] +quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater) + where + lesser = filter (< p) xs + greater = filter (>= p) xs diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/haxe b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/haxe new file mode 100644 index 0000000..89f75a7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/haxe @@ -0,0 +1,4 @@ +// hello world! +public static function hello(arg : String) { + return 'Hello $arg'; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hcl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hcl new file mode 100644 index 0000000..42287da --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hcl @@ -0,0 +1,7 @@ +service { + key = "value" +} + +variable "ami" { + description = "the AMI to use" +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hlsl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hlsl new file mode 100644 index 0000000..487aee0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hlsl @@ -0,0 +1,20 @@ +struct PSInput +{ + float4 position : SV_POSITION; + float4 color : COLOR; +}; + +// Vertex shader +PSInput VSMain(float4 position : POSITION, float4 color : COLOR) +{ + PSInput result; + result.position = position; + result.color = color; + return result; +} + +// Pixel shader +float4 PSMain(PSInput input) : SV_TARGET +{ + return input.color; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hocon b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hocon new file mode 100644 index 0000000..c2dbf5f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hocon @@ -0,0 +1,8 @@ +# These are our own config values defined by the app +simple-app { + answer = 42 +} + +# Here we override some values used by a library +simple-lib.foo = "This value comes from simple-app's application.conf" +simple-lib.whatever = "This value comes from simple-app's application.conf" diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hql b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hql new file mode 100644 index 0000000..5a344d8 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hql @@ -0,0 +1,5 @@ +SELECT e.first_name, e.last_name, d.department_name +FROM employees e +JOIN departments d ON e.department_id = d.department_id; + +update `table` set name='abc', date=${date}, test_interpolation="${var1}.${var2}" where xyz is null; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/html b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/html new file mode 100644 index 0000000..9329a37 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/html @@ -0,0 +1,8 @@ +<html> + <head><title>Title!</title></head> + <body> + <p id="foo">Hello, World!</p> + <script type="text/javascript">var a = 1;</script> + <style type="text/css">#foo { font-weight: bold; }</style> + </body> +</html> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/http b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/http new file mode 100644 index 0000000..28bc750 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/http @@ -0,0 +1,14 @@ +POST /demo/submit/ HTTP/1.1 +Host: rouge.jneen.net +Cache-Control: max-age=0 +Origin: http://rouge.jayferd.us +User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) + AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7 +Content-Type: application/json +Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 +Referer: http://pygments.org/ +Accept-Encoding: gzip,deflate,sdch +Accept-Language: en-US,en;q=0.8 +Accept-Charset: windows-949,utf-8;q=0.7,*;q=0.3 + +{"name":"test","lang":"text","boring":true} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hylang b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hylang new file mode 100644 index 0000000..bf9db3b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/hylang @@ -0,0 +1,10 @@ +(defn simple-conversation [] + (print "Hello! I'd like to get to know you. Tell me about yourself!") + (setv name (input "What is your name? ")) + (let [age (input "What is your age? ")] + (if (and age + name) + (print (+ "Hello " name "! I see you are " + age " years old."))))) + +(simple-conversation) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/idlang b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/idlang new file mode 100644 index 0000000..49f16af --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/idlang @@ -0,0 +1,8 @@ +for i = 99L, 0, -1 do begin + + print, i, format="(I0, 1X, 'bottles of beer on the wall,')" + print, i, format="(I0, 1X, 'bottles of beer.')" + print, 'Take one down, pass it around,' + print, i, format="(I0, 1X, 'bottles of beer on the wall.', /)" + +endfor diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/idris b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/idris new file mode 100644 index 0000000..58e0301 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/idris @@ -0,0 +1,13 @@ +import Data.Vect + +insert : Ord elem => + (x : elem) -> (xsSorted : Vect len elem) -> Vect (S len) elem +insert x [] = [x] +insert x (y :: xs) = case x < y of + True => x :: y :: xs + False => y :: insert x xs + +insSort : Ord elem => Vect n elem -> Vect n elem +insSort [] = [] +insSort (x :: xs) = let xsSorted = insSort xs in + insert x xsSorted diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/iecst b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/iecst new file mode 100644 index 0000000..16a0371 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/iecst @@ -0,0 +1,21 @@ +// first-order lag derivative term +(* + Parameter K must be set to T / (T + T1) +*) +FUNCTION_BLOCK DT2 + +VAR_INPUT + IN : REAL; + K : REAL; +END_VAR +VAR_OUTPUT + Q : REAL; +END_VAR +VAR + H : REAL := 0.0; +END_VAR + +BEGIN + Q := IN - H; + H := H + K * Q; +END_FUNCTION_BLOCK diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/igorpro b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/igorpro new file mode 100644 index 0000000..d4c0feb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/igorpro @@ -0,0 +1,9 @@ +#pragma TextEncoding = "UTF-8" +#pragma rtGlobals=3 // Use modern global access method and strict wave access. + +Function/WAVE MakeWave(name) + String name + + Make/N=(8,8) root:$name/WAVE=wv = p^2 + q^2 + return wv +End diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ini b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ini new file mode 100644 index 0000000..f600c91 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ini @@ -0,0 +1,4 @@ +; last modified 1 April 2001 by John Doe +[owner] +name=John Doe +organization=Acme Widgets Inc. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/io b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/io new file mode 100644 index 0000000..05f0a20 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/io @@ -0,0 +1,11 @@ +bottle := method(i, + if(i==0, return "no more bottles of beer") + if(i==1, return "1 bottle of beer") + return i asString .. " bottles of beer" +) + +for(i, 99, 1, -1, + write(bottle(i), " on the wall, ", bottle(i), ",\n") + write("take one down, pass it around,\n") + write(bottle(i - 1), " on the wall.\n\n") +) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/irb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/irb new file mode 100644 index 0000000..5dd074e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/irb @@ -0,0 +1,4 @@ +irb(main):001:0> puts "Hello, world!" +Hello, world! +irb(main):002:0> Object.new +=> #<Object:0x0056182cb182b8> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/irb_output b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/irb_output new file mode 100644 index 0000000..c31a012 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/irb_output @@ -0,0 +1,2 @@ +hello world +=> #<Object:0x0056182cb182b8 @foo=#<Object:0x0056182cb63100 @bar=3>> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/isabelle b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/isabelle new file mode 100644 index 0000000..8024ce9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/isabelle @@ -0,0 +1,16 @@ +theory demo imports Main begin + +section ‹Inductive predicates for lists› + +datatype 'a list = Nil ("[]") | Cons 'a "'a list" ("_ # _") + +fun length :: "'a list ⇒ nat" where + "length [] = 0" | "length (x # xs) = 1 + length xs" + +inductive ζ :: "'a list ⇒ nat ⇒ bool" where +Nil[intro!]: "ζ [] 0" | +Cons[intro]: "ζ xs l ⟹ ζ (x # xs) (1 + l)" + +(* Not the answer? *) +lemma "ζ xs 42" + oops diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/isbl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/isbl new file mode 100644 index 0000000..78605aa --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/isbl @@ -0,0 +1,4 @@ +NameReq = Object.Requisites(SYSREQ_NAME) +if Assigned(NameReq.AsString) + ShowMessage("Привет мир") +endif diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/j b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/j new file mode 100644 index 0000000..44f96f4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/j @@ -0,0 +1,12 @@ +NB. Procedural programming +fizzbuzz=: monad define + for_i. >:i.y do. + if. 0 = 15 | i do. echo'FizzBuzz' + elseif. 0 = 3 | i do. echo'Fizz' + elseif. 0 = 5 | i do. echo'Buzz' + else. echo i + end. + end. +) +NB. Loopless programming +fizzbuzz=: echo@(, ::] ('Fizz' ; 'Buzz') ;@#~ 0 = 3 5&|)@>:@i. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/janet b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/janet new file mode 100644 index 0000000..fbf89a0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/janet @@ -0,0 +1,3 @@ +(defn a-fun + "A function" + (do-something)) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/java b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/java new file mode 100644 index 0000000..0cca61e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/java @@ -0,0 +1,5 @@ +public class java { + public static void main(String[] args) { + System.out.println("Hello World"); + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/javascript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/javascript new file mode 100644 index 0000000..134a70e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/javascript @@ -0,0 +1 @@ +$(document).ready(function() { alert('ready!'); }); diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jinja b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jinja new file mode 100644 index 0000000..808cf77 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jinja @@ -0,0 +1,9 @@ +{% extends "layout.html" %} + +{% block body %} + <ul> + {% for user in users %} + <li><a href="{{ user.url }}">{{ user.username }}</a></li> + {% endfor %} + </ul> +{% endblock %} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsl new file mode 100644 index 0000000..6c3c39f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsl @@ -0,0 +1,3 @@ +// Create Distribution of Big Class +dt = open( "$sample_data\big class.jmp" ); +dt << Distribution( Column( :age ), Histograms Only( 1 ) ); diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/json b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/json new file mode 100644 index 0000000..eead967 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/json @@ -0,0 +1 @@ +{ "one": 1, "two": 2, "null": null, "simple": true } diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/json-doc b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/json-doc new file mode 100644 index 0000000..a2a57fe --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/json-doc @@ -0,0 +1 @@ +{ "one": 1, "two": 2, "null": null, "simple": true } // a simple json object diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/json5 b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/json5 new file mode 100644 index 0000000..0e72c64 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/json5 @@ -0,0 +1,12 @@ +{ + // comments + unquoted: 'and you can quote me on that', + singleQuotes: 'I can use "double quotes" here', + lineBreaks: "Look, Mom! \ +No \\n's!", + hexadecimal: 0xdecaf, + leadingDecimalPoint: .8675309, andTrailing: 8675309., + positiveSign: +1, + trailingComma: 'in objects', andIn: ['arrays',], + "backwardsCompatible": "with JSON", +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsonnet b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsonnet new file mode 100644 index 0000000..510441f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsonnet @@ -0,0 +1,28 @@ +// Compiler template +local CCompiler = { + cFlags: [], + out: "a.out", + local flags_str = std.join(" ", self.cFlags), + local files_str = std.join(" ", self.files), + cmd: "%s %s %s -o %s" % [self.compiler, flags_str, files_str, self.out], +}; + +// GCC specialization +local Gcc = CCompiler { compiler: "gcc" }; + +// Another specialization +local Clang = CCompiler { compiler: "clang" }; + +// Mixins - append flags +local Opt = { cFlags: super.cFlags + ["-O3", "-DNDEBUG"] }; +local Dbg = { cFlags: super.cFlags + ["-g"] }; + +// Output: +{ + targets: [ + Gcc { files: ["a.c", "b.c"] }, + Clang { files: ["test.c"], out: "test" }, + Clang + Opt { files: ["test2.c"], out: "test2" }, + Gcc + Opt + Dbg { files: ["foo.c", "bar.c"], out: "baz" }, + ] +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsp b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsp new file mode 100644 index 0000000..9f4fb8d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsp @@ -0,0 +1,29 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page import="java.time.LocalDateTime" %>
+
+<%! int day = 3; %>
+
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Simple JSP Application</title>
+ </head>
+ <body>
+ <%-- This is a JSP comment --%>
+ <h1>Hello world!</h1>
+ <h2>Current time is <%= LocalDateTime.now() %></h2>
+
+ <% if (day == 1 || day == 7) { %>
+ <p> Today is weekend</p>
+ <% } else { %>
+ <p> Today is not weekend</p>
+ <% } %>
+
+ h2>Using JavaBeans in JSP</h2>
+ <jsp:useBean id="test" class="action.TestBean" />
+ <jsp:setProperty name="test" property="message" value="Hello JSP..." />
+
+ <p>Got message:</p>
+ <jsp:getProperty name="test" property="message" />
+ </body>
+</html>
\ No newline at end of file diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsx b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsx new file mode 100644 index 0000000..1bf7872 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/jsx @@ -0,0 +1,17 @@ +var HelloWorld = React.createClass({ + render: function() { + return ( + <p> + Hello, <input type="text" placeholder="Your name here" />! + It is {this.props.date.toTimeString()} + </p> + ); + } +}); + +setInterval(function() { + ReactDOM.render( + <HelloWorld date={new Date()} />, + document.getElementById('example') + ); +}, 500); diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/julia b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/julia new file mode 100644 index 0000000..fe0e9e8 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/julia @@ -0,0 +1,11 @@ +function mandel(z) + c = z + maxiter = 80 + for n = 1:maxiter + if abs(z) > 2 + return n-1 + end + z = z^2 + c + end + return maxiter +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/kotlin b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/kotlin new file mode 100644 index 0000000..a27b0db --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/kotlin @@ -0,0 +1,3 @@ +fun main(args: Array<String>) { + println("Hello, world!") +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lasso b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lasso new file mode 100644 index 0000000..625112f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lasso @@ -0,0 +1,12 @@ +/**! + Inserts all of the elements from #rhs into the array. +*/ +define array->+(rhs::trait_forEach) => { + local(a = .asCopy); + #rhs->forEach => { + #a->insert(#1) + } + return (#a) +} + +define array->onCompare(n::null) => 1 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lean b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lean new file mode 100644 index 0000000..74f45c7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lean @@ -0,0 +1,8 @@ +open nat + +def add : nat → nat → nat +| m zero := m +| m (succ n) := succ (add m n) + +-- encode definition as an axiom +axiom add_zero (n : nat) : n + 0 = n diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/liquid b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/liquid new file mode 100644 index 0000000..19ed3af --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/liquid @@ -0,0 +1,10 @@ +<ul id="products"> + {% for product in products %} + <li> + <h2>{{ product.title }}</h2> + Only {{ product.price | format_as_money }} + + <p>{{ product.description | prettyprint | truncate: 200 }}</p> + </li> + {% endfor %} +</ul> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/literate_coffeescript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/literate_coffeescript new file mode 100644 index 0000000..0e5f25f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/literate_coffeescript @@ -0,0 +1,3 @@ +Import the helpers we plan to use. + + {extend, last} = require './helpers' diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/literate_haskell b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/literate_haskell new file mode 100644 index 0000000..10e7535 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/literate_haskell @@ -0,0 +1,7 @@ +In Bird-style you have to leave a blank before the code. + +> fact :: Integer -> Integer +> fact 0 = 1 +> fact n = n * fact (n-1) + +And you have to leave a blank line after the code as well. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/livescript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/livescript new file mode 100644 index 0000000..9daf4db --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/livescript @@ -0,0 +1,15 @@ +mitch = + age: 21 + height: 180cm + pets: [\dog, \goldfish] + +phile = {} +phile{height, pets} = mitch +phile.height #=> 180 +phile.pets #=> ['dog', 'goldfish'] + +a = [2 7 1 8] + ..push 3 + ..shift! + ..sort! +a #=> [1,3,7,8] diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/llvm b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/llvm new file mode 100644 index 0000000..c4596a8 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/llvm @@ -0,0 +1,20 @@ +; copied from http://llvm.org/docs/LangRef.html#module-structure +; Declare the string constant as a global constant. +@.str = private unnamed_addr constant [13 x i8] c"hello world\0A\00" + +; External declaration of the puts function +declare i32 @puts(i8* nocapture) nounwind + +; Definition of main function +define i32 @main() { ; i32()* + ; Convert [13 x i8]* to i8 *... + %cast210 = getelementptr [13 x i8]* @.str, i64 0, i64 0 + + ; Call puts function to write out the string to stdout. + call i32 @puts(i8* %cast210) + ret i32 0 +} + +; Named metadata +!1 = metadata !{i32 42} +!foo = !{!1, null} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lua b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lua new file mode 100644 index 0000000..2abebae --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lua @@ -0,0 +1,12 @@ +-- defines a factorial function +function fact (n) + if n == 0 then + return 1 + else + return n * fact(n-1) + end +end + +print("enter a number:") +a = io.read("*number") -- read a number +print(fact(a)) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lustre b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lustre new file mode 100644 index 0000000..789bd58 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lustre @@ -0,0 +1,6 @@ +node count(init: int; reset, event: bool) returns (c: int); +let + c = init -> if reset then init + else if event then pre(c)+1 + else pre(c); +tel; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lutin b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lutin new file mode 100644 index 0000000..b031cee --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lutin @@ -0,0 +1,18 @@ +node gen_x_v1() returns (x:real) = loop 0.0<x and x<42.0 + +node gen_x_v2() returns (x:real) = + loop { 0.0<x and x<42.0 fby loop [20] x = pre x } + +node gen_x_v3() returns (target:real; x:real=0.0) = + run target := gen_x_v2() in + loop { x = (pre x + target) / 2.0 } + +let inertia=0.6 + +node gen_x_v4() returns (target:real; x:real=0.0) = + run target := gen_x_v2() in + exist px,ppx : real = 0.0 in + loop { + px = pre x and ppx = pre px and + x = (px+target) / 2.0+inertia*(px-ppx) + } diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/m68k b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/m68k new file mode 100644 index 0000000..bf41adb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/m68k @@ -0,0 +1,16 @@ +initialize: ; go into super user mode + clr.l -(a7) + move.w #32,-(a7) + trap #1 + addq.l #6,a7 + move.l d0,oldstack + rts + +restore: ; go back into user mode + move.l oldstack,-(a7) + move.w #32,-(a7) + trap #1 + addq.l #6,a7 + rts + +oldstack dc.l 0 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/magik b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/magik new file mode 100644 index 0000000..80dfe26 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/magik @@ -0,0 +1,6 @@ +_private _method test_object.init() + ## initializer + .slot1 << _self.default_value + _return _self +_endmethod +$ diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/make b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/make new file mode 100644 index 0000000..cdac715 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/make @@ -0,0 +1,6 @@ +.PHONY: all +all: $(OBJ) + +$(OBJ): $(SOURCE) + @echo "compiling..." + $(GCC) $(CFLAGS) $< > $@ diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/markdown b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/markdown new file mode 100644 index 0000000..5e36314 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/markdown @@ -0,0 +1,4 @@ +Markdown has cool [reference links][ref 1] +and [regular links too](http://example.com) + +[ref 1]: http://example.com diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mason b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mason new file mode 100644 index 0000000..70d4338 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mason @@ -0,0 +1,22 @@ +<%doc>
+ This is a mason component.
+ # This is a comment.
+</%doc>
+
+<%args>
+ $color # this argument is required!
+ $size => 20 # default size
+ $country => undef # this argument is optional, default value is 'undef'
+ @items => (1, 2, 'something else')
+ %pairs => (name => "John", age => 29)
+</%args>
+
+% # A random block of Perl code
+<%perl>
+ my @people = ('mary' 'john' 'pete' 'david');
+</%perl>
+
+% # Note how each line of code begins with the mandatory %
+% foreach my $person (@people) {
+ Name: <% $person %>
+% }
diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mathematica b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mathematica new file mode 100644 index 0000000..b650247 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mathematica @@ -0,0 +1,8 @@ +(* Fibonacci numbers with memoization *) + +fib::usage = "f[n] calculates the n'th Fibonacci number."; +fib[0] = fib[1] = 1; +fib[n_Integer?Positive]:= fib[n] = fib[n-1] + fib[n-2]; + +In[4]:= fib[42] +Out[4]= 433494437 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/matlab b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/matlab new file mode 100644 index 0000000..3777fb5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/matlab @@ -0,0 +1,6 @@ +A = cat( 3, [1 2 3; 9 8 7; 4 6 5], [0 3 2; 8 8 4; 5 3 5], ... + [6 4 7; 6 8 5; 5 4 3]); +% The EIG function is applied to each of the horizontal 'slices' of A. +for i = 1:3 + eig(squeeze(A(i,:,:))) +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/meson b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/meson new file mode 100644 index 0000000..a10a60c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/meson @@ -0,0 +1,10 @@ +project('tutorial', 'c', version: '0.2.3') +executable('demo', 'main.c') + +version_array = meson.project_version().split('.') +api_version = '@0@.@1@'.format(version_array[0], version_array[1]) + +d = dependency('foo', required : get_option('myfeature')) +if d.found() + app = executable('app', 'app.c', dependencies : [d]) +endif diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/minizinc b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/minizinc new file mode 100644 index 0000000..9429d7b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/minizinc @@ -0,0 +1,23 @@ +% from MiniZinc Handbook: +% https://www.minizinc.org/doc-latest/en/modelling.html + +% Colouring Australia using nc colours +int: nc = 3; + +var 1..nc: wa; var 1..nc: nt; var 1..nc: sa; var 1..nc: q; +var 1..nc: nsw; var 1..nc: v; var 1..nc: t; + +constraint wa != nt; +constraint wa != sa; +constraint nt != sa; +constraint nt != q; +constraint sa != q; +constraint sa != nsw; +constraint sa != v; +constraint q != nsw; +constraint nsw != v; +solve satisfy; + +output ["wa=\(wa)\t nt=\(nt)\t sa=\(sa)\n", + "q=\(q)\t nsw=\(nsw)\t v=\(v)\n", + "t=", show(t), "\n"]; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mojo b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mojo new file mode 100644 index 0000000..dacbefa --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mojo @@ -0,0 +1,10 @@ +fn fib(n: Int): # write Fibonacci series up to n + """Print a Fibonacci series up to n.""" + var a = 0 + var b = 1 + while a < n: + print(a) + a, b = b, a+b + +fn main(): + fib(10) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/moonscript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/moonscript new file mode 100644 index 0000000..4c8511d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/moonscript @@ -0,0 +1,16 @@ +util = require "my.module" + +a_table = { + foo: 'bar' + interpolated: "foo-#{other.stuff 2 + 3}" + "string": 2 + do: 'keyword' +} + +class MyClass extends SomeClass + new: (@init, arg2 = 'default') => + @derived = @init + 2 + super! + + other: => + @foo + 2 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mosel b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mosel new file mode 100644 index 0000000..e1b81d6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mosel @@ -0,0 +1,10 @@ +(!****************************************************** + Mosel Example Problems +*******************************************************!) + +! Objective function: total daily cost + Cost:= sum(p in TYPES, t in TIME) (CSTART(p)*start(p,t) + + LEN(t)*(CMIN(p)*work(p,t) + CADD(p)*padd(p,t))) + +! Limit on power production above minimum level + forall(p in TYPES, t in TIME) padd(p,t) <= (PMAX(p)-PMIN(p))*work(p,t) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/msgtrans b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/msgtrans new file mode 100644 index 0000000..3660bed --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/msgtrans @@ -0,0 +1,4 @@ +# Example MessageTrans file +Token +Token0x??:Replacement localised %0 text +Color/Colour:Colour diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mxml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mxml new file mode 100644 index 0000000..a5deedb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/mxml @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<s:ComboBox xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx"> + + <fx:Script> + <![CDATA[ + [Bindable] + private var buttonLabel:String = "Click me!"; + private var clicks:int = 0; + + function button_clicked():void { + clicks++; + buttonLabel = clicks.toString(); + } + ]]> + </fx:Script> + + <s:Button id="button" + label="{buttonLabel}" + click="{button_clicked()}" /> +</s:ComboBox> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nasm b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nasm new file mode 100644 index 0000000..ed0e8b8 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nasm @@ -0,0 +1,26 @@ +%macro IRQ 2 + global irq%1 + irq%1: + cli + push byte 0 ; push a dummy error code + push byte %2 ; push the IRQ number + jmp irq_common_stub +%endmacro + +extern irq_handler + +irq_common_stub: + pusha ; push all general-purpose registers + mov ax, ds ; lower 16-bits of eax = ds + push eax ; save the data segment descriptor + mov ax, 0x10 ; load the kernel data segment descriptor + mov edx, eax + call irq_handler + +%assign i 0 +%rep 8 +ISR_NOERRCODE i +%assign i i+1 +%endrep + +ISR_NOERRCODE 9 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nesasm b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nesasm new file mode 100644 index 0000000..2529dfc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nesasm @@ -0,0 +1,11 @@ + .bank 0 + .org $C000 +Reset: + jsr WaitSync ; wait for VSYNC + jsr ClearRAM ; clear RAM + jsr WaitSync ; wait for VSYNC (and PPU warmup) + + lda #$3f ; $3F -> A register + ldy #$00 ; $00 -> Y register + sta PPU_ADDR ; write #HIGH byte first + sty PPU_ADDR ; $3F00 -> PPU address diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nginx b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nginx new file mode 100644 index 0000000..0288770 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nginx @@ -0,0 +1,5 @@ +server { + listen 80; + server_name example.com *.example.com; + rewrite ^ http://www.domain.com$request_uri? permanent; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nial b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nial new file mode 100644 index 0000000..b987c8b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nial @@ -0,0 +1,35 @@ +% Functional Recursion: ; +fact IS RECUR [ 0 =, 1 first, pass, product, -1 +] % from wikipedia; + +% Product of a range: ; +fact IS * count; + +% Plain recursion: ; +fact IS OPERATION x { + if x = 0 then 1 else x * fact (x - 1) endif + }; + +% While loop: ; +fact IS OPERATION x { +prod := 1; + WHILE x > 0 DO + prod := prod * x; + x := x - 1; + ENDWHILE; + prod +} + + % A basic divide by zero error: ; + 1 / 0 +# OUTPUT: +?div + + % Errors are also values called faults, giving you their location: ; + 5 / 5 10 0 8 +# OUTPUT: +1. 0.5 ?div 0.625 + + % You can also define custom faults using 'fault': ; + fault 'this is an error' +# OUTPUT: +this is an error diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nim b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nim new file mode 100644 index 0000000..74498cd --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nim @@ -0,0 +1,27 @@ +import math,strutils + +proc fixedWidth(input: string, minFieldSize: int):string {.inline.} = + # Note that field size is a minimum- will expand field if input + # string is larger + if input.startsWith("-"): + return(input & repeatchar(count=(abs(minFieldSize-len(input))),c=' ')) + else: + return(" " & input & repeatchar(count=(abs(minFieldSize-len(input))-1),c=' ')) + +template mathOnInterval(lowbound,highbound:float,counts: int,p:proc) = + block: + var step: float = (highbound - lowbound)/(max(counts,1)) + var current: float = lowbound + while current < highbound: + echo($fixedWidth($current,25) & ": " & $fixedWidth($p(current),25)) + current += step + +echo "Sine of theta from 0 to 2*PI by PI/12" +mathOnInterval(0.0,2.0*PI,12,sin) +echo("\n") +echo "Cosine of theta from 0 to 2*PI by PI/12" +mathOnInterval(0.0,2.0*PI,12,cos) + +# The first example above is much the same as: +# for i in 1..100: +# echo($sin( (float(i)/100.0) * 2.0*PI )) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nix b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nix new file mode 100644 index 0000000..abb561d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/nix @@ -0,0 +1,19 @@ +# See https://nixos.org/nix/manual/#sec-expression-syntax +{ stdenv, fetchurl, perl }: # 1 + +stdenv.mkDerivation { # 2 + name = "hello-2.1.1"; # 3 + builder = ./builder.sh; # 4 + meta = rec { + name = "rouge"; + version = "${name}-2.1.1"; + number = 55 + 12; + isSmaller = number < 42; + bool = true; + }; + src = fetchurl { # 5 + url = ftp://ftp.nluug.nl/pub/gnu/hello/hello-2.1.1.tar.gz; # path + md5 = "70c9ccf9fac07f762c24f2df2290784d"; + }; + inherit perl; # 6 +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/objective_c b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/objective_c new file mode 100644 index 0000000..c085626 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/objective_c @@ -0,0 +1,18 @@ +@interface Person : NSObject { + @public + NSString *name; + @private + int age; +} + +@property(copy) NSString *name; +@property(readonly) int age; + +-(id)initWithAge:(int)age; +@end + +NSArray *arrayLiteral = @[@"abc", @1]; +NSDictionary *dictLiteral = @{ + @"hello": @"world", + @"goodbye": @"cruel world" +}; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/objective_cpp b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/objective_cpp new file mode 100644 index 0000000..9b6890f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/objective_cpp @@ -0,0 +1,17 @@ +@import Foundation; +#import <array> +#include <vector> + +@interface IntegerArray : NSObject { + std::vector<NSUInteger> _numbers; +} +@property(readonly) NSUInteger count; + +- (instancetype)initWithNumbers:(NSUInteger *)numbers count:(NSUInteger)count; +- (NSUInteger)numberAtIndex:(NSUInteger)index; +@end + +int main(int argc, char **argv) { + auto numbers = std::array<NSUInteger, 3>{1, 2, 3}; + NSLog(@"%@", [[IntegerArray alloc] initWithNumbers:numbers.data() count:numbers.size()]); +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ocaml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ocaml new file mode 100644 index 0000000..e09cf09 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ocaml @@ -0,0 +1,12 @@ +(* Binary tree with leaves carrying an integer. *) +type tree = Leaf of int | Node of tree * tree + +let rec exists_leaf test tree = + match tree with + | Leaf v -> test v + | Node (left, right) -> + exists_leaf test left + || exists_leaf test right + +let has_even_leaf tree = + exists_leaf (fun n -> n mod 2 = 0) tree diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ocl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ocl new file mode 100644 index 0000000..cb6846b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ocl @@ -0,0 +1,4 @@ +context Compagnie::toEuros() : Collection(Real) +body: self.employees->collect(each: Employee| each.salary/ 6.55957) +-- OR +body: self.employees->collect(salary) -> collect(x | x/6.55957) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/openedge b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/openedge new file mode 100644 index 0000000..a2bbcba --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/openedge @@ -0,0 +1,4 @@ +FORM + "Hello World!" VIEW-AS TEXT AT COL 20 ROW 2 + btnOK AT COL 20 ROW 4 + WITH FRAME f SIZE 50 BY 5 NO-BOX THREE-D. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/opentype_feature_file b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/opentype_feature_file new file mode 100644 index 0000000..aec38db --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/opentype_feature_file @@ -0,0 +1,5 @@ +languagesystem DFLT dflt; + +feature liga { + sub f i by f_i; +} liga; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/p4 b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/p4 new file mode 100644 index 0000000..ed4992b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/p4 @@ -0,0 +1,99 @@ +#include <core.p4> +#include <v1model.p4> + +const bit<16> TYPE_IPV4 = 0x800; +typedef bit<9> egressSpec_t; +typedef bit<48> macAddr_t; +typedef bit<32> ip4Addr_t; + +header ethernet_t { + macAddr_t dstAddr; + macAddr_t srcAddr; + bit<16> etherType; +} + +header ipv4_t { + bit<4> version; + bit<4> ihl; + bit<8> diffserv; + bit<16> totalLen; + bit<16> identification; + bit<3> flags; + bit<13> fragOffset; + bit<8> ttl; + bit<8> protocol; + bit<16> hdrChecksum; + ip4Addr_t srcAddr; + ip4Addr_t dstAddr; +} + +struct metadata { /* empty */ } + +struct headers { + ethernet_t ethernet; + ipv4_t ipv4; +} + +parser MyParser(packet_in packet, + out headers hdr, + inout metadata meta, + inout standard_metadata_t standard_metadata) { + + state start { transition parse_ethernet; } + + state parse_ethernet { + packet.extract(hdr.ethernet); + transition select(hdr.ethernet.etherType) { + TYPE_IPV4: parse_ipv4; + default: accept; + } + } + + state parse_ipv4 { + packet.extract(hdr.ipv4); + transition accept; + } + +} + +control MyIngress(inout headers hdr, + inout metadata meta, + inout standard_metadata_t standard_metadata) { + action drop() { + mark_to_drop(standard_metadata); + } + + action ipv4_forward(macAddr_t dstAddr, egressSpec_t port) { + standard_metadata.egress_spec = port; + hdr.ethernet.srcAddr = hdr.ethernet.dstAddr; + hdr.ethernet.dstAddr = dstAddr; + hdr.ipv4.ttl = hdr.ipv4.ttl - 1; + } + + table ipv4_lpm { + key = { hdr.ipv4.dstAddr: lpm; } + actions = { ipv4_forward; drop; NoAction; } + size = 1024; + default_action = drop(); + } + + apply { + if (hdr.ipv4.isValid()) { + ipv4_lpm.apply(); + } + } +} + + +control MyDeparser(packet_out packet, in headers hdr) { + apply { + packet.emit(hdr.ethernet); + packet.emit(hdr.ipv4); + } +} + +V1Switch( +MyParser(), +MyIngress(), +MyDeparser() +) main; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/pascal b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/pascal new file mode 100644 index 0000000..16be537 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/pascal @@ -0,0 +1,14 @@ +program FizzBuzz(output); +var + i: Integer; +begin + for i := 1 to 100 do + if i mod 15 = 0 then + WriteLn('FizzBuzz') + else if i mod 3 = 0 then + WriteLn('Fizz') + else if i mod 5 = 0 then + WriteLn('Buzz') + else + WriteLn(i) +end. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/perl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/perl new file mode 100644 index 0000000..a966445 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/perl @@ -0,0 +1,5 @@ +#!/usr/bin/env perl +use warnings; +print "a: "; +my $a = "foo"; +print $a; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/php b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/php new file mode 100644 index 0000000..7ca7fe6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/php @@ -0,0 +1,3 @@ +<?php + print("Hello {$world}"); +?> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/plaintext b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/plaintext new file mode 100644 index 0000000..60180f7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/plaintext @@ -0,0 +1 @@ +plain text :) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/plist b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/plist new file mode 100644 index 0000000..7684a3c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/plist @@ -0,0 +1,11 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + /* ... */ + }; + rootObject = B3A67937542EC2041CBF1CA2 /* Project object */; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/plsql b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/plsql new file mode 100644 index 0000000..6369864 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/plsql @@ -0,0 +1,2 @@ +SELECT q'{a quoted string}' AS s, TO_CHAR(SYSDATE,'MM/DD/YYYY') AS "Current Date" FROM DUAL +WHERE 1=1; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/pony b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/pony new file mode 100644 index 0000000..9b584fd --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/pony @@ -0,0 +1,17 @@ +use "ponytest" + +actor Main is TestList + new create(env: Env) => PonyTest(env, this) + new make() => None + + fun tag tests(test: PonyTest) => + test(_TestAddition) + +class iso _TestAddition is UnitTest + """ + Adding 2 numbers + """ + fun name(): String => "u32/add" + + fun apply(h: TestHelper): TestResult => + h.expect_eq[U32](2 + 2, 4) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/postscript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/postscript new file mode 100644 index 0000000..377753d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/postscript @@ -0,0 +1,9 @@ +%!PS +/Courier % name the desired font +20 selectfont % choose the size in points and establish + % the font as the current one +72 500 moveto % position the current point at + % coordinates 72, 500 (the origin is at the + % lower-left corner of the page) +(Hello world!) show % stroke the text in parentheses +showpage % print all on the page diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/powershell b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/powershell new file mode 100644 index 0000000..98de97b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/powershell @@ -0,0 +1,13 @@ +function Verb-Noun +{ + <# + .SYNOPSIS + Tells you what it does + + .DESCRIPTION + Tells you what it does with more detail. + #> + param ([string]$Name, [string]$Extension = "txt", [string]$foo="bar") + $name = $name + "." + $extension + $name +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/praat b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/praat new file mode 100644 index 0000000..f1af35b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/praat @@ -0,0 +1,26 @@ +form Copy selected files... + word Prefix + word Suffix _copy + boolean Keep_original 1 +endform + +total_objects = numberOfSelected() +for i to total_objects + my_object[i] = selected(i) +endfor +for i to total_objects + selectObject: my_object[i] + @copy() + new[i] = selected() +endfor +if total_objects + selectObject: new[1] + for i from 2 to total_objects + plusObject: new[i] + endfor +endif + +procedure copy () + .name$ = extractWord$(selected$(), " ") + Copy: prefix$ + .name$ + suffix$ +endproc diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/prolog b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/prolog new file mode 100644 index 0000000..8430e6b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/prolog @@ -0,0 +1,9 @@ +diff(plus(A,B), X, plus(DA, DB)) + <= diff(A, X, DA) and diff(B, X, DB). + +diff(times(A,B), X, plus(times(A, DB), times(DA, B))) + <= diff(A, X, DA) and diff(B, X, DB). + +equal(X, X). +diff(X, X, 1). +diff(Y, X, 0) <= not equal(Y, X). diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/prometheus b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/prometheus new file mode 100644 index 0000000..3cdab08 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/prometheus @@ -0,0 +1,9 @@ +"this is a string" +'these are unescaped: \n \\ \t' +`these are not unescaped: \n ' " \t` + +http_requests_total{environment=~"staging|testing|development", method!="GET"} + +http_requests_total offset 5m + +sum(http_requests_total{method="GET"}[10m] offset 5m) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/properties b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/properties new file mode 100644 index 0000000..b5b717d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/properties @@ -0,0 +1,7 @@ +# You are reading the ".properties" entry. +! The exclamation mark can also mark text as comments. +website = http\://en.wikipedia.org/ +language = English +country : Poland +continent=Europe +key.with.dots=This is the value that could be looked up with the key "key.with.dots". diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/protobuf b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/protobuf new file mode 100644 index 0000000..fdab9e9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/protobuf @@ -0,0 +1,5 @@ +message Person { + required string name = 1; + required int32 id = 2; + optional string email = 3; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/puppet b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/puppet new file mode 100644 index 0000000..621d9c9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/puppet @@ -0,0 +1,6 @@ +service { 'ntp': + name => $service_name, + ensure => running, + enable => true, + subscribe => File['ntp.conf'], +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/python b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/python new file mode 100644 index 0000000..77a5cb3 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/python @@ -0,0 +1,6 @@ +def fib(n): # write Fibonacci series up to n + """Print a Fibonacci series up to n.""" + a, b = 0, 1 + while a < n: + print a, + a, b = b, a+b diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/q b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/q new file mode 100644 index 0000000..b7ff469 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/q @@ -0,0 +1,8 @@ +/ comment +x: til 10 + +tab:([]a:1 2 3;b:`a `b `c); + +function:{[table] + select from table where b=`c + }; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/qml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/qml new file mode 100644 index 0000000..9aacda6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/qml @@ -0,0 +1,9 @@ +import QtQuick 2.0 +Item { + width: 200 + height: 100 + MouseArea { + anchors.fill: parent + onClicked: Qt.quit() + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/r b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/r new file mode 100644 index 0000000..b6804b0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/r @@ -0,0 +1,8 @@ +dbenford <- function(x){ + log10(1 + 1/x) +} + +pbenford <- function(q){ + cumprobs <- cumsum(dbenford(1:9)) + return(cumprobs[q]) +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/racket b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/racket new file mode 100644 index 0000000..bd99818 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/racket @@ -0,0 +1,24 @@ +#lang racket + +;; draw a graph of cos and deriv^3(cos) +(require plot) +(define ((deriv f) x) + (/ (- (f x) (f (- x 0.001))) 0.001)) +(define (thrice f) (lambda (x) (f (f (f x))))) +(plot (list (function ((thrice deriv) sin) -5 5) + (function cos -5 5 #:color 'blue))) + +;; Print the Greek alphabet +(for ([i (in-range 25)]) + (displayln + (integer->char + (+ i (char->integer #\u3B1))))) + +;; An echo server +(define listener (tcp-listen 12345)) +(let echo-server () + (define-values (in out) (tcp-accept listener)) + (thread (λ () + (copy-port in out) + (close-output-port out))) + (echo-server)) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/reasonml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/reasonml new file mode 100644 index 0000000..db29f2c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/reasonml @@ -0,0 +1,12 @@ +/* I like a teacher who gives you something to take + home to think about besides homework. */ +let gpa_score = 5.0; +type schoolPerson = Teacher | Director | Student(string); + +let greeting = person => + switch (person) { + | Teacher => "Hey Professor!" + | Director => "Hello Director." + | Student("Richard") => "Still here Ricky?" + | Student(anyOtherName) => "Hey, " ++ anyOtherName ++ "." + }; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rego b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rego new file mode 100644 index 0000000..34b1422 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rego @@ -0,0 +1,8 @@ +package httpapi.authz + +subordinates = {"alice": [], "charlie": [], "bob": ["alice"], "betty": ["charlie"]} + +# HTTP API request +import input + +default allow = false diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rescript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rescript new file mode 100644 index 0000000..a27fa93 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rescript @@ -0,0 +1,26 @@ +module Person = { + type t = Teacher | Director | Student(string) + + let greeting = person => + switch person { + | Teacher => "Hey Professor!" + | Director => "Hello Director." + | Student("Richard") => "Still here Ricky?" + | Student(other) => "Hey, " ++ other ++ "." + } +} + +module Button = { + @react.component + let make = (~count: int, ~onClick) => { + let times = switch count { + | 1 => "once" + | 2 => "twice" + | n => Belt.Int.toString(n) ++ " times" + } + + let msg = "Click me " ++ times + + <button onClick> {msg->React.string} </button> + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rml new file mode 100644 index 0000000..5a09810 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rml @@ -0,0 +1,33 @@ +// A system agnostic domain specific language for runtime monitoring and verification +// Basic events + +insert(index,elem) matches {event:'func_pre',name:'my_insert',args:[index,elem]}; + +relevant matches insert(_,_)|remove(_,_)|size(_)|get(_,_); + +insert_in_bounds(size) matches insert(index,_) with index >= 0 && index <= size; + +del_false matches del(_,false); +not_add_true_del(el) not matches add(el,true) | del(el,_); + +Main = relevant >> (CheckIndex<0> /\ add_rm_get >> CheckElem)!; +CheckIndex<size> = + get_size(size)* (insert_in_bounds(size) CheckIndex<size+1> \/ remove_in_bounds(size) CheckIndex<size-1>); + +Msg<inf,sup> = if(inf<=sup) msg(inf) Msg<inf+1,sup> else empty; +Main=relevant>>Msg<1,4>*!; + +acquire(id) matches {event:'func_pre',name:'acquire',args:[_,id,...]}; + +Main = relevant >> Resources; +Resources = + {let id; acquire(id) + ((Resources | use(id)* release(id)) /\ + acqRel(id) >> release(id) all) + }?; + +msg(ty) matches {event:'func_pre',name:'msg',args:[ty]}; +relevant matches msg(_); + +Msg<inf,sup> = if(inf<=sup) msg(inf) Msg<inf+1,sup> else empty; +Main=relevant>>Msg<1,4>*!; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/robot_framework b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/robot_framework new file mode 100644 index 0000000..3ba3fdc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/robot_framework @@ -0,0 +1,27 @@ +*** Settings *** +Document Example taken from http://robotframework.org/ +Suite Setup Open Browser To Login Page +Suite Teardown Close Browser +Test Setup Go To Login Page +Test Template Login With Invalid Credentials Should Fail +Resource resource.txt + +*** Test Cases *** User Name Password +Invalid Username invalid ${VALID PASSWORD} +Invalid Password ${VALID USER} invalid +Invalid Username And Password invalid whatever +Empty Username ${EMPTY} ${VALID PASSWORD} +Empty Password ${VALID USER} ${EMPTY} +Empty Username And Password ${EMPTY} ${EMPTY} + +*** Keywords *** +Login With Invalid Credentials Should Fail + [Arguments] ${username} ${password} + Input Username ${username} + Input Password ${password} + Submit Credentials + Login Should Have Failed + +Login Should Have Failed + Location Should Be ${ERROR URL} + Title Should Be Error Page diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ruby b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ruby new file mode 100644 index 0000000..be609a1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ruby @@ -0,0 +1,9 @@ +class Greeter + def initialize(name="World") + @name = name + end + + def say_hi + puts "Hi #{@name}!" + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rust b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rust new file mode 100644 index 0000000..b73b162 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/rust @@ -0,0 +1,12 @@ +use core::*; + +fn main() { + for ["Alice", "Bob", "Carol"].each |&name| { + do task::spawn { + let v = rand::Rng().shuffle([1, 2, 3]); + for v.each |&num| { + io::print(fmt!("%s says: '%d'\n", name, num)) + } + } + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sas b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sas new file mode 100644 index 0000000..1eee876 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sas @@ -0,0 +1,13 @@ +data sim; + do i = 1 to 100; + x1 = rand("Normal"); + x2 = rand("Binomial", 0.5, 100); + output; + end; +run; + +proc means data=sashelp.class; + class sex; + var height weight; + output out = mean_by_sex; +run; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sass b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sass new file mode 100644 index 0000000..1e768de --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sass @@ -0,0 +1,3 @@ +@for $i from 1 through 3 + .item-#{$i} + width: 2em * $i diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/scala b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/scala new file mode 100644 index 0000000..75f19ee --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/scala @@ -0,0 +1,3 @@ +class Greeter(name: String = "World") { + def sayHi() { println("Hi " + name + "!") } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/scheme b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/scheme new file mode 100644 index 0000000..c9c4dbd --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/scheme @@ -0,0 +1,4 @@ +(define Y + (lambda (m) + ((lambda (f) (m (lambda (a) ((f f) a)))) + (lambda (f) (m (lambda (a) ((f f) a))))))) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/scss b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/scss new file mode 100644 index 0000000..3f259a7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/scss @@ -0,0 +1,5 @@ +@for $i from 1 through 3 { + .item-#{$i} { + width: 2em * $i; + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sed b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sed new file mode 100644 index 0000000..4683cd3 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sed @@ -0,0 +1,4 @@ +/begin/,/end/ { + /begin/n # skip over the line that has "begin" on it + s/old/new/ +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/shell b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/shell new file mode 100644 index 0000000..f01fe48 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/shell @@ -0,0 +1,2 @@ +# If not running interactively, don't do anything +[[ -z "$PS1" ]] && return diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sieve b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sieve new file mode 100644 index 0000000..5f6889d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sieve @@ -0,0 +1,10 @@ +require "fileinto"; +require "imap4flags"; + +if header :is "X-Spam" "Yes" { + fileinto "Junk"; + setflag "\\seen"; + stop; +} + +/* Other messages get filed into Inbox or to user's scripts */ diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/slice b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/slice new file mode 100644 index 0000000..7c38220 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/slice @@ -0,0 +1,10 @@ +// Printer.ice +module Demo +{ + interface Printer + { + // A client can invoke this operation on a server. + // In this example we print the string s + void printString(string s); + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/slim b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/slim new file mode 100644 index 0000000..215a4e2 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/slim @@ -0,0 +1,17 @@ +doctype html +html + body + h1 Markup examples + #content + p + | Slim can have #{ruby_code} interpolated! + /[if IE] + javascript: + alert('Slim supports embedded javascript!') + + - unless items.empty? + table + - for item in items do + tr + td.name = item.name + td.price = item.price diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/smalltalk b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/smalltalk new file mode 100644 index 0000000..af97161 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/smalltalk @@ -0,0 +1,6 @@ +quadMultiply: i1 and: i2 + "This method multiplies the given numbers by each other + and the result by 4." + | mul | + mul := i1 * i2. + ^mul * 4 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/smarty b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/smarty new file mode 100644 index 0000000..cf36485 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/smarty @@ -0,0 +1,11 @@ +{foo bar='single quotes' baz="double quotes" test3=$test3} + +<ul> + {foreach from=$myvariable item=data} + <li>{$data.field}</li> + {foreachelse} + <li>No Data</li> + {/foreach} +</ul> + +<div class="{if $foo}class1{else}class2{/if}">{$foo.bar.baz}</div> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sml new file mode 100644 index 0000000..02a57d3 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sml @@ -0,0 +1,4 @@ +datatype shape + = Circle of loc * real (* center and radius *) + | Square of loc * real (* upper-left corner and side length; axis-aligned *) + | Triangle of loc * loc * loc (* corners *) diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sparql b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sparql new file mode 100644 index 0000000..6884bd0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sparql @@ -0,0 +1,6 @@ +SELECT ?item ?itemLabel +WHERE +{ + ?item wdt:P31 wd:Q146. + SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sqf b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sqf new file mode 100644 index 0000000..9f54383 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sqf @@ -0,0 +1,14 @@ +// Creates a dot marker at the given position +#include "script_component.hpp" +params ["_pos", "_txt"]; + +if (isNil QGVAR(markerID)) then { + GVAR(markerID) = 0; +}; + +_markerstr = createMarker [QGVAR(marker) + str GVAR(markerID), _pos]; +_markerstr setMarkerShape "ICON"; +_markerstr setMarkerType "hd_dot"; +_markerstr setMarkerText _txt; + +GVAR(markerID) = GVAR(markerID) + 1; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sql b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sql new file mode 100644 index 0000000..45a7a17 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/sql @@ -0,0 +1 @@ +SELECT * FROM `users` WHERE `user`.`id` = 1 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ssh b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ssh new file mode 100644 index 0000000..47f9cdb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ssh @@ -0,0 +1,4 @@ +Host example + Hostname example.com + User user + Port 1234 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/stan b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/stan new file mode 100644 index 0000000..0eac821 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/stan @@ -0,0 +1,13 @@ +data { + int<lower=0> N; + vector[N] x; + vector[N] y; +} +parameters { + real alpha; + real beta; + real<lower=0> sigma; +} +model { + y ~ normal(alpha + beta * x, sigma); +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/stata b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/stata new file mode 100644 index 0000000..3d2430d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/stata @@ -0,0 +1,14 @@ +* Run a series of linear regressions +sysuse auto, clear +foreach v of varlist mpg weight-turn { + regress price `v', robust +} + +regress price i.foreign +local num_obs = e(N) +global myglobal = 4 + +* Generate and manipulate variables +generate newvar1 = "string" +generate newvar2 = 34 - `num_obs' +replace newvar2 = $myglobal diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/supercollider b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/supercollider new file mode 100644 index 0000000..23a8e4b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/supercollider @@ -0,0 +1,11 @@ +// modulate a sine frequency and a noise amplitude with another sine +// whose frequency depends on the horizontal mouse pointer position +~myFunction = { + var x = SinOsc.ar(MouseX.kr(1, 100)); + SinOsc.ar(300 * x + 800, 0, 0.1) + + + PinkNoise.ar(0.1 * x + 0.1) +}; + +~myFunction.play; +"that's all, folks!".postln; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/svelte b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/svelte new file mode 100644 index 0000000..8b3bb5c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/svelte @@ -0,0 +1,29 @@ +<!-- This file is made up from several examples on https://svelte.dev/examples and is not expected to function. --> +<script lang="ts"> + import Image from './Image.svelte'; + + let src: string = '/tutorial/image.gif'; + let count: number = 1; + $: doubled = count * 2; // the `$:` is special in svelte +</script> + +<Image {src} bind:alt="{name.capitalize()} dancing" user={name.toUpperCase(false, 42, {key: 'value'})} + tooltip="I'm helping" false text=asdf on:message={handleMessage} /> + +{#await loadSrc(src)} + loading... +{:then data} + {#each cats as { name }, i} + <li>{name}</li> + {/each} + + <!-- Keyed Each Block --> + {#each cats as cat (cat.id)} + <li>{cat.name}</li> + {/each} +{:catch err} + {@debug err} + {#await solveErr(err, {x: 'asdf'}) then reason}{@html reason}{/await} +{/await} + +<style>p {font-family: 'Comic Sans MS', cursive;}</style> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/swift b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/swift new file mode 100644 index 0000000..0c54ed2 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/swift @@ -0,0 +1,5 @@ +// Say hello to poeple +func sayHello(personName: String) -> String { + let greeting = "Hello, " + personName + "!" + return greeting +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/systemd b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/systemd new file mode 100644 index 0000000..e68c72e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/systemd @@ -0,0 +1,4 @@ +[Unit] +Description=Snap Daemon +Requires=snapd.socket +OnFailure=snapd.failure.service diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/syzlang b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/syzlang new file mode 100644 index 0000000..bebdb1e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/syzlang @@ -0,0 +1,15 @@ +include <linux/test.h> + +resource fd_test[fd] + +openat$test(fd const[AT_FDCWD], file ptr[in, string["/dev/test"]], flags flags[open_flags], mode const[0]) fd_test + +ioctl$TEST(fd fd_test, cmd const[TEST], arg ptr[in, test]) + +test { + number int32 + size len[data, int32] + data array[int8] +} + +_ = TEST diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/syzprog b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/syzprog new file mode 100644 index 0000000..92ef895 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/syzprog @@ -0,0 +1,8 @@ +# Source: https://github.com/google/syzkaller/blob/master/sys/linux/test/vusb_hid + +r0 = syz_usb_connect$hid(0x0, 0x36, &(0x7f0000000040)=ANY=[@ANYBLOB="12010000000018105e04da07000000000001090224000100000000090400000903000000092100000001222200090581030800000000"], 0x0) +syz_usb_control_io$hid(r0, 0x0, 0x0) +syz_usb_control_io$hid(r0, &(0x7f00000001c0)={0x24, 0x0, 0x0, &(0x7f0000000000)={0x0, 0x22, 0x22, {[@global=@item_012={0x2, 0x1, 0x9, "2313"}, @global=@item_012={0x2, 0x1, 0x0, "e53f"}, @global=@item_4={0x3, 0x1, 0x0, '\f\x00'}, @local=@item_012={0x2, 0x2, 0x2, "9000"}, @global=@item_4={0x3, 0x1, 0x0, "0900be00"}, @main=@item_4={0x3, 0x0, 0x8, '\x00'}, @local=@item_4={0x3, 0x2, 0x0, "09007a15"}, @local=@item_4={0x3, 0x2, 0x0, "5d8c3dda"}]}}, 0x0}, 0x0) +syz_usb_ep_write(r0, 0x81, 0x7, &(0x7f0000000000)='BBBBBBB') +syz_usb_ep_write(r0, 0x81, 0x7, &(0x7f0000000000)='BBBBBBB') +syz_usb_ep_write(r0, 0x81, 0x7, &(0x7f0000000000)='BBBBBBB') diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tap b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tap new file mode 100644 index 0000000..1d9bf5a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tap @@ -0,0 +1,5 @@ +ok 1 - Input file opened +not ok 2 - First line of the input valid +ok 3 - Read the rest of the file +not ok 4 - Summarized correctly # TODO Not written yet +1..4 diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tcl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tcl new file mode 100644 index 0000000..9bbe87c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tcl @@ -0,0 +1 @@ +proc cross_sum {s} {expr [join [split $s ""] +]} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/terraform b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/terraform new file mode 100644 index 0000000..006e4f8 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/terraform @@ -0,0 +1,16 @@ +resource "aws_elb" "web" { + name = "terraform-example-elb" + + # The same availability zone as our instances + availability_zones = ["${aws_instance.web.*.availability_zone}"] + + listener { + instance_port = 80 + instance_protocol = "http" + lb_port = 80 + lb_protocol = "http" + } + + # The instances are registered automatically + instances = ["${aws_instance.web.*.id}"] +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tex b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tex new file mode 100644 index 0000000..430510f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tex @@ -0,0 +1 @@ +To write \LaTeX\ you would type \verb:\LaTeX:. diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/toml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/toml new file mode 100644 index 0000000..40c11c1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/toml @@ -0,0 +1,9 @@ +# This is a TOML document. Boom. + +title = "TOML Example" + +[owner] +name = "Tom Preston-Werner" +organization = "GitHub" +bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." +dob = 1979-05-27T07:32:00Z # First class dates? Why not? diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tsx b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tsx new file mode 100644 index 0000000..422d2a7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tsx @@ -0,0 +1,17 @@ +class HelloWorld extends React.Component<{date: Date}, void> { + render() { + return ( + <p> + Hello, <input type="text" placeholder="Your name here" />! + It is {this.props.date.toTimeString()} + </p> + ); + } +} + +setInterval(function() { + ReactDOM.render( + <HelloWorld date={new Date()} />, + document.getElementById('example') + ); +}, 500); diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ttcn3 b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ttcn3 new file mode 100644 index 0000000..969107d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/ttcn3 @@ -0,0 +1,6 @@ +module DNSTester { + type integer Identification( 0..65535 ); // 16-bit integer + type enumerated MessageKind {e_Question, e_Answer}; + type charstring Question; + type charstring Answer; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tulip b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tulip new file mode 100644 index 0000000..8c18ccf --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/tulip @@ -0,0 +1,13 @@ +@module ref + +ref value = Ref (spawn [ ! => loop value ]) + +loop value = receive [ + .set new-value => loop new-value + p, id, .get => { send p (id, value); loop value } +] + +@object Ref pid [ + set val = .set val > send pid + get! = .get > send-wait pid +] diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/turtle b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/turtle new file mode 100644 index 0000000..8c86d0c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/turtle @@ -0,0 +1,26 @@ +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> +@prefix dcat: <http://www.w3.org/ns/dcat#> . +@prefix dcterms: <http://purl.org/dc/terms/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@base <http://base.of.relative.iris> . + +PREFIX test: <http://example.org> +PrEfIx insensitive: <http://insensitive.example.org> + +GRAPH <https://trig.testing.graph> { + <https://example.org/resource/dataset> a dcat:Dataset ; + +#-----Mandatory-----# + + dcterms:title 'Test title'@cs, "Test title"@en ; + dcterms:description """Multiline + string"""@cs, '''Another + multiline string '''@en ; + +#-----Recommended-----# + dcat:contactPoint [ a foaf:Person ] ; + test:list ( <http://ex.org> 1 1.1 +1 -1 1.2E+4 "Test" "\"Quote\"" ) ; + test:datatype "2016-07-20"^^xsd:date ; + test:text """next multiline"""; + . +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/twig b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/twig new file mode 100644 index 0000000..2e5e577 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/twig @@ -0,0 +1,9 @@ +{% include 'header.html' %} + +{% for user in users %} + * {{ user.name }} +{% else %} + No users have been found. +{% endfor %} + +{% include 'footer.html' %} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/typescript b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/typescript new file mode 100644 index 0000000..134a70e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/typescript @@ -0,0 +1 @@ +$(document).ready(function() { alert('ready!'); }); diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vala b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vala new file mode 100644 index 0000000..2989be0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vala @@ -0,0 +1,8 @@ +class Demo.HelloWorld : GLib.Object +{ + public static int main (String[] args) + { + stdout.printf("Hello World\n"); + return 0; + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vb new file mode 100644 index 0000000..f7e323d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vb @@ -0,0 +1,4 @@ +Private Sub Form_Load() + ' Execute a simple message box that says "Hello, World!" + MsgBox "Hello, World!" +End Sub diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vcl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vcl new file mode 100644 index 0000000..75c8eea --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vcl @@ -0,0 +1,12 @@ +vcl 4.0; + +backend server1 { + .host = "server1.example.com"; + .probe = { + .url = "/"; + .timeout = 1s; + .interval = 5s; + .window = 5; + .threshold = 3; + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/velocity b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/velocity new file mode 100644 index 0000000..845776b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/velocity @@ -0,0 +1,9 @@ +#* + There is multi-line comment. + see this text because the Velocity Templating Engine will ignore it. +*# +<h3>List</h3> +## This is a single line comment. +#if( $allProducts ) +<p>not found.</p> +#end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/verilog b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/verilog new file mode 100644 index 0000000..7f752c6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/verilog @@ -0,0 +1,27 @@ +/** + * Verilog Lexer + */ +module Foo( + input logic Clk_CI, + input logic Rst_RBI, + input logic A, + input logic B, + output logic C +); + logic C_DN, C_DP; + + assign C = C_DP; + + always_comb begin : proc_next_state + C_DN = A + B; + end + + // Clocked process + always_ff @(posedge Clk_CI, negedge Rst_RBI) begin + if(~Rst_RBI) begin + C_DP <= 1'b0; + end else begin + C_DP <= C_DN; + end + end +endmodule diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vhdl b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vhdl new file mode 100644 index 0000000..9355b50 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vhdl @@ -0,0 +1,23 @@ +entity toggle_demo is
+ port (
+ clk_in : in std_logic; -- System Clock
+ data_q : out std_logic -- Toggling Port
+ );
+end entity toggle_demo;
+
+architecture RTL of toggle_demo is
+ signal data : std_logic := '0';
+begin
+
+ data_q <= data;
+
+ data_proc : process (clk_in)
+ begin
+
+ if (rising_edge(clk_in)) then
+ data <= not data;
+ end if;
+
+ end process;
+
+end architecture RTL;
diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/viml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/viml new file mode 100644 index 0000000..93a364b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/viml @@ -0,0 +1,14 @@ +function! s:Make(dir, make, format, name) abort + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd' + let cwd = getcwd() + let [mp, efm, cc] = [&l:mp, &l:efm, get(b:, 'current_compiler', '')] + try + execute cd fnameescape(dir) + let [&l:mp, &l:efm, b:current_compiler] = [a:make, a:format, a:compiler] + execute (exists(':Make') == 2 ? 'Make' : 'make') + finally + let [&l:mp, &l:efm, b:current_compiler] = [mp, efm, cc] + if empty(cc) | unlet! b:current_compiler | endif + execute cd fnameescape(cwd) + endtry +endfunction diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vue b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vue new file mode 100644 index 0000000..8b54b28 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/vue @@ -0,0 +1,11 @@ +<template> + <div id="app"> + {{ message }} + </div> +</template> + +<script lang=coffee> + app = new Vue + el: '#app' + data: { message: 'Hello Vue!' } +</script> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/wollok b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/wollok new file mode 100644 index 0000000..ae467f4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/wollok @@ -0,0 +1,11 @@ +object pepita { + var energy = 100 + + method energy() = energy + + method fly(kilometers) { + energy -= kilometers + 10 + } + + method sayHi() = "Coo!" +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xml new file mode 100644 index 0000000..149844b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:template match="/"></xsl:template> diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xojo b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xojo new file mode 100644 index 0000000..698a921 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xojo @@ -0,0 +1,14 @@ +Dim f As FolderItem +f = GetOpenFolderItem(FileTypes1.jpeg) // defined in the File Type Set editor +rem - we should check for nil! +If not f.Exists Then + Beep 'Just for fun + MsgBox("The file " + f.NativePath + "doesn't ""exist.""") +Else // document exists + ImageWell1.image=Picture.Open(f) +End If +if f isa folderitem then + msgbox(f.name) +end if +Exception err As NilObjectException + MsgBox("Invalid pathname!") diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xpath b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xpath new file mode 100644 index 0000000..ddc4b6a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xpath @@ -0,0 +1,2 @@ +(: Authors named Bob Joe who didn't graduate from Harvard :) +//author[first-name = "Joe" and last-name = "Bob"][degree/@from != "Harvard"] diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xquery b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xquery new file mode 100644 index 0000000..4f7b325 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/xquery @@ -0,0 +1,22 @@ +declare namespace html = "http://www.w3.org/1999/xhtml"; + +declare function local:test-function($catalog as document-node()) { + <html> + <head> + <title>XQuery example for the Rouge highlighter</title> + <link href="style.css"/> + </head> + <body> + <h1>List</h1> + <ul> + {for $product in $catalog/items/product[@sell-by > current-date()] return + <li> + <ul> + <li>{data($product/name)}</li> + <li>{$product/price * (1 + $product/tax)}$</li> + </ul> + </li>} + </ul> + </body> + </html> +}; diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/yaml b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/yaml new file mode 100644 index 0000000..2f622de --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/yaml @@ -0,0 +1,4 @@ +--- +one: Mark McGwire +two: Sammy Sosa +three: Ken Griffey diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/yang b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/yang new file mode 100644 index 0000000..c68ff7b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/yang @@ -0,0 +1,17 @@ +module petstore { + namespace "http://autlan.dt/gribok/yang/example"; + prefix ex; + + revision 2020-04-01 { + description "Example yang"; + } + + container pets { + list dogs { + key name; + leaf name { + type string; + } + } + } +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/zig b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/zig new file mode 100644 index 0000000..8374aa4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/zig @@ -0,0 +1,6 @@ +const std = @import("std"); +const warn = std.debug.warn; + +fn add_floats(x: f16, y: f16) f16 { + return x + y; +} diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatter.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatter.rb new file mode 100644 index 0000000..a953812 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatter.rb @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + # A Formatter takes a token stream and formats it for human viewing. + class Formatter + # @private + REGISTRY = {} + + # Specify or get the unique tag for this formatter. This is used + # for specifying a formatter in `rougify`. + def self.tag(tag=nil) + return @tag unless tag + REGISTRY[tag] = self + + @tag = tag + end + + # Find a formatter class given a unique tag. + def self.find(tag) + REGISTRY[tag] + end + + def self.with_escape + Thread.current[:'rouge/with-escape'] = true + yield + ensure + Thread.current[:'rouge/with-escape'] = false + end + + def self.escape_enabled? + !!(((defined? @escape_enabled) && @escape_enabled) || Thread.current[:'rouge/with-escape']) + end + + def self.enable_escape! + @escape_enabled = true + end + + def self.disable_escape! + @escape_enabled = false + Thread.current[:'rouge/with-escape'] = false + end + + # Format a token stream. Delegates to {#format}. + def self.format(tokens, *args, **kwargs, &b) + new(*args, **kwargs).format(tokens, &b) + end + + def initialize(opts={}) + # pass + end + + def escape?(tok) + tok == Token::Tokens::Escape + end + + def filter_escapes(tokens) + tokens.each do |t, v| + if t == Token::Tokens::Escape + yield Token::Tokens::Error, v + else + yield t, v + end + end + end + + # Format a token stream. + def format(tokens, &b) + tokens = enum_for(:filter_escapes, tokens) unless Formatter.escape_enabled? + + return stream(tokens, &b) if block_given? + + out = String.new('') + stream(tokens) { |piece| out << piece } + + out + end + + # @deprecated Use {#format} instead. + def render(tokens) + warn 'Formatter#render is deprecated, use #format instead.' + format(tokens) + end + + # @abstract + # yield strings that, when concatenated, form the formatted output + def stream(tokens, &b) + raise 'abstract' + end + + protected + def token_lines(tokens, &b) + return enum_for(:token_lines, tokens) unless block_given? + + out = [] + tokens.each do |tok, val| + val.scan %r/\n|[^\n]+/ do |s| + if s == "\n" + yield out + out = [] + else + out << [tok, s] + end + end + end + + # for inputs not ending in a newline + yield out if out.any? + end + + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html.rb new file mode 100644 index 0000000..643fd19 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html.rb @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Formatters + # Transforms a token stream into HTML output. + class HTML < Formatter + TABLE_FOR_ESCAPE_HTML = { + '&' => '&', + '<' => '<', + '>' => '>', + }.freeze + + ESCAPE_REGEX = /[&<>]/.freeze + + tag 'html' + + # @yield the html output. + def stream(tokens, &b) + tokens.each { |tok, val| yield span(tok, val) } + end + + def span(tok, val) + return val if escape?(tok) + + safe_span(tok, escape_special_html_chars(val)) + end + + def safe_span(tok, safe_val) + if tok == Token::Tokens::Text + safe_val + else + shortname = tok.shortname or raise "unknown token: #{tok.inspect} for #{safe_val.inspect}" + + "<span class=\"#{shortname}\">#{safe_val}</span>" + end + end + + private + + # A performance-oriented helper method to escape `&`, `<` and `>` for the rendered + # HTML from this formatter. + # + # `String#gsub` will always return a new string instance irrespective of whether + # a substitution occurs. This method however invokes `String#gsub` only if + # a substitution is imminent. + # + # Returns either the given `value` argument string as is or a new string with the + # special characters replaced with their escaped counterparts. + def escape_special_html_chars(value) + return value unless value =~ ESCAPE_REGEX + + value.gsub(ESCAPE_REGEX, TABLE_FOR_ESCAPE_HTML) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_inline.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_inline.rb new file mode 100644 index 0000000..13f6e95 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_inline.rb @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Formatters + class HTMLInline < HTML + tag 'html_inline' + + def initialize(theme) + if theme.is_a?(Class) && theme < Rouge::Theme + @theme = theme.new + elsif theme.is_a?(Rouge::Theme) + @theme = theme + elsif theme.is_a?(String) + @theme = Rouge::Theme.find(theme).new + else + raise ArgumentError, "invalid theme: #{theme.inspect}" + end + end + + def safe_span(tok, safe_val) + return safe_val if tok == Token::Tokens::Text + + rules = @theme.style_for(tok).rendered_rules + + "<span style=\"#{rules.to_a.join(';')}\">#{safe_val}</span>" + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_legacy.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_legacy.rb new file mode 100644 index 0000000..8327564 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_legacy.rb @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# stdlib +require 'cgi' + +module Rouge + module Formatters + # Transforms a token stream into HTML output. + class HTMLLegacy < Formatter + tag 'html_legacy' + + # @option opts [String] :css_class ('highlight') + # @option opts [true/false] :line_numbers (false) + # @option opts [Rouge::CSSTheme] :inline_theme (nil) + # @option opts [true/false] :wrap (true) + # + # Initialize with options. + # + # If `:inline_theme` is given, then instead of rendering the + # tokens as <span> tags with CSS classes, the styles according to + # the given theme will be inlined in "style" attributes. This is + # useful for formats in which stylesheets are not available. + # + # Content will be wrapped in a tag (`div` if tableized, `pre` if + # not) with the given `:css_class` unless `:wrap` is set to `false`. + def initialize(opts={}) + @formatter = opts[:inline_theme] ? HTMLInline.new(opts[:inline_theme]) + : HTML.new + + + @formatter = HTMLTable.new(@formatter, opts) if opts[:line_numbers] + + if opts.fetch(:wrap, true) + @formatter = HTMLPygments.new(@formatter, opts.fetch(:css_class, 'codehilite')) + end + end + + # @yield the html output. + def stream(tokens, &b) + @formatter.stream(tokens, &b) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_line_highlighter.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_line_highlighter.rb new file mode 100644 index 0000000..2fffec0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_line_highlighter.rb @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Formatters + class HTMLLineHighlighter < Formatter + tag 'html_line_highlighter' + + def initialize(delegate, opts = {}) + @delegate = delegate + @highlight_line_class = opts.fetch(:highlight_line_class, 'hll') + @highlight_lines = opts[:highlight_lines] || [] + end + + def stream(tokens) + token_lines(tokens).with_index(1) do |line_tokens, lineno| + line = %(#{@delegate.format(line_tokens)}\n) + line = %(<span class="#{@highlight_line_class}">#{line}</span>) if @highlight_lines.include? lineno + yield line + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_line_table.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_line_table.rb new file mode 100644 index 0000000..bb21584 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_line_table.rb @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Formatters + class HTMLLineTable < Formatter + tag 'html_line_table' + + # @param [Rouge::Formatters::Formatter] formatter An instance of a + # `Rouge::Formatters::HTML` or `Rouge::Formatters::HTMLInline` + # @param [Hash] opts options for HTMLLineTable instance. + # @option opts [Integer] :start_line line number to start from. Defaults to `1`. + # @option opts [String] :table_class Class name for the table. + # Defaults to `"rouge-line-table"`. + # @option opts [String] :line_id a `sprintf` template for generating an `id` + # attribute for each table row corresponding to current line number. + # Defaults to `"line-%i"`. + # @option opts [String] :line_class Class name for each table row. + # Defaults to `"lineno"`. + # @option opts [String] :gutter_class Class name for rendered line-number cell. + # Defaults to `"rouge-gutter"`. + # @option opts [String] :code_class Class name for rendered code cell. + # Defaults to `"rouge-code"`. + def initialize(formatter, opts={}) + @formatter = formatter + @start_line = opts.fetch :start_line, 1 + @table_class = opts.fetch :table_class, 'rouge-line-table' + @gutter_class = opts.fetch :gutter_class, 'rouge-gutter' + @code_class = opts.fetch :code_class, 'rouge-code' + @line_class = opts.fetch :line_class, 'lineno' + @line_id = opts.fetch :line_id, 'line-%i' + end + + def stream(tokens, &b) + buffer = [%(<table class="#@table_class"><tbody>)] + token_lines(tokens).with_index(@start_line) do |line_tokens, lineno| + buffer << %(<tr id="#{sprintf @line_id, lineno}" class="#@line_class">) + buffer << %(<td class="#@gutter_class gl" ) + buffer << %(style="-moz-user-select: none;-ms-user-select: none;) + buffer << %(-webkit-user-select: none;user-select: none;">) + buffer << %(<pre>#{lineno}</pre></td>) + buffer << %(<td class="#@code_class"><pre>) + @formatter.stream(line_tokens) { |formatted| buffer << formatted } + buffer << "\n</pre></td></tr>" + end + buffer << %(</tbody></table>) + yield buffer.join + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_linewise.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_linewise.rb new file mode 100644 index 0000000..dc58d91 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_linewise.rb @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Formatters + class HTMLLinewise < Formatter + def initialize(formatter, opts={}) + @formatter = formatter + @tag_name = opts.fetch(:tag_name, 'div') + @class_format = opts.fetch(:class, 'line-%i') + end + + def stream(tokens, &b) + token_lines(tokens).with_index(1) do |line_tokens, lineno| + yield %(<#{@tag_name} class="#{sprintf @class_format, lineno}">) + @formatter.stream(line_tokens) {|formatted| yield formatted } + yield %(\n</#{@tag_name}>) + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_pygments.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_pygments.rb new file mode 100644 index 0000000..8ed8f54 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_pygments.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Rouge + module Formatters + class HTMLPygments < Formatter + def initialize(inner, css_class='codehilite') + @inner = inner + @css_class = css_class + end + + def stream(tokens, &b) + yield %(<div class="highlight"><pre class="#{@css_class}"><code>) + @inner.stream(tokens, &b) + yield "</code></pre></div>" + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_table.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_table.rb new file mode 100644 index 0000000..fa9a181 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/html_table.rb @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Formatters + class HTMLTable < Formatter + tag 'html_table' + + def initialize(inner, opts={}) + @inner = inner + @start_line = opts.fetch(:start_line, 1) + @line_format = opts.fetch(:line_format, '%i') + @table_class = opts.fetch(:table_class, 'rouge-table') + @gutter_class = opts.fetch(:gutter_class, 'rouge-gutter') + @code_class = opts.fetch(:code_class, 'rouge-code') + end + + def style(scope) + yield %(#{scope} .rouge-table { border-spacing: 0 }) + yield %(#{scope} .rouge-gutter { text-align: right }) + end + + def stream(tokens, &b) + last_val = nil + num_lines = tokens.reduce(0) {|count, (_, val)| count + (last_val = val).count(?\n) } + formatted = @inner.format(tokens) + unless last_val && last_val.end_with?(?\n) + num_lines += 1 + formatted << ?\n + end + + # generate a string of newline-separated line numbers for the gutter> + formatted_line_numbers = (@start_line..(@start_line + num_lines - 1)).map do |i| + sprintf(@line_format, i) + end.join(?\n) << ?\n + + buffer = [%(<table class="#@table_class"><tbody><tr>)] + # the "gl" class applies the style for Generic.Lineno + buffer << %(<td class="#@gutter_class gl">) + buffer << %(<pre class="lineno">#{formatted_line_numbers}</pre>) + buffer << '</td>' + buffer << %(<td class="#@code_class"><pre>) + buffer << formatted + buffer << '</pre></td>' + buffer << '</tr></tbody></table>' + + yield buffer.join + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/null.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/null.rb new file mode 100644 index 0000000..078c461 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/null.rb @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Formatters + # A formatter which renders nothing. + class Null < Formatter + tag 'null' + + def initialize(*) + end + + def stream(tokens, &b) + tokens.each do |tok, val| + yield "#{tok.qualname} #{val.inspect}\n" + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/terminal256.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/terminal256.rb new file mode 100644 index 0000000..140d53c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/terminal256.rb @@ -0,0 +1,198 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Formatters + # A formatter for 256-color terminals + class Terminal256 < Formatter + tag 'terminal256' + + # @private + attr_reader :theme + + # @param [Hash,Rouge::Theme] theme + # the theme to render with. + def initialize(theme = Themes::ThankfulEyes.new) + if theme.is_a?(Rouge::Theme) + @theme = theme + elsif theme.is_a?(Hash) + @theme = theme[:theme] || Themes::ThankfulEyes.new + else + raise ArgumentError, "invalid theme: #{theme.inspect}" + end + end + + def stream(tokens, &b) + tokens.each do |tok, val| + escape_sequence(tok).stream_value(val, &b) + end + end + + class EscapeSequence + attr_reader :style + def initialize(style) + @style = style + end + + def self.xterm_colors + @xterm_colors ||= [].tap do |out| + # colors 0..15: 16 basic colors + out << [0x00, 0x00, 0x00] # 0 + out << [0xcd, 0x00, 0x00] # 1 + out << [0x00, 0xcd, 0x00] # 2 + out << [0xcd, 0xcd, 0x00] # 3 + out << [0x00, 0x00, 0xee] # 4 + out << [0xcd, 0x00, 0xcd] # 5 + out << [0x00, 0xcd, 0xcd] # 6 + out << [0xe5, 0xe5, 0xe5] # 7 + out << [0x7f, 0x7f, 0x7f] # 8 + out << [0xff, 0x00, 0x00] # 9 + out << [0x00, 0xff, 0x00] # 10 + out << [0xff, 0xff, 0x00] # 11 + out << [0x5c, 0x5c, 0xff] # 12 + out << [0xff, 0x00, 0xff] # 13 + out << [0x00, 0xff, 0xff] # 14 + out << [0xff, 0xff, 0xff] # 15 + + # colors 16..232: the 6x6x6 color cube + valuerange = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff] + + 217.times do |i| + r = valuerange[(i / 36) % 6] + g = valuerange[(i / 6) % 6] + b = valuerange[i % 6] + out << [r, g, b] + end + + # colors 233..253: grayscale + 1.upto 22 do |i| + v = 8 + i * 10 + out << [v, v, v] + end + end + end + + def fg + return @fg if instance_variable_defined? :@fg + @fg = style.fg && self.class.color_index(style.fg) + end + + def bg + return @bg if instance_variable_defined? :@bg + @bg = style.bg && self.class.color_index(style.bg) + end + + + def stream_value(val, &b) + yield style_string + yield val.gsub("\e", "\\e") + .gsub("\n", "#{reset_string}\n#{style_string}") + yield reset_string + end + + def style_string + @style_string ||= begin + attrs = [] + + attrs << ['38', '5', fg.to_s] if fg + attrs << ['48', '5', bg.to_s] if bg + attrs << '01' if style[:bold] + attrs << '04' if style[:italic] # underline, but hey, whatevs + escape(attrs) + end + end + + def reset_string + @reset_string ||= begin + attrs = [] + attrs << '39' if fg # fg reset + attrs << '49' if bg # bg reset + attrs << '00' if style[:bold] || style[:italic] + + escape(attrs) + end + end + + private + def escape(attrs) + return '' if attrs.empty? + "\e[#{attrs.join(';')}m" + end + + def self.color_index(color) + @color_index_cache ||= {} + @color_index_cache[color] ||= closest_color(*get_rgb(color)) + end + + def self.get_rgb(color) + color = $1 if color =~ /#([0-9a-f]+)/i + hexes = case color.size + when 3 + color.chars.map { |c| "#{c}#{c}" } + when 6 + color.scan(/../) + else + raise "invalid color: #{color}" + end + + hexes.map { |h| h.to_i(16) } + end + + # max distance between two colors, #000000 to #ffffff + MAX_DISTANCE = 257 * 257 * 3 + + def self.closest_color(r, g, b) + @@colors_cache ||= {} + key = (r << 16) + (g << 8) + b + @@colors_cache.fetch(key) do + distance = MAX_DISTANCE + + match = 0 + + xterm_colors.each_with_index do |(cr, cg, cb), i| + d = (r - cr)**2 + (g - cg)**2 + (b - cb)**2 + next if d >= distance + + match = i + distance = d + end + + match + end + end + end + + class Unescape < EscapeSequence + def initialize(*) end + def style_string(*) '' end + def reset_string(*) '' end + def stream_value(val) yield val end + end + + # private + def escape_sequence(token) + return Unescape.new if escape?(token) + @escape_sequences ||= {} + @escape_sequences[token.qualname] ||= + make_escape_sequence(get_style(token)) + end + + def make_escape_sequence(style) + EscapeSequence.new(style) + end + + def get_style(token) + return text_style if token.ancestors.include? Token::Tokens::Text + + theme.get_own_style(token) || text_style + end + + def text_style + style = theme.get_style(Token['Text']) + # don't highlight text backgrounds + style.delete :bg + style + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/terminal_truecolor.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/terminal_truecolor.rb new file mode 100644 index 0000000..07feab0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/terminal_truecolor.rb @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true +module Rouge + module Formatters + class TerminalTruecolor < Terminal256 + tag 'terminal_truecolor' + + class TruecolorEscapeSequence < Terminal256::EscapeSequence + def style_string + @style_string ||= begin + out = String.new('') + out << escape(['48', '2', *get_rgb(style.bg)]) if style.bg + out << escape(['38', '2', *get_rgb(style.fg)]) if style.fg + out << escape(['1']) if style[:bold] || style[:italic] + out + end + end + + def get_rgb(color) + color = $1 if color =~ /#(\h+)/ + + case color.size + when 3 then color.chars.map { |c| c.to_i(16) * 2 } + when 6 then color.scan(/../).map { |cc| cc.to_i(16) } + else + raise "invalid color: #{color.inspect}" + end + end + end + + # @override + def make_escape_sequence(style) + TruecolorEscapeSequence.new(style) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/tex.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/tex.rb new file mode 100644 index 0000000..e42c2bc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/formatters/tex.rb @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Formatters + class Tex < Formatter + tag 'tex' + + # A map of TeX escape characters. + # Newlines are handled specially by using #token_lines + # spaces are preserved as long as they aren't at the beginning + # of a line. see #tag_first for our initial-space strategy + ESCAPE = { + '&' => '\&', + '%' => '\%', + '$' => '\$', + '#' => '\#', + '_' => '\_', + '{' => '\{', + '}' => '\}', + '~' => '{\textasciitilde}', + '^' => '{\textasciicircum}', + '|' => '{\textbar}', + '\\' => '{\textbackslash}', + '`' => '{\textasciigrave}', + "'" => "'{}", + '"' => '"{}', + "\t" => '{\tab}', + } + + ESCAPE_REGEX = /[#{ESCAPE.keys.map(&Regexp.method(:escape)).join}]/om + + def initialize(opts={}) + @prefix = opts.fetch(:prefix) { 'RG' } + end + + def escape_tex(str) + str.gsub(ESCAPE_REGEX, ESCAPE) + end + + def stream(tokens, &b) + # surround the output with \begin{RG*}...\end{RG*} + yield "\\begin{#{@prefix}*}%\n" + + # we strip the newline off the last line to avoid + # an extra line being rendered. we do this by yielding + # the \newline tag *before* every line group except + # the first. + first = true + + token_lines tokens do |line| + if first + first = false + else + yield "\\newline%\n" + end + + render_line(line, &b) + end + + yield "%\n\\end{#{@prefix}*}%\n" + end + + def render_line(line, &b) + line.each do |(tok, val)| + hphantom_tag(tok, val, &b) + end + end + + # Special handling for leading spaces, since they may be gobbled + # by a previous command. We replace all initial spaces with + # \hphantom{xxxx}, which renders an empty space equal to the size + # of the x's. + def hphantom_tag(tok, val) + leading = nil + val.sub!(/^[ ]+/) { leading = $&.size; '' } + yield "\\hphantom{#{'x' * leading}}" if leading + yield tag(tok, val) unless val.empty? + end + + def tag(tok, val) + if escape?(tok) + val + elsif tok == Token::Tokens::Text + escape_tex(val) + else + "\\#@prefix{#{tok.shortname}}{#{escape_tex(val)}}" + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guesser.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guesser.rb new file mode 100644 index 0000000..7cfc3e6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guesser.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +module Rouge + class Guesser + class Ambiguous < StandardError + attr_reader :alternatives + def initialize(alternatives); @alternatives = alternatives; end + + def message + "Ambiguous guess: can't decide between #{alternatives.map(&:tag).inspect}" + end + end + + def self.guess(guessers, lexers) + original_size = lexers.size + + guessers.each do |g| + new_lexers = case g + when Guesser then g.filter(lexers) + when proc { |x| x.respond_to? :call } then g.call(lexers) + else raise "bad guesser: #{g}" + end + + lexers = new_lexers && new_lexers.any? ? new_lexers : lexers + end + + # if we haven't filtered the input at *all*, + # then we have no idea what language it is, + # so we bail and return []. + lexers.size < original_size ? lexers : [] + end + + def collect_best(lexers, opts={}, &scorer) + best = [] + best_score = opts[:threshold] + + lexers.each do |lexer| + score = scorer.call(lexer) + + next if score.nil? + + if best_score.nil? || score > best_score + best_score = score + best = [lexer] + elsif score == best_score + best << lexer + end + end + + best + end + + def filter(lexers) + raise 'abstract' + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/disambiguation.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/disambiguation.rb new file mode 100644 index 0000000..6f2cfd5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/disambiguation.rb @@ -0,0 +1,162 @@ +# frozen_string_literal: true + +module Rouge + module Guessers + class Disambiguation < Guesser + include Util + include Lexers + + def initialize(filename, source) + @filename = File.basename(filename) + @source = source + end + + def filter(lexers) + return lexers if lexers.size == 1 + return lexers if lexers.size == Lexer.all.size + + @analyzer = TextAnalyzer.new(get_source(@source)) + + self.class.disambiguators.each do |disambiguator| + next unless disambiguator.match?(@filename) + + filtered = disambiguator.decide!(self) + return filtered if filtered + end + + return lexers + end + + def contains?(text) + return @analyzer.include?(text) + end + + def matches?(re) + return !!(@analyzer =~ re) + end + + @disambiguators = [] + def self.disambiguate(*patterns, &decider) + @disambiguators << Disambiguator.new(patterns, &decider) + end + + def self.disambiguators + @disambiguators + end + + class Disambiguator + include Util + + def initialize(patterns, &decider) + @patterns = patterns + @decider = decider + end + + def decide!(guesser) + out = guesser.instance_eval(&@decider) + case out + when Array then out + when nil then nil + else [out] + end + end + + def match?(filename) + @patterns.any? { |p| test_glob(p, filename) } + end + end + + disambiguate '*.cfg' do + next CiscoIos if matches?(/\A\s*(version|banner|interface)\b/) + + INI + end + + disambiguate '*.pl' do + next Perl if contains?('my $') + next Prolog if contains?(':-') + next Prolog if matches?(/\A\w+(\(\w+\,\s*\w+\))*\./) + end + + disambiguate '*.h' do + next ObjectiveC if matches?(/@(end|implementation|protocol|property)\b/) + next ObjectiveC if contains?('@"') + next Cpp if matches?(/^\s*(?:catch|class|constexpr|namespace|private| + protected|public|template|throw|try|using)\b/x) + + C + end + + disambiguate '*.m' do + next ObjectiveC if matches?(/@(end|implementation|protocol|property)\b/) + next ObjectiveC if contains?('@"') + + next Mathematica if contains?('(*') + next Mathematica if contains?(':=') + + next Mason if matches?(/<%(def|method|text|doc|args|flags|attr|init|once|shared|perl|cleanup|filter)([^>]*)(>)/) + + next Matlab if matches?(/^\s*?%/) + + next Mason if matches? %r!(</?%|<&)! + end + + disambiguate '*.php' do + # PHP always takes precedence over Hack + PHP + end + + disambiguate '*.hh' do + next Cpp if matches?(/^\s*#include/) + next Hack if matches?(/^<\?hh/) + next Hack if matches?(/(\(|, ?)\$\$/) + + Cpp + end + + disambiguate '*.plist' do + next XML if matches?(/\A<\?xml\b/) + + Plist + end + + disambiguate '*.sc' do + next Python if matches?(/^#/) + next SuperCollider if matches?(/(?:^~|;$)/) + + next Python + end + + disambiguate 'Messages' do + next MsgTrans if matches?(/^[^\s:]+:[^\s:]+/) + + next PlainText + end + + disambiguate '*.cls' do + next TeX if matches?(/\A\s*(?:\\|%)/) + next OpenEdge if matches?(/(no\-undo|BLOCK\-LEVEL|ROUTINE\-LEVEL|&ANALYZE\-SUSPEND)/i) + next Apex + end + + disambiguate '*.pp' do + next Puppet if matches?(/(::)?([a-z]\w*::)/) + next Pascal if matches?(/^(function|begin|var)\b/) + next Pascal if matches?(/\b(end(;|\.))/) + + Puppet + end + + disambiguate '*.p' do + next Prolog if contains?(':-') + next Prolog if matches?(/\A\w+(\(\w+\,\s*\w+\))*\./) + next OpenEdge + end + + disambiguate '*.st' do + next IecST if matches?(/^\s*END_/i) + next Smalltalk + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/filename.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/filename.rb new file mode 100644 index 0000000..2f01b4c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/filename.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module Rouge + module Guessers + class Filename < Guesser + attr_reader :fname + def initialize(filename) + @filename = filename + end + + # returns a list of lexers that match the given filename with + # equal specificity (i.e. number of wildcards in the pattern). + # This helps disambiguate between, e.g. the Nginx lexer, which + # matches `nginx.conf`, and the Conf lexer, which matches `*.conf`. + # In this case, nginx will win because the pattern has no wildcards, + # while `*.conf` has one. + def filter(lexers) + mapping = {} + lexers.each do |lexer| + mapping[lexer.name] = lexer.filenames || [] + end + + GlobMapping.new(mapping, @filename).filter(lexers) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/glob_mapping.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/glob_mapping.rb new file mode 100644 index 0000000..615ac2b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/glob_mapping.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +module Rouge + module Guessers + # This class allows for custom behavior + # with glob -> lexer name mappings + class GlobMapping < Guesser + include Util + + def self.by_pairs(mapping, filename) + glob_map = {} + mapping.each do |(glob, lexer_name)| + lexer = Lexer.find(lexer_name) + + # ignore unknown lexers + next unless lexer + + glob_map[lexer.name] ||= [] + glob_map[lexer.name] << glob + end + + new(glob_map, filename) + end + + attr_reader :glob_map, :filename + def initialize(glob_map, filename) + @glob_map = glob_map + @filename = filename + end + + def filter(lexers) + basename = File.basename(filename) + + collect_best(lexers) do |lexer| + (@glob_map[lexer.name] || []).map do |pattern| + if test_glob(pattern, basename) + # specificity is better the fewer wildcards there are + -pattern.scan(/[*?\[]/).size + end + end.compact.min + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/mimetype.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/mimetype.rb new file mode 100644 index 0000000..92a1d43 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/mimetype.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Rouge + module Guessers + class Mimetype < Guesser + attr_reader :mimetype + def initialize(mimetype) + @mimetype = mimetype + end + + def filter(lexers) + lexers.select { |lexer| lexer.mimetypes.include? @mimetype } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/modeline.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/modeline.rb new file mode 100644 index 0000000..9754798 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/modeline.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module Rouge + module Guessers + class Modeline < Guesser + include Util + + # [jneen] regexen stolen from linguist + EMACS_MODELINE = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i + + # First form vim modeline + # [text]{white}{vi:|vim:|ex:}[white]{options} + # ex: 'vim: syntax=ruby' + VIM_MODELINE_1 = /(?:vim|vi|ex):\s*(?:ft|filetype|syntax)=(\w+)\s?/i + + # Second form vim modeline (compatible with some versions of Vi) + # [text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text] + # ex: 'vim set syntax=ruby:' + VIM_MODELINE_2 = /(?:vim|vi|Vim|ex):\s*se(?:t)?.*\s(?:ft|filetype|syntax)=(\w+)\s?.*:/i + + MODELINES = [EMACS_MODELINE, VIM_MODELINE_1, VIM_MODELINE_2] + + def initialize(source, opts={}) + @source = source + @lines = opts[:lines] || 5 + end + + def filter(lexers) + # don't bother reading the stream if we've already decided + return lexers if lexers.size == 1 + + source_text = get_source(@source) + + lines = source_text.split(/\n/) + + search_space = (lines.first(@lines) + lines.last(@lines)).join("\n") + + matches = MODELINES.map { |re| re.match(search_space) }.compact + return lexers unless matches.any? + + match_set = Set.new(matches.map { |m| m[1] }) + lexers.select { |l| match_set.include?(l.tag) || l.aliases.any? { |a| match_set.include?(a) } } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/source.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/source.rb new file mode 100644 index 0000000..90a51cd --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/source.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Rouge + module Guessers + class Source < Guesser + include Util + + attr_reader :source + def initialize(source) + @source = source + end + + def filter(lexers) + # don't bother reading the input if + # we've already filtered to 1 + return lexers if lexers.size == 1 + + source_text = get_source(@source) + + Lexer.assert_utf8!(source_text) + + source_text = TextAnalyzer.new(source_text) + + collect_best(lexers) do |lexer| + next unless lexer.detectable? + lexer.detect?(source_text) ? 1 : nil + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/util.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/util.rb new file mode 100644 index 0000000..89c50be --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/guessers/util.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Rouge + module Guessers + module Util + module SourceNormalizer + UTF8_BOM = "\xEF\xBB\xBF" + UTF8_BOM_RE = /\A#{UTF8_BOM}/ + + # @param [String,nil] source + # @return [String,nil] + def self.normalize(source) + source.sub(UTF8_BOM_RE, '').gsub(/\r\n/, "\n") + end + end + + def test_glob(pattern, path) + File.fnmatch?(pattern, path, File::FNM_DOTMATCH | File::FNM_CASEFOLD) + end + + # @param [String,IO] source + # @return [String] + def get_source(source) + if source.respond_to?(:to_str) + SourceNormalizer.normalize(source.to_str) + elsif source.respond_to?(:read) + SourceNormalizer.normalize(source.read) + else + raise ArgumentError, "Invalid source: #{source.inspect}" + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexer.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexer.rb new file mode 100644 index 0000000..0e7f7b1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexer.rb @@ -0,0 +1,535 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# stdlib +require 'strscan' +require 'cgi' +require 'set' + +module Rouge + # @abstract + # A lexer transforms text into a stream of `[token, chunk]` pairs. + class Lexer + include Token::Tokens + + @option_docs = {} + + class << self + # Lexes `stream` with the given options. The lex is delegated to a + # new instance. + # + # @see #lex + def lex(stream, opts={}, &b) + new(opts).lex(stream, &b) + end + + # In case #continue_lex is called statically, we simply + # begin a new lex from the beginning, since there is no state. + # + # @see #continue_lex + def continue_lex(*a, &b) + lex(*a, &b) + end + + # Given a name in string, return the correct lexer class. + # @param [String] name + # @return [Class<Rouge::Lexer>,nil] + def find(name) + registry[name.to_s] + end + + # Same as ::find_fancy, except instead of returning an instantiated + # lexer, returns a pair of [lexer_class, options], so that you can + # modify or provide additional options to the lexer. + # + # Please note: the lexer class might be nil! + def lookup_fancy(str, code=nil, default_options={}) + if str && !str.include?('?') && str != 'guess' + lexer_class = find(str) + return [lexer_class, default_options] + end + + name, opts = str ? str.split('?', 2) : [nil, ''] + + # parse the options hash from a cgi-style string + opts = CGI.parse(opts || '').map do |k, vals| + val = case vals.size + when 0 then true + when 1 then vals[0] + else vals + end + + [ k.to_s, val ] + end + + opts = default_options.merge(Hash[opts]) + + lexer_class = case name + when 'guess', nil + self.guess(:source => code, :mimetype => opts['mimetype']) + when String + self.find(name) + end + + [lexer_class, opts] + end + + # Find a lexer, with fancy shiny features. + # + # * The string you pass can include CGI-style options + # + # Lexer.find_fancy('erb?parent=tex') + # + # * You can pass the special name 'guess' so we guess for you, + # and you can pass a second argument of the code to guess by + # + # Lexer.find_fancy('guess', "#!/bin/bash\necho Hello, world") + # + # If the code matches more than one lexer then Guesser::Ambiguous + # is raised. + # + # This is used in the Redcarpet plugin as well as Rouge's own + # markdown lexer for highlighting internal code blocks. + # + def find_fancy(str, code=nil, default_options={}) + lexer_class, opts = lookup_fancy(str, code, default_options) + + lexer_class && lexer_class.new(opts) + end + + # Specify or get this lexer's title. Meant to be human-readable. + def title(t=nil) + if t.nil? + t = tag.capitalize + end + @title ||= t + end + + # Specify or get this lexer's description. + def desc(arg=:absent) + if arg == :absent + @desc + else + @desc = arg + end + end + + def option_docs + @option_docs ||= InheritableHash.new(superclass.option_docs) + end + + def option(name, desc) + option_docs[name.to_s] = desc + end + + # Specify or get the path name containing a small demo for + # this lexer (can be overriden by {demo}). + def demo_file(arg=:absent) + return @demo_file = Pathname.new(arg) unless arg == :absent + + @demo_file = Pathname.new(File.join(__dir__, 'demos', tag)) + end + + # Specify or get a small demo string for this lexer + def demo(arg=:absent) + return @demo = arg unless arg == :absent + + @demo = File.read(demo_file, mode: 'rt:bom|utf-8') + end + + # @return a list of all lexers. + def all + @all ||= registry.values.uniq + end + + # Guess which lexer to use based on a hash of info. + # + # This accepts the same arguments as Lexer.guess, but will never throw + # an error. It will return a (possibly empty) list of potential lexers + # to use. + def guesses(info={}) + mimetype, filename, source = info.values_at(:mimetype, :filename, :source) + custom_globs = info[:custom_globs] + + guessers = (info[:guessers] || []).dup + + guessers << Guessers::Mimetype.new(mimetype) if mimetype + guessers << Guessers::GlobMapping.by_pairs(custom_globs, filename) if custom_globs && filename + guessers << Guessers::Filename.new(filename) if filename + guessers << Guessers::Modeline.new(source) if source + guessers << Guessers::Source.new(source) if source + guessers << Guessers::Disambiguation.new(filename, source) if source && filename + + Guesser.guess(guessers, Lexer.all) + end + + # Guess which lexer to use based on a hash of info. + # + # @option info :mimetype + # A mimetype to guess by + # @option info :filename + # A filename to guess by + # @option info :source + # The source itself, which, if guessing by mimetype or filename + # fails, will be searched for shebangs, <!DOCTYPE ...> tags, and + # other hints. + # @param [Proc] fallback called if multiple lexers are detected. + # If omitted, Guesser::Ambiguous is raised. + # + # @see Lexer.detect? + # @see Lexer.guesses + # @return [Class<Rouge::Lexer>] + def guess(info={}, &fallback) + lexers = guesses(info) + + return Lexers::PlainText if lexers.empty? + return lexers[0] if lexers.size == 1 + + if fallback + fallback.call(lexers) + else + raise Guesser::Ambiguous.new(lexers) + end + end + + def guess_by_mimetype(mt) + guess :mimetype => mt + end + + def guess_by_filename(fname) + guess :filename => fname + end + + def guess_by_source(source) + guess :source => source + end + + def enable_debug! + @debug_enabled = true + end + + def disable_debug! + remove_instance_variable :@debug_enabled if defined? @debug_enabled + end + + def debug_enabled? + (defined? @debug_enabled) ? true : false + end + + # Determine if a lexer has a method named +:detect?+ defined in its + # singleton class. + def detectable? + return @detectable if defined?(@detectable) + @detectable = singleton_methods(false).include?(:detect?) + end + + protected + # @private + def register(name, lexer) + # reset an existing list of lexers + @all = nil if defined?(@all) + registry[name.to_s] = lexer + end + + public + # Used to specify or get the canonical name of this lexer class. + # + # @example + # class MyLexer < Lexer + # tag 'foo' + # end + # + # MyLexer.tag # => 'foo' + # + # Lexer.find('foo') # => MyLexer + def tag(t=nil) + return @tag if t.nil? + + @tag = t.to_s + Lexer.register(@tag, self) + end + + # Used to specify alternate names this lexer class may be found by. + # + # @example + # class Erb < Lexer + # tag 'erb' + # aliases 'eruby', 'rhtml' + # end + # + # Lexer.find('eruby') # => Erb + def aliases(*args) + args.map!(&:to_s) + args.each { |arg| Lexer.register(arg, self) } + (@aliases ||= []).concat(args) + end + + # Specify a list of filename globs associated with this lexer. + # + # If a filename glob is associated with more than one lexer, this can + # cause a Guesser::Ambiguous error to be raised in various guessing + # methods. These errors can be avoided by disambiguation. Filename globs + # are disambiguated in one of two ways. Either the lexer will define a + # `self.detect?` method (intended for use with shebangs and doctypes) or a + # manual rule will be specified in Guessers::Disambiguation. + # + # @example + # class Ruby < Lexer + # filenames '*.rb', '*.ruby', 'Gemfile', 'Rakefile' + # end + def filenames(*fnames) + (@filenames ||= []).concat(fnames) + end + + # Specify a list of mimetypes associated with this lexer. + # + # @example + # class Html < Lexer + # mimetypes 'text/html', 'application/xhtml+xml' + # end + def mimetypes(*mts) + (@mimetypes ||= []).concat(mts) + end + + # @private + def assert_utf8!(str) + encoding = str.encoding + return if encoding == Encoding::US_ASCII || encoding == Encoding::UTF_8 || encoding == Encoding::BINARY + + raise EncodingError.new( + "Bad encoding: #{str.encoding.names.join(',')}. " + + "Please convert your string to UTF-8." + ) + end + + private + def registry + @registry ||= {} + end + end + + # -*- instance methods -*- # + + attr_reader :options + # Create a new lexer with the given options. Individual lexers may + # specify extra options. The only current globally accepted option + # is `:debug`. + # + # @option opts :debug + # Prints debug information to stdout. The particular info depends + # on the lexer in question. In regex lexers, this will log the + # state stack at the beginning of each step, along with each regex + # tried and each stream consumed. Try it, it's pretty useful. + def initialize(opts={}) + @options = {} + opts.each { |k, v| @options[k.to_s] = v } + + @debug = Lexer.debug_enabled? && bool_option('debug') + end + + # Returns a new lexer with the given options set. Useful for e.g. setting + # debug flags post hoc, or providing global overrides for certain options + def with(opts={}) + new_options = @options.dup + opts.each { |k, v| new_options[k.to_s] = v } + self.class.new(new_options) + end + + def as_bool(val) + case val + when nil, false, 0, '0', 'false', 'off' + false + when Array + val.empty? ? true : as_bool(val.last) + else + true + end + end + + def as_string(val) + return as_string(val.last) if val.is_a?(Array) + + val ? val.to_s : nil + end + + def as_list(val) + case val + when Array + val.flat_map { |v| as_list(v) } + when String + val.split(',') + else + [] + end + end + + def as_lexer(val) + return as_lexer(val.last) if val.is_a?(Array) + return val.new(@options) if val.is_a?(Class) && val < Lexer + + case val + when Lexer + val + when String + lexer_class = Lexer.find(val) + lexer_class && lexer_class.new(@options) + end + end + + def as_token(val) + return as_token(val.last) if val.is_a?(Array) + case val + when Token + val + else + Token[val] + end + end + + def bool_option(name, &default) + name_str = name.to_s + + if @options.key?(name_str) + as_bool(@options[name_str]) + else + default ? default.call : false + end + end + + def string_option(name, &default) + as_string(@options.delete(name.to_s, &default)) + end + + def lexer_option(name, &default) + as_lexer(@options.delete(name.to_s, &default)) + end + + def list_option(name, &default) + as_list(@options.delete(name.to_s, &default)) + end + + def token_option(name, &default) + as_token(@options.delete(name.to_s, &default)) + end + + def hash_option(name, defaults, &val_cast) + name = name.to_s + out = defaults.dup + + base = @options.delete(name.to_s) + base = {} unless base.is_a?(Hash) + base.each { |k, v| out[k.to_s] = val_cast ? val_cast.call(v) : v } + + @options.keys.each do |key| + next unless key =~ /(\w+)\[(\w+)\]/ and $1 == name + value = @options.delete(key) + + out[$2] = val_cast ? val_cast.call(value) : value + end + + out + end + + # @abstract + # + # Called after each lex is finished. The default implementation + # is a noop. + def reset! + end + + # Given a string, yield [token, chunk] pairs. If no block is given, + # an enumerator is returned. + # + # @option opts :continue + # Continue the lex from the previous state (i.e. don't call #reset!) + # + # @note The use of :continue => true has been deprecated. A warning is + # issued if run with `$VERBOSE` set to true. + # + # @note The use of arbitrary `opts` has never been supported, but we + # previously ignored them with no error. We now warn unconditionally. + def lex(string, opts=nil, &b) + if opts + if (opts.keys - [:continue]).size > 0 + # improper use of options hash + warn('Improper use of Lexer#lex - this method does not receive options.' + + ' This will become an error in a future version.') + end + + if opts[:continue] + warn '`lex :continue => true` is deprecated, please use #continue_lex instead' + return continue_lex(string, &b) + end + end + + return enum_for(:lex, string) unless block_given? + + Lexer.assert_utf8!(string) + reset! + + continue_lex(string, &b) + end + + # Continue the lex from the the current state without resetting + def continue_lex(string, &b) + return enum_for(:continue_lex, string, &b) unless block_given? + + # consolidate consecutive tokens of the same type + last_token = nil + last_val = nil + stream_tokens(string) do |tok, val| + next if val.empty? + + if tok == last_token + last_val << val + next + end + + b.call(last_token, last_val) if last_token + last_token = tok + last_val = val + end + + b.call(last_token, last_val) if last_token + end + + # delegated to {Lexer.tag} + def tag + self.class.tag + end + + # @abstract + # + # Yield `[token, chunk]` pairs, given a prepared input stream. This + # must be implemented. + # + # @param [StringScanner] stream + # the stream + def stream_tokens(stream, &b) + raise 'abstract' + end + + # @abstract + # + # Return true if there is an in-text indication (such as a shebang + # or DOCTYPE declaration) that this lexer should be used. + # + # @param [TextAnalyzer] text + # the text to be analyzed, with a couple of handy methods on it, + # like {TextAnalyzer#shebang?} and {TextAnalyzer#doctype?} + def self.detect?(text) + false + end + end + + module Lexers + BASE_DIR = "#{__dir__}/lexers".freeze + @_loaded_lexers = {} + + def self.load_lexer(relpath) + return if @_loaded_lexers.key?(relpath) + @_loaded_lexers[relpath] = true + Kernel::load File.join(BASE_DIR, relpath) + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/abap.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/abap.rb new file mode 100644 index 0000000..8be9e95 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/abap.rb @@ -0,0 +1,240 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# ABAP elements taken from http://help.sap.com/abapdocu_750/en/index.htm?file=abapdo.htm + +module Rouge + module Lexers + class ABAP < RegexLexer + title "ABAP" + desc "SAP - Advanced Business Application Programming" + tag 'abap' + filenames '*.abap' + mimetypes 'text/x-abap' + + def self.keywords + @keywords = Set.new %w( + *-INPUT ?TO ABAP-SOURCE ABBREVIATED ABS ABSTRACT ACCEPT ACCEPTING + ACCORDING ACCP ACTIVATION ACTUAL ADD ADD-CORRESPONDING ADJACENT + AFTER ALIAS ALIASES ALIGN ALL ALLOCATE ALPHA ANALYSIS ANALYZER AND + ANY APPEND APPENDAGE APPENDING APPLICATION ARCHIVE AREA ARITHMETIC + AS ASCENDING ASPECT ASSERT ASSIGN ASSIGNED ASSIGNING ASSOCIATION + ASYNCHRONOUS AT ATTRIBUTES AUTHORITY AUTHORITY-CHECK AVG BACK + BACKGROUND BACKUP BACKWARD BADI BASE BEFORE BEGIN BETWEEN BIG BINARY + BINTOHEX BIT BIT-AND BIT-NOT BIT-OR BIT-XOR BLACK BLANK BLANKS BLOB + BLOCK BLOCKS BLUE BOUND BOUNDARIES BOUNDS BOXED BREAK-POINT BT + BUFFER BY BYPASSING BYTE BYTE-CA BYTE-CN BYTE-CO BYTE-CS BYTE-NA + BYTE-NS BYTE-ORDER CA CALL CALLING CASE CAST CASTING CATCH CEIL + CENTER CENTERED CHAIN CHAIN-INPUT CHAIN-REQUEST CHANGE CHANGING + CHANNELS CHAR CHAR-TO-HEX CHARACTER CHECK CHECKBOX CIRCULAR CLASS + CLASS-CODING CLASS-DATA CLASS-EVENTS CLASS-METHODS CLASS-POOL + CLEANUP CLEAR CLIENT CLNT CLOB CLOCK CLOSE CN CO COALESCE CODE + CODING COLLECT COLOR COLUMN COLUMNS COL_BACKGROUND COL_GROUP + COL_HEADING COL_KEY COL_NEGATIVE COL_NORMAL COL_POSITIVE COL_TOTAL + COMMENT COMMENTS COMMIT COMMON COMMUNICATION COMPARING COMPONENT + COMPONENTS COMPRESSION COMPUTE CONCAT CONCATENATE CONCAT_WITH_SPACE + COND CONDENSE CONDITION CONNECT CONNECTION CONSTANTS CONTEXT + CONTEXTS CONTINUE CONTROL CONTROLS CONV CONVERSION CONVERT COPIES + COPY CORRESPONDING COUNT COUNTRY COVER CP CPI CREATE CREATING + CRITICAL CS CUKY CURR CURRENCY CURRENCY_CONVERSION CURRENT CURSOR + CURSOR-SELECTION CUSTOMER CUSTOMER-FUNCTION CX_DYNAMIC_CHECK + CX_NO_CHECK CX_ROOT CX_SQL_EXCEPTION CX_STATIC_CHECK DANGEROUS DATA + DATABASE DATAINFO DATASET DATE DATS DATS_ADD_DAYS DATS_ADD_MONTHS + DATS_DAYS_BETWEEN DATS_IS_VALID DAYLIGHT DD/MM/YY DD/MM/YYYY DDMMYY + DEALLOCATE DEC DECIMALS DECIMAL_SHIFT DECLARATIONS DEEP DEFAULT + DEFERRED DEFINE DEFINING DEFINITION DELETE DELETING DEMAND + DEPARTMENT DESCENDING DESCRIBE DESTINATION DETAIL DF16_DEC DF16_RAW + DF16_SCL DF34_DEC DF34_RAW DF34_SCL DIALOG DIRECTORY DISCONNECT + DISPLAY DISPLAY-MODE DISTANCE DISTINCT DIV DIVIDE + DIVIDE-CORRESPONDING DIVISION DO DUMMY DUPLICATE DUPLICATES DURATION + DURING DYNAMIC DYNPRO E EDIT EDITOR-CALL ELSE ELSEIF EMPTY ENABLED + ENABLING ENCODING END END-ENHANCEMENT-SECTION END-LINES + END-OF-DEFINITION END-OF-FILE END-OF-PAGE END-OF-SELECTION + END-TEST-INJECTION END-TEST-SEAM ENDAT ENDCASE ENDCATCH ENDCHAIN + ENDCLASS ENDDO ENDENHANCEMENT ENDEXEC ENDFORM ENDFUNCTION ENDIAN + ENDIF ENDING ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON + ENDPROVIDE ENDSELECT ENDTRY ENDWHILE ENDWITH ENGINEERING ENHANCEMENT + ENHANCEMENT-POINT ENHANCEMENT-SECTION ENHANCEMENTS ENTRIES ENTRY + ENVIRONMENT EQ EQUIV ERRORMESSAGE ERRORS ESCAPE ESCAPING EVENT + EVENTS EXACT EXCEPT EXCEPTION EXCEPTION-TABLE EXCEPTIONS EXCLUDE + EXCLUDING EXEC EXECUTE EXISTS EXIT EXIT-COMMAND EXPAND EXPANDING + EXPIRATION EXPLICIT EXPONENT EXPORT EXPORTING EXTEND EXTENDED + EXTENSION EXTRACT FAIL FETCH FIELD FIELD-GROUPS FIELD-SYMBOL + FIELD-SYMBOLS FIELDS FILE FILTER FILTER-TABLE FILTERS FINAL FIND + FIRST FIRST-LINE FIXED-POINT FKEQ FKGE FLOOR FLTP FLUSH FONT FOR + FORM FORMAT FORWARD FOUND FRAME FRAMES FREE FRIENDS FROM FUNCTION + FUNCTION-POOL FUNCTIONALITY FURTHER GAPS GE GENERATE GET + GET_PRINT_PARAMETERS GIVING GKEQ GKGE GLOBAL GRANT GREEN GROUP + GROUPS GT HANDLE HANDLER HARMLESS HASHED HAVING HDB HEAD-LINES + HEADER HEADERS HEADING HELP-ID HELP-REQUEST HEXTOBIN HIDE HIGH HINT + HOLD HOTSPOT I ICON ID IDENTIFICATION IDENTIFIER IDS IF + IF_ABAP_CLOSE_RESOURCE IF_ABAP_CODEPAGE IF_ABAP_DB_BLOB_HANDLE + IF_ABAP_DB_CLOB_HANDLE IF_ABAP_DB_LOB_HANDLE IF_ABAP_DB_READER + IF_ABAP_DB_WRITER IF_ABAP_READER IF_ABAP_WRITER IF_MESSAGE + IF_OS_CA_INSTANCE IF_OS_CA_PERSISTENCY IF_OS_FACTORY IF_OS_QUERY + IF_OS_QUERY_MANAGER IF_OS_QUERY_OPTIONS IF_OS_STATE + IF_OS_TRANSACTION IF_OS_TRANSACTION_MANAGER IF_SERIALIZABLE_OBJECT + IF_SHM_BUILD_INSTANCE IF_SYSTEM_UUID IF_T100_DYN_MSG IF_T100_MESSAGE + IGNORE IGNORING IMMEDIATELY IMPLEMENTATION IMPLEMENTATIONS + IMPLEMENTED IMPLICIT IMPORT IMPORTING IN INACTIVE INCL INCLUDE + INCLUDES INCLUDING INCREMENT INDEX INDEX-LINE INFOTYPES INHERITING + INIT INITIAL INITIALIZATION INNER INOUT INPUT INSERT INSTANCE + INSTANCES INSTR INT1 INT2 INT4 INT8 INTENSIFIED INTERFACE + INTERFACE-POOL INTERFACES INTERNAL INTERVALS INTO INVERSE + INVERTED-DATE IS ISO ITNO JOB JOIN KEEP KEEPING KERNEL KEY KEYS + KEYWORDS KIND LANG LANGUAGE LAST LATE LAYOUT LCHR LDB_PROCESS LE + LEADING LEAVE LEFT LEFT-JUSTIFIED LEFTPLUS LEFTSPACE LEGACY LENGTH + LET LEVEL LEVELS LIKE LINE LINE-COUNT LINE-SELECTION LINE-SIZE + LINEFEED LINES LIST LIST-PROCESSING LISTBOX LITTLE LLANG LOAD + LOAD-OF-PROGRAM LOB LOCAL LOCALE LOCATOR LOG-POINT LOGFILE LOGICAL + LONG LOOP LOW LOWER LPAD LPI LRAW LT LTRIM M MAIL MAIN MAJOR-ID + MAPPING MARGIN MARK MASK MATCH MATCHCODE MAX MAXIMUM MEDIUM MEMBERS + MEMORY MESH MESSAGE MESSAGE-ID MESSAGES MESSAGING METHOD METHODS MIN + MINIMUM MINOR-ID MM/DD/YY MM/DD/YYYY MMDDYY MOD MODE MODIF MODIFIER + MODIFY MODULE MOVE MOVE-CORRESPONDING MULTIPLY + MULTIPLY-CORRESPONDING NA NAME NAMETAB NATIVE NB NE NESTED NESTING + NEW NEW-LINE NEW-PAGE NEW-SECTION NEXT NO NO-DISPLAY NO-EXTENSION + NO-GAP NO-GAPS NO-GROUPING NO-HEADING NO-SCROLLING NO-SIGN NO-TITLE + NO-TOPOFPAGE NO-ZERO NODE NODES NON-UNICODE NON-UNIQUE NOT NP NS + NULL NUMBER NUMC O OBJECT OBJECTS OBLIGATORY OCCURRENCE OCCURRENCES + OCCURS OF OFF OFFSET ON ONLY OPEN OPTION OPTIONAL OPTIONS OR ORDER + OTHER OTHERS OUT OUTER OUTPUT OUTPUT-LENGTH OVERFLOW OVERLAY PACK + PACKAGE PAD PADDING PAGE PAGES PARAMETER PARAMETER-TABLE PARAMETERS + PART PARTIALLY PATTERN PERCENTAGE PERFORM PERFORMING PERSON PF + PF-STATUS PINK PLACES POOL POSITION POS_HIGH POS_LOW PRAGMAS PREC + PRECOMPILED PREFERRED PRESERVING PRIMARY PRINT PRINT-CONTROL + PRIORITY PRIVATE PROCEDURE PROCESS PROGRAM PROPERTY PROTECTED + PROVIDE PUBLIC PUSH PUSHBUTTON PUT QUAN QUEUE-ONLY QUICKINFO + RADIOBUTTON RAISE RAISING RANGE RANGES RAW RAWSTRING READ READ-ONLY + READER RECEIVE RECEIVED RECEIVER RECEIVING RED REDEFINITION REDUCE + REDUCED REF REFERENCE REFRESH REGEX REJECT REMOTE RENAMING REPLACE + REPLACEMENT REPLACING REPORT REQUEST REQUESTED RESERVE RESET + RESOLUTION RESPECTING RESPONSIBLE RESULT RESULTS RESUMABLE RESUME + RETRY RETURN RETURNCODE RETURNING RETURNS RIGHT RIGHT-JUSTIFIED + RIGHTPLUS RIGHTSPACE RISK RMC_COMMUNICATION_FAILURE + RMC_INVALID_STATUS RMC_SYSTEM_FAILURE ROLE ROLLBACK ROUND ROWS RPAD + RTRIM RUN SAP SAP-SPOOL SAVING SCALE_PRESERVING + SCALE_PRESERVING_SCIENTIFIC SCAN SCIENTIFIC + SCIENTIFIC_WITH_LEADING_ZERO SCREEN SCROLL SCROLL-BOUNDARY SCROLLING + SEARCH SECONDARY SECONDS SECTION SELECT SELECT-OPTIONS SELECTION + SELECTION-SCREEN SELECTION-SET SELECTION-SETS SELECTION-TABLE + SELECTIONS SEND SEPARATE SEPARATED SET SHARED SHIFT SHORT + SHORTDUMP-ID SIGN SIGN_AS_POSTFIX SIMPLE SINGLE SIZE SKIP SKIPPING + SMART SOME SORT SORTABLE SORTED SOURCE SPACE SPECIFIED SPLIT SPOOL + SPOTS SQL SQLSCRIPT SSTRING STABLE STAMP STANDARD START-OF-SELECTION + STARTING STATE STATEMENT STATEMENTS STATIC STATICS STATUSINFO + STEP-LOOP STOP STRING STRUCTURE STRUCTURES STYLE SUBKEY SUBMATCHES + SUBMIT SUBROUTINE SUBSCREEN SUBSTRING SUBTRACT + SUBTRACT-CORRESPONDING SUFFIX SUM SUMMARY SUMMING SUPPLIED SUPPLY + SUPPRESS SWITCH SWITCHSTATES SYMBOL SYNCPOINTS SYNTAX SYNTAX-CHECK + SYNTAX-TRACE SYST SYSTEM-CALL SYSTEM-EXCEPTIONS SYSTEM-EXIT TAB + TABBED TABLE TABLES TABLEVIEW TABSTRIP TARGET TASK TASKS TEST + TEST-INJECTION TEST-SEAM TESTING TEXT TEXTPOOL THEN THROW TIME TIMES + TIMESTAMP TIMEZONE TIMS TIMS_IS_VALID TITLE TITLE-LINES TITLEBAR TO + TOKENIZATION TOKENS TOP-LINES TOP-OF-PAGE TRACE-FILE TRACE-TABLE + TRAILING TRANSACTION TRANSFER TRANSFORMATION TRANSLATE TRANSPORTING + TRMAC TRUNCATE TRUNCATION TRY TSTMP_ADD_SECONDS + TSTMP_CURRENT_UTCTIMESTAMP TSTMP_IS_VALID TSTMP_SECONDS_BETWEEN TYPE + TYPE-POOL TYPE-POOLS TYPES ULINE UNASSIGN UNDER UNICODE UNION UNIQUE + UNIT UNIT_CONVERSION UNIX UNPACK UNTIL UNWIND UP UPDATE UPPER USER + USER-COMMAND USING UTF-8 VALID VALUE VALUE-REQUEST VALUES VARC VARY + VARYING VERIFICATION-MESSAGE VERSION VIA VIEW VISIBLE WAIT WARNING + WHEN WHENEVER WHERE WHILE WIDTH WINDOW WINDOWS WITH WITH-HEADING + WITH-TITLE WITHOUT WORD WORK WRITE WRITER XML XSD YELLOW YES YYMMDD + Z ZERO ZONE + ) + end + + def self.builtins + @keywords = Set.new %w( + acos apply asin assign atan attribute bit-set boolc boolx call + call-method cast ceil cfunc charlen char_off class_constructor clear + cluster cmax cmin cnt communication_failure concat_lines_of cond + cond-var condense constructor contains contains_any_not_of + contains_any_of copy cos cosh count count_any_not_of count_any_of + create cursor data dbmaxlen dbtab deserialize destructor distance + empty error_message escape exp extensible find find_any_not_of + find_any_of find_end floor frac from_mixed group hashed header idx + include index insert ipow itab key lax lines line_exists line_index + log log10 loop loop_key match matches me mesh_path namespace nmax + nmin node numeric numofchar object parameter primary_key read ref + repeat replace rescale resource_failure reverse root round segment + sender serialize shift_left shift_right sign simple sin sinh skip + sorted space sqrt standard strlen substring substring_after + substring_before substring_from substring_to sum switch switch-var + system_failure table table_line tan tanh template text to_lower + to_mixed to_upper transform translate trunc type value variable write + xsdbool xsequence xstrlen + ) + end + + def self.types + @types = Set.new %w( + b c d decfloat16 decfloat34 f i int8 n p s t x + clike csequence decfloat string xstring + ) + end + + def self.new_keywords + @types = Set.new %w( + DATA FIELD-SYMBOL + ) + end + + state :root do + rule %r/\s+/m, Text + + rule %r/".*/, Comment::Single + rule %r(^\*.*), Comment::Multiline + rule %r/\d+/, Num::Integer + rule %r/('|`)/, Str::Single, :single_string + rule %r/[\[\]\(\)\{\}\.,:\|]/, Punctuation + + # builtins / new ABAP 7.40 keywords (@DATA(), ...) + rule %r/(->|=>)?([A-Za-z][A-Za-z0-9_\-]*)(\()/ do |m| + if m[1] != '' + token Operator, m[1] + end + + if (self.class.new_keywords.include? m[2].upcase) && m[1].nil? + token Keyword, m[2] + elsif (self.class.builtins.include? m[2].downcase) && m[1].nil? + token Name::Builtin, m[2] + else + token Name, m[2] + end + token Punctuation, m[3] + end + + # keywords, types and normal text + rule %r/\w\w*/ do |m| + if self.class.keywords.include? m[0].upcase + token Keyword + elsif self.class.types.include? m[0].downcase + token Keyword::Type + else + token Name + end + end + + # operators + rule %r((->|->>|=>)), Operator + rule %r([-\*\+%/~=&\?<>!#\@\^]+), Operator + + end + + state :operators do + rule %r((->|->>|=>)), Operator + rule %r([-\*\+%/~=&\?<>!#\@\^]+), Operator + end + + state :single_string do + rule %r/\\./, Str::Escape + rule %r/(''|``)/, Str::Escape + rule %r/['`]/, Str::Single, :pop! + rule %r/[^\\'`]+/, Str::Single + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/actionscript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/actionscript.rb new file mode 100644 index 0000000..557320e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/actionscript.rb @@ -0,0 +1,196 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Actionscript < RegexLexer + title "ActionScript" + desc "ActionScript" + + tag 'actionscript' + aliases 'as', 'as3' + filenames '*.as' + mimetypes 'application/x-actionscript' + + state :comments_and_whitespace do + rule %r/\s+/, Text + rule %r(//.*?$), Comment::Single + rule %r(/\*.*?\*/)m, Comment::Multiline + end + + state :expr_start do + mixin :comments_and_whitespace + + rule %r(/) do + token Str::Regex + goto :regex + end + + rule %r/[{]/, Punctuation, :object + + rule %r//, Text, :pop! + end + + state :regex do + rule %r(/) do + token Str::Regex + goto :regex_end + end + + rule %r([^/]\n), Error, :pop! + + rule %r/\n/, Error, :pop! + rule %r/\[\^/, Str::Escape, :regex_group + rule %r/\[/, Str::Escape, :regex_group + rule %r/\\./, Str::Escape + rule %r{[(][?][:=<!]}, Str::Escape + rule %r/[{][\d,]+[}]/, Str::Escape + rule %r/[()?]/, Str::Escape + rule %r/./, Str::Regex + end + + state :regex_end do + rule %r/[gim]+/, Str::Regex, :pop! + rule(//) { pop! } + end + + state :regex_group do + # specially highlight / in a group to indicate that it doesn't + # close the regex + rule %r(/), Str::Escape + + rule %r([^/]\n) do + token Error + pop! 2 + end + + rule %r/\]/, Str::Escape, :pop! + rule %r/\\./, Str::Escape + rule %r/./, Str::Regex + end + + state :bad_regex do + rule %r/[^\n]+/, Error, :pop! + end + + def self.keywords + @keywords ||= Set.new %w( + for in while do break return continue switch case default + if else throw try catch finally new delete typeof is + this with + ) + end + + def self.declarations + @declarations ||= Set.new %w(var with function) + end + + def self.reserved + @reserved ||= Set.new %w( + dynamic final internal native public protected private class const + override static package interface extends implements namespace + set get import include super flash_proxy object_proxy trace + ) + end + + def self.constants + @constants ||= Set.new %w(true false null NaN Infinity undefined) + end + + def self.builtins + @builtins ||= %w( + void Function Math Class + Object RegExp decodeURI + decodeURIComponent encodeURI encodeURIComponent + eval isFinite isNaN parseFloat parseInt this + ) + end + + id = /[$a-zA-Z_][a-zA-Z0-9_]*/ + + state :root do + rule %r/\A\s*#!.*?\n/m, Comment::Preproc, :statement + rule %r/\n/, Text, :statement + rule %r((?<=\n)(?=\s|/|<!--)), Text, :expr_start + mixin :comments_and_whitespace + rule %r(\+\+ | -- | ~ | && | \|\| | \\(?=\n) | << | >>>? | === + | !== )x, + Operator, :expr_start + rule %r([:-<>+*%&|\^/!=]=?), Operator, :expr_start + rule %r/[(\[,]/, Punctuation, :expr_start + rule %r/;/, Punctuation, :statement + rule %r/[)\].]/, Punctuation + + rule %r/[?]/ do + token Punctuation + push :ternary + push :expr_start + end + + rule %r/[{}]/, Punctuation, :statement + + rule id do |m| + if self.class.keywords.include? m[0] + token Keyword + push :expr_start + elsif self.class.declarations.include? m[0] + token Keyword::Declaration + push :expr_start + elsif self.class.reserved.include? m[0] + token Keyword::Reserved + elsif self.class.constants.include? m[0] + token Keyword::Constant + elsif self.class.builtins.include? m[0] + token Name::Builtin + else + token Name::Other + end + end + + rule %r/\-?[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?/, Num::Float + rule %r/0x[0-9a-fA-F]+/, Num::Hex + rule %r/\-?[0-9]+/, Num::Integer + rule %r/"(\\\\|\\"|[^"])*"/, Str::Double + rule %r/'(\\\\|\\'|[^'])*'/, Str::Single + end + + # braced parts that aren't object literals + state :statement do + rule %r/(#{id})(\s*)(:)/ do + groups Name::Label, Text, Punctuation + end + + rule %r/[{}]/, Punctuation + + mixin :expr_start + end + + # object literals + state :object do + mixin :comments_and_whitespace + rule %r/[}]/ do + token Punctuation + goto :statement + end + + rule %r/(#{id})(\s*)(:)/ do + groups Name::Attribute, Text, Punctuation + push :expr_start + end + + rule %r/:/, Punctuation + mixin :root + end + + # ternary expressions, where <id>: is not a label! + state :ternary do + rule %r/:/ do + token Punctuation + goto :expr_start + end + + mixin :root + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ada.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ada.rb new file mode 100644 index 0000000..21065bb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ada.rb @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Ada < RegexLexer + tag 'ada' + filenames '*.ada', '*.ads', '*.adb', '*.gpr' + mimetypes 'text/x-ada' + + title 'Ada' + desc 'The Ada 2012 programming language' + + # Ada identifiers are Unicode with underscores only allowed as separators. + ID = /\b[[:alpha:]](?:\p{Pc}?[[:alnum:]])*\b/ + + # Numerals can also contain underscores. + NUM = /\d(_?\d)*/ + XNUM = /\h(_?\h)*/ + EXP = /(E[-+]?#{NUM})?/i + + # Return a hash mapping lower-case identifiers to token classes. + def self.idents + @idents ||= Hash.new(Name).tap do |h| + %w( + abort abstract accept access aliased all array at begin body + case constant declare delay delta digits do else elsif end + exception exit for generic goto if in interface is limited + loop new null of others out overriding pragma private + protected raise range record renames requeue return reverse + select separate some synchronized tagged task terminate then + until use when while with + ).each {|w| h[w] = Keyword} + + %w(abs and mod not or rem xor).each {|w| h[w] = Operator::Word} + + %w( + entry function package procedure subtype type + ).each {|w| h[w] = Keyword::Declaration} + + %w( + boolean character constraint_error duration float integer + natural positive long_float long_integer long_long_float + long_long_integer program_error short_float short_integer + short_short_integer storage_error string tasking_error + wide_character wide_string wide_wide_character + wide_wide_string + ).each {|w| h[w] = Name::Builtin} + end + end + + state :whitespace do + rule %r{\s+}m, Text + rule %r{--.*$}, Comment::Single + end + + state :dquote_string do + rule %r{[^"\n]+}, Literal::String::Double + rule %r{""}, Literal::String::Escape + rule %r{"}, Literal::String::Double, :pop! + rule %r{\n}, Error, :pop! + end + + state :attr do + mixin :whitespace + rule ID, Name::Attribute, :pop! + rule %r{}, Text, :pop! + end + + # Handle a dotted name immediately following a declaration keyword. + state :decl_name do + mixin :whitespace + rule %r{body\b}i, Keyword::Declaration # package body Foo.Bar is... + rule %r{(#{ID})(\.)} do + groups Name::Namespace, Punctuation + end + # function "<=" (Left, Right: Type) is ... + rule %r{#{ID}|"(and|or|xor|/?=|<=?|>=?|\+|–|&\|/|mod|rem|\*?\*|abs|not)"}, + Name::Function, :pop! + rule %r{}, Text, :pop! + end + + # Handle a sequence of library unit names: with Ada.Foo, Ada.Bar; + # + # There's a chance we entered this state mistakenly since 'with' + # has multiple other uses in Ada (none of which are likely to + # appear at the beginning of a line). Try to bail as soon as + # possible if we see something suspicious like keywords. + # + # See ada_spec.rb for some examples. + state :libunit_name do + mixin :whitespace + + rule ID do |m| + t = self.class.idents[m[0].downcase] + if t <= Name + # Convert all kinds of Name to namespaces in this context. + token Name::Namespace + else + # Yikes, we're not supposed to get a keyword in a library unit name! + # We probably entered this state by mistake, so try to fix it. + token t + if t == Keyword::Declaration + goto :decl_name + else + pop! + end + end + end + + rule %r{[.,]}, Punctuation + rule %r{}, Text, :pop! + end + + state :root do + mixin :whitespace + + # String literals. + rule %r{'.'}, Literal::String::Char + rule %r{"[^"\n]*}, Literal::String::Double, :dquote_string + + # Real literals. + rule %r{#{NUM}\.#{NUM}#{EXP}}, Literal::Number::Float + rule %r{#{NUM}##{XNUM}\.#{XNUM}##{EXP}}, Literal::Number::Float + + # Integer literals. + rule %r{2#[01](_?[01])*##{EXP}}, Literal::Number::Bin + rule %r{8#[0-7](_?[0-7])*##{EXP}}, Literal::Number::Oct + rule %r{16##{XNUM}*##{EXP}}, Literal::Number::Hex + rule %r{#{NUM}##{XNUM}##{EXP}}, Literal::Number::Integer + rule %r{#{NUM}#\w+#}, Error + rule %r{#{NUM}#{EXP}}, Literal::Number::Integer + + # Special constructs. + rule %r{'}, Punctuation, :attr + rule %r{<<#{ID}>>}, Name::Label + + # Context clauses are tricky because the 'with' keyword is used + # for many purposes. Detect at beginning of the line only. + rule %r{^(?:(limited)(\s+))?(?:(private)(\s+))?(with)\b}i do + groups Keyword::Namespace, Text, Keyword::Namespace, Text, Keyword::Namespace + push :libunit_name + end + + # Operators and punctuation characters. + rule %r{[+*/&<=>|]|-|=>|\.\.|\*\*|[:></]=|<<|>>|<>}, Operator + rule %r{[.,:;()]}, Punctuation + + rule ID do |m| + t = self.class.idents[m[0].downcase] + token t + if t == Keyword::Declaration + push :decl_name + end + end + + # Flag word-like things that don't match the ID pattern. + rule %r{\b(\p{Pc}|[[:alpha:]])\p{Word}*}, Error + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apache.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apache.rb new file mode 100644 index 0000000..2b8046b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apache.rb @@ -0,0 +1,83 @@ +# frozen_string_literal: true + +require 'yaml' + +module Rouge + module Lexers + class Apache < RegexLexer + title "Apache" + desc 'configuration files for Apache web server' + tag 'apache' + mimetypes 'text/x-httpd-conf', 'text/x-apache-conf' + filenames '.htaccess', 'httpd.conf' + + # self-modifying method that loads the keywords file + def self.directives + Kernel::load File.join(Lexers::BASE_DIR, 'apache/keywords.rb') + directives + end + + def self.sections + Kernel::load File.join(Lexers::BASE_DIR, 'apache/keywords.rb') + sections + end + + def self.values + Kernel::load File.join(Lexers::BASE_DIR, 'apache/keywords.rb') + values + end + + def name_for_token(token, tktype) + if self.class.sections.include? token + tktype + elsif self.class.directives.include? token + tktype + elsif self.class.values.include? token + tktype + else + Text + end + end + + state :whitespace do + rule %r/\#.*/, Comment + rule %r/\s+/m, Text + end + + state :root do + mixin :whitespace + + rule %r/(<\/?)(\w+)/ do |m| + groups Punctuation, name_for_token(m[2].downcase, Name::Label) + push :section + end + + rule %r/\w+/ do |m| + token name_for_token(m[0].downcase, Name::Class) + push :directive + end + end + + state :section do + # Match section arguments + rule %r/([^>]+)?(>(?:\r\n?|\n)?)/ do + groups Literal::String::Regex, Punctuation + pop! + end + + mixin :whitespace + end + + state :directive do + # Match value literals and other directive arguments + rule %r/\r\n?|\n/, Text, :pop! + + mixin :whitespace + + rule %r/\S+/ do |m| + token name_for_token(m[0].downcase, Literal::String::Symbol) + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apache/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apache/keywords.rb new file mode 100644 index 0000000..e71876e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apache/keywords.rb @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# DO NOT EDIT +# This file is automatically generated by `rake builtins:apache`. +# See tasks/builtins/apache.rake for more info. + +module Rouge + module Lexers + class Apache + def self.directives + @directives ||= Set.new ["acceptfilter", "acceptpathinfo", "accessfilename", "action", "addalt", "addaltbyencoding", "addaltbytype", "addcharset", "adddefaultcharset", "adddescription", "addencoding", "addhandler", "addicon", "addiconbyencoding", "addiconbytype", "addinputfilter", "addlanguage", "addmoduleinfo", "addoutputfilter", "addoutputfilterbytype", "addtype", "alias", "aliasmatch", "allow", "allowconnect", "allowencodedslashes", "allowmethods", "allowoverride", "allowoverridelist", "anonymous", "anonymous_logemail", "anonymous_mustgiveemail", "anonymous_nouserid", "anonymous_verifyemail", "asyncrequestworkerfactor", "authbasicauthoritative", "authbasicfake", "authbasicprovider", "authbasicusedigestalgorithm", "authdbduserpwquery", "authdbduserrealmquery", "authdbmgroupfile", "authdbmtype", "authdbmuserfile", "authdigestalgorithm", "authdigestdomain", "authdigestnoncelifetime", "authdigestprovider", "authdigestqop", "authdigestshmemsize", "authformauthoritative", "authformbody", "authformdisablenostore", "authformfakebasicauth", "authformlocation", "authformloginrequiredlocation", "authformloginsuccesslocation", "authformlogoutlocation", "authformmethod", "authformmimetype", "authformpassword", "authformprovider", "authformsitepassphrase", "authformsize", "authformusername", "authgroupfile", "authldapauthorizeprefix", "authldapbindauthoritative", "authldapbinddn", "authldapbindpassword", "authldapcharsetconfig", "authldapcompareasuser", "authldapcomparednonserver", "authldapdereferencealiases", "authldapgroupattribute", "authldapgroupattributeisdn", "authldapinitialbindasuser", "authldapinitialbindpattern", "authldapmaxsubgroupdepth", "authldapremoteuserattribute", "authldapremoteuserisdn", "authldapsearchasuser", "authldapsubgroupattribute", "authldapsubgroupclass", "authldapurl", "authmerging", "authname", "authncachecontext", "authncacheenable", "authncacheprovidefor", "authncachesocache", "authncachetimeout", "authnzfcgicheckauthnprovider", "authnzfcgidefineprovider", "authtype", "authuserfile", "authzdbdlogintoreferer", "authzdbdquery", "authzdbdredirectquery", "authzdbmtype", "authzsendforbiddenonfailure", "balancergrowth", "balancerinherit", "balancermember", "balancerpersist", "brotlialteretag", "brotlicompressionmaxinputblock", "brotlicompressionquality", "brotlicompressionwindow", "brotlifilternote", "browsermatch", "browsermatchnocase", "bufferedlogs", "buffersize", "cachedefaultexpire", "cachedetailheader", "cachedirlength", "cachedirlevels", "cachedisable", "cacheenable", "cachefile", "cacheheader", "cacheignorecachecontrol", "cacheignoreheaders", "cacheignorenolastmod", "cacheignorequerystring", "cacheignoreurlsessionidentifiers", "cachekeybaseurl", "cachelastmodifiedfactor", "cachelock", "cachelockmaxage", "cachelockpath", "cachemaxexpire", "cachemaxfilesize", "cacheminexpire", "cacheminfilesize", "cachenegotiateddocs", "cachequickhandler", "cachereadsize", "cachereadtime", "cacheroot", "cachesocache", "cachesocachemaxsize", "cachesocachemaxtime", "cachesocachemintime", "cachesocachereadsize", "cachesocachereadtime", "cachestaleonerror", "cachestoreexpired", "cachestorenostore", "cachestoreprivate", "cgidscripttimeout", "cgimapextension", "cgipassauth", "cgivar", "charsetdefault", "charsetoptions", "charsetsourceenc", "checkcaseonly", "checkspelling", "chrootdir", "contentdigest", "cookiedomain", "cookieexpires", "cookiename", "cookiestyle", "cookietracking", "coredumpdirectory", "customlog", "dav", "davdepthinfinity", "davgenericlockdb", "davlockdb", "davmintimeout", "dbdexptime", "dbdinitsql", "dbdkeep", "dbdmax", "dbdmin", "dbdparams", "dbdpersist", "dbdpreparesql", "dbdriver", "defaulticon", "defaultlanguage", "defaultruntimedir", "defaulttype", "define", "deflatebuffersize", "deflatecompressionlevel", "deflatefilternote", "deflateinflatelimitrequestbody", "deflateinflateratioburst", "deflateinflateratiolimit", "deflatememlevel", "deflatewindowsize", "deny", "directorycheckhandler", "directoryindex", "directoryindexredirect", "directoryslash", "documentroot", "dtraceprivileges", "dumpioinput", "dumpiooutput", "enableexceptionhook", "enablemmap", "enablesendfile", "error", "errordocument", "errorlog", "errorlogformat", "example", "expiresactive", "expiresbytype", "expiresdefault", "extendedstatus", "extfilterdefine", "extfilteroptions", "fallbackresource", "fileetag", "filterchain", "filterdeclare", "filterprotocol", "filterprovider", "filtertrace", "forcelanguagepriority", "forcetype", "forensiclog", "globallog", "gprofdir", "gracefulshutdowntimeout", "group", "h2copyfiles", "h2direct", "h2earlyhints", "h2maxsessionstreams", "h2maxworkeridleseconds", "h2maxworkers", "h2minworkers", "h2moderntlsonly", "h2push", "h2pushdiarysize", "h2pushpriority", "h2pushresource", "h2serializeheaders", "h2streammaxmemsize", "h2tlscooldownsecs", "h2tlswarmupsize", "h2upgrade", "h2windowsize", "header", "headername", "heartbeataddress", "heartbeatlisten", "heartbeatmaxservers", "heartbeatstorage", "heartbeatstorage", "hostnamelookups", "httpprotocoloptions", "identitycheck", "identitychecktimeout", "imapbase", "imapdefault", "imapmenu", "include", "includeoptional", "indexheadinsert", "indexignore", "indexignorereset", "indexoptions", "indexorderdefault", "indexstylesheet", "inputsed", "isapiappendlogtoerrors", "isapiappendlogtoquery", "isapicachefile", "isapifakeasync", "isapilognotsupported", "isapireadaheadbuffer", "keepalive", "keepalivetimeout", "keptbodysize", "languagepriority", "ldapcacheentries", "ldapcachettl", "ldapconnectionpoolttl", "ldapconnectiontimeout", "ldaplibrarydebug", "ldapopcacheentries", "ldapopcachettl", "ldapreferralhoplimit", "ldapreferrals", "ldapretries", "ldapretrydelay", "ldapsharedcachefile", "ldapsharedcachesize", "ldaptimeout", "ldaptrustedclientcert", "ldaptrustedglobalcert", "ldaptrustedmode", "ldapverifyservercert", "limitinternalrecursion", "limitrequestbody", "limitrequestfields", "limitrequestfieldsize", "limitrequestline", "limitxmlrequestbody", "listen", "listenbacklog", "listencoresbucketsratio", "loadfile", "loadmodule", "logformat", "logiotrackttfb", "loglevel", "logmessage", "luaauthzprovider", "luacodecache", "luahookaccesschecker", "luahookauthchecker", "luahookcheckuserid", "luahookfixups", "luahookinsertfilter", "luahooklog", "luahookmaptostorage", "luahooktranslatename", "luahooktypechecker", "luainherit", "luainputfilter", "luamaphandler", "luaoutputfilter", "luapackagecpath", "luapackagepath", "luaquickhandler", "luaroot", "luascope", "maxconnectionsperchild", "maxkeepaliverequests", "maxmemfree", "maxrangeoverlaps", "maxrangereversals", "maxranges", "maxrequestworkers", "maxspareservers", "maxsparethreads", "maxthreads", "mdbaseserver", "mdcachallenges", "mdcertificateagreement", "mdcertificateauthority", "mdcertificateprotocol", "mddrivemode", "mdhttpproxy", "mdmember", "mdmembers", "mdmuststaple", "mdnotifycmd", "mdomain", "mdportmap", "mdprivatekeys", "mdrenewwindow", "mdrequirehttps", "mdstoredir", "memcacheconnttl", "mergetrailers", "metadir", "metafiles", "metasuffix", "mimemagicfile", "minspareservers", "minsparethreads", "mmapfile", "modemstandard", "modmimeusepathinfo", "multiviewsmatch", "mutex", "namevirtualhost", "noproxy", "nwssltrustedcerts", "nwsslupgradeable", "options", "order", "outputsed", "passenv", "pidfile", "privilegesmode", "protocol", "protocolecho", "protocols", "protocolshonororder", "proxyaddheaders", "proxybadheader", "proxyblock", "proxydomain", "proxyerroroverride", "proxyexpressdbmfile", "proxyexpressdbmtype", "proxyexpressenable", "proxyfcgibackendtype", "proxyfcgisetenvif", "proxyftpdircharset", "proxyftpescapewildcards", "proxyftplistonwildcard", "proxyhcexpr", "proxyhctemplate", "proxyhctpsize", "proxyhtmlbufsize", "proxyhtmlcharsetout", "proxyhtmldoctype", "proxyhtmlenable", "proxyhtmlevents", "proxyhtmlextended", "proxyhtmlfixups", "proxyhtmlinterp", "proxyhtmllinks", "proxyhtmlmeta", "proxyhtmlstripcomments", "proxyhtmlurlmap", "proxyiobuffersize", "proxymaxforwards", "proxypass", "proxypassinherit", "proxypassinterpolateenv", "proxypassmatch", "proxypassreverse", "proxypassreversecookiedomain", "proxypassreversecookiepath", "proxypreservehost", "proxyreceivebuffersize", "proxyremote", "proxyremotematch", "proxyrequests", "proxyscgiinternalredirect", "proxyscgisendfile", "proxyset", "proxysourceaddress", "proxystatus", "proxytimeout", "proxyvia", "qualifyredirecturl", "readmename", "receivebuffersize", "redirect", "redirectmatch", "redirectpermanent", "redirecttemp", "reflectorheader", "registerhttpmethod", "remoteipheader", "remoteipinternalproxy", "remoteipinternalproxylist", "remoteipproxiesheader", "remoteipproxyprotocol", "remoteipproxyprotocolexceptions", "remoteiptrustedproxy", "remoteiptrustedproxylist", "removecharset", "removeencoding", "removehandler", "removeinputfilter", "removelanguage", "removeoutputfilter", "removetype", "requestheader", "requestreadtimeout", "require", "rewritebase", "rewritecond", "rewriteengine", "rewritemap", "rewriteoptions", "rewriterule", "rlimitcpu", "rlimitmem", "rlimitnproc", "satisfy", "scoreboardfile", "script", "scriptalias", "scriptaliasmatch", "scriptinterpretersource", "scriptlog", "scriptlogbuffer", "scriptloglength", "scriptsock", "securelisten", "seerequesttail", "sendbuffersize", "serveradmin", "serveralias", "serverlimit", "servername", "serverpath", "serverroot", "serversignature", "servertokens", "session", "sessioncookiename", "sessioncookiename2", "sessioncookieremove", "sessioncryptocipher", "sessioncryptodriver", "sessioncryptopassphrase", "sessioncryptopassphrasefile", "sessiondbdcookiename", "sessiondbdcookiename2", "sessiondbdcookieremove", "sessiondbddeletelabel", "sessiondbdinsertlabel", "sessiondbdperuser", "sessiondbdselectlabel", "sessiondbdupdatelabel", "sessionenv", "sessionexclude", "sessionheader", "sessioninclude", "sessionmaxage", "setenv", "setenvif", "setenvifexpr", "setenvifnocase", "sethandler", "setinputfilter", "setoutputfilter", "ssiendtag", "ssierrormsg", "ssietag", "ssilastmodified", "ssilegacyexprparser", "ssistarttag", "ssitimeformat", "ssiundefinedecho", "sslcacertificatefile", "sslcacertificatepath", "sslcadnrequestfile", "sslcadnrequestpath", "sslcarevocationcheck", "sslcarevocationfile", "sslcarevocationpath", "sslcertificatechainfile", "sslcertificatefile", "sslcertificatekeyfile", "sslciphersuite", "sslcompression", "sslcryptodevice", "sslengine", "sslfips", "sslhonorcipherorder", "sslinsecurerenegotiation", "sslocspdefaultresponder", "sslocspenable", "sslocspnoverify", "sslocspoverrideresponder", "sslocspproxyurl", "sslocsprespondercertificatefile", "sslocsprespondertimeout", "sslocspresponsemaxage", "sslocspresponsetimeskew", "sslocspuserequestnonce", "sslopensslconfcmd", "ssloptions", "sslpassphrasedialog", "sslprotocol", "sslproxycacertificatefile", "sslproxycacertificatepath", "sslproxycarevocationcheck", "sslproxycarevocationfile", "sslproxycarevocationpath", "sslproxycheckpeercn", "sslproxycheckpeerexpire", "sslproxycheckpeername", "sslproxyciphersuite", "sslproxyengine", "sslproxymachinecertificatechainfile", "sslproxymachinecertificatefile", "sslproxymachinecertificatepath", "sslproxyprotocol", "sslproxyverify", "sslproxyverifydepth", "sslrandomseed", "sslrenegbuffersize", "sslrequire", "sslrequiressl", "sslsessioncache", "sslsessioncachetimeout", "sslsessionticketkeyfile", "sslsessiontickets", "sslsrpunknownuserseed", "sslsrpverifierfile", "sslstaplingcache", "sslstaplingerrorcachetimeout", "sslstaplingfaketrylater", "sslstaplingforceurl", "sslstaplingrespondertimeout", "sslstaplingresponsemaxage", "sslstaplingresponsetimeskew", "sslstaplingreturnrespondererrors", "sslstaplingstandardcachetimeout", "sslstrictsnivhostcheck", "sslusername", "sslusestapling", "sslverifyclient", "sslverifydepth", "startservers", "startthreads", "substitute", "substituteinheritbefore", "substitutemaxlinelength", "suexec", "suexecusergroup", "threadlimit", "threadsperchild", "threadstacksize", "timeout", "traceenable", "transferlog", "typesconfig", "undefine", "undefmacro", "unsetenv", "use", "usecanonicalname", "usecanonicalphysicalport", "user", "userdir", "vhostcgimode", "vhostcgiprivs", "vhostgroup", "vhostprivs", "vhostsecure", "vhostuser", "virtualdocumentroot", "virtualdocumentrootip", "virtualscriptalias", "virtualscriptaliasip", "watchdoginterval", "xbithack", "xml2encalias", "xml2encdefault", "xml2startparse"] + end + + def self.sections + @sections ||= Set.new ["authnprovideralias", "authzprovideralias", "directory", "directorymatch", "else", "elseif", "files", "filesmatch", "if", "ifdefine", "ifmodule", "ifversion", "limit", "limitexcept", "location", "locationmatch", "macro", "mdomainset", "proxy", "proxymatch", "requireall", "requireany", "requirenone", "virtualhost"] + end + + def self.values + @values ||= Set.new ["add", "addaltclass", "addsuffix", "alias", "all", "allow", "allowanyuri", "allownoslash", "always", "and", "any", "ap_auth_internal_per_uri", "api_version", "append", "ascending", "attribute", "auth", "auth-int", "authconfig", "auto", "backend-address", "balancer_name", "balancer_route_changed", "balancer_session_route", "balancer_session_sticky", "balancer_worker_name", "balancer_worker_route", "base", "basedn", "basic", "before", "block", "boolean", "byte", "byteranges", "cache", "cache-hit", "cache-invalidate", "cache-miss", "cache-revalidate", "cgi", "chain", "change", "charset", "circle", "cmd", "conditional-expression", "condpattern", "conn", "conn_remote_addr", "cookie", "cookie2", "current-uri", "date", "date_gmt", "date_local", "db", "dbm", "decoding", "default", "deny", "descending", "description", "descriptionwidth", "digest", "disabled", "disableenv", "dns", "document_args", "document_name", "document_root", "document_uri", "domain", "double", "duration", "early", "echo", "echomsg", "edit", "edit*", "email", "enableenv", "encoding", "env", "environment-variable-name", "errmsg", "error", "errorlog", "errorlogformat", "execcgi", "expr", "fallback", "fancyindexing", "fast", "file", "file-group", "file-owner", "fileinfo", "filename", "filter", "filter-name", "filter_name", "filters", "finding", "first-dot", "foldersfirst", "followsymlinks", "forever", "form", "formatted", "fpm", "from", "ftype", "full", "function_name", "gdbm", "generic", "gone", "handlers", "hit", "hook_function_name", "host", "hostname", "hse_append_log_parameter", "hse_req_done_with_session", "hse_req_is_connected", "hse_req_is_keep_conn", "hse_req_map_url_to_path", "hse_req_send_response_header", "hse_req_send_response_header_ex", "hse_req_send_url", "hse_req_send_url_redirect_resp", "html", "htmltable", "https", "iconheight", "iconsarelinks", "iconwidth", "ignore", "ignorecase", "ignoreclient", "ignorecontextinfo", "ignoreinherit", "imal", "in", "includes", "includesnoexec", "indexes", "inherit", "inheritbefore", "inheritdown", "inheritdownbefore", "inode", "input", "int", "integer", "intype", "ipaddr", "is_subreq", "iserror", "last-dot", "last_modified", "ldap", "leaf", "legacyprefixdocroot", "level", "limit", "log_function_name", "major", "manual", "map", "map1", "map2", "max", "md5", "md5-sess", "menu", "merge", "mergebase", "minor", "miss", "mod_cache_disk", "mod_cache_socache", "mode", "mtime", "multiviews", "mutual-failure", "mysql", "name", "namewidth", "ndbm", "negotiatedonly", "never", "no", "nochange", "nocontent", "nodecode", "none", "nonfatal", "note", "number-of-ranges", "odbc", "off", "on", "once", "onerror", "onfail", "option", "optional", "options", "or", "oracle", "order", "original-uri", "os", "output", "outtype", "parent-first", "parent-last", "path", "path_info", "permanent", "pipe", "point", "poly", "postgresql", "prefer", "preservescontentlength", "prg", "protocol", "provider-name", "provider_name", "proxy", "proxy-chain-auth", "proxy-fcgi-pathinfo", "proxy-initial-not-pooled", "proxy-interim-response", "proxy-nokeepalive", "proxy-scgi-pathinfo", "proxy-sendcl", "proxy-sendextracrlf", "proxy-source-port", "proxy-status", "qs", "query_string_unescaped", "range", "ratio", "rect", "referer", "regex", "registry", "registry-strict", "remote_addr", "remote_host", "remote_ident", "remote_user", "remove", "request", "request_filename", "request_rec", "request_scheme", "request_uri", "reset", "revalidate", "rewritecond", "rfc2109", "rnd", "scanhtmltitles", "scope", "script", "sdbm", "searching", "secure", "seeother", "selective", "semiformatted", "server", "server_addr", "server_admin", "server_name", "set", "setifempty", "showforbidden", "size", "sizefmt", "sqlite2", "sqlite3", "ssl", "ssl-access-forbidden", "ssl-secure-reneg", "startbody", "stat", "string", "string1", "subnet", "suppresscolumnsorting", "suppressdescription", "suppresshtmlpreamble", "suppressicon", "suppresslastmodified", "suppressrules", "suppresssize", "symlinksifownermatch", "temp", "temporary", "test_condition1", "the_request", "thread", "timefmt", "tls", "to-pattern", "trackmodified", "transform", "txt", "type", "uctonly", "uid", "unescape", "unformatted", "unlimited", "unset", "uri-pattern", "url", "url-of-terms-of-service", "url-path", "useolddateformat", "value", "value-expression", "var", "versionsort", "virtual", "x-forwarded-for", "x-forwarded-host", "x-forwarded-server", "xhtml"] + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apex.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apex.rb new file mode 100644 index 0000000..79b5d33 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apex.rb @@ -0,0 +1,128 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Apex < RegexLexer + title "Apex" + desc "The Apex programming language (provided by salesforce)" + + tag 'apex' + filenames '*.cls' + mimetypes 'text/x-apex' + + def self.keywords + @keywords ||= Set.new %w( + assert break case catch continue default do else finally for if goto + instanceof new return switch this throw try while insert update + delete + ) + end + + def self.declarations + @declarations ||= Set.new %w( + abstract const enum extends final implements native private protected + public static super synchronized throws transient volatile with + sharing without inherited virtual global testmethod + ) + end + + def self.soql + @soql ||= Set.new %w( + SELECT FROM WHERE UPDATE LIKE TYPEOF END USING SCOPE WITH DATA + CATEGORY GROUP BY ROLLUP CUBE HAVING ORDER BY ASC DESC NULLS FIRST + LAST LIMIT OFFSET FOR VIEW REFERENCE UPDATE TRACKING VIEWSTAT OR AND + ) + end + + def self.types + @types ||= Set.new %w( + String boolean byte char double float int long short var void + ) + end + + def self.constants + @constants ||= Set.new %w(true false null) + end + + id = /[a-z_][a-z0-9_]*/i + + state :root do + rule %r/\s+/m, Text + + rule %r(//.*?$), Comment::Single + rule %r(/\*.*?\*/)m, Comment::Multiline + + rule %r/(?:class|interface)\b/, Keyword::Declaration, :class + rule %r/import\b/, Keyword::Namespace, :import + + rule %r/([@$.]?)(#{id})([:(]?)/io do |m| + lowercased = m[0].downcase + uppercased = m[0].upcase + if self.class.keywords.include? lowercased + token Keyword + elsif self.class.soql.include? uppercased + token Keyword + elsif self.class.declarations.include? lowercased + token Keyword::Declaration + elsif self.class.types.include? lowercased + token Keyword::Type + elsif self.class.constants.include? lowercased + token Keyword::Constant + elsif lowercased == 'package' + token Keyword::Namespace + elsif m[1] == "@" + token Name::Decorator + elsif m[3] == ":" + groups Operator, Name::Label, Punctuation + elsif m[3] == "(" + groups Operator, Name::Function, Punctuation + elsif m[1] == "." + groups Operator, Name::Property, Punctuation + else + token Name + end + end + + rule %r/"/, Str::Double, :dq + rule %r/'/, Str::Single, :sq + + digit = /[0-9]_+[0-9]|[0-9]/ + rule %r/#{digit}+\.#{digit}+([eE]#{digit}+)?[fd]?/, Num::Float + rule %r/0b(?:[01]_+[01]|[01])+/i, Num::Bin + rule %r/0x(?:\h_+\h|\h)+/i, Num::Hex + rule %r/0(?:[0-7]_+[0-7]|[0-7])+/, Num::Oct + rule %r/#{digit}+L?/, Num::Integer + + rule %r/[-+\/*~^!%&<>|=.?]/, Operator + rule %r/[\[\](){},:;]/, Punctuation; + end + + state :class do + rule %r/\s+/m, Text + rule id, Name::Class, :pop! + end + + state :import do + rule %r/\s+/m, Text + rule %r/[a-z0-9_.]+\*?/i, Name::Namespace, :pop! + end + + state :escape do + rule %r/\\[btnfr\\"']/, Str::Escape + end + + state :dq do + mixin :escape + rule %r/[^\\"]+/, Str::Double + rule %r/"/, Str::Double, :pop! + end + + state :sq do + mixin :escape + rule %r/[^\\']+/, Str::Double + rule %r/'/, Str::Double, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apiblueprint.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apiblueprint.rb new file mode 100644 index 0000000..7695c39 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apiblueprint.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'markdown.rb' + + class APIBlueprint < Markdown + title 'API Blueprint' + desc 'Markdown based API description language.' + + tag 'apiblueprint' + aliases 'apiblueprint', 'apib' + filenames '*.apib' + mimetypes 'text/vnd.apiblueprint' + + prepend :root do + # Metadata + rule(/(\S+)(:\s*)(.*)$/) do + groups Name::Variable, Punctuation, Literal::String + end + + # Resource Group + rule(/^(#+)(\s*Group\s+)(.*)$/) do + groups Punctuation, Keyword, Generic::Heading + end + + # Resource \ Action + rule(/^(#+)(.*)(\[.*\])$/) do + groups Punctuation, Generic::Heading, Literal::String + end + + # Relation + rule(/^([\+\-\*])(\s*Relation:)(\s*.*)$/) do + groups Punctuation, Keyword, Literal::String + end + + # MSON + rule(/^(\s+[\+\-\*]\s*)(Attributes|Parameters)(.*)$/) do + groups Punctuation, Keyword, Literal::String + end + + # Request/Response + rule(/^([\+\-\*]\s*)(Request|Response)(\s+\d\d\d)?(.*)$/) do + groups Punctuation, Keyword, Literal::Number, Literal::String + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apple_script.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apple_script.rb new file mode 100644 index 0000000..7a47b29 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/apple_script.rb @@ -0,0 +1,370 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class AppleScript < RegexLexer + title "AppleScript" + desc "The AppleScript scripting language by Apple Inc. (https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html)" + + tag 'applescript' + aliases 'applescript' + + filenames '*.applescript', '*.scpt' + + mimetypes 'application/x-applescript' + + def self.literals + @literals ||= ['AppleScript', 'current application', 'false', 'linefeed', + 'missing value', 'pi','quote', 'result', 'return', 'space', + 'tab', 'text item delimiters', 'true', 'version'] + end + + def self.classes + @classes ||= ['alias ', 'application ', 'boolean ', 'class ', 'constant ', + 'date ', 'file ', 'integer ', 'list ', 'number ', 'POSIX file ', + 'real ', 'record ', 'reference ', 'RGB color ', 'script ', + 'text ', 'unit types', '(?:Unicode )?text', 'string'] + end + + def self.builtins + @builtins ||= ['attachment', 'attribute run', 'character', 'day', 'month', + 'paragraph', 'word', 'year'] + end + + def self.handler_params + @handler_params ||= ['about', 'above', 'against', 'apart from', 'around', + 'aside from', 'at', 'below', 'beneath', 'beside', + 'between', 'for', 'given', 'instead of', 'on', 'onto', + 'out of', 'over', 'since'] + end + + def self.commands + @commands ||= ['ASCII (character|number)', 'activate', 'beep', 'choose URL', + 'choose application', 'choose color', 'choose file( name)?', + 'choose folder', 'choose from list', + 'choose remote application', 'clipboard info', + 'close( access)?', 'copy', 'count', 'current date', 'delay', + 'delete', 'display (alert|dialog)', 'do shell script', + 'duplicate', 'exists', 'get eof', 'get volume settings', + 'info for', 'launch', 'list (disks|folder)', 'load script', + 'log', 'make', 'mount volume', 'new', 'offset', + 'open( (for access|location))?', 'path to', 'print', 'quit', + 'random number', 'read', 'round', 'run( script)?', + 'say', 'scripting components', + 'set (eof|the clipboard to|volume)', 'store script', + 'summarize', 'system attribute', 'system info', + 'the clipboard', 'time to GMT', 'write', 'quoted form'] + end + + def self.references + @references ||= ['(in )?back of', '(in )?front of', '[0-9]+(st|nd|rd|th)', + 'first', 'second', 'third', 'fourth', 'fifth', 'sixth', + 'seventh', 'eighth', 'ninth', 'tenth', 'after', 'back', + 'before', 'behind', 'every', 'front', 'index', 'last', + 'middle', 'some', 'that', 'through', 'thru', 'where', 'whose'] + end + + def self.operators + @operators ||= ["and", "or", "is equal", "equals", "(is )?equal to", "is not", + "isn't", "isn't equal( to)?", "is not equal( to)?", + "doesn't equal", "does not equal", "(is )?greater than", + "comes after", "is not less than or equal( to)?", + "isn't less than or equal( to)?", "(is )?less than", + "comes before", "is not greater than or equal( to)?", + "isn't greater than or equal( to)?", + "(is )?greater than or equal( to)?", "is not less than", + "isn't less than", "does not come before", + "doesn't come before", "(is )?less than or equal( to)?", + "is not greater than", "isn't greater than", + "does not come after", "doesn't come after", "starts? with", + "begins? with", "ends? with", "contains?", "does not contain", + "doesn't contain", "is in", "is contained by", "is not in", + "is not contained by", "isn't contained by", "div", "mod", + "not", "(a )?(ref( to)?|reference to)", "is", "does"] + end + + def self.controls + @controls ||= ['considering', 'else', 'error', 'exit', 'from', 'if', + 'ignoring', 'in', 'repeat', 'tell', 'then', 'times', 'to', + 'try', 'until', 'using terms from', 'while', 'whith', + 'with timeout( of)?', 'with transaction', 'by', 'continue', + 'end', 'its?', 'me', 'my', 'return', 'of' , 'as'] + end + + def self.declarations + @declarations ||= ['global', 'local', 'prop(erty)?', 'set', 'get'] + end + + def self.reserved + @reserved ||= ['but', 'put', 'returning', 'the'] + end + + def self.studio_classes + @studio_classes ||= ['action cell', 'alert reply', 'application', 'box', + 'browser( cell)?', 'bundle', 'button( cell)?', 'cell', + 'clip view', 'color well', 'color-panel', + 'combo box( item)?', 'control', + 'data( (cell|column|item|row|source))?', 'default entry', + 'dialog reply', 'document', 'drag info', 'drawer', + 'event', 'font(-panel)?', 'formatter', + 'image( (cell|view))?', 'matrix', 'menu( item)?', 'item', + 'movie( view)?', 'open-panel', 'outline view', 'panel', + 'pasteboard', 'plugin', 'popup button', + 'progress indicator', 'responder', 'save-panel', + 'scroll view', 'secure text field( cell)?', 'slider', + 'sound', 'split view', 'stepper', 'tab view( item)?', + 'table( (column|header cell|header view|view))', + 'text( (field( cell)?|view))?', 'toolbar( item)?', + 'user-defaults', 'view', 'window'] + end + + def self.studio_events + @studio_events ||= ['accept outline drop', 'accept table drop', 'action', + 'activated', 'alert ended', 'awake from nib', 'became key', + 'became main', 'begin editing', 'bounds changed', + 'cell value', 'cell value changed', 'change cell value', + 'change item value', 'changed', 'child of item', + 'choose menu item', 'clicked', 'clicked toolbar item', + 'closed', 'column clicked', 'column moved', + 'column resized', 'conclude drop', 'data representation', + 'deminiaturized', 'dialog ended', 'document nib name', + 'double clicked', 'drag( (entered|exited|updated))?', + 'drop', 'end editing', 'exposed', 'idle', 'item expandable', + 'item value', 'item value changed', 'items changed', + 'keyboard down', 'keyboard up', 'launched', + 'load data representation', 'miniaturized', 'mouse down', + 'mouse dragged', 'mouse entered', 'mouse exited', + 'mouse moved', 'mouse up', 'moved', + 'number of browser rows', 'number of items', + 'number of rows', 'open untitled', 'opened', 'panel ended', + 'parameters updated', 'plugin loaded', 'prepare drop', + 'prepare outline drag', 'prepare outline drop', + 'prepare table drag', 'prepare table drop', + 'read from file', 'resigned active', 'resigned key', + 'resigned main', 'resized( sub views)?', + 'right mouse down', 'right mouse dragged', + 'right mouse up', 'rows changed', 'scroll wheel', + 'selected tab view item', 'selection changed', + 'selection changing', 'should begin editing', + 'should close', 'should collapse item', + 'should end editing', 'should expand item', + 'should open( untitled)?', + 'should quit( after last window closed)?', + 'should select column', 'should select item', + 'should select row', 'should select tab view item', + 'should selection change', 'should zoom', 'shown', + 'update menu item', 'update parameters', + 'update toolbar item', 'was hidden', 'was miniaturized', + 'will become active', 'will close', 'will dismiss', + 'will display browser cell', 'will display cell', + 'will display item cell', 'will display outline cell', + 'will finish launching', 'will hide', 'will miniaturize', + 'will move', 'will open', 'will pop up', 'will quit', + 'will resign active', 'will resize( sub views)?', + 'will select tab view item', 'will show', 'will zoom', + 'write to file', 'zoomed'] + end + + def self.studio_commands + @studio_commands ||= ['animate', 'append', 'call method', 'center', + 'close drawer', 'close panel', 'display', + 'display alert', 'display dialog', 'display panel', 'go', + 'hide', 'highlight', 'increment', 'item for', + 'load image', 'load movie', 'load nib', 'load panel', + 'load sound', 'localized string', 'lock focus', 'log', + 'open drawer', 'path for', 'pause', 'perform action', + 'play', 'register', 'resume', 'scroll', 'select( all)?', + 'show', 'size to fit', 'start', 'step back', + 'step forward', 'stop', 'synchronize', 'unlock focus', + 'update'] + end + + def self.studio_properties + @studio_properties ||= ['accepts arrow key', 'action method', 'active', + 'alignment', 'allowed identifiers', + 'allows branch selection', 'allows column reordering', + 'allows column resizing', 'allows column selection', + 'allows customization', 'allows editing text attributes', + 'allows empty selection', 'allows mixed state', + 'allows multiple selection', 'allows reordering', + 'allows undo', 'alpha( value)?', 'alternate image', + 'alternate increment value', 'alternate title', + 'animation delay', 'associated file name', + 'associated object', 'auto completes', 'auto display', + 'auto enables items', 'auto repeat', 'auto resizes( outline column)?', + 'auto save expanded items', 'auto save name', + 'auto save table columns', 'auto saves configuration', + 'auto scroll', 'auto sizes all columns to fit', + 'auto sizes cells', 'background color', 'bezel state', + 'bezel style', 'bezeled', 'border rect', 'border type', + 'bordered', 'bounds( rotation)?', 'box type', + 'button returned', 'button type', + 'can choose directories', 'can choose files', 'can draw', 'can hide', + 'cell( (background color|size|type))?', 'characters', + 'class', 'click count', 'clicked( data)? column', + 'clicked data item', 'clicked( data)? row', + 'closeable', 'collating', 'color( (mode|panel))', + 'command key down', 'configuration', + 'content(s| (size|view( margins)?))?', 'context', + 'continuous', 'control key down', 'control size', + 'control tint', 'control view', + 'controller visible', 'coordinate system', + 'copies( on scroll)?', 'corner view', 'current cell', + 'current column', 'current( field)? editor', + 'current( menu)? item', 'current row', + 'current tab view item', 'data source', + 'default identifiers', 'delta (x|y|z)', + 'destination window', 'directory', 'display mode', + 'displayed cell', 'document( (edited|rect|view))?', + 'double value', 'dragged column', 'dragged distance', + 'dragged items', 'draws( cell)? background', + 'draws grid', 'dynamically scrolls', 'echos bullets', + 'edge', 'editable', 'edited( data)? column', + 'edited data item', 'edited( data)? row', 'enabled', + 'enclosing scroll view', 'ending page', + 'error handling', 'event number', 'event type', + 'excluded from windows menu', 'executable path', + 'expanded', 'fax number', 'field editor', 'file kind', + 'file name', 'file type', 'first responder', + 'first visible column', 'flipped', 'floating', + 'font( panel)?', 'formatter', 'frameworks path', + 'frontmost', 'gave up', 'grid color', 'has data items', + 'has horizontal ruler', 'has horizontal scroller', + 'has parent data item', 'has resize indicator', + 'has shadow', 'has sub menu', 'has vertical ruler', + 'has vertical scroller', 'header cell', 'header view', + 'hidden', 'hides when deactivated', 'highlights by', + 'horizontal line scroll', 'horizontal page scroll', + 'horizontal ruler view', 'horizontally resizable', + 'icon image', 'id', 'identifier', + 'ignores multiple clicks', + 'image( (alignment|dims when disabled|frame style|scaling))?', + 'imports graphics', 'increment value', + 'indentation per level', 'indeterminate', 'index', + 'integer value', 'intercell spacing', 'item height', + 'key( (code|equivalent( modifier)?|window))?', + 'knob thickness', 'label', 'last( visible)? column', + 'leading offset', 'leaf', 'level', 'line scroll', + 'loaded', 'localized sort', 'location', 'loop mode', + 'main( (bunde|menu|window))?', 'marker follows cell', + 'matrix mode', 'maximum( content)? size', + 'maximum visible columns', + 'menu( form representation)?', 'miniaturizable', + 'miniaturized', 'minimized image', 'minimized title', + 'minimum column width', 'minimum( content)? size', + 'modal', 'modified', 'mouse down state', + 'movie( (controller|file|rect))?', 'muted', 'name', + 'needs display', 'next state', 'next text', + 'number of tick marks', 'only tick mark values', + 'opaque', 'open panel', 'option key down', + 'outline table column', 'page scroll', 'pages across', + 'pages down', 'palette label', 'pane splitter', + 'parent data item', 'parent window', 'pasteboard', + 'path( (names|separator))?', 'playing', + 'plays every frame', 'plays selection only', 'position', + 'preferred edge', 'preferred type', 'pressure', + 'previous text', 'prompt', 'properties', + 'prototype cell', 'pulls down', 'rate', + 'released when closed', 'repeated', + 'requested print time', 'required file type', + 'resizable', 'resized column', 'resource path', + 'returns records', 'reuses columns', 'rich text', + 'roll over', 'row height', 'rulers visible', + 'save panel', 'scripts path', 'scrollable', + 'selectable( identifiers)?', 'selected cell', + 'selected( data)? columns?', 'selected data items?', + 'selected( data)? rows?', 'selected item identifier', + 'selection by rect', 'send action on arrow key', + 'sends action when done editing', 'separates columns', + 'separator item', 'sequence number', 'services menu', + 'shared frameworks path', 'shared support path', + 'sheet', 'shift key down', 'shows alpha', + 'shows state by', 'size( mode)?', + 'smart insert delete enabled', 'sort case sensitivity', + 'sort column', 'sort order', 'sort type', + 'sorted( data rows)?', 'sound', 'source( mask)?', + 'spell checking enabled', 'starting page', 'state', + 'string value', 'sub menu', 'super menu', 'super view', + 'tab key traverses cells', 'tab state', 'tab type', + 'tab view', 'table view', 'tag', 'target( printer)?', + 'text color', 'text container insert', + 'text container origin', 'text returned', + 'tick mark position', 'time stamp', + 'title(d| (cell|font|height|position|rect))?', + 'tool tip', 'toolbar', 'trailing offset', 'transparent', + 'treat packages as directories', 'truncated labels', + 'types', 'unmodified characters', 'update views', + 'use sort indicator', 'user defaults', + 'uses data source', 'uses ruler', 'uses threaded animation', + 'uses title from previous column', 'value wraps', 'version', + 'vertical( (line scroll|page scroll|ruler view))?', 'vertically resizable', 'view', + 'visible( document rect)?', 'volume', 'width', 'window', + 'windows menu', 'wraps', 'zoomable', 'zoomed'] + end + + operators = %r(\b(#{self.operators.to_a.join('|')})\b) + classes = %r(\b(as )(#{self.classes.to_a.join('|')})\b) + literals = %r(\b(#{self.literals.to_a.join('|')})\b) + commands = %r(\b(#{self.commands.to_a.join('|')})\b) + controls = %r(\b(#{self.controls.to_a.join('|')})\b) + declarations = %r(\b(#{self.declarations.to_a.join('|')})\b) + reserved = %r(\b(#{self.reserved.to_a.join('|')})\b) + builtins = %r(\b(#{self.builtins.to_a.join('|')})s?\b) + handler_params = %r(\b(#{self.handler_params.to_a.join('|')})\b) + references = %r(\b(#{self.references.to_a.join('|')})\b) + studio_properties = %r(\b(#{self.studio_properties.to_a.join('|')})\b) + studio_classes = %r(\b(#{self.studio_classes.to_a.join('|')})s?\b) + studio_commands = %r(\b(#{self.studio_commands.to_a.join('|')})\b) + identifiers = %r(\b([a-zA-Z]\w*)\b) + + state :root do + rule %r/\s+/, Text::Whitespace + rule %r/¬\n/, Literal::String::Escape + rule %r/'s\s+/, Text + rule %r/(--|#).*?$/, Comment::Single + rule %r/\(\*/, Comment::Multiline + rule %r/[\(\){}!,.:]/, Punctuation + rule %r/(«)([^»]+)(»)/ do |match| + token Text, match[1] + token Name::Builtin, match[2] + token Text, match[3] + end + rule %r/\b((?:considering|ignoring)\s*)(application responses|case|diacriticals|hyphens|numeric strings|punctuation|white space)/ do |match| + token Keyword, match[1] + token Name::Builtin, match[2] + end + rule %r/(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|\/|÷|\^)/, Operator + rule operators, Operator::Word + rule %r/^(\s*(?:on|end)\s+)'r'(%s)/ do |match| + token Keyword, match[1] + token Name::Function, match[2] + end + rule %r/^(\s*)(in|on|script|to)(\s+)/ do |match| + token Text, match[1] + token Keyword, match[2] + token Text, match[3] + end + rule classes do |match| + token Keyword, match[1] + token Name::Class, match[2] + end + rule literals, Name::Builtin + rule commands, Name::Builtin + rule controls, Keyword + rule declarations, Keyword + rule reserved, Name::Builtin + rule builtins, Name::Builtin + rule handler_params, Name::Builtin + rule studio_properties, Name::Attribute + rule studio_classes, Name::Builtin + rule studio_commands, Name::Builtin + rule references, Name::Builtin + rule %r/"(\\\\|\\"|[^"])*"/, Literal::String::Double + rule identifiers, Name::Variable + rule %r/[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?/, Literal::Number::Float + rule %r/[-+]?\d+/, Literal::Number::Integer + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/armasm.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/armasm.rb new file mode 100644 index 0000000..51b4a38 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/armasm.rb @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class ArmAsm < RegexLexer + title "ArmAsm" + desc "Arm assembly syntax" + tag 'armasm' + filenames '*.s' + + def self.preproc_keyword + @preproc_keyword ||= %w( + define elif else endif error if ifdef ifndef include line pragma undef warning + ) + end + + def self.file_directive + @file_directive ||= %w( + BIN GET INCBIN INCLUDE LNK + ) + end + + def self.general_directive + @general_directive ||= %w( + ALIAS ALIGN AOF AOUT AREA ARM ASSERT ATTR CN CODE16 CODE32 COMMON CP + DATA DCB DCD DCDO DCDU DCFD DCFDU DCFH DCFHU DCFS DCFSU DCI DCI.N DCI.W + DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT + EXPORTAS EXTERN FIELD FILL FN FRAME FUNCTION GBLA GBLL GBLS GLOBAL IF + IMPORT INFO KEEP LCLA LCLL LCLS LEADR LEAF LTORG MACRO MAP MEND MEXIT + NOFP OPT ORG PRESERVE8 PROC QN RELOC REQUIRE REQUIRE8 RLIST RN ROUT + SETA SETL SETS SN SPACE STRONG SUBT THUMB THUMBX TTL WEND WHILE + \[ \] [|!#*=%&^] + ) + end + + def self.shift_or_condition + @shift_or_condition ||= %w( + ASR LSL LSR ROR RRX AL CC CS EQ GE GT HI HS LE LO LS LT MI NE PL VC VS + asr lsl lsr ror rrx al cc cs eq ge gt hi hs le lo ls lt mi ne pl vc vs + ) + end + + def self.builtin + @builtin ||= %w( + ARCHITECTURE AREANAME ARMASM_VERSION CODESIZE COMMANDLINE CONFIG CPU + ENDIAN FALSE FPIC FPU INPUTFILE INTER LINENUM LINENUMUP LINENUMUPPER + OBJASM_VERSION OPT PC PCSTOREOFFSET REENTRANT ROPI RWPI TRUE VAR + ) + end + + def self.operator + @operator ||= %w( + AND BASE CC CC_ENCODING CHR DEF EOR FATTR FEXEC FLOAD FSIZE INDEX LAND + LEFT LEN LEOR LNOT LOR LOWERCASE MOD NOT OR RCONST REVERSE_CC RIGHT ROL + ROR SHL SHR STR TARGET_ARCH_[0-9A-Z_]+ TARGET_FEATURE_[0-9A-Z_]+ + TARGET_FPU_[A-Z_] TARGET_PROFILE_[ARM] UAL UPPERCASE + ) + end + + state :root do + rule %r/\n/, Text + rule %r/^([ \t]*)(#[ \t]*(?:(?:#{ArmAsm.preproc_keyword.join('|')})(?:[ \t].*)?)?)(\n)/ do + groups Text, Comment::Preproc, Text + end + rule %r/[ \t]+/, Text, :command + rule %r/;.*/, Comment + rule %r/\$[a-z_]\w*\.?/i, Name::Namespace # variable substitution or macro argument + rule %r/\w+|\|[^|\n]+\|/, Name::Label + end + + state :command do + rule %r/\n/, Text, :pop! + rule %r/[ \t]+/ do |m| + token Text + goto :args + end + rule %r/;.*/, Comment, :pop! + rule %r/(?:#{ArmAsm.file_directive.join('|')})\b/ do |m| + token Keyword + goto :filespec + end + rule %r/(?:#{ArmAsm.general_directive.join('|')})(?=[; \t\n])/, Keyword + rule %r/(?:[A-Z][\dA-Z]*|[a-z][\da-z]*)(?:\.[NWnw])?(?:\.[DFIPSUdfipsu]?(?:8|16|32|64)?){,3}\b/, Name::Builtin # rather than attempt to list all opcodes, rely on all-uppercase or all-lowercase rule + rule %r/[a-z_]\w*|\|[^|\n]+\|/i, Name::Function # probably a macro name + rule %r/\$[a-z]\w*\.?/i, Name::Namespace + end + + state :args do + rule %r/\n/, Text, :pop! + rule %r/[ \t]+/, Text + rule %r/;.*/, Comment, :pop! + rule %r/(?:#{ArmAsm.shift_or_condition.join('|')})\b/, Name::Builtin + rule %r/[a-z_]\w*|\|[^|\n]+\|/i, Name::Variable # various types of symbol + rule %r/%[bf]?[at]?\d+(?:[a-z_]\w*)?/i, Name::Label + rule %r/(?:&|0x)\h+(?!p)/i, Literal::Number::Hex + rule %r/(?:&|0x)[.\h]+(?:p[-+]?\d+)?/i, Literal::Number::Float + rule %r/0f_\h{8}|0d_\h{16}/i, Literal::Number::Float + rule %r/(?:2_[01]+|3_[0-2]+|4_[0-3]+|5_[0-4]+|6_[0-5]+|7_[0-6]+|8_[0-7]+|9_[0-8]+|\d+)(?!e)/i, Literal::Number::Integer + rule %r/(?:2_[.01]+|3_[.0-2]+|4_[.0-3]+|5_[.0-4]+|6_[.0-5]+|7_[.0-6]+|8_[.0-7]+|9_[.0-8]+|[.\d]+)(?:e[-+]?\d+)?/i, Literal::Number::Float + rule %r/[@:](?=[ \t]*(?:8|16|32|64|128|256)[^\d])/, Operator + rule %r/[.@]|\{(?:#{ArmAsm.builtin.join('|')})\}/, Name::Constant + rule %r/[-!#%&()*+,\/<=>?^{|}]|\[|\]|!=|&&|\/=|<<|<=|<>|==|><|>=|>>|\|\||:(?:#{ArmAsm.operator.join('|')}):/, Operator + rule %r/\$[a-z]\w*\.?/i, Name::Namespace + rule %r/'/ do |m| + token Literal::String::Char + goto :singlequoted + end + rule %r/"/ do |m| + token Literal::String::Double + goto :doublequoted + end + end + + state :singlequoted do + rule %r/\n/, Text, :pop! + rule %r/\$\$/, Literal::String::Char + rule %r/\$[a-z]\w*\.?/i, Name::Namespace + rule %r/'/ do |m| + token Literal::String::Char + goto :args + end + rule %r/[^$'\n]+/, Literal::String::Char + end + + state :doublequoted do + rule %r/\n/, Text, :pop! + rule %r/\$\$/, Literal::String::Double + rule %r/\$[a-z]\w*\.?/i, Name::Namespace + rule %r/"/ do |m| + token Literal::String::Double + goto :args + end + rule %r/[^$"\n]+/, Literal::String::Double + end + + state :filespec do + rule %r/\n/, Text, :pop! + rule %r/\$\$/, Literal::String::Other + rule %r/\$[a-z]\w*\.?/i, Name::Namespace + rule %r/[^$\n]+/, Literal::String::Other + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/augeas.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/augeas.rb new file mode 100644 index 0000000..2fda76f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/augeas.rb @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Augeas < RegexLexer + title "Augeas" + desc "The Augeas programming language (augeas.net)" + + tag 'augeas' + aliases 'aug' + filenames '*.aug' + mimetypes 'text/x-augeas' + + def self.reserved + @reserved ||= Set.new %w( + _ let del store value counter seq key label autoload incl excl + transform test get put in after set clear insa insb print_string + print_regexp print_endline print_tree lens_ctype lens_atype + lens_ktype lens_vtype lens_format_atype regexp_match + ) + end + + state :basic do + rule %r/\s+/m, Text + rule %r/\(\*/, Comment::Multiline, :comment + end + + state :comment do + rule %r/\*\)/, Comment::Multiline, :pop! + rule %r/\(\*/, Comment::Multiline, :comment + rule %r/[^*)]+/, Comment::Multiline + rule %r/[*)]/, Comment::Multiline + end + + state :root do + mixin :basic + + rule %r/(:)(\w\w*)/ do + groups Punctuation, Keyword::Type + end + + rule %r/\w[\w']*/ do |m| + name = m[0] + if name == "module" + token Keyword::Reserved + push :module + elsif self.class.reserved.include? name + token Keyword::Reserved + elsif name =~ /\A[A-Z]/ + token Keyword::Namespace + else + token Name + end + end + + rule %r/"/, Str, :string + rule %r/\//, Str, :regexp + + rule %r([-*+.=?\|]+), Operator + rule %r/[\[\](){}:;]/, Punctuation + end + + state :module do + rule %r/\s+/, Text + rule %r/[A-Z][a-zA-Z0-9_.]*/, Name::Namespace, :pop! + end + + state :regexp do + rule %r/\//, Str::Regex, :pop! + rule %r/[^\\\/]+/, Str::Regex + rule %r/\\[\\\/]/, Str::Regex + rule %r/\\/, Str::Regex + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\/, Str::Escape, :escape + rule %r/[^\\"]+/, Str + end + + state :escape do + rule %r/[abfnrtv"'&\\]/, Str::Escape, :pop! + rule %r/\^[\]\[A-Z@\^_]/, Str::Escape, :pop! + rule %r/o[0-7]+/i, Str::Escape, :pop! + rule %r/x[\da-f]+/i, Str::Escape, :pop! + rule %r/\d+/, Str::Escape, :pop! + rule %r/\s+/, Str::Escape, :pop! + rule %r/./, Str, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/awk.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/awk.rb new file mode 100644 index 0000000..8301f86 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/awk.rb @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Awk < RegexLexer + title "Awk" + desc "pattern-directed scanning and processing language" + + tag 'awk' + filenames '*.awk' + mimetypes 'application/x-awk' + + def self.detect?(text) + return true if text.shebang?('awk') + end + + id = /[$a-zA-Z_][a-zA-Z0-9_]*/ + + def self.keywords + @keywords ||= Set.new %w( + if else while for do break continue return next nextfile delete + exit print printf getline + ) + end + + def self.declarations + @declarations ||= Set.new %w(function) + end + + def self.reserved + @reserved ||= Set.new %w(BEGIN END) + end + + def self.constants + @constants ||= Set.new %w( + CONVFMT FS NF NR FNR FILENAME RS OFS ORS OFMT SUBSEP ARGC ARGV + ENVIRON + ) + end + + def self.builtins + @builtins ||= %w( + exp log sqrt sin cos atan2 length rand srand int substr index match + split sub gsub sprintf system tolower toupper + ) + end + + state :comments_and_whitespace do + rule %r/\s+/, Text + rule %r(#.*?$), Comment::Single + end + + state :expr_start do + mixin :comments_and_whitespace + rule %r(/) do + token Str::Regex + goto :regex + end + rule %r//, Text, :pop! + end + + state :regex do + rule %r(/) do + token Str::Regex + goto :regex_end + end + + rule %r([^/]\n), Error, :pop! + + rule %r/\n/, Error, :pop! + rule %r/\[\^/, Str::Escape, :regex_group + rule %r/\[/, Str::Escape, :regex_group + rule %r/\\./, Str::Escape + rule %r{[(][?][:=<!]}, Str::Escape + rule %r/[{][\d,]+[}]/, Str::Escape + rule %r/[()?]/, Str::Escape + rule %r/./, Str::Regex + end + + state :regex_end do + rule(//) { pop! } + end + + state :regex_group do + # specially highlight / in a group to indicate that it doesn't + # close the regex + rule %r(/), Str::Escape + + rule %r([^/]\n) do + token Error + pop! 2 + end + + rule %r/\]/, Str::Escape, :pop! + rule %r/\\./, Str::Escape + rule %r/./, Str::Regex + end + + state :bad_regex do + rule %r/[^\n]+/, Error, :pop! + end + + state :root do + mixin :comments_and_whitespace + rule %r((?<=\n)(?=\s|/)), Text, :expr_start + rule %r([-<>+*/%\^!=]=?|in\b|\+\+|--|\|), Operator, :expr_start + rule %r(&&|\|\||~!?), Operator, :expr_start + rule %r/[(\[,]/, Punctuation, :expr_start + rule %r/;/, Punctuation, :statement + rule %r/[)\].]/, Punctuation + + rule %r/[?]/ do + token Punctuation + push :ternary + push :expr_start + end + + rule %r/[{}]/, Punctuation, :statement + + rule id do |m| + if self.class.keywords.include? m[0] + token Keyword + push :expr_start + elsif self.class.declarations.include? m[0] + token Keyword::Declaration + push :expr_start + elsif self.class.reserved.include? m[0] + token Keyword::Reserved + elsif self.class.constants.include? m[0] + token Keyword::Constant + elsif self.class.builtins.include? m[0] + token Name::Builtin + elsif m[0] =~ /^\$/ + token Name::Variable + else + token Name::Other + end + end + + rule %r/[0-9]+\.[0-9]+/, Num::Float + rule %r/[0-9]+/, Num::Integer + rule %r/"(\\[\\"]|[^"])*"/, Str::Double + rule %r/:/, Punctuation + end + + state :statement do + rule %r/[{}]/, Punctuation + mixin :expr_start + end + + state :ternary do + rule %r/:/ do + token Punctuation + goto :expr_start + end + + mixin :root + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/batchfile.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/batchfile.rb new file mode 100644 index 0000000..cc61d85 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/batchfile.rb @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Batchfile < RegexLexer + title "Batchfile" + desc "Windows Batch File" + + tag 'batchfile' + aliases 'bat', 'batch', 'dosbatch', 'winbatch' + filenames '*.bat', '*.cmd' + + mimetypes 'application/bat', 'application/x-bat', 'application/x-msdos-program' + + def self.keywords + @keywords ||= %w( + if else for in do goto call exit + ) + end + + def self.operator_words + @operator_words ||= %w( + exist defined errorlevel cmdextversion not equ neq lss leq gtr geq + ) + end + + def self.devices + @devices ||= %w( + con prn aux nul com1 com2 com3 com4 com5 com6 com7 com8 com9 lpt1 lpt2 + lpt3 lpt4 lpt5 lpt6 lpt7 lpt8 lpt9 + ) + end + + def self.builtin_commands + @builtin_commands ||= %w( + assoc attrib break bcdedit cacls cd chcp chdir chkdsk chkntfs choice + cls cmd color comp compact convert copy date del dir diskpart doskey + dpath driverquery echo endlocal erase fc find findstr format fsutil + ftype gpresult graftabl help icacls label md mkdir mklink mode more + move openfiles path pause popd print prompt pushd rd recover ren + rename replace rmdir robocopy setlocal sc schtasks shift shutdown sort + start subst systeminfo takeown tasklist taskkill time timeout title + tree type ver verify vol xcopy waitfor wmic + ) + end + + def self.other_commands + @other_commands ||= %w( + addusers admodcmd ansicon arp at bcdboot bitsadmin browstat certreq + certutil change cidiag cipher cleanmgr clip cmdkey compress convertcp + coreinfo csccmd csvde cscript curl debug defrag delprof deltree devcon + diamond dirquota diruse diskshadow diskuse dism dnscmd dsacls dsadd + dsget dsquery dsmod dsmove dsrm dsmgmt dsregcmd edlin eventcreate + expand extract fdisk fltmc forfiles freedisk ftp getmac gpupdate + hostname ifmember inuse ipconfig kill lgpo lodctr logman logoff + logtime makecab mapisend mbsacli mem mountvol moveuser msg mshta + msiexec msinfo32 mstsc nbtstat net net1 netdom netsh netstat nlsinfo + nltest now nslookup ntbackup ntdsutil ntoskrnl ntrights nvspbind + pathping perms ping portqry powercfg pngout pnputil printbrm prncnfg + prnmngr procdump psexec psfile psgetsid psinfo pskill pslist + psloggedon psloglist pspasswd psping psservice psshutdown pssuspend + qbasic qgrep qprocess query quser qwinsta rasdial reg reg1 regdump + regedt32 regsvr32 regini reset restore rundll32 rmtshare route rpcping + run runas scandisk setspn setx sfc share shellrunas shortcut sigcheck + sleep slmgr strings subinacl sysmon telnet tftp tlist touch tracerpt + tracert tscon tsdiscon tskill tttracer typeperf tzutil undelete + unformat verifier vmconnect vssadmin w32tm wbadmin wecutil wevtutil + wget where whoami windiff winrm winrs wpeutil wpr wusa wuauclt wscript + ) + end + + def self.attributes + @attributes ||= %w( + on off disable enableextensions enabledelayedexpansion + ) + end + + state :basic do + # Comments + rule %r/@?\brem\b.*$/i, Comment + + # Empty Labels + rule %r/^::.*$/, Comment + + # Labels + rule %r/:[a-z]+/i, Name::Label + + rule %r/([a-z]\w*)(\.exe|com|bat|cmd|msi)?/i do |m| + if self.class.devices.include? m[1] + groups Keyword::Reserved, Error + elsif self.class.keywords.include? m[1] + groups Keyword, Error + elsif self.class.operator_words.include? m[1] + groups Operator::Word, Error + elsif self.class.builtin_commands.include? m[1] + token Name::Builtin + elsif self.class.other_commands.include? m[1] + token Name::Builtin + elsif self.class.attributes.include? m[1] + groups Name::Attribute, Error + elsif "set".casecmp m[1] + groups Keyword::Declaration, Error + else + token Text + end + end + + rule %r/((?:[\/\+]|--?)[a-z]+)\s*/i, Name::Attribute + + mixin :expansions + + rule %r/[<>&|(){}\[\]\-+=;,~?*]/, Operator + end + + state :escape do + rule %r/\^./m, Str::Escape + end + + state :expansions do + # Normal and Delayed expansion + rule %r/[%!]+([a-z_$@#]+)[%!]+/i, Name::Variable + # For Variables + rule %r/(\%+~?[a-z]+\d?)/i, Name::Variable::Magic + end + + state :double_quotes do + mixin :escape + rule %r/["]/, Str::Double, :pop! + mixin :expansions + rule %r/[^\^"%!]+/, Str::Double + end + + state :single_quotes do + mixin :escape + rule %r/[']/, Str::Single, :pop! + mixin :expansions + rule %r/[^\^'%!]+/, Str::Single + end + + state :backtick do + mixin :escape + rule %r/[`]/, Str::Backtick, :pop! + mixin :expansions + rule %r/[^\^`%!]+/, Str::Backtick + end + + state :data do + rule %r/\s+/, Text + rule %r/0x[0-9a-f]+/i, Literal::Number::Hex + rule %r/[0-9]/, Literal::Number + rule %r/["]/, Str::Double, :double_quotes + rule %r/[']/, Str::Single, :single_quotes + rule %r/[`]/, Str::Backtick, :backtick + rule %r/[^\s&|()\[\]{}\^=;!%+\-,"'`~?*]+/, Text + mixin :escape + end + + state :root do + mixin :basic + mixin :data + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bbcbasic.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bbcbasic.rb new file mode 100644 index 0000000..c64a1b6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bbcbasic.rb @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class BBCBASIC < RegexLexer + title "BBCBASIC" + desc "BBC BASIC syntax" + tag 'bbcbasic' + filenames '*,fd1' + + def self.punctuation + @punctuation ||= %w( + [,;'~] SPC TAB + ) + end + + def self.function + @function ||= %w( + ABS ACS ADVAL ASC ASN ATN BEATS BEAT BGET# CHR\$ COS COUNT DEG DIM + EOF# ERL ERR EVAL EXP EXT# FN GET\$# GET\$ GET HIMEM INKEY\$ INKEY + INSTR INT LEFT\$ LEN LN LOG LOMEM MID\$ OPENIN OPENOUT OPENUP PAGE + POINT POS PTR# RAD REPORT\$ RIGHT\$ RND SGN SIN SQR STR\$ STRING\$ SUM + SUMLEN TAN TEMPO TIME\$ TIME TOP USR VAL VPOS + ) + end + + def self.statement + @statement ||= %w( + BEATS BPUT# CALL CASE CHAIN CLEAR CLG CLOSE# CLS COLOR COLOUR DATA + ELSE ENDCASE ENDIF ENDPROC ENDWHILE END ENVELOPE FOR GCOL GOSUB GOTO + IF INSTALL LET LIBRARY MODE NEXT OFF OF ON ORIGIN OSCI OTHERWISE + OVERLAY PLOT PRINT# PRINT PROC QUIT READ REPEAT REPORT RETURN SOUND + STEP STEREO STOP SWAP SYS THEN TINT TO VDU VOICES VOICE UNTIL WAIT + WHEN WHILE WIDTH + ) + end + + def self.operator + @operator ||= %w( + << <= <> < >= >>> >> > [-!$()*+/=?^|] AND DIV EOR MOD NOT OR + ) + end + + def self.constant + @constant ||= %w( + FALSE TRUE + ) + end + + state :expression do + rule %r/#{BBCBASIC.function.join('|')}/o, Name::Builtin # function or pseudo-variable + rule %r/#{BBCBASIC.operator.join('|')}/o, Operator + rule %r/#{BBCBASIC.constant.join('|')}/o, Name::Constant + rule %r/"[^"]*"/o, Literal::String + rule %r/[a-z_`][\w`]*[$%]?/io, Name::Variable + rule %r/@%/o, Name::Variable + rule %r/[\d.]+/o, Literal::Number + rule %r/%[01]+/o, Literal::Number::Bin + rule %r/&[\h]+/o, Literal::Number::Hex + end + + state :root do + rule %r/(:+)( *)(\*)(.*)/ do + groups Punctuation, Text, Keyword, Text # CLI command + end + rule %r/(\n+ *)(\*)(.*)/ do + groups Text, Keyword, Text # CLI command + end + rule %r/(ELSE|OTHERWISE|REPEAT|THEN)( *)(\*)(.*)/ do + groups Keyword, Text, Keyword, Text # CLI command + end + rule %r/[ \n]+/o, Text + rule %r/:+/o, Punctuation + rule %r/[\[]/o, Keyword, :assembly1 + rule %r/REM *>.*/o, Comment::Special + rule %r/REM.*/o, Comment + rule %r/(?:#{BBCBASIC.statement.join('|')}|CIRCLE(?: *FILL)?|DEF *(?:FN|PROC)|DRAW(?: *BY)?|DIM(?!\()|ELLIPSE(?: *FILL)?|ERROR(?: *EXT)?|FILL(?: *BY)?|INPUT(?:#| *LINE)?|LINE(?: *INPUT)?|LOCAL(?: *DATA| *ERROR)?|MOUSE(?: *COLOUR| *OFF| *ON| *RECTANGLE| *STEP| *TO)?|MOVE(?: *BY)?|ON(?! *ERROR)|ON *ERROR *(?:LOCAL|OFF)?|POINT(?: *BY)?(?!\()|RECTANGE(?: *FILL)?|RESTORE(?: *DATA| *ERROR)?|TRACE(?: *CLOSE| *ENDPROC| *OFF| *STEP(?: *FN| *ON| *PROC)?| *TO)?)/o, Keyword + mixin :expression + rule %r/#{BBCBASIC.punctuation.join('|')}/o, Punctuation + end + + # Assembly statements are parsed as + # {label} {directive|opcode |']' {expressions}} {comment} + # Technically, you don't need whitespace between opcodes and arguments, + # but this is rare in uncrunched source and trying to enumerate all + # possible opcodes here is impractical so we colour it as though + # the whitespace is required. Opcodes and directives can only easily be + # distinguished from the symbols that make up expressions by looking at + # their position within the statement. Similarly, ']' is treated as a + # keyword at the start of a statement or as punctuation elsewhere. This + # requires a two-state state machine. + + state :assembly1 do + rule %r/ +/o, Text + rule %r/]/o, Keyword, :pop! + rule %r/[:\n]/o, Punctuation + rule %r/\.[a-z_`][\w`]*%? */io, Name::Label + rule %r/(?:REM|;)[^:\n]*/o, Comment + rule %r/[^ :\n]+/o, Keyword, :assembly2 + end + + state :assembly2 do + rule %r/ +/o, Text + rule %r/[:\n]/o, Punctuation, :pop! + rule %r/(?:REM|;)[^:\n]*/o, Comment, :pop! + mixin :expression + rule %r/[!#,@\[\]^{}]/, Punctuation + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bibtex.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bibtex.rb new file mode 100644 index 0000000..cc6ece7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bibtex.rb @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# Regular expressions based on https://github.com/SaswatPadhi/prismjs-bibtex +# and https://github.com/alecthomas/chroma/blob/master/lexers/b/bibtex.go + +module Rouge + module Lexers + class BibTeX < RegexLexer + title 'BibTeX' + desc "BibTeX" + tag 'bibtex' + aliases 'bib' + filenames '*.bib' + + valid_punctuation = Regexp.quote("@!$&.\\:;<>?[]^`|~*/+-") + valid_name = /[a-z_#{valid_punctuation}][\w#{valid_punctuation}]*/io + + state :root do + mixin :whitespace + + rule %r/@(#{valid_name})/o do |m| + match = m[1].downcase + + if match == "comment" + token Comment + elsif match == "preamble" + token Name::Class + push :closing_brace + push :value + push :opening_brace + elsif match == "string" + token Name::Class + push :closing_brace + push :field + push :opening_brace + else + token Name::Class + push :closing_brace + push :command_body + push :opening_brace + end + end + + rule %r/.+/, Comment + end + + state :opening_brace do + mixin :whitespace + rule %r/[{(]/, Punctuation, :pop! + end + + state :closing_brace do + mixin :whitespace + rule %r/[})]/, Punctuation, :pop! + end + + state :command_body do + mixin :whitespace + rule %r/[^\s\,\}]+/ do + token Name::Label + pop! + push :fields + end + end + + state :fields do + mixin :whitespace + rule %r/,/, Punctuation, :field + rule(//) { pop! } + end + + state :field do + mixin :whitespace + rule valid_name do + token Name::Attribute + push :value + push :equal_sign + end + rule(//) { pop! } + end + + state :equal_sign do + mixin :whitespace + rule %r/=/, Punctuation, :pop! + end + + state :value do + mixin :whitespace + rule valid_name, Name::Variable + rule %r/"/, Literal::String, :quoted_string + rule %r/\{/, Literal::String, :braced_string + rule %r/\d+/, Literal::Number + rule %r/#/, Punctuation + rule(//) { pop! } + end + + state :quoted_string do + rule %r/\{/, Literal::String, :braced_string + rule %r/"/, Literal::String, :pop! + rule %r/[^\{\"]+/, Literal::String + end + + state :braced_string do + rule %r/\{/, Literal::String, :braced_string + rule %r/\}/, Literal::String, :pop! + rule %r/[^\{\}]+/, Literal::String + end + + state :whitespace do + rule %r/\s+/, Text + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/biml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/biml.rb new file mode 100644 index 0000000..602a57a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/biml.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'xml.rb' + + class BIML < XML + title "BIML" + desc "BIML, Business Intelligence Markup Language" + tag 'biml' + filenames '*.biml' + + def self.detect?(text) + return true if text =~ /<\s*Biml\b/ + end + + prepend :root do + rule %r(<#\@\s*)m, Name::Tag, :directive_tag + + rule %r(<#[=]?\s*)m, Name::Tag, :directive_as_csharp + end + + prepend :attr do + #TODO: how to deal with embedded <# tags inside a attribute string + #rule %r("<#[=]?\s*)m, Name::Tag, :directive_as_csharp + end + + state :directive_as_csharp do + rule %r/\s*#>\s*/m, Name::Tag, :pop! + rule %r(.*?(?=\s*#>\s*))m do + delegate CSharp + end + end + + state :directive_tag do + rule %r/\s+/m, Text + rule %r/[\w.:-]+\s*=/m, Name::Attribute, :attr + rule %r/\w+\s*/m, Name::Attribute + rule %r(/?\s*#>), Name::Tag, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bpf.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bpf.rb new file mode 100644 index 0000000..cd3307c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bpf.rb @@ -0,0 +1,118 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class BPF < RegexLexer + title "BPF" + desc "BPF bytecode syntax" + tag 'bpf' + + TYPE_KEYWORDS = %w( + u8 u16 u32 u64 s8 s16 s32 s64 ll + ).join('|') + + MISC_KEYWORDS = %w( + be16 be32 be64 le16 le32 le64 bswap16 bswap32 bswap64 exit lock map + ).join('|') + + state :root do + # Line numbers and hexadecimal output from bpftool/objdump + rule %r/(\d+)(:)(\s+)(\(\h{2}\))/i do + groups Generic::Lineno, Punctuation, Text::Whitespace, Generic + end + rule %r/(\d+)(:)(\s+)((?:\h{2} ){8})/i do + groups Generic::Lineno, Punctuation, Text::Whitespace, Generic + end + rule %r/(\d+)(:)(\s+)/i do + groups Generic::Lineno, Punctuation, Text::Whitespace + end + + # Calls to helpers + rule %r/(call)(\s+)(\d+)/i do + groups Keyword, Text::Whitespace, Literal::Number::Integer + end + rule %r/(call)(\s+)(\w+)(?:(#)(\d+))?/i do + groups Keyword, Text::Whitespace, Name::Builtin, Punctuation, Literal::Number::Integer + end + + # Unconditional jumps + rule %r/(gotol?)(\s*)([-+]0x\w+)?([-+]\d+)?(\s*)(<?\w+>?)/i do + groups Keyword, Text::Whitespace, Literal::Number::Hex, Literal::Number::Integer, Text::Whitespace, Name::Label + end + + # Conditional jumps + rule %r/(if)(\s+)([rw]\d+)(\s*)([s!=<>]+)(\s*)(0x\h+|[-]?\d+)(\s*)(gotol?)(\s*)([-+]0x\w+)?([-+]\d+)?(\s*)(<?\w+>?)/i do + groups Keyword, Text::Whitespace, Name, Text::Whitespace, Operator, Text::Whitespace, Literal::Number, Text::Whitespace, Keyword, Text::Whitespace, Literal::Number::Hex, Literal::Number::Integer, Text::Whitespace, Name::Label + end + rule %r/(if)(\s+)([rw]\d+)(\s*)([s!=<>]+)(\s*)([rw]\d+)(\s*)(gotol?)(\s*)([-+]0x\w+)?([-+]\d+)?(\s*)(<?\w+>?)/i do + groups Keyword, Text::Whitespace, Name, Text::Whitespace, Operator, Text::Whitespace, Name, Text::Whitespace, Keyword, Text::Whitespace, Literal::Number::Hex, Literal::Number::Integer, Text::Whitespace, Name::Label + end + + # Dereferences + rule %r/(\*)(\s*)(\()(#{TYPE_KEYWORDS})(\s*)(\*)(\))/i do + groups Operator, Text::Whitespace, Punctuation, Keyword::Type, Text::Whitespace, Operator, Punctuation + push :address + end + + # Operators + rule %r/[+-\/\*&|><^s]{0,3}=/i, Operator + + # Registers + rule %r/([+-]?)([rw]\d+)/i do + groups Punctuation, Name + end + + # Comments + rule %r/\/\//, Comment::Single, :linecomment + rule %r/\/\*/, Comment::Multiline, :multilinescomment + + rule %r/#{MISC_KEYWORDS}/i, Keyword + + # Literals and global objects (maps) refered by name + rule %r/([-]?0x\h+|[-]?\d+)(\s*)(ll)?/i do + groups Literal::Number, Text::Whitespace, Keyword::Type + end + rule %r/(\w+)(\s*)(ll)/i do + groups Name, Text::Whitespace, Keyword::Type + end + + # Labels + rule %r/(\w+)(\s*)(:)/i do + groups Name::Label, Text::Whitespace, Punctuation + end + + rule %r{.}m, Text + end + + state :address do + # Address is offset from register + rule %r/(\()([rw]\d+)(\s*)([+-])(\s*)(\d+)(\))/i do + groups Punctuation, Name, Text::Whitespace, Operator, Text::Whitespace, Literal::Number::Integer, Punctuation + pop! + end + + # Address is array subscript + rule %r/(\w+)(\[)(\d+)(\])/i do + groups Name, Punctuation, Literal::Number::Integer, Punctuation + pop! + end + rule %r/(\w+)(\[)([rw]\d+)(\])/i do + groups Name, Punctuation, Name, Punctuation + pop! + end + end + + state :linecomment do + rule %r/\n/, Comment::Single, :pop! + rule %r/.+/, Comment::Single + end + + state :multilinescomment do + rule %r/\*\//, Comment::Multiline, :pop! + rule %r/([^\*\/]+)/, Comment::Multiline + rule %r/([\*\/])/, Comment::Multiline + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/brainfuck.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/brainfuck.rb new file mode 100644 index 0000000..6c25d00 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/brainfuck.rb @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Brainfuck < RegexLexer + tag 'brainfuck' + filenames '*.b', '*.bf' + mimetypes 'text/x-brainfuck' + + title "Brainfuck" + aliases "bf" + desc "The Brainfuck programming language" + + start { push :bol } + + state :bol do + rule %r/\s+/m, Text + rule %r/\[/, Comment::Multiline, :comment_multi + rule(//) { pop! } + end + + state :root do + rule %r/\]/, Error + rule %r/\[/, Punctuation, :loop + + mixin :comment_single + mixin :commands + end + + state :comment_multi do + rule %r/\[/, Comment::Multiline, :comment_multi + rule %r/\]/, Comment::Multiline, :pop! + rule %r/[^\[\]]+?/m, Comment::Multiline + end + + state :comment_single do + rule %r/[^><+\-.,\[\]]+/, Comment::Single + end + + state :loop do + rule %r/\[/, Punctuation, :loop + rule %r/\]/, Punctuation, :pop! + mixin :comment_single + mixin :commands + end + + state :commands do + rule %r/[><]+/, Name::Builtin + rule %r/[+\-.,]+/, Name::Function + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/brightscript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/brightscript.rb new file mode 100644 index 0000000..ebd6336 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/brightscript.rb @@ -0,0 +1,147 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Brightscript < RegexLexer + title "BrightScript" + desc "BrightScript Programming Language (https://developer.roku.com/en-ca/docs/references/brightscript/language/brightscript-language-reference.md)" + tag 'brightscript' + aliases 'bs', 'brs' + filenames '*.brs' + + # https://developer.roku.com/en-ca/docs/references/brightscript/language/global-utility-functions.md + # https://developer.roku.com/en-ca/docs/references/brightscript/language/global-string-functions.md + # https://developer.roku.com/en-ca/docs/references/brightscript/language/global-math-functions.md + def self.name_builtin + @name_builtin ||= Set.new %w( + ABS ASC ATN CDBL CHR CINT CONTROL COPYFILE COS CREATEDIRECTORY CSNG + DELETEDIRECTORY DELETEFILE EXP FINDMEMBERFUNCTION FINDNODE FIX + FORMATDRIVEFORMATJSON GETINTERFACE INSTR INT LCASE LEFT LEN LISTDIR + LOG MATCHFILES MID MOVEFILE OBSERVEFIELD PARSEJSON PARSEXML + READASCIIFILE REBOOTSYSTEM RIGHT RND RUNGARBAGECOLLECTOR SGN SIN + SLEEP SQR STR STRI STRING STRINGI STRTOI SUBSTITUTE TANTEXTTOP TEXT + TRUCASE UPTIME VALVISIBLE VISIBLE WAIT + ) + end + + # https://developer.roku.com/en-ca/docs/references/brightscript/language/reserved-words.md + def self.keyword_reserved + @keyword_reserved ||= Set.new %w( + BOX CREATEOBJECT DIM EACH ELSE ELSEIF END ENDFUNCTION ENDIF ENDSUB + ENDWHILE EVAL EXIT EXITWHILE FALSE FOR FUNCTION GETGLOBALAA + GETLASTRUNCOMPILEERROR GETLASTRUNRUNTIMEERROR GOTO IF IN INVALID LET + LINE_NUM M NEXT OBJFUN POS PRINT REM RETURN RUN STEP STOP SUB TAB TO + TRUE TYPE WHILE + ) + end + + # These keywords are present in BrightScript, but not supported in standard .brs files + def self.keyword_reserved_unsupported + @keyword_reserved_unsupported ||= Set.new %w( + CLASS CONST IMPORT LIBRARY NAMESPACE PRIVATE PROTECTED PUBLIC + ) + end + + # https://developer.roku.com/en-ca/docs/references/brightscript/language/expressions-variables-types.md + def self.keyword_type + @keyword_type ||= Set.new %w( + BOOLEAN DIM DOUBLE DYNAMIC FLOAT FUNCTION INTEGER INTERFACE INVALID + LONGINTEGER OBJECT STRING VOID + ) + end + + # https://developer.roku.com/en-ca/docs/references/brightscript/language/expressions-variables-types.md#operators + def self.operator_word + @operator_word ||= Set.new %w( + AND AS MOD NOT OR THEN + ) + end + + # Scene graph components configured as builtins. See BrightScript component documentation e.g. + # https://developer.roku.com/en-ca/docs/references/brightscript/components/roappinfo.md + def self.builtins + @builtins ||= Set.new %w( + roAppendFile roAppInfo roAppManager roArray roAssociativeArray + roAudioGuide roAudioMetadata roAudioPlayer roAudioPlayerEvent + roAudioResourceroBitmap roBoolean roBoolean roBrightPackage roBrSub + roButton roByteArray roCaptionRenderer roCaptionRendererEvent + roCecInterface roCECStatusEvent roChannelStore roChannelStoreEvent + roClockWidget roCodeRegistrationScreen + roCodeRegistrationScreenEventroCompositor roControlDown roControlPort + roControlPort roControlUp roCreateFile roDatagramReceiver + roDatagramSender roDataGramSocket roDateTime roDeviceInfo + roDeviceInfoEvent roDoubleroEVPCipher roEVPDigest roFileSystem + roFileSystemEvent roFloat roFont roFontMetrics roFontRegistry + roFunction roGlobal roGpio roGridScreen roGridScreenEvent + roHdmiHotPlugEventroHdmiStatus roHdmiStatusEvent roHMAC roHttpAgent + roImageCanvas roImageCanvasEvent roImageMetadata roImagePlayer + roImageWidgetroInput roInputEvent roInt roInt roInvalid roInvalid + roIRRemote roKeyboard roKeyboardPress roKeyboardScreen + roKeyboardScreenEventroList roListScreen roListScreenEvent + roLocalization roLongInteger roMessageDialog roMessageDialogEvent + roMessagePort roMicrophone roMicrophoneEvent roNetworkConfiguration + roOneLineDialog roOneLineDialogEventroParagraphScreen + roParagraphScreenEvent roPath roPinEntryDialog roPinEntryDialogEvent + roPinentryScreen roPosterScreen roPosterScreenEventroProgramGuide + roQuadravoxButton roReadFile roRectangleroRegexroRegion roRegistry + roRegistrySection roResourceManager roRSA roRssArticle roRssParser + roScreen roSearchHistory roSearchScreen roSearchScreenEvent + roSerialPort roSGNode roSGNodeEvent roSGScreenroSGScreenEvent + roSlideShowroSlideShowEvent roSNS5 roSocketAddress roSocketEvent + roSpringboardScreen roSpringboardScreenEventroSprite roStorageInfo + roStreamSocket roStringroSystemLogroSystemLogEvent roSystemTime + roTextFieldroTextScreen roTextScreenEvent roTextToSpeech + roTextToSpeechEvent roTextureManager roTextureRequest + roTextureRequestEventroTextWidget roTimer roTimespan roTouchScreen + roTunerroTunerEvent roUniversalControlEvent roUrlEvent roUrlTransfer + roVideoEvent roVideoInput roVideoMode roVideoPlayer roVideoPlayerEvent + roVideoScreen roVideoScreenEventroWriteFile roXMLElement roXMLList + ) + end + + id = /[$a-z_][a-z0-9_]*/io + + state :root do + rule %r/\s+/m, Text::Whitespace + + # https://developer.roku.com/en-ca/docs/references/brightscript/language/expressions-variables-types.md#comments + rule %r/\'.*/, Comment::Single + rule %r/REM.*/i, Comment::Single + + # https://developer.roku.com/en-ca/docs/references/brightscript/language/expressions-variables-types.md#operators + rule %r([~!%^&*+=\|?:<>/-]), Operator + + rule %r/\d*\.\d+(e-?\d+)?/i, Num::Float + rule %r/\d+[lu]*/i, Num::Integer + + rule %r/".*?"/, Str::Double + + rule %r/#{id}(?=\s*[(])/, Name::Function + + rule %r/[()\[\],.;{}]/, Punctuation + + rule id do |m| + caseSensitiveChunk = m[0] + caseInsensitiveChunk = m[0].upcase + + if self.class.builtins.include?(caseSensitiveChunk) + token Keyword::Reserved + elsif self.class.keyword_reserved.include?(caseInsensitiveChunk) + token Keyword::Reserved + elsif self.class.keyword_reserved_unsupported.include?(caseInsensitiveChunk) + token Keyword::Reserved + elsif self.class.keyword_type.include?(caseInsensitiveChunk) + token Keyword::Type + elsif self.class.name_builtin.include?(caseInsensitiveChunk) + token Name::Builtin + elsif self.class.operator_word.include?(caseInsensitiveChunk) + token Operator::Word + else + token Name + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bsl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bsl.rb new file mode 100644 index 0000000..109d81f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/bsl.rb @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Bsl < RegexLexer + title "1C (BSL)" + desc "The 1C:Enterprise programming language" + tag 'bsl' + filenames '*.bsl', '*.os' + + KEYWORDS = /(?<=[^\wа-яё]|^)(?: + КонецПроцедуры | EndProcedure | КонецФункции | EndFunction + | Прервать | Break | Продолжить | Continue + | Возврат | Return | Если | If + | Иначе | Else | ИначеЕсли | ElsIf + | Тогда | Then | КонецЕсли | EndIf + | Попытка | Try | Исключение | Except + | КонецПопытки | EndTry | Raise | ВызватьИсключение + | Пока | While | Для | For + | Каждого | Each | Из | In + | По | To | Цикл | Do + | КонецЦикла | EndDo | НЕ | NOT + | И | AND | ИЛИ | OR + | Новый | New | Процедура | Procedure + | Функция | Function | Перем | Var + | Экспорт | Export | Знач | Val + )(?=[^\wа-яё]|$)/ix + + BUILTINS = /(?<=[^\wа-яё]|^)(?: + СтрДлина|StrLen|СокрЛ|TrimL|СокрП|TrimR|СокрЛП|TrimAll|Лев|Left|Прав|Right|Сред|Mid|СтрНайти|StrFind|ВРег|Upper|НРег|Lower|ТРег|Title|Символ|Char|КодСимвола|CharCode|ПустаяСтрока|IsBlankString|СтрЗаменить|StrReplace|СтрЧислоСтрок|StrLineCount|СтрПолучитьСтроку|StrGetLine|СтрЧислоВхождений|StrOccurrenceCount|СтрСравнить|StrCompare|СтрНачинаетсяС|StrStartWith|СтрЗаканчиваетсяНа|StrEndsWith|СтрРазделить|StrSplit|СтрСоединить|StrConcat + | Цел|Int|Окр|Round|ACos|ACos|ASin|ASin|ATan|ATan|Cos|Cos|Exp|Exp|Log|Log|Log10|Log10|Pow|Pow|Sin|Sin|Sqrt|Sqrt|Tan|Tan + | Год|Year|Месяц|Month|День|Day|Час|Hour|Минута|Minute|Секунда|Second|НачалоГода|BegOfYear|НачалоДня|BegOfDay|НачалоКвартала|BegOfQuarter|НачалоМесяца|BegOfMonth|НачалоМинуты|BegOfMinute|НачалоНедели|BegOfWeek|НачалоЧаса|BegOfHour|КонецГода|EndOfYear|КонецДня|EndOfDay|КонецКвартала|EndOfQuarter|КонецМесяца|EndOfMonth|КонецМинуты|EndOfMinute|КонецНедели|EndOfWeek|КонецЧаса|EndOfHour|НеделяГода|WeekOfYear|ДеньГода|DayOfYear|ДеньНедели|WeekDay|ТекущаяДата|CurrentDate|ДобавитьМесяц|AddMonth + | Тип|Type|ТипЗнч|TypeOf + | Булево|Boolean|Число|Number|Строка|String|Дата|Date + | ПоказатьВопрос|ShowQueryBox|Вопрос|DoQueryBox|ПоказатьПредупреждение|ShowMessageBox|Предупреждение|DoMessageBox|Сообщить|Message|ОчиститьСообщения|ClearMessages|ОповеститьОбИзменении|NotifyChanged|Состояние|Status|Сигнал|Beep|ПоказатьЗначение|ShowValue|ОткрытьЗначение|OpenValue|Оповестить|Notify|ОбработкаПрерыванияПользователя|UserInterruptProcessing|ОткрытьСодержаниеСправки|OpenHelpContent|ОткрытьИндексСправки|OpenHelpIndex|ОткрытьСправку|OpenHelp|ПоказатьИнформациюОбОшибке|ShowErrorInfo|КраткоеПредставлениеОшибки|BriefErrorDescription|ПодробноеПредставлениеОшибки|DetailErrorDescription|ПолучитьФорму|GetForm|ЗакрытьСправку|CloseHelp|ПоказатьОповещениеПользователя|ShowUserNotification|ОткрытьФорму|OpenForm|ОткрытьФормуМодально|OpenFormModal|АктивноеОкно|ActiveWindow|ВыполнитьОбработкуОповещения|ExecuteNotifyProcessing + | ПоказатьВводЗначения|ShowInputValue|ВвестиЗначение|InputValue|ПоказатьВводЧисла|ShowInputNumber|ВвестиЧисло|InputNumber|ПоказатьВводСтроки|ShowInputString|ВвестиСтроку|InputString|ПоказатьВводДаты|ShowInputDate|ВвестиДату|InputDate + | Формат|Format|ЧислоПрописью|NumberInWords|НСтр|NStr|ПредставлениеПериода|PeriodPresentation|СтрШаблон|StrTemplate + | ПолучитьОбщийМакет|GetCommonTemplate|ПолучитьОбщуюФорму|GetCommonForm|ПредопределенноеЗначение|PredefinedValue|ПолучитьПолноеИмяПредопределенногоЗначения|GetPredefinedValueFullName + | ПолучитьЗаголовокСистемы|GetCaption|ПолучитьСкоростьКлиентскогоСоединения|GetClientConnectionSpeed|ПодключитьОбработчикОжидания|AttachIdleHandler|УстановитьЗаголовокСистемы|SetCaption|ОтключитьОбработчикОжидания|DetachIdleHandler|ИмяКомпьютера|ComputerName|ЗавершитьРаботуСистемы|Exit|ИмяПользователя|UserName|ПрекратитьРаботуСистемы|Terminate|ПолноеИмяПользователя|UserFullName|ЗаблокироватьРаботуПользователя|LockApplication|КаталогПрограммы|BinDir|КаталогВременныхФайлов|TempFilesDir|ПравоДоступа|AccessRight|РольДоступна|IsInRole|ТекущийЯзык|CurrentLanguage|ТекущийКодЛокализации|CurrentLocaleCode|СтрокаСоединенияИнформационнойБазы|InfoBaseConnectionString|ПодключитьОбработчикОповещения|AttachNotificationHandler|ОтключитьОбработчикОповещения|DetachNotificationHandler|ПолучитьСообщенияПользователю|GetUserMessages|ПараметрыДоступа|AccessParameters|ПредставлениеПриложения|ApplicationPresentation|ТекущийЯзыкСистемы|CurrentSystemLanguage|ЗапуститьСистему|RunSystem|ТекущийРежимЗапуска|CurrentRunMode|УстановитьЧасовойПоясСеанса|SetSessionTimeZone|ЧасовойПоясСеанса|SessionTimeZone|ТекущаяДатаСеанса|CurrentSessionDate|УстановитьКраткийЗаголовокПриложения|SetShortApplicationCaption|ПолучитьКраткийЗаголовокПриложения|GetShortApplicationCaption|ПредставлениеПрава|RightPresentation|ВыполнитьПроверкуПравДоступа|VerifyAccessRights|РабочийКаталогДанныхПользователя|UserDataWorkDir|КаталогДокументов|DocumentsDir|ПолучитьИнформациюЭкрановКлиента|GetClientDisplaysInformation|ТекущийВариантОсновногоШрифтаКлиентскогоПриложения|ClientApplicationBaseFontCurrentVariant|ТекущийВариантИнтерфейсаКлиентскогоПриложения|ClientApplicationInterfaceCurrentVariant|УстановитьЗаголовокКлиентскогоПриложения|SetClientApplicationCaption|ПолучитьЗаголовокКлиентскогоПриложения|GetClientApplicationCaption|НачатьПолучениеКаталогаВременныхФайлов|BeginGettingTempFilesDir|НачатьПолучениеКаталогаДокументов|BeginGettingDocumentsDir|НачатьПолучениеРабочегоКаталогаДанныхПользователя|BeginGettingUserDataWorkDir|ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования|AttachLicensingClientParametersRequestHandler|ОтключитьОбработчикЗапросаНастроекКлиентаЛицензирования|DetachLicensingClientParametersRequestHandler + | ЗначениеВСтрокуВнутр|ValueToStringInternal|ЗначениеИзСтрокиВнутр|ValueFromStringInternal|ЗначениеВФайл|ValueToFile|ЗначениеИзФайла|ValueFromFile + | КомандаСистемы|System|ЗапуститьПриложение|RunApp|ПолучитьCOMОбъект|GetCOMObject|ПользователиОС|OSUsers|НачатьЗапускПриложения|BeginRunningApplication + | ПодключитьВнешнююКомпоненту|AttachAddIn|НачатьУстановкуВнешнейКомпоненты|BeginInstallAddIn|УстановитьВнешнююКомпоненту|InstallAddIn|НачатьПодключениеВнешнейКомпоненты|BeginAttachingAddIn + | КопироватьФайл|FileCopy|ПереместитьФайл|MoveFile|УдалитьФайлы|DeleteFiles|НайтиФайлы|FindFiles|СоздатьКаталог|CreateDirectory|ПолучитьИмяВременногоФайла|GetTempFileName|РазделитьФайл|SplitFile|ОбъединитьФайлы|MergeFiles|ПолучитьФайл|GetFile|НачатьПомещениеФайла|BeginPutFile|ПоместитьФайл|PutFile|ЭтоАдресВременногоХранилища|IsTempStorageURL|УдалитьИзВременногоХранилища|DeleteFromTempStorage|ПолучитьИзВременногоХранилища|GetFromTempStorage|ПоместитьВоВременноеХранилище|PutToTempStorage|ПодключитьРасширениеРаботыСФайлами|AttachFileSystemExtension|НачатьУстановкуРасширенияРаботыСФайлами|BeginInstallFileSystemExtension|УстановитьРасширениеРаботыСФайлами|InstallFileSystemExtension|ПолучитьФайлы|GetFiles|ПоместитьФайлы|PutFiles|ЗапроситьРазрешениеПользователя|RequestUserPermission|ПолучитьМаскуВсеФайлы|GetAllFilesMask|ПолучитьМаскуВсеФайлыКлиента|GetClientAllFilesMask|ПолучитьМаскуВсеФайлыСервера|GetServerAllFilesMask|ПолучитьРазделительПути|GetPathSeparator|ПолучитьРазделительПутиКлиента|GetClientPathSeparator|ПолучитьРазделительПутиСервера|GetServerPathSeparator|НачатьПодключениеРасширенияРаботыСФайлами|BeginAttachingFileSystemExtension|НачатьЗапросРазрешенияПользователя|BeginRequestingUserPermission|НачатьПоискФайлов|BeginFindingFiles|НачатьСозданиеКаталога|BeginCreatingDirectory|НачатьКопированиеФайла|BeginCopyingFile|НачатьПеремещениеФайла|BeginMovingFile|НачатьУдалениеФайлов|BeginDeletingFiles|НачатьПолучениеФайлов|BeginGettingFiles|НачатьПомещениеФайлов|BeginPuttingFiles + | НачатьТранзакцию|BeginTransaction|ЗафиксироватьТранзакцию|CommitTransaction|ОтменитьТранзакцию|RollbackTransaction|УстановитьМонопольныйРежим|SetExclusiveMode|МонопольныйРежим|ExclusiveMode|ПолучитьОперативнуюОтметкуВремени|GetRealTimeTimestamp|ПолучитьСоединенияИнформационнойБазы|GetInfoBaseConnections|НомерСоединенияИнформационнойБазы|InfoBaseConnectionNumber|КонфигурацияИзменена|ConfigurationChanged|КонфигурацияБазыДанныхИзмененаДинамически|DataBaseConfigurationChangedDynamically|УстановитьВремяОжиданияБлокировкиДанных|SetLockWaitTime|ОбновитьНумерациюОбъектов|RefreshObjectsNumbering|ПолучитьВремяОжиданияБлокировкиДанных|GetLockWaitTime|КодЛокализацииИнформационнойБазы|InfoBaseLocaleCode|УстановитьМинимальнуюДлинуПаролейПользователей|SetUserPasswordMinLength|ПолучитьМинимальнуюДлинуПаролейПользователей|GetUserPasswordMinLength|ИнициализироватьПредопределенныеДанные|InitializePredefinedData|УдалитьДанныеИнформационнойБазы|EraseInfoBaseData|УстановитьПроверкуСложностиПаролейПользователей|SetUserPasswordStrengthCheck|ПолучитьПроверкуСложностиПаролейПользователей|GetUserPasswordStrengthCheck|ПолучитьСтруктуруХраненияБазыДанных|GetDBStorageStructureInfo|УстановитьПривилегированныйРежим|SetPrivilegedMode|ПривилегированныйРежим|PrivilegedMode|ТранзакцияАктивна|TransactionActive|НеобходимостьЗавершенияСоединения|ConnectionStopRequest|НомерСеансаИнформационнойБазы|InfoBaseSessionNumber|ПолучитьСеансыИнформационнойБазы|GetInfoBaseSessions|ЗаблокироватьДанныеДляРедактирования|LockDataForEdit|УстановитьСоединениеСВнешнимИсточникомДанных|ConnectExternalDataSource|РазблокироватьДанныеДляРедактирования|UnlockDataForEdit|РазорватьСоединениеСВнешнимИсточникомДанных|DisconnectExternalDataSource|ПолучитьБлокировкуСеансов|GetSessionsLock|УстановитьБлокировкуСеансов|SetSessionsLock|ОбновитьПовторноИспользуемыеЗначения|RefreshReusableValues|УстановитьБезопасныйРежим|SetSafeMode|БезопасныйРежим|SafeMode|ПолучитьДанныеВыбора|GetChoiceData|УстановитьЧасовойПоясИнформационнойБазы|SetInfoBaseTimeZone|ПолучитьЧасовойПоясИнформационнойБазы|GetInfoBaseTimeZone|ПолучитьОбновлениеКонфигурацииБазыДанных|GetDataBaseConfigurationUpdate|УстановитьБезопасныйРежимРазделенияДанных|SetDataSeparationSafeMode|БезопасныйРежимРазделенияДанных|DataSeparationSafeMode|УстановитьВремяЗасыпанияПассивногоСеанса|SetPassiveSessionHibernateTime|ПолучитьВремяЗасыпанияПассивногоСеанса|GetPassiveSessionHibernateTime|УстановитьВремяЗавершенияСпящегоСеанса|SetHibernateSessionTerminateTime|ПолучитьВремяЗавершенияСпящегоСеанса|GetHibernateSessionTerminateTime|ПолучитьТекущийСеансИнформационнойБазы|GetCurrentInfoBaseSession|ПолучитьИдентификаторКонфигурации|GetConfigurationID|УстановитьНастройкиКлиентаЛицензирования|SetLicensingClientParameters|ПолучитьИмяКлиентаЛицензирования|GetLicensingClientName|ПолучитьДополнительныйПараметрКлиентаЛицензирования|GetLicensingClientAdditionalParameter + | НайтиПомеченныеНаУдаление|FindMarkedForDeletion|НайтиПоСсылкам|FindByRef|УдалитьОбъекты|DeleteObjects|УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы|SetInfoBasePredefinedDataUpdate|ПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы|GetInfoBasePredefinedData + | XMLСтрока|XMLString|XMLЗначение|XMLValue|XMLТип|XMLType|XMLТипЗнч|XMLTypeOf|ИзXMLТипа|FromXMLType|ВозможностьЧтенияXML|CanReadXML|ПолучитьXMLТип|GetXMLType|ПрочитатьXML|ReadXML|ЗаписатьXML|WriteXML|НайтиНедопустимыеСимволыXML|FindDisallowedXMLCharacters|ИмпортМоделиXDTO|ImportXDTOModel|СоздатьФабрикуXDTO|CreateXDTOFactory + | ЗаписатьJSON|WriteJSON|ПрочитатьJSON|ReadJSON|ПрочитатьДатуJSON|ReadJSONDate|ЗаписатьДатуJSON|WriteJSONDate + | ЗаписьЖурналаРегистрации|WriteLogEvent|ПолучитьИспользованиеЖурналаРегистрации|GetEventLogUsing|УстановитьИспользованиеЖурналаРегистрации|SetEventLogUsing|ПредставлениеСобытияЖурналаРегистрации|EventLogEventPresentation|ВыгрузитьЖурналРегистрации|UnloadEventLog|ПолучитьЗначенияОтбораЖурналаРегистрации|GetEventLogFilterValues|УстановитьИспользованиеСобытияЖурналаРегистрации|SetEventLogEventUse|ПолучитьИспользованиеСобытияЖурналаРегистрации|GetEventLogEventUse|СкопироватьЖурналРегистрации|CopyEventLog|ОчиститьЖурналРегистрации|ClearEventLog + | ЗначениеВДанныеФормы|ValueToFormData|ДанныеФормыВЗначение|FormDataToValue|КопироватьДанныеФормы|CopyFormData|УстановитьСоответствиеОбъектаИФормы|SetObjectAndFormConformity|ПолучитьСоответствиеОбъектаИФормы|GetObjectAndFormConformity + | ПолучитьФункциональнуюОпцию|GetFunctionalOption|ПолучитьФункциональнуюОпциюИнтерфейса|GetInterfaceFunctionalOption|УстановитьПараметрыФункциональныхОпцийИнтерфейса|SetInterfaceFunctionalOptionParameters|ПолучитьПараметрыФункциональныхОпцийИнтерфейса|GetInterfaceFunctionalOptionParameters|ОбновитьИнтерфейс|RefreshInterface + | УстановитьРасширениеРаботыСКриптографией|InstallCryptoExtension|НачатьУстановкуРасширенияРаботыСКриптографией|BeginInstallCryptoExtension|ПодключитьРасширениеРаботыСКриптографией|AttachCryptoExtension|НачатьПодключениеРасширенияРаботыСКриптографией|BeginAttachingCryptoExtension + | УстановитьСоставСтандартногоИнтерфейсаOData|SetStandardODataInterfaceContent|ПолучитьСоставСтандартногоИнтерфейсаOData|GetStandardODataInterfaceContent + | Мин|Min|Макс|Max|ОписаниеОшибки|ErrorDescription|Вычислить|Eval|ИнформацияОбОшибке|ErrorInfo|Base64Значение|Base64Value|Base64Строка|Base64String|ЗаполнитьЗначенияСвойств|FillPropertyValues|ЗначениеЗаполнено|ValueIsFilled|ПолучитьПредставленияНавигационныхСсылок|GetURLsPresentations|НайтиОкноПоНавигационнойСсылке|FindWindowByURL|ПолучитьОкна|GetWindows|ПерейтиПоНавигационнойСсылке|GotoURL|ПолучитьНавигационнуюСсылку|GetURL|ПолучитьДопустимыеКодыЛокализации|GetAvailableLocaleCodes|ПолучитьНавигационнуюСсылкуИнформационнойБазы|GetInfoBaseURL|ПредставлениеКодаЛокализации|LocaleCodePresentation|ПолучитьДопустимыеЧасовыеПояса|GetAvailableTimeZones|ПредставлениеЧасовогоПояса|TimeZonePresentation|ТекущаяУниверсальнаяДата|CurrentUniversalDate|ТекущаяУниверсальнаяДатаВМиллисекундах|CurrentUniversalDateInMilliseconds|МестноеВремя|ToLocalTime|УниверсальноеВремя|ToUniversalTime|ЧасовойПояс|TimeZone|СмещениеЛетнегоВремени|DaylightTimeOffset|СмещениеСтандартногоВремени|StandardTimeOffset|КодироватьСтроку|EncodeString|РаскодироватьСтроку|DecodeString|Найти|Find + | ПередНачаломРаботыСистемы|BeforeStart|ПриНачалеРаботыСистемы|OnStart|ПередЗавершениемРаботыСистемы|BeforeExit|ПриЗавершенииРаботыСистемы|OnExit|ОбработкаВнешнегоСобытия|ExternEventProcessing|УстановкаПараметровСеанса|SessionParametersSetting|ПриИзмененииПараметровЭкрана|OnChangeDisplaySettings + | WSСсылки|WSReferences|БиблиотекаКартинок|PictureLib|БиблиотекаМакетовОформленияКомпоновкиДанных|DataCompositionAppearanceTemplateLib|БиблиотекаСтилей|StyleLib|БизнесПроцессы|BusinessProcesses|ВнешниеИсточникиДанных|ExternalDataSources|ВнешниеОбработки|ExternalDataProcessors|ВнешниеОтчеты|ExternalReports|Документы|Documents|ДоставляемыеУведомления|DeliverableNotifications|ЖурналыДокументов|DocumentJournals|Задачи|Tasks|ИспользованиеРабочейДаты|WorkingDateUse|ИсторияРаботыПользователя|UserWorkHistory|Константы|Constants|КритерииОтбора|FilterCriteria|Метаданные|Metadata|Обработки|DataProcessors|ОтправкаДоставляемыхУведомлений|DeliverableNotificationSend|Отчеты|Reports|ПараметрыСеанса|SessionParameters|Перечисления|Enums|ПланыВидовРасчета|ChartsOfCalculationTypes|ПланыВидовХарактеристик|ChartsOfCharacteristicTypes|ПланыОбмена|ExchangePlans|ПланыСчетов|ChartsOfAccounts|ПолнотекстовыйПоиск|FullTextSearch|ПользователиИнформационнойБазы|InfoBaseUsers|Последовательности|Sequences|РасширенияКонфигурации|ConfigurationExtensions|РегистрыБухгалтерии|AccountingRegisters|РегистрыНакопления|AccumulationRegisters|РегистрыРасчета|CalculationRegisters|РегистрыСведений|InformationRegisters|РегламентныеЗадания|ScheduledJobs|СериализаторXDTO|XDTOSerializer|Справочники|Catalogs|СредстваГеопозиционирования|LocationTools|СредстваКриптографии|CryptoToolsManager|СредстваМультимедиа|MultimediaTools|СредстваПочты|MailTools|СредстваТелефонии|TelephonyTools|ФабрикаXDTO|XDTOFactory|ФоновыеЗадания|BackgroundJobs|ХранилищаНастроек + | ГлавныйИнтерфейс|MainInterface|ГлавныйСтиль|MainStyle|ПараметрЗапуска|LaunchParameter|РабочаяДата|WorkingDate|SettingsStorages|ХранилищеВариантовОтчетов|ReportsVariantsStorage|ХранилищеНастроекДанныхФорм|FormDataSettingsStorage|ХранилищеОбщихНастроек|CommonSettingsStorage|ХранилищеПользовательскихНастроекДинамическихСписков|DynamicListsUserSettingsStorage|ХранилищеПользовательскихНастроекОтчетов|ReportsUserSettingsStorage|ХранилищеСистемныхНастроек|SystemSettingsStorage + | Если|If|ИначеЕсли|ElsIf|Иначе|Else|КонецЕсли|EndIf|Тогда|Then + | Неопределено|Undefined|Истина|True|Ложь|False|NULL + )\s*(?=\()/ix + + state :root do + rule %r/\n/, Text + rule %r/[^\S\n]+/, Text + rule %r(//.*$), Comment::Single + rule %r/[\[\]:(),;]/, Punctuation + rule %r/(?<=[^\wа-яё]|^)\&.*$/, Keyword::Declaration + rule %r/[-+\/*%=<>.?&]/, Operator + rule %r/(?<=[^\wа-яё]|^)\#.*$/, Keyword::Declaration + rule KEYWORDS, Keyword + rule BUILTINS, Name::Builtin + rule %r/[\wа-яё][\wа-яё]*/i, Name::Variable + + #literals + rule %r/\b((\h{8}-(\h{4}-){3}\h{12})|\d+\.?\d*)\b/, Literal::Number + rule %r/\'.*\'/, Literal::Date + rule %r/".*?("|$)/, Literal::String::Single + rule %r/(?<=[^\wа-яё]|^)\|((?!\"\").)*?(\"|$)/, Literal::String + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/c.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/c.rb new file mode 100644 index 0000000..ad6624a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/c.rb @@ -0,0 +1,200 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class C < RegexLexer + tag 'c' + filenames '*.c', '*.h', '*.idc' + mimetypes 'text/x-chdr', 'text/x-csrc' + + title "C" + desc "The C programming language" + + # optional comment or whitespace + ws = %r((?:\s|//.*?\n|/[*].*?[*]/)+) + id = /[a-zA-Z_][a-zA-Z0-9_]*/ + + def self.keywords + @keywords ||= Set.new %w( + auto break case const continue default do else enum extern + for goto if register restricted return sizeof static struct + switch typedef union volatile virtual while + + _Alignas _Alignof _Atomic _Generic _Imaginary + _Noreturn _Static_assert _Thread_local + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + int long float short double char unsigned signed void + + jmp_buf FILE DIR div_t ldiv_t mbstate_t sig_atomic_t fpos_t + clock_t time_t va_list size_t ssize_t off_t wchar_t ptrdiff_t + wctrans_t wint_t wctype_t + + _Bool _Complex int8_t int16_t int32_t int64_t + uint8_t uint16_t uint32_t uint64_t int_least8_t + int_least16_t int_least32_t int_least64_t + uint_least8_t uint_least16_t uint_least32_t + uint_least64_t int_fast8_t int_fast16_t int_fast32_t + int_fast64_t uint_fast8_t uint_fast16_t uint_fast32_t + uint_fast64_t intptr_t uintptr_t intmax_t + uintmax_t + + char16_t char32_t + ) + end + + def self.reserved + @reserved ||= Set.new %w( + __asm __int8 __based __except __int16 __stdcall __cdecl + __fastcall __int32 __declspec __finally __int61 __try __leave + inline _inline __inline naked _naked __naked restrict _restrict + __restrict thread _thread __thread typename _typename __typename + ) + end + + def self.builtins + @builtins ||= [] + end + + start { push :bol } + + state :expr_bol do + mixin :inline_whitespace + + rule %r/#if\s0/, Comment, :if_0 + rule %r/#/, Comment::Preproc, :macro + + rule(//) { pop! } + end + + # :expr_bol is the same as :bol but without labels, since + # labels can only appear at the beginning of a statement. + state :bol do + rule %r/#{id}:(?!:)/, Name::Label + mixin :expr_bol + end + + state :inline_whitespace do + rule %r/[ \t\r]+/, Text + rule %r/\\\n/, Text # line continuation + rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline + end + + state :whitespace do + rule %r/\n+/m, Text, :bol + rule %r(//(\\.|.)*?$), Comment::Single, :bol + mixin :inline_whitespace + end + + state :expr_whitespace do + rule %r/\n+/m, Text, :expr_bol + mixin :whitespace + end + + state :statements do + mixin :whitespace + rule %r/(u8|u|U|L)?"/, Str, :string + rule %r((u8|u|U|L)?'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char + rule %r((\d+[.]\d*|[.]?\d+)e[+-]?\d+[lu]*)i, Num::Float + rule %r(\d+e[+-]?\d+[lu]*)i, Num::Float + rule %r/0x[0-9a-f]+[lu]*/i, Num::Hex + rule %r/0[0-7]+[lu]*/i, Num::Oct + rule %r/\d+[lu]*/i, Num::Integer + rule %r(\*/), Error + rule %r([~!%^&*+=\|?:<>/-]), Operator + rule %r/[()\[\],.;]/, Punctuation + rule %r/\bcase\b/, Keyword, :case + rule %r/(?:true|false|NULL)\b/, Name::Builtin + rule id do |m| + name = m[0] + + if self.class.keywords.include? name + token Keyword + elsif self.class.keywords_type.include? name + token Keyword::Type + elsif self.class.reserved.include? name + token Keyword::Reserved + elsif self.class.builtins.include? name + token Name::Builtin + else + token Name + end + end + end + + state :case do + rule %r/:/, Punctuation, :pop! + mixin :statements + end + + state :root do + mixin :expr_whitespace + rule %r( + ([\w*\s]+?[\s*]) # return arguments + (#{id}) # function name + (\s*\([^;]*?\)) # signature + (#{ws}?)({|;) # open brace or semicolon + )mx do |m| + # TODO: do this better. + recurse m[1] + token Name::Function, m[2] + recurse m[3] + recurse m[4] + token Punctuation, m[5] + if m[5] == ?{ + push :function + end + end + rule %r/\{/, Punctuation, :function + mixin :statements + end + + state :function do + mixin :whitespace + mixin :statements + rule %r/;/, Punctuation + rule %r/{/, Punctuation, :function + rule %r/}/, Punctuation, :pop! + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape + rule %r/[^\\"\n]+/, Str + rule %r/\\\n/, Str + rule %r/\\/, Str # stray backslash + end + + state :macro do + mixin :include + rule %r([^/\n\\]+), Comment::Preproc + rule %r/\\./m, Comment::Preproc + mixin :inline_whitespace + rule %r(/), Comment::Preproc + # NB: pop! goes back to :bol + rule %r/\n/, Comment::Preproc, :pop! + end + + state :include do + rule %r/(include)(\s*)(<[^>]+>)([^\n]*)/ do + groups Comment::Preproc, Text, Comment::PreprocFile, Comment::Single + end + rule %r/(include)(\s*)("[^"]+")([^\n]*)/ do + groups Comment::Preproc, Text, Comment::PreprocFile, Comment::Single + end + end + + state :if_0 do + # NB: no \b here, to cover #ifdef and #ifndef + rule %r/^\s*#if/, Comment, :if_0 + rule %r/^\s*#\s*el(?:se|if)/, Comment, :pop! + rule %r/^\s*#\s*endif\b.*?(?<!\\)\n/m, Comment, :pop! + rule %r/.*?\n/, Comment + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ceylon.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ceylon.rb new file mode 100644 index 0000000..f1a8381 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ceylon.rb @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Ceylon < RegexLexer + tag 'ceylon' + filenames '*.ceylon' + mimetypes 'text/x-ceylon' + + title "Ceylon" + desc 'Say more, more clearly.' + + state :whitespace do + rule %r([^\S\n]+), Text + rule %r(//.*?\n), Comment::Single + rule %r(/\*), Comment::Multiline + end + + state :root do + mixin :whitespace + + rule %r((shared|abstract|formal|default|actual|variable|deprecated|small| + late|literal|doc|by|see|throws|optional|license|tagged|final|native| + annotation|sealed)\b), Name::Decorator + + rule %r((break|case|catch|continue|else|finally|for|in| + if|return|switch|this|throw|try|while|is|exists|dynamic| + nonempty|then|outer|assert|let)\b), Keyword + + rule %r((abstracts|extends|satisfies|super|given|of|out|assign)\b), Keyword::Declaration + + rule %r((function|value|void|new)\b), Keyword::Type + + rule %r((assembly|module|package)(\s+)) do + groups Keyword::Namespace, Text + push :import + end + + rule %r((true|false|null)\b), Keyword::Constant + + rule %r((class|interface|object|alias)(\s+)) do + groups Keyword::Declaration, Text + push :class + end + + rule %r((import)(\s+)) do + groups Keyword::Namespace, Text + push :import + end + + rule %r("(\\\\|\\"|[^"])*"), Literal::String + rule %r('\\.'|'[^\\]'|'\\\{#[0-9a-fA-F]{4}\}'), Literal::String::Char + rule %r("[^`]*``[^`]*``[^`]*"), Literal::String::Interpol + rule %r((\.)([a-z_]\w*)) do + groups Operator, Name::Attribute + end + rule %r([a-zA-Z_]\w*:), Name::Label + rule %r((\\I[a-z]|[A-Z])\w*), Name::Decorator + rule %r([a-zA-Z_]\w*), Name + rule %r([~^*!%&\[\](){}<>|+=:;,./?`-]), Operator + rule %r(\d{1,3}(_\d{3})+\.\d{1,3}(_\d{3})+[kMGTPmunpf]?), Literal::Number::Float + rule %r(\d{1,3}(_\d{3})+\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?), + Literal::Number::Float + rule %r([0-9][0-9]*\.\d{1,3}(_\d{3})+[kMGTPmunpf]?), Literal::Number::Float + rule %r([0-9][0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?), + Literal::Number::Float + rule %r(#([0-9a-fA-F]{4})(_[0-9a-fA-F]{4})+), Literal::Number::Hex + rule %r(#[0-9a-fA-F]+), Literal::Number::Hex + rule %r(\$([01]{4})(_[01]{4})+), Literal::Number::Bin + rule %r(\$[01]+), Literal::Number::Bin + rule %r(\d{1,3}(_\d{3})+[kMGTP]?), Literal::Number::Integer + rule %r([0-9]+[kMGTP]?), Literal::Number::Integer + rule %r(\n), Text + + end + + state :class do + mixin :whitespace + rule %r([A-Za-z_]\w*), Name::Class, :pop! + end + + state :import do + rule %r([a-z][\w.]*), Name::Namespace, :pop! + rule %r("(\\\\|\\"|[^"])*"), Literal::String, :pop! + end + + state :comment do + rule %r([^*/]), Comment.Multiline + rule %r(/\*), Comment::Multiline, :push! + rule %r(\*/), Comment::Multiline, :pop! + rule %r([*/]), Comment::Multiline + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cfscript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cfscript.rb new file mode 100644 index 0000000..6b083ce --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cfscript.rb @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + + class Cfscript < RegexLexer + title "CFScript" + desc 'CFScript, the CFML scripting language' + tag 'cfscript' + aliases 'cfc' + filenames '*.cfc' + + def self.keywords + @keywords ||= %w( + if else var xml default break switch do try catch throw in continue for return while required + ) + end + + def self.declarations + @declarations ||= %w( + component property function remote public package private + ) + end + + def self.types + @types ||= %w( + any array binary boolean component date guid numeric query string struct uuid void xml + ) + end + + constants = %w(application session client cookie super this variables arguments cgi) + + + operators = %w(\+\+ -- && \|\| <= >= < > == != mod eq lt gt lte gte not is and or xor eqv imp equal contains \? ) + dotted_id = /[$a-zA-Z_][a-zA-Z0-9_.]*/ + + state :root do + mixin :comments_and_whitespace + rule %r/(?:#{operators.join('|')}|does not contain|greater than(?: or equal to)?|less than(?: or equal to)?)\b/i, Operator, :expr_start + rule %r([-<>+*%&|\^/!=]=?), Operator, :expr_start + + rule %r/[(\[,]/, Punctuation, :expr_start + rule %r/;/, Punctuation, :statement + rule %r/[)\].]/, Punctuation + + rule %r/[?]/ do + token Punctuation + push :ternary + push :expr_start + end + + rule %r/[{}]/, Punctuation, :statement + + rule %r/(?:#{constants.join('|')})\b/, Name::Constant + rule %r/(?:true|false|null)\b/, Keyword::Constant + rule %r/import\b/, Keyword::Namespace, :import + rule %r/(#{dotted_id})(\s*)(:)(\s*)/ do + groups Name, Text, Punctuation, Text + push :expr_start + end + + rule %r/([A-Za-z_$][\w.]*)(\s*)(\()/ do |m| + if self.class.keywords.include? m[1] + token Keyword, m[1] + token Text, m[2] + token Punctuation, m[3] + else + token Name::Function, m[1] + token Text, m[2] + token Punctuation, m[3] + end + end + + rule dotted_id do |m| + if self.class.declarations.include? m[0] + token Keyword::Declaration + push :expr_start + elsif self.class.keywords.include? m[0] + token Keyword + push :expr_start + elsif self.class.types.include? m[0] + token Keyword::Type + push :expr_start + else + token Name::Other + end + end + + rule %r/[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?/, Num::Float + rule %r/0x[0-9a-fA-F]+/, Num::Hex + rule %r/[0-9]+/, Num::Integer + rule %r/"(\\\\|\\"|[^"])*"/, Str::Double + rule %r/'(\\\\|\\'|[^'])*'/, Str::Single + + end + + # same as java, broken out + state :comments_and_whitespace do + rule %r/\s+/, Text + rule %r(//.*?$), Comment::Single + rule %r(/\*.*?\*/)m, Comment::Multiline + end + + state :expr_start do + mixin :comments_and_whitespace + + rule %r/[{]/, Punctuation, :object + + rule %r//, Text, :pop! + end + + state :statement do + + rule %r/[{}]/, Punctuation + + mixin :expr_start + end + + # object literals + state :object do + mixin :comments_and_whitespace + rule %r/[}]/ do + token Punctuation + push :expr_start + end + + rule %r/(#{dotted_id})(\s*)(:)/ do + groups Name::Other, Text, Punctuation + push :expr_start + end + + rule %r/:/, Punctuation + mixin :root + end + + # ternary expressions, where <dotted_id>: is not a label! + state :ternary do + rule %r/:/ do + token Punctuation + goto :expr_start + end + + mixin :root + end + + state :import do + rule %r/\s+/m, Text + rule %r/[a-z0-9_.]+\*?/i, Name::Namespace, :pop! + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cisco_ios.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cisco_ios.rb new file mode 100644 index 0000000..685c2ca --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cisco_ios.rb @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# Based on/regexes mostly from Brandon Bennett's pygments-routerlexers: +# https://github.com/nemith/pygments-routerlexers + +module Rouge + module Lexers + class CiscoIos < RegexLexer + title 'Cisco IOS' + desc 'Cisco IOS configuration lexer' + tag 'cisco_ios' + filenames '*.cfg' + mimetypes 'text/x-cisco-conf' + + state :root do + rule %r/^!.*/, Comment::Single + + rule %r/^(version\s+)(.*)$/ do + groups Keyword, Num::Float + end + + rule %r/(desc*r*i*p*t*i*o*n*)(.*?)$/ do + groups Keyword, Comment::Single + end + + rule %r/^(inte*r*f*a*c*e*|controller|router \S+|voice translation-\S+|voice-port|line)(.*)$/ do + groups Keyword::Type, Name::Function + end + + rule %r/(password|secret)(\s+[57]\s+)(\S+)/ do + groups Keyword, Num, String::Double + end + + rule %r/(permit|deny)/, Operator::Word + + rule %r/^(banner\s+)(motd\s+|login\s+)([#$%])/ do + groups Keyword, Name::Function, Str::Delimiter + push :cisco_ios_text + end + + rule %r/^(dial-peer\s+\S+\s+)(\S+)(.*?)$/ do + groups Keyword, Name::Attribute, Keyword + end + + rule %r/^(vlan\s+)(\d+)$/ do + groups Keyword, Name::Attribute + end + + # IPv4 Address/Prefix + rule %r/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(\/\d{1,2})?/, Num + + # NSAP + rule %r/49\.\d{4}\.\d{4}\.\d{4}\.\d{4}\.\d{2}/, Num + + # MAC Address + rule %r/[a-f0-9]{4}\.[a-f0-9]{4}\.[a-f0-9]{4}/, Num::Hex + + rule %r/^(\s*no\s+)(\S+)/ do + groups Keyword::Constant, Keyword + end + + rule %r/^[^\n\r]\s*\S+/, Keyword + + # Obfuscated Passwords + rule %r/\*+/, Name::Entity + + rule %r/(?<= )\d+(?= )/, Num + + # Newline catcher, avoid errors on empty lines + rule %r/\n+/m, Text + + # This one goes last, a text catch-all + rule %r/./, Text + end + + state :cisco_ios_text do + rule %r/[^#$%]/, Text + rule %r/[#$%]/, Str::Delimiter, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/clean.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/clean.rb new file mode 100644 index 0000000..031cd61 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/clean.rb @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Clean < RegexLexer + title "Clean" + desc "The Clean programming language (clean.cs.ru.nl)" + + tag 'clean' + filenames '*.dcl', '*.icl' + + def self.keywords + @keywords ||= Set.new %w( + if otherwise + let in + with where + case of + infix infixl infixr + class instance + generic derive + special + implementation definition system module + from import qualified as + dynamic + code inline foreign export ccall stdcall + ) + end + + # These are literal patterns common to the ABC intermediate language and + # Clean. Clean has more extensive literal patterns (see :basic below). + state :common_literals do + rule %r/'(?:[^'\\]|\\(?:x[0-9a-fA-F]+|\d+|.))'/, Str::Char + + rule %r/[+~-]?\d+\.\d+(?:E[+-]?\d+)?\b/, Num::Float + rule %r/[+~-]?\d+E[+-]?\d+\b/, Num::Float + rule %r/[+~-]?\d+/, Num::Integer + + rule %r/"/, Str::Double, :string + end + + state :basic do + rule %r/\s+/m, Text::Whitespace + + rule %r/\/\/\*.*/, Comment::Doc + rule %r/\/\/.*/, Comment::Single + rule %r/\/\*\*/, Comment::Doc, :comment_doc + rule %r/\/\*/, Comment::Multiline, :comment + + rule %r/[+~-]?0[0-7]+/, Num::Oct + rule %r/[+~-]?0x[0-9a-fA-F]+/, Num::Hex + mixin :common_literals + rule %r/(\[)(\s*)(')(?=.*?'\])/ do + groups Punctuation, Text::Whitespace, Str::Single, Punctuation + push :charlist + end + end + + # nested commenting + state :comment_doc do + rule %r/\*\//, Comment::Doc, :pop! + rule %r/\/\/.*/, Comment::Doc # Singleline comments in multiline comments are skipped + rule %r/\/\*/, Comment::Doc, :comment + rule %r/[^*\/]+/, Comment::Doc + rule %r/[*\/]/, Comment::Doc + end + + # This is the same as the above, but with Multiline instead of Doc + state :comment do + rule %r/\*\//, Comment::Multiline, :pop! + rule %r/\/\/.*/, Comment::Multiline # Singleline comments in multiline comments are skipped + rule %r/\/\*/, Comment::Multiline, :comment + rule %r/[^*\/]+/, Comment::Multiline + rule %r/[*\/]/, Comment::Multiline + end + + state :root do + mixin :basic + + rule %r/code(\s+inline)?\s*{/, Comment::Preproc, :abc + + rule %r/_*[a-z][\w`]*/ do |m| + if self.class.keywords.include?(m[0]) + token Keyword + else + token Name + end + end + + rule %r/_*[A-Z][\w`]*/ do |m| + if m[0]=='True' || m[0]=='False' + token Keyword::Constant + else + token Keyword::Type + end + end + + rule %r/[^\w\s`]/, Punctuation + rule %r/_\b/, Punctuation + end + + state :escapes do + rule %r/\\x[0-9a-fA-F]{1,2}/i, Str::Escape + rule %r/\\d\d{0,3}/i, Str::Escape + rule %r/\\0[0-7]{0,3}/, Str::Escape + rule %r/\\[0-7]{1,3}/, Str::Escape + rule %r/\\[nrfbtv\\"']/, Str::Escape + end + + state :string do + rule %r/"/, Str::Double, :pop! + mixin :escapes + rule %r/[^\\"]+/, Str::Double + end + + state :charlist do + rule %r/(')(\])/ do + groups Str::Single, Punctuation + pop! + end + mixin :escapes + rule %r/[^\\']/, Str::Single + end + + state :abc_basic do + rule %r/\s+/, Text::Whitespace + rule %r/\|.*/, Comment::Single + mixin :common_literals + end + + # The ABC intermediate language can be included, similar to C's inline + # assembly. For some information about ABC, see: + # https://en.wikipedia.org/wiki/Clean_(programming_language)#The_ABC-Machine + state :abc do + mixin :abc_basic + + rule %r/}/, Comment::Preproc, :pop! + rule %r/\.\w*/, Keyword, :abc_rest_of_line + rule %r/[\w]+/, Name::Builtin, :abc_rest_of_line + end + + state :abc_rest_of_line do + rule %r/\n/, Text::Whitespace, :pop! + rule %r/}/ do + token Comment::Preproc + pop! + pop! + end + + mixin :abc_basic + + rule %r/\S+/, Name + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/clojure.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/clojure.rb new file mode 100644 index 0000000..06b34e0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/clojure.rb @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Clojure < RegexLexer + title "Clojure" + desc "The Clojure programming language (clojure.org)" + + tag 'clojure' + aliases 'clj', 'cljs' + + filenames '*.clj', '*.cljs', '*.cljc', 'build.boot', '*.edn' + + mimetypes 'text/x-clojure', 'application/x-clojure' + + def self.keywords + @keywords ||= Set.new %w( + fn def defn defmacro defmethod defmulti defn- defstruct if + cond let for + ) + end + + def self.builtins + @builtins ||= Set.new %w( + . .. * + - -> / < <= = == > >= accessor agent agent-errors + aget alength all-ns alter and append-child apply array-map + aset aset-boolean aset-byte aset-char aset-double aset-float + aset-int aset-long aset-short assert assoc await await-for bean + binding bit-and bit-not bit-or bit-shift-left bit-shift-right + bit-xor boolean branch? butlast byte cast char children + class clear-agent-errors comment commute comp comparator + complement concat conj cons constantly construct-proxy + contains? count create-ns create-struct cycle dec deref + difference disj dissoc distinct doall doc dorun doseq dosync + dotimes doto double down drop drop-while edit end? ensure eval + every? false? ffirst file-seq filter find find-doc find-ns + find-var first float flush fnseq frest gensym get-proxy-class + get hash-map hash-set identical? identity if-let import in-ns + inc index insert-child insert-left insert-right inspect-table + inspect-tree instance? int interleave intersection into + into-array iterate join key keys keyword keyword? last lazy-cat + lazy-cons left lefts line-seq list* list load load-file locking + long loop macroexpand macroexpand-1 make-array make-node map + map-invert map? mapcat max max-key memfn merge merge-with meta + min min-key name namespace neg? new newline next nil? node not + not-any? not-every? not= ns-imports ns-interns ns-map ns-name + ns-publics ns-refers ns-resolve ns-unmap nth nthrest or parse + partial path peek pop pos? pr pr-str print print-str println + println-str prn prn-str project proxy proxy-mappings quot + rand rand-int range re-find re-groups re-matcher re-matches + re-pattern re-seq read read-line reduce ref ref-set refer rem + remove remove-method remove-ns rename rename-keys repeat replace + replicate resolve rest resultset-seq reverse rfirst right + rights root rrest rseq second select select-keys send send-off + seq seq-zip seq? set short slurp some sort sort-by sorted-map + sorted-map-by sorted-set special-symbol? split-at split-with + str string? struct struct-map subs subvec symbol symbol? + sync take take-nth take-while test time to-array to-array-2d + tree-seq true? union up update-proxy val vals var-get var-set + var? vector vector-zip vector? when when-first when-let + when-not with-local-vars with-meta with-open with-out-str + xml-seq xml-zip zero? zipmap zipper' + ) + end + + identifier = %r([\w!$%*+,<=>?/.-]+) + keyword = %r([\w!\#$%*+,<=>?/.-]+) + + def name_token(name) + return Keyword if self.class.keywords.include?(name) + return Name::Builtin if self.class.builtins.include?(name) + nil + end + + state :root do + rule %r/;.*?$/, Comment::Single + rule %r/\s+/m, Text::Whitespace + + rule %r/-?\d+\.\d+/, Num::Float + rule %r/-?\d+/, Num::Integer + rule %r/0x-?[0-9a-fA-F]+/, Num::Hex + + rule %r/"(\\.|[^"])*"/, Str + rule %r/'#{keyword}/, Str::Symbol + rule %r/::?#{keyword}/, Name::Constant + rule %r/\\(.|[a-z]+)/i, Str::Char + + + rule %r/~@|[`\'#^~&@]/, Operator + + rule %r/(\()(\s*)(#{identifier})/m do |m| + token Punctuation, m[1] + token Text::Whitespace, m[2] + token(name_token(m[3]) || Name::Function, m[3]) + end + + rule identifier do |m| + token name_token(m[0]) || Name + end + + # vectors + rule %r/[\[\]]/, Punctuation + + # maps + rule %r/[{}]/, Punctuation + + # parentheses + rule %r/[()]/, Punctuation + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cmake.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cmake.rb new file mode 100644 index 0000000..a22169c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cmake.rb @@ -0,0 +1,218 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class CMake < RegexLexer + title 'CMake' + desc 'The cross-platform, open-source build system' + tag 'cmake' + filenames 'CMakeLists.txt', '*.cmake' + mimetypes 'text/x-cmake' + + SPACE = '[ \t]' + BRACKET_OPEN = '\[=*\[' + + STATES_MAP = { + :root => Text, + :bracket_string => Str::Double, + :quoted_argument => Str::Double, + :bracket_comment => Comment::Multiline, + :variable_reference => Name::Variable, + } + + BUILTIN_COMMANDS = Set.new %w[ + add_compile_definitions + add_compile_options + add_custom_command + add_custom_target + add_definitions + add_dependencies + add_executable + add_library + add_link_options + add_subdirectory + add_test + aux_source_directory + break + build_command + build_name + cmake_host_system_information + cmake_language + cmake_minimum_required + cmake_parse_arguments + cmake_policy + configure_file + create_test_sourcelist + define_property + else + elseif + enable_language + enable_testing + endforeach + endfunction + endif + endmacro + endwhile + exec_program + execute_process + export + export_library_dependencies + file + find_file + find_library + find_package + find_path + find_program + fltk_wrap_ui + foreach + function + get_cmake_property + get_directory_property + get_filename_component + get_property + get_source_file_property + get_target_property + get_test_property + if + include + include_directories + include_external_msproject + include_guard + include_regular_expression + install + install_files + install_programs + install_targets + link_directories + link_libraries + list + load_cache + load_command + macro + make_directory + mark_as_advanced + math + message + option + output_required_files + project + qt_wrap_cpp + qt_wrap_ui + remove + remove_definitions + return + separate_arguments + set + set_directory_properties + set_property + set_source_files_properties + set_target_properties + set_tests_properties + site_name + source_group + string + subdir_depends + subdirs + target_compile_definitions + target_compile_features + target_compile_options + target_include_directories + target_link_directories + target_link_libraries + target_link_options + target_precompile_headers + target_sources + try_compile + try_run + unset + use_mangled_mesa + utility_source + variable_requires + variable_watch + while + write_file + ] + + state :default do + rule %r/\r\n?|\n/ do + token STATES_MAP[state.name.to_sym] + end + rule %r/./ do + token STATES_MAP[state.name.to_sym] + end + end + + state :variable_interpolation do + rule %r/\$\{/ do + token Str::Interpol + push :variable_reference + end + end + + state :bracket_close do + rule %r/\]=*\]/ do |m| + token STATES_MAP[state.name.to_sym] + goto :root if m[0].length == @bracket_len + end + end + + state :root do + mixin :variable_interpolation + + rule %r/#{SPACE}/, Text + rule %r/[()]/, Punctuation + + rule %r/##{BRACKET_OPEN}/ do |m| + token Comment::Multiline + @bracket_len = m[0].length - 1 # decount '#' + goto :bracket_comment + end + rule %r/#{BRACKET_OPEN}/ do |m| + token Str::Double + @bracket_len = m[0].length + goto :bracket_string + end + + rule %r/\\"/, Text + rule %r/"/, Str::Double, :quoted_argument + + rule %r/([A-Za-z_][A-Za-z0-9_]*)(#{SPACE}*)(\()/ do |m| + groups BUILTIN_COMMANDS.include?(m[1]) ? Name::Builtin : Name::Function, Text, Punctuation + end + + rule %r/#.*/, Comment::Single + + mixin :default + end + + state :bracket_string do + mixin :bracket_close + mixin :variable_interpolation + mixin :default + end + + state :bracket_comment do + mixin :bracket_close + mixin :default + end + + state :variable_reference do + mixin :variable_interpolation + + rule %r/}/, Str::Interpol, :pop! + + mixin :default + end + + state :quoted_argument do + mixin :variable_interpolation + + rule %r/"/, Str::Double, :root + rule %r/\\[()#" \\$@^trn;]/, Str::Escape + + mixin :default + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cmhg.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cmhg.rb new file mode 100644 index 0000000..338a3fa --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cmhg.rb @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class CMHG < RegexLexer + title "CMHG" + desc "RISC OS C module header generator source file" + tag 'cmhg' + filenames '*.cmhg' + + def self.preproc_keyword + @preproc_keyword ||= %w( + define elif else endif error if ifdef ifndef include line pragma undef warning + ) + end + + state :root do + rule %r/;[^\n]*/, Comment + rule %r/^([ \t]*)(#[ \t]*(?:(?:#{CMHG.preproc_keyword.join('|')})(?:[ \t].*)?)?)(?=\n)/ do + groups Text, Comment::Preproc + end + rule %r/[-a-z]+:/, Keyword::Declaration + rule %r/[a-z_]\w+/i, Name::Entity + rule %r/"[^"]*"/, Literal::String + rule %r/(?:&|0x)\h+/, Literal::Number::Hex + rule %r/\d+/, Literal::Number + rule %r/[,\/()]/, Punctuation + rule %r/[ \t]+/, Text + rule %r/\n+/, Text + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cobol.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cobol.rb new file mode 100644 index 0000000..3bf59db --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cobol.rb @@ -0,0 +1,137 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class COBOL < RegexLexer + title 'COBOL' + desc 'COBOL (Common Business-Oriented Language) programming language' + tag 'cobol' + filenames '*.cob', '*.cbl' + mimetypes 'text/x-cobol' + + identifier = /\p{Alpha}[\p{Alnum}-]*/ + + def self.divisions + @divisions ||= %w( + IDENTIFICATION ENVIRONMENT DATA PROCEDURE DIVISION + ) + end + + def self.sections + @sections ||= %w( + CONFIGURATION INPUT-OUTPUT FILE WORKING-STORAGE LOCAL-STORAGE LINKAGE SECTION + ) + end + + # List of COBOL keywords + # sourced from https://www.ibm.com/docs/en/cobol-zos/6.4?topic=appendixes-reserved-words + def self.keywords + @keywords ||= Set.new(%w( + ACCEPT ACCESS ACTIVE-CLASS ADD ADDRESS ADVANCING AFTER ALIGNED ALL ALLOCATE ALPHABET ALPHABETIC ALPHABETIC-LOWER + ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALSO ALTER ALTERNATE AND ANYCASE ANY APPLY ARE AREA AREAS + ASCENDING ASSIGN AT AUTHOR B-AND B-NOT B-OR B-XOR BASED BASIS BEFORE BEGINNING BINARY BINARY-CHAR BINARY-DOUBLE + BINARY-LONG BINARY-SHORT BIT BLANK BLOCK BOOLEAN BOTTOM BY BYTE-LENGTH CALL CANCEL CBL CD CF CH CHARACTER + CHARACTERS CLASS CLASS-ID CLOCK-UNITS CLOSE COBOL CODE CODE-SET COL COLLATING COLS COLUMN COLUMNS COM-REG COMMA + COMMON COMMUNICATION COMP-1 COMP-2 COMP-3 COMP-4 COMP-5 COMP COMPUTATIONAL-1 COMPUTATIONAL-2 + COMPUTATIONAL-3 COMPUTATIONAL-4 COMPUTATIONAL-5 COMPUTATIONAL COMPUTE CONDITION CONSTANT CONTAINS CONTENT + CONTINUE CONTROL CONTROLS CONVERTING COPY CORR CORRESPONDING COUNT CRT CURRENCY CURSOR DATA-POINTER DATE + DATE-COMPILED DATE-WRITTEN DAY DAY-OF-WEEK DBCS DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE DEBUG-NAME DEBUG-SUB-1 + DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING DECIMAL-POINT DECLARATIVES DEFAULT DELETE DELIMITED DELIMITER DEPENDING + DESCENDING DESTINATION DETAIL DISABLE DISPLAY-1 DISPLAY DIVIDE DOWN DUPLICATES DYNAMIC EC EGCS EGI + EJECT ELSE EMI ENABLE END-ACCEPT END-ADD END-CALL END-COMPUTE END-DELETE END-DISPLAY END-DIVIDE END-EVALUATE + END-EXEC END-IF END-INVOKE END-JSON END-MULTIPLY END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN + END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT END-UNSTRING END-WRITE END-XML ENDING END ENTER ENTRY + EO EOP EQUAL ERROR ESI EVALUATE EVERY EXCEPTION EXCEPTION-OBJECT EXEC EXECUTE EXIT EXTEND EXTERNAL + FACTORY FALSE FD FILE-CONTROL FILLER FINAL FIRST FLOAT-EXTENDED FLOAT-LONG FLOAT-SHORT FOOTING FOR FORMAT + FREE FROM FUNCTION FUNCTION-ID FUNCTION-POINTER GENERATE GET GIVING GLOBAL GO GOBACK GREATER GROUP GROUP-USAGE + HEADING HIGH-VALUE HIGH-VALUES I-O-CONTROL I-O ID IF IN INDEX INDEXED INDICATE INHERITS INITIAL + INITIALIZE INITIATE INPUT INSERT INSPECT INSTALLATION INTERFACE INTERFACE-ID INTO INVALID INVOKE + IS JAVA JNIENVPTR JSON JSON-CODE JSON-STATUS JUST JUSTIFIED KANJI KEY LABEL LAST LEADING LEFT LENGTH LESS LIMIT + LIMITS LINAGE-COUNTER LINAGE LINE-COUNTER LINES LINE LOCALE LOCK LOW-VALUE LOW-VALUES + MEMORY MERGE MESSAGE METHOD METHOD-ID MINUS MODE MODULES MORE-LABELS MOVE MULTIPLE MULTIPLY NATIONAL + NATIONAL-EDITED NATIVE NEGATIVE NESTED NEXT NO NOT NULL NULLS NUMBER NUMERIC NUMERIC-EDITED OBJECT + OBJECT-COMPUTER OBJECT-REFERENCE OCCURS OF OFF OMITTED ON OPEN OPTIONAL OPTIONS OR ORDER ORGANIZATION + OTHER OUTPUT OVERFLOW OVERRIDE PACKED-DECIMAL PADDING PAGE PAGE-COUNTER PASSWORD PERFORM PF PH PIC PICTURE + PLUS POINTER- POINTER-31 POINTER-32 POINTER-64 POINTER POSITION POSITIVE PRESENT PRINTING + PROCEDURE-POINTER PROCEDURES PROCEED PROCESSING PROGRAM-ID PROGRAM-POINTER PROGRAM PROPERTY PROTOTYPE + PURGE QUEUE QUOTE QUOTES RAISE RAISING RANDOM RD READ READY RECEIVE RECORD RECORDING RECORDS RECURSIVE REDEFINES + REEL REFERENCE REFERENCES RELATIVE RELEASE RELOAD REMAINDER REMOVAL RENAMES REPLACE REPLACING REPORT REPORTING + REPORTS REPOSITORY RERUN RESERVE RESET RESUME RETRY RETURN RETURN-CODE RETURNING REVERSED REWIND REWRITE RF RH + RIGHT ROUNDED RUN SAME SCREEN SD SEARCH SECTION SECURITY SEGMENT SEGMENT-LIMIT SELECT SELF SEND SENTENCE + SEPARATE SEQUENCE SEQUENTIAL SERVICE SET SHARING SHIFT-IN SHIFT-OUT SIGN SIZE SKIP1 SKIP2 SKIP3 + SORT-CONTROL SORT-CORE-SIZE SORT-FILE-SIZE SORT-MERGE SORT-MESSAGE SORT-MODE-SIZE SORT-RETURN SORT + SOURCE-COMPUTER SOURCES SOURCE SPACE SPACES SPECIAL-NAMES SQL SQLIMS STANDARD-1 STANDARD-2 STANDARD START STATUS STOP + STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUBTRACT SUM SUPER SUPPRESS SYMBOLIC SYNC SYNCHRONIZED SYSTEM-DEFAULT + TABLE TALLY TALLYING TAPE TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TITLE TO TOP TRACE + TRAILING TRUE TYPE TYPEDEF UNIT UNIVERSAL UNLOCK UNSTRING UNTIL UP UPON USAGE USE USER-DEFAULT USING UTF-8 + VAL-STATUS VALID VALIDATE VALIDATE-STATUS VALUE VALUES VARYING VOLATILE WHEN WHEN-COMPILED WITH WORDS + WRITE WRITE-ONLY XML-CODE XML-EVENT XML-INFORMATION XML-NAMESPACE XML-NAMESPACE-PREFIX + XML-NNAMESPACE XML-NNAMESPACE-PREFIX XML-NTEXT XML-SCHEMA XML-TEXT XML ZERO ZEROES ZEROS + )) + end + + state :root do + # First detect the comments + rule %r/^( \*).*|^(^Debug \*).*/, Comment::Special + + # Strings + rule %r/"/, Str::Double, :string_double + rule %r/'/, Str::Single, :string_single + + # Keywords and divisions + rule %r/(?<![\w-])#{identifier}(?![\w-])/i do |m| + if self.class.divisions.include?(m[0].upcase) + token Keyword::Declaration + elsif self.class.sections.include?(m[0].upcase) + token Keyword::Namespace + elsif self.class.keywords.include?(m[0].upcase) + token Keyword + else + token Name + end + end + + # Numbers + rule %r/[-+]?\b\d+(\.\d+)?\b/, Num + + # Punctuation + rule %r/[.,;:()]/, Punctuation + + # Comments + rule %r/\*>.*/, Comment::Single + + # Operators + rule %r/[+\-*\/><=]/, Operator + + # Whitespace remaining + rule %r/\s/, Text::Whitespace + + # Anything else remaining + rule %r/.+/, Text + end + + # TODO double check string escaping in COBOL + # TODO Fix that a string opened by " can't be closed by ' + # TODO Fix that strings can't be multi-line + + # Handle strings where " opens a string and must be closed by " + state :string_double do + # Ensure strings can't span multiple lines + rule %r/[^"\\\n]+/, Str + rule %r/\\./, Str::Escape + rule %r/"/, Str::Double, :pop! + rule %r/\n/, Error # Flag an error if a string goes to the next line + end + + # Handle strings where ' opens a string and must be closed by ' + state :string_single do + # Ensure strings can't span multiple lines + rule %r/[^'\\\n]+/, Str + rule %r/\\./, Str::Escape + rule %r/'/, Str::Single, :pop! + rule %r/\n/, Error # Flag an error if a string goes to the next line + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/codeowners.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/codeowners.rb new file mode 100644 index 0000000..7f07911 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/codeowners.rb @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Codeowners < RegexLexer + title 'CODEOWNERS' + desc 'Code Owners syntax (https://docs.gitlab.com/ee/user/project/codeowners/reference.html)' + tag 'codeowners' + filenames 'CODEOWNERS' + + state :root do + rule %r/[ \t\r\n]+/, Text::Whitespace + rule %r/^\s*#.*$/, Comment::Single + + rule %r( + (\^?\[(?!\d+\])[^\]]+\]) + (\[\d+\])? + )x do + groups Name::Namespace, Literal::Number + end + + rule %r/\S*@\S+/, Name::Function + + rule %r/[\p{Word}\.\/\-\*]+/, Name + rule %r/.*\\[\#\s]/, Name + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/coffeescript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/coffeescript.rb new file mode 100644 index 0000000..032943b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/coffeescript.rb @@ -0,0 +1,215 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Coffeescript < RegexLexer + tag 'coffeescript' + aliases 'coffee', 'coffee-script' + filenames '*.coffee', 'Cakefile' + mimetypes 'text/coffeescript' + + title "CoffeeScript" + desc 'The Coffeescript programming language (coffeescript.org)' + + def self.detect?(text) + return true if text.shebang? 'coffee' + end + + def self.keywords + @keywords ||= Set.new %w( + for by while until loop break continue return + switch when then if else do yield throw try catch finally await + new delete typeof instanceof super extends this class + import export debugger + ) + end + + def self.reserved + @reserved ||= Set.new %w( + case function var void with const let enum + native implements interface package private protected public static + ) + end + + def self.constants + @constants ||= Set.new %w( + true false yes no on off null NaN Infinity undefined + ) + end + + def self.builtins + @builtins ||= Set.new %w( + Array Boolean Date Error Function Math netscape Number Object + Packages RegExp String sun decodeURI decodeURIComponent + encodeURI encodeURIComponent eval isFinite isNaN parseFloat + parseInt document window + ) + end + + id = /[$a-zA-Z_][a-zA-Z0-9_]*/ + + state :comments do + rule %r/###[^#].*?###/m, Comment::Multiline + rule %r/#.*$/, Comment::Single + end + + state :whitespace do + rule %r/\s+/m, Text + end + + state :regex_comment do + rule %r/^#(?!\{).*$/, Comment::Single + rule %r/(\s+)(#(?!\{).*)$/ do + groups Text, Comment::Single + end + end + + state :multiline_regex_begin do + rule %r(///) do + token Str::Regex + goto :multiline_regex + end + end + + state :multiline_regex_end do + rule %r(///([gimy]+\b|\B)), Str::Regex, :pop! + end + + state :multiline_regex do + mixin :multiline_regex_end + mixin :regex_comment + mixin :has_interpolation + mixin :comments + mixin :whitespace + mixin :code_escape + + rule %r/\\\D/, Str::Escape + rule %r/\\\d+/, Name::Variable + rule %r/./m, Str::Regex + end + + state :slash_starts_regex do + mixin :comments + mixin :whitespace + mixin :multiline_regex_begin + + rule %r( + /(\\.|[^\[/\\\n]|\[(\\.|[^\]\\\n])*\])+/ # a regex + ([gimy]+\b|\B) + )x, Str::Regex, :pop! + + rule(//) { pop! } + end + + state :root do + rule(%r(^(?=\s|/|<!--))) { push :slash_starts_regex } + mixin :comments + mixin :whitespace + + rule %r( + [+][+]|--|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\bin\b|\bof\b| + [?]|:|=|[|][|]|\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*`%&|^/])=? + )x, Operator, :slash_starts_regex + + rule %r/[-=]>/, Name::Function + + rule %r/(@)([ \t]*)(#{id})/ do + groups Name::Variable::Instance, Text, Name::Attribute + push :slash_starts_regex + end + + rule %r/([.])([ \t]*)(#{id})/ do + groups Punctuation, Text, Name::Attribute + push :slash_starts_regex + end + + rule %r/#{id}(?=\s*:)/, Name::Attribute, :slash_starts_regex + + rule %r/#{id}/ do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.constants.include? m[0] + token Name::Constant + elsif self.class.builtins.include? m[0] + token Name::Builtin + else + token Name::Other + end + + push :slash_starts_regex + end + + rule %r/[{(\[;,]/, Punctuation, :slash_starts_regex + rule %r/[})\].]/, Punctuation + + rule %r/\d+[.]\d+([eE]\d+)?[fd]?/, Num::Float + rule %r/0x[0-9a-fA-F]+/, Num::Hex + rule %r/\d+/, Num::Integer + rule %r/"""/, Str, :tdqs + rule %r/'''/, Str, :tsqs + rule %r/"/, Str, :dqs + rule %r/'/, Str, :sqs + end + + state :code_escape do + rule %r(\\( + c[A-Z]| + x[0-9a-fA-F]{2}| + u[0-9a-fA-F]{4}| + u\{[0-9a-fA-F]{4}\} + ))x, Str::Escape + end + + state :strings do + # all coffeescript strings are multi-line + rule %r/[^#\\'"]+/m, Str + mixin :code_escape + rule %r/\\./, Str::Escape + rule %r/#/, Str + end + + state :double_strings do + rule %r/'/, Str + mixin :has_interpolation + mixin :strings + end + + state :single_strings do + rule %r/"/, Str + mixin :strings + end + + state :interpolation do + rule %r/}/, Str::Interpol, :pop! + mixin :root + end + + state :has_interpolation do + rule %r/[#][{]/, Str::Interpol, :interpolation + end + + state :dqs do + rule %r/"/, Str, :pop! + mixin :double_strings + end + + state :tdqs do + rule %r/"""/, Str, :pop! + rule %r/"/, Str + mixin :double_strings + end + + state :sqs do + rule %r/'/, Str, :pop! + mixin :single_strings + end + + state :tsqs do + rule %r/'''/, Str, :pop! + rule %r/'/, Str + mixin :single_strings + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/common_lisp.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/common_lisp.rb new file mode 100644 index 0000000..bd779ef --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/common_lisp.rb @@ -0,0 +1,346 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class CommonLisp < RegexLexer + title "Common Lisp" + desc "The Common Lisp variant of Lisp (common-lisp.net)" + tag 'common_lisp' + aliases 'cl', 'common-lisp', 'elisp', 'emacs-lisp', 'lisp' + + filenames '*.cl', '*.lisp', '*.asd', '*.el' # used for Elisp too + mimetypes 'text/x-common-lisp' + + # 638 functions + BUILTIN_FUNCTIONS = Set.new %w( + < <= = > >= - / /= * + 1- 1+ abort abs acons acos acosh add-method + adjoin adjustable-array-p adjust-array allocate-instance + alpha-char-p alphanumericp append apply apropos apropos-list + aref arithmetic-error-operands arithmetic-error-operation + array-dimension array-dimensions array-displacement + array-element-type array-has-fill-pointer-p array-in-bounds-p + arrayp array-rank array-row-major-index array-total-size + ash asin asinh assoc assoc-if assoc-if-not atan atanh atom + bit bit-and bit-andc1 bit-andc2 bit-eqv bit-ior bit-nand + bit-nor bit-not bit-orc1 bit-orc2 bit-vector-p bit-xor boole + both-case-p boundp break broadcast-stream-streams butlast + byte byte-position byte-size caaaar caaadr caaar caadar + caaddr caadr caar cadaar cadadr cadar caddar cadddr caddr + cadr call-next-method car cdaaar cdaadr cdaar cdadar cdaddr + cdadr cdar cddaar cddadr cddar cdddar cddddr cdddr cddr cdr + ceiling cell-error-name cerror change-class char char< char<= + char= char> char>= char/= character characterp char-code + char-downcase char-equal char-greaterp char-int char-lessp + char-name char-not-equal char-not-greaterp char-not-lessp + char-upcase cis class-name class-of clear-input clear-output + close clrhash code-char coerce compile compiled-function-p + compile-file compile-file-pathname compiler-macro-function + complement complex complexp compute-applicable-methods + compute-restarts concatenate concatenated-stream-streams conjugate + cons consp constantly constantp continue copy-alist copy-list + copy-pprint-dispatch copy-readtable copy-seq copy-structure + copy-symbol copy-tree cos cosh count count-if count-if-not + decode-float decode-universal-time delete delete-duplicates + delete-file delete-if delete-if-not delete-package denominator + deposit-field describe describe-object digit-char digit-char-p + directory directory-namestring disassemble documentation dpb + dribble echo-stream-input-stream echo-stream-output-stream + ed eighth elt encode-universal-time endp enough-namestring + ensure-directories-exist ensure-generic-function eq + eql equal equalp error eval evenp every exp export expt + fboundp fceiling fdefinition ffloor fifth file-author + file-error-pathname file-length file-namestring file-position + file-string-length file-write-date fill fill-pointer find + find-all-symbols find-class find-if find-if-not find-method + find-package find-restart find-symbol finish-output first + float float-digits floatp float-precision float-radix + float-sign floor fmakunbound force-output format fourth + fresh-line fround ftruncate funcall function-keywords + function-lambda-expression functionp gcd gensym gentemp get + get-decoded-time get-dispatch-macro-character getf gethash + get-internal-real-time get-internal-run-time get-macro-character + get-output-stream-string get-properties get-setf-expansion + get-universal-time graphic-char-p hash-table-count hash-table-p + hash-table-rehash-size hash-table-rehash-threshold + hash-table-size hash-table-test host-namestring identity + imagpart import initialize-instance input-stream-p inspect + integer-decode-float integer-length integerp interactive-stream-p + intern intersection invalid-method-error invoke-debugger + invoke-restart invoke-restart-interactively isqrt keywordp + last lcm ldb ldb-test ldiff length lisp-implementation-type + lisp-implementation-version list list* list-all-packages listen + list-length listp load load-logical-pathname-translations + log logand logandc1 logandc2 logbitp logcount logeqv + logical-pathname logical-pathname-translations logior + lognand lognor lognot logorc1 logorc2 logtest logxor + long-site-name lower-case-p machine-instance machine-type + machine-version macroexpand macroexpand-1 macro-function + make-array make-broadcast-stream make-concatenated-stream + make-condition make-dispatch-macro-character make-echo-stream + make-hash-table make-instance make-instances-obsolete make-list + make-load-form make-load-form-saving-slots make-package + make-pathname make-random-state make-sequence make-string + make-string-input-stream make-string-output-stream make-symbol + make-synonym-stream make-two-way-stream makunbound map mapc + mapcan mapcar mapcon maphash map-into mapl maplist mask-field + max member member-if member-if-not merge merge-pathnames + method-combination-error method-qualifiers min minusp mismatch mod + muffle-warning name-char namestring nbutlast nconc next-method-p + nintersection ninth no-applicable-method no-next-method not notany + notevery nreconc nreverse nset-difference nset-exclusive-or + nstring-capitalize nstring-downcase nstring-upcase nsublis + nsubst nsubst-if nsubst-if-not nsubstitute nsubstitute-if + nsubstitute-if-not nth nthcdr null numberp numerator nunion + oddp open open-stream-p output-stream-p package-error-package + package-name package-nicknames packagep package-shadowing-symbols + package-used-by-list package-use-list pairlis parse-integer + parse-namestring pathname pathname-device pathname-directory + pathname-host pathname-match-p pathname-name pathnamep + pathname-type pathname-version peek-char phase plusp + position position-if position-if-not pprint pprint-dispatch + pprint-fill pprint-indent pprint-linear pprint-newline pprint-tab + pprint-tabular prin1 prin1-to-string princ princ-to-string print + print-object probe-file proclaim provide random random-state-p + rassoc rassoc-if rassoc-if-not rational rationalize rationalp + read read-byte read-char read-char-no-hang read-delimited-list + read-from-string read-line read-preserving-whitespace + read-sequence readtable-case readtablep realp realpart + reduce reinitialize-instance rem remhash remove + remove-duplicates remove-if remove-if-not remove-method + remprop rename-file rename-package replace require rest + restart-name revappend reverse room round row-major-aref + rplaca rplacd sbit scale-float schar search second set + set-difference set-dispatch-macro-character set-exclusive-or + set-macro-character set-pprint-dispatch set-syntax-from-char + seventh shadow shadowing-import shared-initialize + short-site-name signal signum simple-bit-vector-p + simple-condition-format-arguments simple-condition-format-control + simple-string-p simple-vector-p sin sinh sixth sleep slot-boundp + slot-exists-p slot-makunbound slot-missing slot-unbound slot-value + software-type software-version some sort special-operator-p + sqrt stable-sort standard-char-p store-value stream-element-type + stream-error-stream stream-external-format streamp string string< + string<= string= string> string>= string/= string-capitalize + string-downcase string-equal string-greaterp string-left-trim + string-lessp string-not-equal string-not-greaterp string-not-lessp + stringp string-right-trim string-trim string-upcase sublis subseq + subsetp subst subst-if subst-if-not substitute substitute-if + substitute-if-not subtypepsvref sxhash symbol-function + symbol-name symbolp symbol-package symbol-plist symbol-value + synonym-stream-symbol syntax: tailp tan tanh tenth terpri third + translate-logical-pathname translate-pathname tree-equal truename + truncate two-way-stream-input-stream two-way-stream-output-stream + type-error-datum type-error-expected-type type-of + typep unbound-slot-instance unexport unintern union + unread-char unuse-package update-instance-for-different-class + update-instance-for-redefined-class upgraded-array-element-type + upgraded-complex-part-type upper-case-p use-package + user-homedir-pathname use-value values values-list vector vectorp + vector-pop vector-push vector-push-extend warn wild-pathname-p + write write-byte write-char write-line write-sequence write-string + write-to-string yes-or-no-p y-or-n-p zerop + ).freeze + + SPECIAL_FORMS = Set.new %w( + block catch declare eval-when flet function go if labels lambda + let let* load-time-value locally macrolet multiple-value-call + multiple-value-prog1 progn progv quote return-from setq + symbol-macrolet tagbody the throw unwind-protect + ) + + MACROS = Set.new %w( + and assert call-method case ccase check-type cond ctypecase decf + declaim defclass defconstant defgeneric define-compiler-macro + define-condition define-method-combination define-modify-macro + define-setf-expander define-symbol-macro defmacro defmethod + defpackage defparameter defsetf defstruct defsystem deftype defun defvar + destructuring-bind do do* do-all-symbols do-external-symbols + dolist do-symbols dotimes ecase etypecase formatter + handler-bind handler-case ignore-errors incf in-package + lambda loop loop-finish make-method multiple-value-bind + multiple-value-list multiple-value-setq nth-value or pop + pprint-exit-if-list-exhausted pprint-logical-block pprint-pop + print-unreadable-object prog prog* prog1 prog2 psetf psetq + push pushnew remf restart-bind restart-case return rotatef + setf shiftf step time trace typecase unless untrace when + with-accessors with-compilation-unit with-condition-restarts + with-hash-table-iterator with-input-from-string with-open-file + with-open-stream with-output-to-string with-package-iterator + with-simple-restart with-slots with-standard-io-syntax + ) + + LAMBDA_LIST_KEYWORDS = Set.new %w( + &allow-other-keys &aux &body &environment &key &optional &rest + &whole + ) + + DECLARATIONS = Set.new %w( + dynamic-extent ignore optimize ftype inline special ignorable + notinline type + ) + + BUILTIN_TYPES = Set.new %w( + atom boolean base-char base-string bignum bit compiled-function + extended-char fixnum keyword nil signed-byte short-float + single-float double-float long-float simple-array + simple-base-string simple-bit-vector simple-string simple-vector + standard-char unsigned-byte + + arithmetic-error cell-error condition control-error + division-by-zero end-of-file error file-error + floating-point-inexact floating-point-overflow + floating-point-underflow floating-point-invalid-operation + parse-error package-error print-not-readable program-error + reader-error serious-condition simple-condition simple-error + simple-type-error simple-warning stream-error storage-condition + style-warning type-error unbound-variable unbound-slot + undefined-function warning + ) + + BUILTIN_CLASSES = Set.new %w( + array broadcast-stream bit-vector built-in-class character + class complex concatenated-stream cons echo-stream file-stream + float function generic-function hash-table integer list + logical-pathname method-combination method null number package + pathname ratio rational readtable real random-state restart + sequence standard-class standard-generic-function standard-method + standard-object string-stream stream string structure-class + structure-object symbol synonym-stream t two-way-stream vector + ) + + nonmacro = /\\.|[a-zA-Z0-9!$%&*+-\/<=>?@\[\]^_{}~]/ + constituent = /#{nonmacro}|[#.:]/ + terminated = /(?=[ "'()\n,;`])/ # whitespace or terminating macro chars + symbol = /(\|[^\|]+\||#{nonmacro}#{constituent}*)/ + + state :root do + rule %r/\s+/m, Text + rule %r/;.*$/, Comment::Single + rule %r/#\|/, Comment::Multiline, :multiline_comment + + # encoding comment + rule %r/#\d*Y.*$/, Comment::Special + rule %r/"(\\.|[^"\\])*"/, Str + + rule %r/[:']#{symbol}/, Str::Symbol + rule %r/['`]/, Operator + + # numbers + rule %r/[-+]?\d+\.?#{terminated}/, Num::Integer + rule %r([-+]?\d+/\d+#{terminated}), Num::Integer + rule %r( + [-+]? + (\d*\.\d+([defls][-+]?\d+)? + |\d+(\.\d*)?[defls][-+]?\d+) + #{terminated} + )x, Num::Float + + # sharpsign strings and characters + rule %r/#\\.#{terminated}/, Str::Char + rule %r/#\\#{symbol}/, Str::Char + + rule %r/#\(/, Operator, :root + + # bitstring + rule %r/#\d*\*[01]*/, Other + + # uninterned symbol + rule %r/#:#{symbol}/, Str::Symbol + + # read-time and load-time evaluation + rule %r/#[.,]/, Operator + + # function shorthand + rule %r/#'/, Name::Function + + # binary rational + rule %r/#b[+-]?[01]+(\/[01]+)?/i, Num + + # octal rational + rule %r/#o[+-]?[0-7]+(\/[0-7]+)?/i, Num::Oct + + # hex rational + rule %r/#x[+-]?[0-9a-f]+(\/[0-9a-f]+)?/i, Num + + # complex + rule %r/(#c)(\()/i do + groups Num, Punctuation + push :root + end + + # arrays and structures + rule %r/(#(?:\d+a|s))(\()/i do + groups Str::Other, Punctuation + push :root + end + + # path + rule %r/#p?"(\\.|[^"])*"/i, Str::Symbol + + # reference + rule %r/#\d+[=#]/, Operator + + # read-time comment + rule %r/#+nil#{terminated}\s*\(/, Comment, :commented_form + + # read-time conditional + rule %r/#[+-]/, Operator + + # special operators that should have been parsed already + rule %r/(,@|,|\.)/, Operator + + # special constants + rule %r/(t|nil)#{terminated}/, Name::Constant + + # functions and variables + # note that these get filtered through in stream_tokens + rule %r/\*#{symbol}\*/, Name::Variable::Global + rule symbol do |m| + sym = m[0] + + if BUILTIN_FUNCTIONS.include? sym + token Name::Builtin + elsif SPECIAL_FORMS.include? sym + token Keyword + elsif MACROS.include? sym + token Name::Builtin + elsif LAMBDA_LIST_KEYWORDS.include? sym + token Keyword + elsif DECLARATIONS.include? sym + token Keyword + elsif BUILTIN_TYPES.include? sym + token Keyword::Type + elsif BUILTIN_CLASSES.include? sym + token Name::Class + else + token Name::Variable + end + end + + rule %r/\(/, Punctuation, :root + rule %r/\)/, Punctuation do + if stack.size == 1 + token Error + else + token Punctuation + pop! + end + end + end + + state :multiline_comment do + rule %r/#\|/, Comment::Multiline, :multiline_comment + rule %r/\|#/, Comment::Multiline, :pop! + rule %r/[^\|#]+/, Comment::Multiline + rule %r/[\|#]/, Comment::Multiline + end + + state :commented_form do + rule %r/\(/, Comment, :commented_form + rule %r/\)/, Comment, :pop! + rule %r/[^()]+/, Comment + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/conf.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/conf.rb new file mode 100644 index 0000000..79a0f92 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/conf.rb @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Conf < RegexLexer + tag 'conf' + aliases 'config', 'configuration' + + title "Config File" + desc 'A generic lexer for configuration files' + filenames '*.conf', '*.config' + + # short and sweet + state :root do + rule %r/#.*?\n/, Comment + rule %r/".*?"/, Str::Double + rule %r/'.*?'/, Str::Single + rule %r/[a-z]\w*/i, Name + rule %r/\d+/, Num + rule %r/[^\w#"']+/, Text + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/console.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/console.rb new file mode 100644 index 0000000..4854da5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/console.rb @@ -0,0 +1,190 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + # The {ConsoleLexer} class is intended to lex content that represents the + # text that would display in a console/terminal. As distinct from the + # {Shell} lexer, {ConsoleLexer} will try to parse out the prompt from each + # line before passing the remainder of the line to the language lexer for + # the shell (by default, the {Shell} lexer). + # + # The {ConsoleLexer} class accepts five options: + # 1. **lang**: the shell language to lex (default: `shell`); + # 2. **output**: the output language (default: `plaintext?token=Generic.Output`); + # 3. **prompt**: comma-separated list of strings that indicate the end of a + # prompt (default: `$,#,>,;`); + # 4. **comments**: whether to enable comments. + # 5. **error**: comma-separated list of strings that indicate the start of an + # error message + # + # The comments option, if enabled, will lex lines that begin with a `#` as a + # comment. Please note that this option will only work if the prompt is + # either not manually specified or, if manually specified, does not include + # the `#` character. + # + # Most Markdown lexers that recognise GitHub-Flavored Markdown syntax, will + # pass the language string to Rouge as written in the original document. + # This allows an end user to pass options to {ConsoleLexer} by passing them + # as CGI-style parameters as in the example below. + # + # @example + # <pre>Here's some regular text. + # + # ```console?comments=true + # # This is a comment + # $ cp foo bar + # ``` + # + # Some more regular text.</pre> + class ConsoleLexer < Lexer + tag 'console' + aliases 'terminal', 'shell_session', 'shell-session' + filenames '*.cap' + desc 'A generic lexer for shell sessions. Accepts ?lang and ?output lexer options, a ?prompt option, ?comments to enable # comments, and ?error to handle error messages.' + + option :lang, 'the shell language to lex (default: shell)' + option :output, 'the output language (default: plaintext?token=Generic.Output)' + option :prompt, 'comma-separated list of strings that indicate the end of a prompt. (default: $,#,>,;)' + option :comments, 'enable hash-comments at the start of a line - otherwise interpreted as a prompt. (default: false, implied by ?prompt not containing `#`)' + option :error, 'comma-separated list of strings that indicate the start of an error message' + + def initialize(*) + super + @prompt = list_option(:prompt) { nil } + @lang = lexer_option(:lang) { 'shell' } + @output = lexer_option(:output) { PlainText.new(token: Generic::Output) } + @comments = bool_option(:comments) { :guess } + @error = list_option(:error) { nil } + end + + # whether to allow comments. if manually specifying a prompt that isn't + # simply "#", we flag this to on + def allow_comments? + case @comments + when :guess + @prompt && !@prompt.empty? && !end_chars.include?('#') + else + @comments + end + end + + def comment_regex + /\A\s*?#/ + end + + def end_chars + @end_chars ||= if @prompt.any? + @prompt.reject { |c| c.empty? } + elsif allow_comments? + %w($ > ;) + else + %w($ # > ;) + end + end + + def error_regex + @error_regex ||= if @error.any? + /^(?:#{@error.map(&Regexp.method(:escape)).join('|')})/ + end + end + + def lang_lexer + @lang_lexer ||= case @lang + when Lexer + @lang + when nil + Shell.new(options) + when Class + @lang.new(options) + when String + Lexer.find(@lang).new(options) + end + end + + def line_regex + /(.*?)(\n|$)/ + end + + def output_lexer + @output_lexer ||= case @output + when nil + PlainText.new(token: Generic::Output) + when Lexer + @output + when Class + @output.new(options) + when String + Lexer.find(@output).new(options) + end + end + + def process_line(input, &output) + input.scan(line_regex) + + # As a nicety, support the use of elisions in input text. A user can + # write a line with only `<...>` or one or more `.` characters and + # Rouge will treat it as a comment. + if input[0] =~ /\A\s*(?:<[.]+>|[.]+)\s*\z/ + puts "console: matched snip #{input[0].inspect}" if @debug + output_lexer.reset! + lang_lexer.reset! + + yield Comment, input[0] + elsif prompt_regex =~ input[0] + puts "console: matched prompt #{input[0].inspect}" if @debug + output_lexer.reset! + + yield Generic::Prompt, $& + + # make sure to take care of initial whitespace + # before we pass to the lang lexer so it can determine where + # the "real" beginning of the line is + $' =~ /\A\s*/ + yield Text::Whitespace, $& unless $&.empty? + + lang_lexer.continue_lex($', &output) + elsif comment_regex =~ input[0].strip + puts "console: matched comment #{input[0].inspect}" if @debug + output_lexer.reset! + lang_lexer.reset! + + yield Comment, input[0] + elsif error_regex =~ input[0] + puts "console: matched error #{input[0].inspect}" if @debug + output_lexer.reset! + lang_lexer.reset! + + yield Generic::Error, input[0] + else + puts "console: matched output #{input[0].inspect}" if @debug + lang_lexer.reset! + + output_lexer.continue_lex(input[0], &output) + end + end + + def prompt_prefix_regex + if allow_comments? + /[^<#]*?/m + else + /.*?/m + end + end + + def prompt_regex + @prompt_regex ||= begin + /^#{prompt_prefix_regex}(?:#{end_chars.map(&Regexp.method(:escape)).join('|')})/ + end + end + + def stream_tokens(input, &output) + input = StringScanner.new(input) + lang_lexer.reset! + output_lexer.reset! + + process_line(input, &output) while !input.eos? + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/coq.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/coq.rb new file mode 100644 index 0000000..fdd4699 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/coq.rb @@ -0,0 +1,255 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Coq < RegexLexer + title "Coq" + desc 'Coq (coq.inria.fr)' + tag 'coq' + mimetypes 'text/x-coq' + + def self.gallina + @gallina ||= Set.new %w( + as fun if in let match then else return end Type Set Prop + forall + ) + end + + def self.coq + @coq ||= Set.new %w( + Definition Theorem Lemma Remark Example Fixpoint CoFixpoint + Record Inductive CoInductive Corollary Goal Proof + Ltac Require Import Export Module Section End Variable + Context Polymorphic Monomorphic Universe Universes + Variables Class Instance Global Local Include + Printing Notation Infix Arguments Hint Rewrite Immediate + Qed Defined Opaque Transparent Existing + Compute Eval Print SearchAbout Search About Check Admitted + ) + end + + def self.ltac + @ltac ||= Set.new %w( + apply eapply auto eauto rewrite setoid_rewrite + with in as at destruct split inversion injection + intro intros unfold fold cbv cbn lazy subst + clear symmetry transitivity etransitivity erewrite + edestruct constructor econstructor eexists exists + f_equal refine instantiate revert simpl + specialize generalize dependent red induction + beta iota zeta delta exfalso autorewrite setoid_rewrite + compute vm_compute native_compute + ) + end + + def self.tacticals + @tacticals ||= Set.new %w( + repeat first try + ) + end + + def self.terminators + @terminators ||= Set.new %w( + omega solve congruence reflexivity exact + assumption eassumption + ) + end + + def self.classify(x) + if self.coq.include? x + return Keyword + elsif self.gallina.include? x + return Keyword::Reserved + elsif self.ltac.include? x + return Keyword::Pseudo + elsif self.terminators.include? x + return Name::Exception + elsif self.tacticals.include? x + return Keyword::Pseudo + else + return Name::Constant + end + end + + # https://github.com/coq/coq/blob/110921a449fcb830ec2a1cd07e3acc32319feae6/clib/unicode.ml#L67 + # https://coq.inria.fr/refman/language/core/basic.html#grammar-token-ident + id_first = /\p{L}/ + id_first_underscore = /(?:\p{L}|_)/ + id_subsequent = /(?:\p{L}|\p{N}|_|')/ # a few missing? some mathematical ' primes and subscripts + id = /(?:#{id_first}#{id_subsequent}*)|(?:#{id_first_underscore}#{id_subsequent}+)/i + dot_id = /\.(#{id})/i + dot_space = /\.(\s+)/ + + state :root do + mixin :begin_proof + mixin :sentence + end + + state :sentence do + mixin :comment_whitespace + mixin :module_setopts + # After parsing the id, end up in sentence_postid + rule id do |m| + @name = m[0] + @id_dotted = false + push :sentence_postid + push :continue_id + end + end + + state :begin_proof do + rule %r/(Proof)(\s*)(\.)(\s+)/i do + groups Keyword, Text::Whitespace, Punctuation::Indicator, Text::Whitespace + push :proof_mode + end + end + + state :proof_mode do + mixin :comment_whitespace + mixin :module_setopts + mixin :begin_proof + + rule %r/(Qed|Defined|Save|Admitted)(\s*)(\.)(\s+)/i do + groups Keyword, Text::Whitespace, Punctuation::Indicator, Text::Whitespace + pop! + end + # the whole point of parsing Proof/Qed, normally some of these will be operators + rule %r/(?:\-+|\++|\*+)/, Punctuation + rule %r/[{}]/, Punctuation + # toplevel_selector + rule %r/(!|all|par)(:)/ do + groups Keyword::Pseudo, Punctuation + end + # numbered goals 1: {} 1,2: {} + rule %r/\d+/, Num::Integer, :numeric_labels + # [named_goal]: { ... } + rule %r/(\[)(\s*)(#{id})(\s*)(\])(\s*)(:)/ do + groups Punctuation, Text::Whitespace, Name::Constant, Text::Whitespace, Punctuation, Text::Whitespace, Punctuation + end + # After parsing the id, end up in sentence_postid + rule id do |m| + @name = m[0] + @id_dotted = false + push :sentence_postid + push :continue_id + end + end + + state :numeric_labels do + mixin :whitespace + rule %r/(,)(\s*)(\d+)/ do + groups Punctuation, Text::Whitespace, Num::Integer + end + + rule %r(:), Punctuation, :pop! + end + + state :whitespace do + rule %r/\s+/m, Text::Whitespace + end + + state :comment_whitespace do + rule %r/[(][*](?![)])/, Comment, :comment + mixin :whitespace + end + + state :module_setopts do + rule %r/(Module)(\s+)(Type)(\s+)/ do + groups Keyword, Text::Whitespace, Keyword, Text::Whitespace + end + + rule %r( + (Set|Unset)(\s+) + (Universe|Printing|Implicit|Strict)(\s+) + (Polymorphism|All|Notations|Arguments|Universes|Implicit)?(\s*)(\.) + )x do + groups Keyword, Text::Whitespace, Keyword, Text::Whitespace, Keyword, Text::Whitespace, Punctuation::Indicator + end + end + + state :sentence_postid do + mixin :comment_whitespace + mixin :module_setopts + + # up here to beat the id rule for lambda + rule %r(:=|=>|;|:>|:|::|_), Punctuation + rule %r(->|/\\|\\/|;|:>|[⇒→↔⇔≔≡∀∃∧∨¬⊤⊥⊢⊨∈λ]), Operator + + rule id do |m| + @name = m[0] + @id_dotted = false + push :continue_id + end + + # must be followed by whitespace, so that we don't match notations like sym.(a + b) + rule %r/\.(?=\s)/, Punctuation::Indicator, :pop! # :sentence_postid + + rule %r/-?\d[\d_]*(.[\d_]*)?(e[+-]?\d[\d_]*)/i, Num::Float + rule %r/-?\d[\d_]*/, Num::Integer + + rule %r/'(?:(\\[\\"'ntbr ])|(\\[0-9]{3})|(\\x\h{2}))'/, Str::Char + rule %r/'/, Keyword + rule %r/"/, Str::Double, :string + rule %r/[~?]#{id}/, Name::Variable + + rule %r(`{|[{}\[\]()?|;,.]), Punctuation + rule %r([!@^|~#.%/]+), Operator + # any other combo of S (symbol), P (punctuation) and some extras just to be sure + rule %r((?:\p{S}|\p{Pc}|[./\:\<=>\-+*])+), Operator + + rule %r/./, Error + end + + state :comment do + rule %r/[^(*)]+/, Comment + rule(/[(][*]/) { token Comment; push } + rule %r/[*][)]/, Comment, :pop! + rule %r/[(*)]/, Comment + end + + state :string do + rule %r/[^"]+/, Str::Double + rule %r/""/, Str::Double + rule %r/"/, Str::Double, :pop! + end + + state :continue_id do + # the stream starts with an id (stored in @name) and continues here + rule dot_id do |m| + token Name::Namespace, @name + token Punctuation, '.' + @id_dotted = true + @name = m[1] + end + + rule dot_space do |m| + if @id_dotted + token Name::Constant, @name + else + token self.class.classify(@name), @name + end + + token Punctuation::Indicator, '.' + token Text::Whitespace, m[1] + @name = false + @id_dotted = false + pop! # :continue_id + pop! # :sentence_postid + end + + rule %r// do + if @id_dotted + token Name::Constant, @name + else + token self.class.classify(@name), @name + end + @name = false + @id_dotted = false + # we finished parsing an id, drop back into the sentence_postid that was pushed first. + pop! # :continue_id + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cpp.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cpp.rb new file mode 100644 index 0000000..5fe73c1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cpp.rb @@ -0,0 +1,104 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'c.rb' + + class Cpp < C + title "C++" + desc "The C++ programming language" + + tag 'cpp' + aliases 'c++' + # the many varied filenames of c++ source files... + filenames '*.cpp', '*.hpp', + '*.c++', '*.h++', + '*.cc', '*.hh', + '*.cxx', '*.hxx', + '*.pde', '*.ino', + '*.tpp', '*.h' + mimetypes 'text/x-c++hdr', 'text/x-c++src' + + def self.keywords + @keywords ||= super + Set.new(%w( + asm auto catch char8_t concept + consteval constexpr constinit const_cast co_await co_return co_yield + delete dynamic_cast explicit export friend + mutable namespace new operator private protected public + reinterpret_cast requires restrict size_of static_cast this throw throws + typeid typename using virtual final override import module + + alignas alignof decltype noexcept static_assert + thread_local try + )) + end + + def self.keywords_type + @keywords_type ||= super + Set.new(%w( + bool + )) + end + + def self.reserved + @reserved ||= super + Set.new(%w( + __virtual_inheritance __uuidof __super __single_inheritance + __multiple_inheritance __interface __event + )) + end + + id = /[a-zA-Z_][a-zA-Z0-9_]*/ + + prepend :root do + # Offload C++ extensions, http://offload.codeplay.com/ + rule %r/(?:__offload|__blockingoffload|__outer)\b/, Keyword::Pseudo + end + + # digits with optional inner quotes + # see www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf + dq = /\d('?\d)*/ + + prepend :statements do + rule %r/(class|struct)\b/, Keyword, :classname + rule %r/template\b/, Keyword, :template + rule %r/#{dq}(\.#{dq})?(?:y|d|h|(?:min)|s|(?:ms)|(?:us)|(?:ns)|i|(?:if)|(?:il))\b/, Num::Other + rule %r((#{dq}[.]#{dq}?|[.]#{dq})([ep][+-]?#{dq})?[luf]*)i, Num::Float + rule %r(#{dq}[ep][+-]?#{dq}[luf]*)i, Num::Float + rule %r/0x\h('?\h)*([ep][+-]?#{dq})?[lu]*/i, Num::Hex + rule %r/0x\h('?\h)*[.]\h+([ep][+-]?#{dq})[luf]*/i, Num::Hex + rule %r/0b[01]+('[01]+)*/, Num::Bin + rule %r/0[0-7]('?[0-7])*[lu]*/i, Num::Oct + rule %r/#{dq}[lu]*/i, Num::Integer + rule %r/\bnullptr\b/, Name::Builtin + rule %r/(?:u8|u|U|L)?R"([a-zA-Z0-9_{}\[\]#<>%:;.?*\+\-\/\^&|~!=,"']{,16})\(.*?\)\1"/m, Str + rule %r/(::|<=>)/, Operator + rule %r/[{]/, Punctuation + rule %r/}/ do + token Punctuation + pop! if in_state?(:function) # pop :function + end + end + + state :classname do + rule id, Name::Class, :pop! + + # template specification + mixin :whitespace + rule %r/[.]{3}/, Operator + rule %r/,/, Punctuation, :pop! + rule(//) { pop! } + end + + state :template do + rule %r/[>;]/, Punctuation, :pop! + rule %r/typename\b/, Keyword, :classname + mixin :statements + end + + state :case do + rule %r/:(?!:)/, Punctuation, :pop! + mixin :statements + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/crystal.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/crystal.rb new file mode 100644 index 0000000..6bd6a7c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/crystal.rb @@ -0,0 +1,435 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Crystal < RegexLexer + title "Crystal" + desc "Crystal The Programming Language (crystal-lang.org)" + tag 'crystal' + aliases 'cr' + filenames '*.cr' + + mimetypes 'text/x-crystal', 'application/x-crystal' + + def self.detect?(text) + return true if text.shebang? 'crystal' + end + + state :symbols do + # symbols + rule %r( + : # initial : + @{0,2} # optional ivar, for :@foo and :@@foo + [\p{Ll}_]\p{Word}*[!?]? # the symbol + )xi, Str::Symbol + + # special symbols + rule %r(:(?:===|=?~|\[\][=?]?|\*\*=?|\/\/=?|[=^*/+-]=?|&[&*+-]?=?|\|\|?=?|![=~]?|%=?|<=>|<<?=?|>>?=?|\.\.\.?)), Str::Symbol + + rule %r/:'(\\\\|\\'|[^'])*'/, Str::Symbol + rule %r/:"/, Str::Symbol, :simple_sym + end + + state :sigil_strings do + # %-sigiled strings + # %(abc), %[abc], %<abc>, %.abc., %r.abc., etc + delimiter_map = { '{' => '}', '[' => ']', '(' => ')', '<' => '>' } + rule %r/%([rqswQWxiI])?([^\p{Word}\s}])/ do |m| + open = Regexp.escape(m[2]) + close = Regexp.escape(delimiter_map[m[2]] || m[2]) + interp = /[rQWxI]/ === m[1] + toktype = Str::Other + + puts " open: #{open.inspect}" if @debug + puts " close: #{close.inspect}" if @debug + + # regexes + if m[1] == 'r' + toktype = Str::Regex + push :regex_flags + end + + token toktype + + push do + rule %r/\\[##{open}#{close}\\]/, Str::Escape + # nesting rules only with asymmetric delimiters + if open != close + rule %r/#{open}/ do + token toktype + push + end + end + rule %r/#{close}/, toktype, :pop! + + if interp + mixin :string_intp_escaped + rule %r/#/, toktype + else + rule %r/[\\#]/, toktype + end + + rule %r/[^##{open}#{close}\\]+/m, toktype + end + end + end + + state :strings do + mixin :symbols + rule %r/\b[\p{Ll}_]\p{Word}*?[?!]?:\s+/, Str::Symbol, :expr_start + rule %r/"/, Str::Double, :simple_string + rule %r/(?<!\.)`/, Str::Backtick, :simple_backtick + rule %r/(')(\\u[a-fA-F0-9]{4}|\\u\{[a-fA-F0-9]{1,6}\}|\\[abefnrtv])?(\\\\|\\'|[^'])*(')/ do + groups Str::Single, Str::Escape, Str::Single, Str::Single + end + end + + state :regex_flags do + rule %r/[mixounse]*/, Str::Regex, :pop! + end + + # double-quoted string and symbol + [[:string, Str::Double, '"'], + [:sym, Str::Symbol, '"'], + [:backtick, Str::Backtick, '`']].each do |name, tok, fin| + state :"simple_#{name}" do + mixin :string_intp_escaped + rule %r/[^\\#{fin}#]+/m, tok + rule %r/[\\#]/, tok + rule %r/#{fin}/, tok, :pop! + end + end + + keywords = %w( + BEGIN END alias begin break case defined\? do else elsif end + ensure for if ifdef in next redo rescue raise retry return super then + undef unless until when while yield lib fun type of as + ) + + keywords_pseudo = %w( + initialize new loop include extend raise attr_reader attr_writer + attr_accessor alias_method attr catch throw private module_function + public protected true false nil __FILE__ __LINE__ + getter getter? getter! property property? property! struct record + ) + + builtins_g = %w( + abort ancestors at_exit + caller catch chomp chop clone constants + display dup eval exec exit extend fail fork format freeze + getc gets global_variables gsub hash id included_modules + inspect instance_eval instance_method instance_methods + lambda loop method method_missing + methods module_eval name object_id open p print printf + proc putc puts raise rand + readline readlines require scan select self send + sleep split sprintf srand sub syscall system + test throw to_a to_s trap warn + ) + + builtins_q = %w( + eql equal include is_a iterator kind_of nil + ) + + builtins_b = %w(chomp chop exit gsub sub) + + start do + push :expr_start + @heredoc_queue = [] + end + + state :whitespace do + mixin :inline_whitespace + rule %r/\n\s*/m, Text, :expr_start + rule %r/#.*$/, Comment::Single + + rule %r(=begin\b.*?\n=end\b)m, Comment::Multiline + end + + state :inline_whitespace do + rule %r/[ \t\r]+/, Text + end + + state :root do + mixin :whitespace + rule %r/__END__/, Comment::Preproc, :end_part + + rule %r/0o[0-7]+(?:_[0-7]+)*/, Num::Oct + rule %r/0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/, Num::Hex + rule %r/0b[01]+(?:_[01]+)*/, Num::Bin + rule %r/\d+\.\d+(e[\+\-]?\d+)?(_f32)?/i, Num::Float + rule %r/\d+(e[\+\-]?\d+)/i, Num::Float + rule %r/\d+_f32/i, Num::Float + rule %r/[\d]+(?:_\d+)*(_[iu]\d+)?/, Num::Integer + + rule %r/@\[([^\]]+)\]/, Name::Decorator + + # names + rule %r/@@[\p{Ll}_]\p{Word}*/i, Name::Variable::Class + rule %r/@[\p{Ll}_]\p{Word}*/i, Name::Variable::Instance + rule %r/\$\p{Word}+/, Name::Variable::Global + rule %r(\$[!@&`'+~=/\\,;.<>_*\$?:"]), Name::Variable::Global + rule %r/\$-[0adFiIlpvw]/, Name::Variable::Global + rule %r/::/, Operator + + mixin :strings + + rule %r/(?:#{keywords.join('|')})\b/, Keyword, :expr_start + rule %r/(?:#{keywords_pseudo.join('|')})\b/, Keyword::Pseudo, :expr_start + + rule %r( + (module) + (\s+) + ([\p{L}_][\p{L}0-9_]*(::[\p{L}_][\p{L}0-9_]*)*) + )x do + groups Keyword, Text, Name::Namespace + end + + rule %r/(def|macro\b)(\s*)/ do + groups Keyword, Text + push :funcname + end + + rule %r/(class\b)(\s*)/ do + groups Keyword, Text + push :classname + end + + rule %r/(?:#{builtins_q.join('|')})[?]/, Name::Builtin, :expr_start + rule %r/(?:#{builtins_b.join('|')})!/, Name::Builtin, :expr_start + rule %r/(?<!\.)(?:#{builtins_g.join('|')})\b/, + Name::Builtin, :method_call + + mixin :has_heredocs + + # `..` and `...` for ranges must have higher priority than `.` + # Otherwise, they will be parsed as :method_call + rule %r/\.{2,3}/, Operator, :expr_start + + rule %r/[\p{Lu}][\p{L}0-9_]*/, Name::Constant, :method_call + rule %r/(\.|::)(\s*)([\p{Ll}_]\p{Word}*[!?]?|[*%&^`~+-\/\[<>=])/ do + groups Punctuation, Text, Name::Function + push :method_call + end + + rule %r/[\p{L}_]\p{Word}*[?!]/, Name, :expr_start + rule %r/[\p{L}_]\p{Word}*/, Name, :method_call + rule %r/\*\*|\/\/|>=|<=|<=>|<<?|>>?|=~|={3}|!~|&&?|\|\||\./, + Operator, :expr_start + rule %r/{%|%}/, Punctuation + rule %r/[-+\/*%=<>&!^|~]=?/, Operator, :expr_start + rule(/[?]/) { token Punctuation; push :ternary; push :expr_start } + rule %r<[\[({,:\\;/]>, Punctuation, :expr_start + rule %r<[\])}]>, Punctuation + end + + state :has_heredocs do + rule %r/(?<!\p{Word})(<<[-~]?)(["`']?)([\p{L}_]\p{Word}*)(\2)/ do |m| + token Operator, m[1] + token Name::Constant, "#{m[2]}#{m[3]}#{m[4]}" + @heredoc_queue << [['<<-', '<<~'].include?(m[1]), m[3]] + push :heredoc_queue unless state? :heredoc_queue + end + + rule %r/(<<[-~]?)(["'])(\2)/ do |m| + token Operator, m[1] + token Name::Constant, "#{m[2]}#{m[3]}#{m[4]}" + @heredoc_queue << [['<<-', '<<~'].include?(m[1]), ''] + push :heredoc_queue unless state? :heredoc_queue + end + end + + state :heredoc_queue do + rule %r/(?=\n)/ do + goto :resolve_heredocs + end + + mixin :root + end + + state :resolve_heredocs do + mixin :string_intp_escaped + + rule %r/\n/, Str::Heredoc, :test_heredoc + rule %r/[#\\\n]/, Str::Heredoc + rule %r/[^#\\\n]+/, Str::Heredoc + end + + state :test_heredoc do + rule %r/[^#\\\n]*$/ do |m| + tolerant, heredoc_name = @heredoc_queue.first + check = tolerant ? m[0].strip : m[0].rstrip + + # check if we found the end of the heredoc + puts " end heredoc check #{check.inspect} = #{heredoc_name.inspect}" if @debug + if check == heredoc_name + @heredoc_queue.shift + # if there's no more, we're done looking. + pop! if @heredoc_queue.empty? + token Name::Constant + else + token Str::Heredoc + end + + pop! + end + + rule(//) { pop! } + end + + state :funcname do + rule %r/\s+/, Text + rule %r/\(/, Punctuation, :defexpr + rule %r( + (?:([\p{L}_]\p{Word}*)(\.))? + ( + [\p{L}_]\p{Word}*[!?]? | + \*\*? | [-+]@? | [/%&\|^`~] | \[\]=? | + <<? | >>? | <=>? | >= | ===? + ) + )x do |m| + puts "matches: #{[m[0], m[1], m[2], m[3]].inspect}" if @debug + groups Name::Class, Operator, Name::Function + pop! + end + + rule(//) { pop! } + end + + state :classname do + rule %r/\s+/, Text + rule %r/\(/ do + token Punctuation + push :defexpr + push :expr_start + end + + # class << expr + rule %r/<</ do + token Operator + goto :expr_start + end + + rule %r/[\p{Lu}_]\p{Word}*/, Name::Class, :pop! + + rule(//) { pop! } + end + + state :ternary do + rule(/:(?!:)/) { token Punctuation; goto :expr_start } + + mixin :root + end + + state :defexpr do + rule %r/(\))(\.|::)?/ do + groups Punctuation, Operator + pop! + end + rule %r/\(/ do + token Punctuation + push :defexpr + push :expr_start + end + + mixin :root + end + + state :in_interp do + rule %r/}/, Str::Interpol, :pop! + mixin :root + end + + state :string_intp do + rule %r/[#][{]/, Str::Interpol, :in_interp + rule %r/#(@@?|\$)[\p{Ll}_]\p{Word}*/i, Str::Interpol + end + + state :string_intp_escaped do + mixin :string_intp + rule %r/\\([\\abefnrstv#"']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})/, + Str::Escape + rule %r/\\u([a-fA-F0-9]{4}|\{[^}]+\})/, Str::Escape + rule %r/\\./, Str::Escape + end + + state :method_call do + rule %r(/) do + token Operator + goto :expr_start + end + + rule(/(?=\n)/) { pop! } + + rule(//) { goto :method_call_spaced } + end + + state :method_call_spaced do + mixin :whitespace + + rule %r([%/]=) do + token Operator + goto :expr_start + end + + rule %r((/)(?=\S|\s*/)) do + token Str::Regex + goto :slash_regex + end + + mixin :sigil_strings + + rule(%r((?=\s*/))) { pop! } + + rule(/\s+/) { token Text; goto :expr_start } + rule(//) { pop! } + end + + state :expr_start do + mixin :inline_whitespace + + rule %r(/) do + token Str::Regex + goto :slash_regex + end + + # char operator. ?x evaulates to "x", unless there's a digit + # beforehand like x>=0?n[x]:"" + rule %r( + [?](\\[MC]-)* # modifiers + (\\([\\abefnrstv\#"']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S) + (?!\p{Word}) + )x, Str::Char, :pop! + + # special case for using a single space. Ruby demands that + # these be in a single line, otherwise it would make no sense. + rule %r/(\s*)(%[rqswQWxiI]? \S* )/ do + groups Text, Str::Other + pop! + end + + mixin :sigil_strings + + rule(//) { pop! } + end + + state :slash_regex do + mixin :string_intp + rule %r(\\\\), Str::Regex + rule %r(\\/), Str::Regex + rule %r([\\#]), Str::Regex + rule %r([^\\/#]+)m, Str::Regex + rule %r(/) do + token Str::Regex + goto :regex_flags + end + end + + state :end_part do + # eat up the rest of the stream as Comment::Preproc + rule %r/.+/m, Comment::Preproc, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/csharp.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/csharp.rb new file mode 100644 index 0000000..49460ca --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/csharp.rb @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class CSharp < RegexLexer + tag 'csharp' + aliases 'c#', 'cs' + filenames '*.cs' + mimetypes 'text/x-csharp' + + title "C#" + desc 'a multi-paradigm language targeting .NET' + + # TODO: support more of unicode + id = /@?[_a-z]\w*/i + + #Reserved Identifiers + #Contextual Keywords + #LINQ Query Expressions + keywords = %w( + abstract as base break case catch checked const continue + default delegate do else enum event explicit extern false + finally fixed for foreach goto if implicit in interface + internal is lock new null operator out override params private + protected public readonly ref return sealed sizeof stackalloc + static switch this throw true try typeof unchecked unsafe + virtual void volatile while + add alias async await get global partial remove set value where + yield nameof notnull + ascending by descending equals from group in init into join let + on orderby select unmanaged when and not or with + ) + + keywords_type = %w( + bool byte char decimal double dynamic float int long nint nuint + object sbyte short string uint ulong ushort var + ) + + cpp_keywords = %w( + if endif else elif define undef line error warning region + endregion pragma nullable + ) + + state :whitespace do + rule %r/\s+/m, Text + rule %r(//.*?$), Comment::Single + rule %r(/[*].*?[*]/)m, Comment::Multiline + end + + state :nest do + rule %r/{/, Punctuation, :nest + rule %r/}/, Punctuation, :pop! + mixin :root + end + + state :splice_string do + rule %r/\\./, Str + rule %r/{/, Punctuation, :nest + rule %r/"|\n/, Str, :pop! + rule %r/./, Str + end + + state :splice_literal do + rule %r/""/, Str + rule %r/{/, Punctuation, :nest + rule %r/"/, Str, :pop! + rule %r/./, Str + end + + state :root do + mixin :whitespace + + rule %r/[$]\s*"/, Str, :splice_string + rule %r/[$]@\s*"/, Str, :splice_literal + + rule %r/(<\[)\s*(#{id}:)?/, Keyword + rule %r/\]>/, Keyword + + rule %r/[~!%^&*()+=|\[\]{}:;,.<>\/?-]/, Punctuation + rule %r/@"(""|[^"])*"/m, Str + rule %r/"(\\.|.)*?["\n]/, Str + rule %r/'(\\.|.)'/, Str::Char + rule %r/0b[_01]+[lu]?/i, Num + rule %r/0x[_0-9a-f]+[lu]?/i, Num + rule %r( + [0-9](?:[_0-9]*[0-9])? + ([.][0-9](?:[_0-9]*[0-9])?)? # decimal + (e[+-]?[0-9](?:[_0-9]*[0-9])?)? # exponent + [fldum]? # type + )ix, Num + rule %r/\b(?:class|record|struct|interface)\b/, Keyword, :class + rule %r/\b(?:namespace|using)\b/, Keyword, :namespace + rule %r/^#[ \t]*(#{cpp_keywords.join('|')})\b.*?\n/, + Comment::Preproc + rule %r/\b(#{keywords.join('|')})\b/, Keyword + rule %r/\b(#{keywords_type.join('|')})\b/, Keyword::Type + rule %r/#{id}(?=\s*[(])/, Name::Function + rule id, Name + end + + state :class do + mixin :whitespace + rule id, Name::Class, :pop! + end + + state :namespace do + mixin :whitespace + rule %r/(?=[(])/, Text, :pop! + rule %r/(#{id}|[.])+/, Name::Namespace, :pop! + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/css.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/css.rb new file mode 100644 index 0000000..fc0c9b2 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/css.rb @@ -0,0 +1,317 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class CSS < RegexLexer + title "CSS" + desc "Cascading Style Sheets, used to style web pages" + + tag 'css' + filenames '*.css' + mimetypes 'text/css' + + # Documentation: https://www.w3.org/TR/CSS21/syndata.html#characters + + identifier = /[\p{L}_-][\p{Word}\p{Cf}-]*/ + number = /-?(?:[0-9]+(\.[0-9]+)?|\.[0-9]+)/ + + def self.properties + @properties ||= Set.new %w( + additive-symbols align-content align-items align-self + alignment-adjust alignment-baseline all anchor-point animation + animation-composition animation-delay animation-direction + animation-duration animation-fill-mode animation-iteration-count + animation-name animation-play-state animation-timing-function + appearance aspect-ratio azimuth backface-visibility background + background-attachment background-blend-mode + background-clip background-color background-image + background-origin background-position + background-repeat background-size baseline-shift + binding bleed bookmark-label bookmark-level bookmark-state + bookmark-target border border-bottom border-bottom-color + border-bottom-left-radius border-bottom-right-radius + border-bottom-style border-bottom-width border-collapse + border-color border-image border-image-outset border-image-repeat + border-image-slice border-image-source border-image-width + border-left border-left-color border-left-style border-left-width + border-radius border-right border-right-color border-right-style + border-right-width border-spacing border-style border-top + border-top-color border-top-left-radius border-top-right-radius + border-top-style border-top-width border-width bottom box-align + box-decoration-break box-direction box-flex box-flex-group + box-lines box-ordinal-group box-orient box-pack box-shadow + box-sizing break-after break-before break-inside caption-side + clear clip clip-path clip-rule color color-profile column-count + column-fill column-gap column-rule column-rule-color + column-rule-style column-rule-width column-span column-width + columns content container container-name container-type + counter-increment counter-reset counter-set crop cue + cue-after cue-before cursor direction display dominant-baseline + drop-initial-after-adjust drop-initial-after-align + drop-initial-before-adjust drop-initial-before-align + drop-initial-size drop-initial-value elevation empty-cells fallback + filter fit fit-position flex flex-basis flex-direction flex-flow + flex-grow flex-shrink flex-wrap float float-offset font + font-display font-family font-feature-settings font-kerning + font-language-override font-size font-size-adjust font-stretch + font-style font-synthesis font-variant font-variant-alternates + font-variant-caps font-variant-east-asian font-variant-ligatures + font-variant-numeric font-variant-position font-weight gap + grid-area grid-auto-columns grid-auto-flow grid-auto-rows + grid-column grid-column-end grid-column-start grid-row + grid-row-end grid-row-start grid-template grid-template-areas + grid-template-columns grid-template-rows hanging-punctuation + height hyphenate-after hyphenate-before hyphenate-character + hyphenate-lines hyphenate-resource hyphens icon image-orientation + image-rendering image-resolution ime-mode inherits initial-value + inline-box-align inset isolation justify-content justify-items + justify-self left letter-spacing line-break line-height + line-stacking line-stacking-ruby line-stacking-shift + line-stacking-strategy list-style list-style-image + list-style-position list-style-type margin margin-bottom + margin-left margin-right margin-top mark mark-after mark-before + marker-offset marks marquee-direction marquee-loop + marquee-play-count marquee-speed marquee-style + mask mask-clip mask-composite mask-image mask-mode + mask-origin mask-position mask-repeat mask-size mask-type + max-height max-width min-height min-width mix-blend-mode + move-to nav-down nav-index nav-left nav-right nav-up negative + object-fit object-position offset offset-anchor offset-distance + offset-path offset-position offset-rotate opacity order orphans + outline outline-color outline-offset outline-style outline-width + overflow overflow-style overflow-wrap overflow-x overflow-y pad + padding padding-bottom padding-left padding-right padding-top page + page-break-after page-break-before page-break-inside page-policy + pause pause-after pause-before perspective perspective-origin + phonemes pitch pitch-range place-content place-items place-self + play-during pointer-events position prefix presentation-level + punctuation-trim quotes range rendering-intent resize rest + rest-after rest-before richness right rotate rotation rotation-point + row-gap ruby-align ruby-overhang ruby-position ruby-span scale + scroll-behavior scroll-margin scroll-margin-block + scroll-margin-block-end scroll-margin-block-start + scroll-margin-bottom scroll-margin-inline scroll-margin-inline-end + scroll-margin-inline-start scroll-margin-left scroll-margin-right + scroll-margin-top scroll-padding-top scroll-padding-right + scroll-padding-bottom scroll-padding-left scroll-padding + scroll-padding-block-end scroll-padding-block-start + scroll-padding-block scroll-padding-inline-end + scroll-padding-inline-start scroll-padding-inline + scroll-snap-type scroll-snap-align scroll-snap-stop + shape-outside shape-margin shape-image-threshold shape-rendering + size speak speak-as speak-header speak-numeral speak-punctuation + speech-rate src stress string-set suffix symbols syntax system + tab-size table-layout target target-name target-new target-position + text-align text-align-last text-combine-horizontal + text-decoration text-decoration-color text-decoration-line + text-decoration-skip text-decoration-style text-emphasis + text-emphasis-color text-emphasis-position text-emphasis-style + text-height text-indent text-justify text-orientation + text-outline text-overflow text-rendering text-shadow + text-space-collapse text-transform text-underline-position + text-wrap top transform transform-origin transform-style + transition transition-delay transition-duration + transition-property transition-timing-function translate + unicode-bidi vertical-align visibility voice-balance + voice-duration voice-family voice-pitch voice-pitch-range + voice-range voice-rate voice-stress voice-volume volume + white-space widows width word-break word-spacing word-wrap + writing-mode z-index + ) + end + + def self.builtins + @builtins ||= Set.new %w( + above absolute accumulate add additive all alpha alphabetic + alternate alternate-reverse always armenian aural auto auto-fill + auto-fit avoid backwards balance baseline behind below bidi-override + blink block bold bolder border-box both bottom bottom break-spaces + capitalize center center-left center-right circle cjk-ideographic + close-quote closest-corner closest-side collapse + color color-burn color-dodge column column-reverse + condensed contain content content-box continuous cover crop cross + crosshair cursive cyclic darken dashed decimal decimal-leading-zero + default difference digits disc dotted double e-resize + ease ease-in ease-in-out ease-out embed end exclude exclusion + expanded extends extra-condensed extra-expanded fantasy + farthest-corner farthest-side far-left far-right + fast faster fill fixed flat flex flex-end flex-start + forwards georgian grid groove hard-light hebrew help hidden + hide high higher hiragana hiragana-iroha horizontal hue icon + infinite inherit inline inline-block inline-flex inline-grid + inline-size inline-table inset inside intersect isolate italic + justify katakana katakana-iroha landscape large larger left + left-side leftwards level lighten lighter line-through linear + list-item loud low lower lower-alpha lower-greek lower-roman + lowercase ltr luminance luminosity mandatory match-source medium + message-box middle mix monospace multiply n-resize narrower + ne-resize no-close-quote no-open-quote no-repeat none normal + nowrap numeric nw-resize oblique once open-quote outset outside + overlay overline paused pointer portrait pre preserve-3d pre-line + pre-wrap proximity px relative repeat-x repeat-y replace reverse + ridge right right-side rightwards row row-reverse rtl running + s-resize sans-serif saturation scale-down screen scroll + se-resize semi-condensed semi-expanded separate serif show + sides silent size slow slower small-caps small-caption smaller + smooth soft soft-light solid space-aroun space-between + space-evenly span spell-out square start static status-bar sticky + stretch sub subtract super sw-resize swap symbolic table + table-caption table-cell table-column table-column-group + table-footer-group table-header-group table-row table-row-group + text text-bottom text-top thick thin top transparent + ultra-condensed ultra-expanded underline upper-alpha upper-latin + upper-roman uppercase vertical visible w-resize wait wider wrap + wrap-reverse x x-fast x-high x-large x-loud x-low x-small x-soft + xx-large xx-small yes y z + ) + end + + def self.colors + @colors ||= Set.new %w( + aliceblue antiquewhite aqua aquamarine azure beige bisque black + blanchedalmond blue blueviolet brown burlywood cadetblue + chartreuse chocolate coral cornflowerblue cornsilk crimson cyan + darkblue darkcyan darkgoldenrod darkgray darkgreen darkkhaki + darkmagenta darkolivegreen darkorange darkorchid darkred + darksalmon darkseagreen darkslateblue darkslategray darkturquoise + darkviolet deeppink deepskyblue dimgray dodgerblue firebrick + floralwhite forestgreen fuchsia gainsboro ghostwhite gold + goldenrod gray green greenyellow honeydew hotpink indianred + indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon + lightblue lightcoral lightcyan lightgoldenrodyellow lightgreen + lightgrey lightpink lightsalmon lightseagreen lightskyblue + lightslategray lightsteelblue lightyellow lime limegreen linen + magenta maroon mediumaquamarine mediumblue mediumorchid + mediumpurple mediumseagreen mediumslateblue mediumspringgreen + mediumturquoise mediumvioletred midnightblue mintcream mistyrose + moccasin navajowhite navy oldlace olive olivedrab orange + orangered orchid palegoldenrod palegreen paleturquoise + palevioletred papayawhip peachpuff peru pink plum powderblue + purple red rosybrown royalblue saddlebrown salmon sandybrown + seagreen seashell sienna silver skyblue slateblue slategray snow + springgreen steelblue tan teal thistle tomato + turquoise violet wheat white whitesmoke yellow yellowgreen + ) + end + + def self.functions + @functions ||= Set.new %w( + abs acos annotation asin atan atan2 attr blur brightness calc + character-variant circle clamp color color-mix conic-gradient + contrast cos counter counters cubic-bezier drop-shadow ellipse + env exp fit-content format grayscale hsl hsla hue-rotate hwb hypot + image-set inset invert lab lch linear linear-gradient log matrix + matrix3d max min minmax mod oklab oklch opacity ornaments path + perspective polygon pow radial-gradient ray rect rem repeat + repeating-conic-gradient repeating-linear-gradient + repeating-radial-gradient rgb rgba rotate rotate3d rotatex + rotatey rotatez round saturate scale scale3d scalex scaley scalez + sepia sign sin skewx skewy sqrt steps styleset + stylistic swash tan translate translate3d translatex translatey + translatez url var xywh + ) + end + + # source: http://www.w3.org/TR/CSS21/syndata.html#vendor-keyword-history + def self.vendor_prefixes + @vendor_prefixes ||= Set.new %w( + -ah- -atsc- -hp- -khtml- -moz- -ms- -o- -rim- -ro- -tc- -wap- + -webkit- -xv- mso- prince- + ) + end + + state :root do + mixin :basics + rule %r/{/, Punctuation, :stanza + rule %r/:[:]?#{identifier}/, Name::Decorator + rule %r/\.#{identifier}/, Name::Class + rule %r/##{identifier}/, Name::Function + rule %r/@#{identifier}/, Keyword, :at_rule + rule identifier, Name::Tag + rule %r([~^*!%&\[\]()<>|+=@:;,./?-]), Operator + rule %r/"(\\\\|\\"|[^"])*"/, Str::Single + rule %r/'(\\\\|\\'|[^'])*'/, Str::Double + rule %r/[0-9]{1,3}\%/, Num + end + + state :value do + mixin :basics + rule %r/#[0-9a-f]{3,8}/i, Name::Other # colors + rule %r/#{number}(?:%|(?:px|pt|pc|in|cm|mm|Q|em|rem|ex|ch|vw|vh|vmin|vmax|fr|dpi|dpcm|dppx|deg|grad|rad|turn|s|ms|Hz|kHz)\b)?/, Num + rule %r/[\[\]():.,]/, Punctuation + rule %r/"(\\\\|\\"|[^"])*"/, Str::Single + rule %r/'(\\\\|\\'|[^'])*'/, Str::Double + rule %r/(true|false)/i, Name::Constant + rule %r/\-\-#{identifier}/, Literal + rule %r([*+/-]), Operator + rule(identifier) do |m| + if self.class.colors.include? m[0].downcase + token Name::Other + elsif self.class.builtins.include? m[0].downcase + token Name::Builtin + elsif self.class.functions.include? m[0].downcase + token Name::Function + else + token Name + end + end + end + + state :at_rule do + rule %r/{(?=\s*#{identifier}\s*:)/m, Punctuation, :at_stanza + rule %r/{/, Punctuation, :at_body + rule %r/;/, Punctuation, :pop! + mixin :value + end + + state :at_body do + mixin :at_content + mixin :root + end + + state :at_stanza do + mixin :at_content + mixin :stanza + end + + state :at_content do + rule %r/}/ do + token Punctuation + pop! 2 + end + end + + state :basics do + rule %r/\s+/m, Text + rule %r(/\*(?:.*?)\*/)m, Comment + end + + state :stanza do + mixin :basics + rule %r/}/, Punctuation, :pop! + rule %r/(#{identifier})(\s*)(:)/m do |m| + name_tok = if self.class.properties.include? m[1] + Name::Label + elsif self.class.vendor_prefixes.any? { |p| m[1].start_with?(p) } + Name::Label + else + Name::Property + end + + groups name_tok, Text, Punctuation + + push :stanza_value + end + end + + state :stanza_value do + rule %r/;/, Punctuation, :pop! + rule(/(?=})/) { pop! } + rule %r/!\s*important\b/, Comment::Preproc + rule %r/^@.*?$/, Comment::Preproc + mixin :value + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/csvs.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/csvs.rb new file mode 100644 index 0000000..e429445 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/csvs.rb @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class CSVS < RegexLexer + tag 'csvs' + title "csvs" + desc 'The CSV Schema Language (digital-preservation.github.io)' + filenames '*.csvs' + + state :root do + rule %r/\s+/m, Text + + rule %r(//[\S\t ]*), Comment::Single + rule %r(/\*[^*]*\*/)m, Comment::Multiline + + rule %r/(version)( )(\d+\.\d+)/ do + groups Keyword, Text::Whitespace, Num::Float + end + + rule %r/T?\d{2}:\d{2}:\d{2}(\.\d{5})?(Z|(?:[-+]\d{2}:\d{2}))?/, Literal::Date + rule %r/\d{4}-\d{2}-\d{2}/, Literal::Date + rule %r/\d{2}\/\d{2}\/\d{4}/, Literal::Date + + rule %r((\d+[.]?\d*|\d*[.]\d+)(e[+-]?[0-9]+)?)i, Num::Float + rule %r/\d+/, Num::Integer + + rule %r/@\w+/, Keyword::Pseudo + + rule %r/[-.\w]+:/, Name::Variable + rule %r/^"[^"]+"/, Name::Variable + rule %r/\$([-.\w]+|("[^"]+"))\/?/, Name::Variable + + rule %r/[A-Z]+/i, Keyword + + rule %r/"[^"]*"/, Str::Double + rule %r/'[^\r\n\f']'/, Str::Char + + rule %r/[,()*]/, Punctuation + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cuda.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cuda.rb new file mode 100644 index 0000000..c973ddd --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cuda.rb @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- # + +module Rouge + module Lexers + load_lexer 'cpp.rb' + + class CUDA < Cpp + title "CUDA" + desc "Compute Unified Device Architecture, used for programming with NVIDIA GPU" + + tag 'cuda' + filenames '*.cu', '*.cuh' + + def self.keywords + @keywords ||= super + Set.new(%w( + __global__ __device__ __host__ __noinline__ __forceinline__ + __constant__ __shared__ __managed__ __restrict__ + )) + end + + def self.keywords_type + @keywords_type ||= super + Set.new(%w( + char1 char2 char3 char4 uchar1 uchar2 uchar3 uchar4 + short1 short2 short3 short4 ushort1 ushort2 ushort3 ushort4 + int1 int2 int3 int4 uint1 uint2 uint3 uint4 + long1 long2 long3 long4 ulong1 ulong2 ulong3 ulong4 + longlong1 longlong2 longlong3 longlong4 + ulonglong1 ulonglong2 ulonglong3 ulonglong4 + float1 float2 float3 float4 double1 double2 double3 double4 + dim3 + )) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cypher.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cypher.rb new file mode 100644 index 0000000..2bc90f2 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cypher.rb @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Cypher < RegexLexer + tag 'cypher' + aliases 'cypher' + filenames '*.cypher' + mimetypes 'application/x-cypher-query' + + title "Cypher" + desc 'The Cypher query language (neo4j.com/docs/cypher-manual)' + + def self.functions + @functions ||= Set.new %w( + ABS ACOS ALLSHORTESTPATHS ASIN ATAN ATAN2 AVG CEIL COALESCE COLLECT + COS COT COUNT DATE DEGREES E ENDNODE EXP EXTRACT FILTER FLOOR + HAVERSIN HEAD ID KEYS LABELS LAST LEFT LENGTH LOG LOG10 LOWER LTRIM + MAX MIN NODE NODES PERCENTILECONT PERCENTILEDISC PI RADIANS RAND + RANGE REDUCE REL RELATIONSHIP RELATIONSHIPS REPLACE REVERSE RIGHT + ROUND RTRIM SHORTESTPATH SIGN SIN SIZE SPLIT SQRT STARTNODE STDEV + STDEVP STR SUBSTRING SUM TAIL TAN TIMESTAMP TOFLOAT TOINT TOINTEGER + TOSTRING TRIM TYPE UPPER + ) + end + + def self.predicates + @predicates ||= Set.new %w( + ALL AND ANY CONTAINS EXISTS HAS IN NONE NOT OR SINGLE XOR + ) + end + + def self.keywords + @keywords ||= Set.new %w( + AS ASC ASCENDING ASSERT BY CASE COMMIT CONSTRAINT CREATE CSV CYPHER + DELETE DESC DESCENDING DETACH DISTINCT DROP ELSE END ENDS EXPLAIN + FALSE FIELDTERMINATOR FOREACH FROM HEADERS IN INDEX IS JOIN LIMIT + LOAD MATCH MERGE NULL ON OPTIONAL ORDER PERIODIC PROFILE REMOVE + RETURN SCAN SET SKIP START STARTS THEN TRUE UNION UNIQUE UNWIND USING + WHEN WHERE WITH CALL YIELD + ) + end + + state :root do + rule %r/[\s]+/, Text + rule %r(//.*?$), Comment::Single + rule %r(/\*), Comment::Multiline, :multiline_comments + + rule %r([*+\-<>=&|~%^]), Operator + rule %r/[{}),;\[\]]/, Str::Symbol + + # literal number + rule %r/(\w+)(:)(\s*)(-?[._\d]+)/ do + groups Name::Label, Str::Delimiter, Text::Whitespace, Num + end + + # function-like + # - "name(" + # - "name (" + # - "name (" + rule %r/(\w+)(\s*)(\()/ do |m| + name = m[1].upcase + if self.class.functions.include? name + groups Name::Function, Text::Whitespace, Str::Symbol + elsif self.class.keywords.include? name + groups Keyword, Text::Whitespace, Str::Symbol + else + groups Name, Text::Whitespace, Str::Symbol + end + end + + rule %r/:\w+/, Name::Class + + # number range + rule %r/(-?\d+)(\.\.)(-?\d+)/ do + groups Num, Operator, Num + end + + # numbers + rule %r/(\d+\.\d*|\d*\.\d+)(e[+-]?\d+)?/i, Num::Float + rule %r/\d+e[+-]?\d+/i, Num::Float + rule %r/0[0-7]+/, Num::Oct + rule %r/0x[a-f0-9]+/i, Num::Hex + rule %r/\d+/, Num::Integer + + rule %r([.\w]+:), Name::Property + + # remaining "(" + rule %r/\(/, Str::Symbol + + rule %r/[.\w$]+/ do |m| + match = m[0].upcase + if self.class.predicates.include? match + token Operator::Word + elsif self.class.keywords.include? match + token Keyword + else + token Name + end + end + + rule %r/"(\\\\|\\"|[^"])*"/, Str::Double + rule %r/'(\\\\|\\'|[^'])*'/, Str::Single + rule %r/`(\\\\|\\`|[^`])*`/, Str::Backtick + end + + state :multiline_comments do + rule %r(/[*]), Comment::Multiline, :multiline_comments + rule %r([*]/), Comment::Multiline, :pop! + rule %r([^/*]+), Comment::Multiline + rule %r([/*]), Comment::Multiline + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cython.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cython.rb new file mode 100644 index 0000000..945cbc1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/cython.rb @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'python.rb' + + class Cython < Python + title "Cython" + desc "Cython and Pyrex source code (cython.org)" + tag 'cython' + aliases 'pyx', 'pyrex' + filenames '*.pyx', '*.pxd', '*.pxi' + mimetypes 'text/x-cython', 'application/x-cython' + + def initialize(opts = {}) + super opts + @indentation = nil + end + + def self.keywords + @keywords ||= super + %w( + by except? fused gil nogil + ) + end + + def self.c_keywords + @ckeywords ||= %w( + public readonly extern api inline enum union + ) + end + + identifier = /[a-z_]\w*/i + dotted_identifier = /[a-z_.][\w.]*/i + + prepend :root do + rule %r/cp?def|ctypedef/ do + token Keyword + push :c_definitions + push :c_start + end + + rule %r/(from)((?:\\\s|\s)+)(#{dotted_identifier})((?:\\\s|\s)+)(cimport)/ do + groups Keyword::Namespace, + Text, + Name::Namespace, + Text, + Keyword::Namespace + end + + rule %r/(cimport)(\s+)(#{dotted_identifier})/ do + groups Keyword::Namespace, Text, Name::Namespace + end + + rule %r/(struct)((?:\\\s|\s)+)/ do + groups Keyword, Text + push :classname + end + + mixin :func_call_fix + + rule %r/[(,]/, Punctuation, :c_start + end + + prepend :classname do + rule %r/(?:\\\s|\s)+/, Text + end + + prepend :funcname do + rule %r/(?:\\\s|\s)+/, Text + end + # This is a fix for the way that function calls are lexed in the Python + # lexer. This should be moved to the Python lexer once confirmed that it + # does not cause any regressions. + state :func_call_fix do + rule %r/#{identifier}(?=\()/ do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.exceptions.include? m[0] + token Name::Builtin + elsif self.class.builtins.include? m[0] + token Name::Builtin + elsif self.class.builtins_pseudo.include? m[0] + token Name::Builtin::Pseudo + else + token Name::Function + end + end + end + + # The Cython lexer adds three states to those already in the Python lexer. + # Calls to `cdef`, `cpdef` and `ctypedef` move the lexer into the :c_start + # state. The primary purpose of this state is to highlight datatypes. Once + # this has been done, the lexer moves to the :c_definitions state where + # the majority of text in a definition is lexed. Finally, newlines cause + # the lexer to move to :c_indent. This state is used to check whether we + # have moved out of a C block. + + state :c_start do + rule %r/[^\S\n]+/, Text + + rule %r/cp?def|ctypedef/, Keyword + + rule %r/(?:un)?signed/, Keyword::Type + + # This rule matches identifiers that could be type declarations. The + # lookahead matches (1) pointers, (2) arrays and (3) variable names. + rule %r/#{identifier}(?=(?:\*+)|(?:[ \t]*\[)|(?:[ \t]+\w))/ do |m| + if self.class.keywords.include? m[0] + token Keyword + pop! + elsif %w(def).include? m[0] + token Keyword + goto :funcname + elsif %w(struct class).include? m[0] + token Keyword::Reserved + goto :classname + elsif self.class.c_keywords.include? m[0] + token Keyword::Reserved + else + token Keyword::Type + pop! + end + end + + rule(//) { pop! } + end + + state :c_definitions do + rule %r/\n/, Text, :c_indent + mixin :root + end + + state :c_indent do + rule %r/[ \t]+/ do |m| + token Text + goto :c_start + + if @indentation.nil? + @indentation = m[0] + elsif @indentation.length > m[0].length + @indentation = nil + pop! 2 # Pop :c_start and :c_definitions + end + end + + rule(//) { @indentation = nil; reset_stack } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/d.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/d.rb new file mode 100644 index 0000000..de52e30 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/d.rb @@ -0,0 +1,177 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class D < RegexLexer + tag 'd' + aliases 'dlang' + filenames '*.d', '*.di' + mimetypes 'application/x-dsrc', 'text/x-dsrc' + + title "D" + desc 'The D programming language(dlang.org)' + + keywords = %w( + abstract alias align asm assert auto body + break case cast catch class const continue + debug default delegate delete deprecated do else + enum export extern finally final foreach_reverse + foreach for function goto if immutable import + interface invariant inout in is lazy mixin + module new nothrow out override package pragma + private protected public pure ref return scope + shared static struct super switch synchronized + template this throw try typedef typeid typeof + union unittest version volatile while with + __gshared __traits __vector __parameters + ) + + keywords_type = %w( + bool byte cdouble cent cfloat char creal + dchar double float idouble ifloat int ireal + long real short ubyte ucent uint ulong + ushort void wchar + ) + + keywords_pseudo = %w( + __FILE__ __FILE_FULL_PATH__ __MODULE__ __LINE__ __FUNCTION__ + __PRETTY_FUNCTION__ __DATE__ __EOF__ __TIME__ __TIMESTAMP__ + __VENDOR__ __VERSION__ + ) + + state :whitespace do + rule %r/\n/m, Text + rule %r/\s+/m, Text + end + + state :root do + mixin :whitespace + # Comments + rule %r(//.*), Comment::Single + rule %r(/(\\\n)?[*](.|\n)*?[*](\\\n)?/), Comment::Multiline + rule %r(/\+), Comment::Multiline, :nested_comment + # Keywords + rule %r/(#{keywords.join('|')})\b/, Keyword + rule %r/(#{keywords_type.join('|')})\b/, Keyword::Type + rule %r/(false|true|null)\b/, Keyword::Constant + rule %r/(#{keywords_pseudo.join('|')})\b/, Keyword::Pseudo + rule %r/macro\b/, Keyword::Reserved + rule %r/(string|wstring|dstring|size_t|ptrdiff_t)\b/, Name::Builtin + # Literals + # HexFloat + rule %r/0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)[pP][+\-]?[0-9_]+[fFL]?[i]?/, Num::Float + # DecimalFloat + rule %r/[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)[fFL]?[i]?/, Num::Float + rule %r/\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[fFL]?[i]?/, Num::Float + # IntegerLiteral + # Binary + rule %r/0[Bb][01_]+/, Num::Bin + # Octal + # TODO: 0[0-7] isn't supported use octal![0-7] instead + rule %r/0[0-7_]+/, Num::Oct + # Hexadecimal + rule %r/0[xX][0-9a-fA-F_]+/, Num::Hex + # Decimal + rule %r/(0|[1-9][0-9_]*)([LUu]|Lu|LU|uL|UL)?/, Num::Integer + # CharacterLiteral + rule %r/'(\\['"?\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\&\w+;|.)'/, Str::Char + # StringLiteral + # WysiwygString + rule %r/r"[^"]*"[cwd]?/, Str + # Alternate WysiwygString + rule %r/`[^`]*`[cwd]?/, Str + # DoubleQuotedString + rule %r/"(\\\\|\\"|[^"])*"[cwd]?/, Str + # EscapeSequence + rule %r/\\(['\"?\\abfnrtv]|x[0-9a-fA-F]{2}|[0-7]{1,3}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|&\w+;)/, Str + # HexString + rule %r/x"[0-9a-fA-F_\s]*"[cwd]?/, Str + # DelimitedString + rule %r/q"\[/, Str, :delimited_bracket + rule %r/q"\(/, Str, :delimited_parenthesis + rule %r/q"</, Str, :delimited_angle + rule %r/q"\{/, Str, :delimited_curly + rule %r/q"([a-zA-Z_]\w*)\n.*?\n\1"/, Str + rule %r/q"(.).*?\1"/, Str + # TokenString + rule %r/q\{/, Str, :token_string + # Attributes + rule %r/@([a-zA-Z_]\w*)?/, Name::Decorator + # Tokens + rule %r`(~=|\^=|%=|\*=|==|!>=|!<=|!<>=|!<>|!<|!>|!=|>>>=|>>>|>>=|>>|>=|<>=|<>|<<=|<<|<=|\+\+|\+=|--|-=|\|\||\|=|&&|&=|\.\.\.|\.\.|/=)|[/.&|\-+<>!()\[\]{}?,;:$=*%^~]`, Punctuation + # Identifier + rule %r/[a-zA-Z_]\w*/, Name + # Line + rule %r/#line\s.*\n/, Comment::Special + end + + state :nested_comment do + rule %r([^+/]+), Comment::Multiline + rule %r(/\+), Comment::Multiline, :push + rule %r(\+/), Comment::Multiline, :pop! + rule %r([+/]), Comment::Multiline + end + + state :token_string do + rule %r/\{/, Punctuation, :token_string_nest + rule %r/\}/, Str, :pop! + mixin :root + end + + state :token_string_nest do + rule %r/\{/, Punctuation, :push + rule %r/\}/, Punctuation, :pop! + mixin :root + end + + state :delimited_bracket do + rule %r/[^\[\]]+/, Str + rule %r/\[/, Str, :delimited_inside_bracket + rule %r/\]"/, Str, :pop! + end + + state :delimited_inside_bracket do + rule %r/[^\[\]]+/, Str + rule %r/\[/, Str, :push + rule %r/\]/, Str, :pop! + end + + state :delimited_parenthesis do + rule %r/[^()]+/, Str + rule %r/\(/, Str, :delimited_inside_parenthesis + rule %r/\)"/, Str, :pop! + end + + state :delimited_inside_parenthesis do + rule %r/[^()]+/, Str + rule %r/\(/, Str, :push + rule %r/\)/, Str, :pop! + end + + state :delimited_angle do + rule %r/[^<>]+/, Str + rule %r/</, Str, :delimited_inside_angle + rule %r/>"/, Str, :pop! + end + + state :delimited_inside_angle do + rule %r/[^<>]+/, Str + rule %r/</, Str, :push + rule %r/>/, Str, :pop! + end + + state :delimited_curly do + rule %r/[^{}]+/, Str + rule %r/\{/, Str, :delimited_inside_curly + rule %r/\}"/, Str, :pop! + end + + state :delimited_inside_curly do + rule %r/[^{}]+/, Str + rule %r/\{/, Str, :push + rule %r/\}/, Str, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/dafny.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/dafny.rb new file mode 100644 index 0000000..0659068 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/dafny.rb @@ -0,0 +1,128 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Dafny < RegexLexer + title "Dafny" + desc "The Dafny programming language (github.com/dafny-lang/dafny)" + tag "dafny" + filenames "*.dfy" + mimetypes "text/x-dafny" + + keywords = %w( + abstract allocated assert assume + break by + calc case class codatatype const constructor + datatype decreases downto + else ensures exists expect export extends + false for forall fresh function + ghost greatest + if import include invariant iterator + label least lemma + match method modifies modify module + nameonly new newtype null + old opened + predicate print provides + reads refines requires return returns reveal reveals + static + then this to trait true twostate type + unchanged + var + while witness + yield yields + ) + + literals = %w{ true false null } + + textOperators = %w{ as is in } + + types = %w(bool char int real string nat + array array? object object? ORDINAL + seq set iset map imap multiset ) + + idstart = /[0-9a-zA-Z?]/ + idchar = /[0-9a-zA-Z_'?]/ + id = /#{idstart}#{idchar}*/ + + arrayType = /array(?:1[0-9]+|[2-9][0-9]*)\??(?!#{idchar})/ + bvType = /bv(?:0|[1-9][0-9]*)(?!#{idchar})/ + + digit = /\d/ + digits = /#{digit}+(?:_#{digit}+)*/ + bin_digits = /[01]+(?:_[01]+)*/ + hex_digit = /(?:[0-9a-fA-F])/ + hex_digits = /#{hex_digit}+(?:_#{hex_digit}+)*/ + + cchar = /(?:[^\\'\n\r]|\\["'ntr\\0])/ + schar = /(?:[^\\"\n\r]|\\["'ntr\\0])/ + uchar = /(?:\\u#{hex_digit}{4})/ + + ## IMPORTANT: Rules are ordered, which allows later rules to be + ## simpler than they would otherwise be + state :root do + rule %r(/\*), Comment::Multiline, :comment + rule %r(//.*?$), Comment::Single + rule %r(\*/), Error # should not have closing comment in :root + # is an improperly nested comment + + rule %r/'#{cchar}'/, Str::Char # standard or escape char + rule %r/'#{uchar}'/, Str::Char # unicode char + rule %r/'[^'\n\r]*'/, Error # bad any other enclosed char + rule %r/'[^'\n\r]*$/, Error # bad unclosed char + + rule %r/"(?:#{schar}|#{uchar})*"/, Str::Double # valid string + rule %r/".*"/, Error # anything else that is closed + rule %r/".*$/, Error # bad unclosed string + + rule %r/@"([^"]|"")*"/, Str::Other # valid verbatim string + rule %r/@".*/m, Error # anything else , multiline unclosed + + + rule %r/#{digits}\.#{digits}(?!#{idchar})/, Num::Float + rule %r/0b#{bin_digits}(?!#{idchar})/, Num::Bin + rule %r/0b#{idchar}*/, Error + rule %r/0x#{hex_digits}(?!#{idchar})/, Num::Hex + rule %r/0x#{idchar}*/, Error + rule %r/#{digits}(?!#{idchar})/, Num::Integer + rule %r/_(?!#{idchar})/, Name + rule %r/_[0-9_]+[_]?(?!#{idchar})/, Error + rule %r/[0-9_]+_(?!#{idchar})/, Error + rule %r/[0-9]#{idchar}+/, Error + + rule %r/#{arrayType}/, Keyword::Type + rule %r/#{bvType}/, Keyword::Type + + rule id do |m| + if types.include?(m[0]) + token Keyword::Type + elsif literals.include?(m[0]) + token Keyword::Constant + elsif textOperators.include?(m[0]) + token Operator::Word + elsif keywords.include?(m[0]) + token Keyword::Reserved + else + token Name + end + end + + rule %r/\.\./, Operator + rule %r/[*!%&<>\|^+=:.\/-]/, Operator + rule %r/[\[\](){},;`]/, Punctuation + + rule %r/[^\S\n]+/, Text + rule %r/\n/, Text + rule %r/./, Error # Catchall + end + + state :comment do + rule %r(\*/), Comment::Multiline, :pop! + rule %r(/\*), Comment::Multiline, :comment + rule %r([^*/]+), Comment::Multiline + rule %r(.), Comment::Multiline + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/dart.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/dart.rb new file mode 100644 index 0000000..7b4123b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/dart.rb @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Dart < RegexLexer + title "Dart" + desc "The Dart programming language (dart.dev)" + + tag 'dart' + filenames '*.dart' + mimetypes 'text/x-dart' + + keywords = %w( + as assert await break case catch continue default do else finally for if + in is new rethrow return super switch this throw try while when with yield + ) + + declarations = %w( + abstract base async dynamic const covariant external extends factory final get implements + interface late native on operator required sealed set static sync typedef var + ) + + types = %w(bool Comparable double Dynamic enum Function int List Map Never Null num Object Pattern Record Set String Symbol Type Uri void) + + imports = %w(import deferred export library part\s*of part source) + + id = /[a-zA-Z_]\w*/ + + state :root do + rule %r(^ + (\s*(?:[a-zA-Z_][a-zA-Z\d_.\[\]]*\s+)+?) # return arguments + ([a-zA-Z_]\w*) # method name + (\s*)(\() # signature start + )mx do |m| + # TODO: do this better, this shouldn't need a delegation + delegate Dart, m[1] + token Name::Function, m[2] + token Text, m[3] + token Punctuation, m[4] + end + + rule %r/\s+/, Text + rule %r(//.*?$), Comment::Single + rule %r(/\*.*?\*/)m, Comment::Multiline + rule %r/"/, Str, :dqs + rule %r/'/, Str, :sqs + rule %r/r"[^"]*"/, Str::Other + rule %r/r'[^']*'/, Str::Other + rule %r/##{id}*/i, Str::Symbol + rule %r/@#{id}/, Name::Decorator + rule %r/(?:#{keywords.join('|')})\b/, Keyword + rule %r/(?:#{declarations.join('|')})\b/, Keyword::Declaration + rule %r/(?:#{types.join('|')})\b/, Keyword::Type + rule %r/(?:true|false|null)\b/, Keyword::Constant + rule %r/(?:class|mixin)\b/, Keyword::Declaration, :class + rule %r/(?:#{imports.join('|')})\b/, Keyword::Namespace, :import + rule %r/(\.)(#{id})/ do + groups Operator, Name::Attribute + end + + rule %r/#{id}:/, Name::Label + rule %r/\$?#{id}/, Name + rule %r/[~^*!%&\|+=:\/?-]/, Operator + rule %r/[\[\](){}<>\.,;]/, Punctuation + rule %r/\d*\.\d+([eE]\-?\d+)?/, Num::Float + rule %r/0x[\da-fA-F]+/, Num::Hex + rule %r/\d+L?/, Num::Integer + rule %r/\n/, Text + end + + state :class do + rule %r/\s+/m, Text + rule id, Name::Class, :pop! + end + + state :dqs do + rule %r/"/, Str, :pop! + rule %r/[^\\\$"]+/, Str + mixin :string + end + + state :sqs do + rule %r/'/, Str, :pop! + rule %r/[^\\\$']+/, Str + mixin :string + end + + state :import do + rule %r/;/, Operator, :pop! + rule %r/(?:show|hide)\b/, Keyword::Declaration + mixin :root + end + + state :string do + mixin :interpolation + rule %r/\\[nrt\"\'\\]/, Str::Escape + end + + state :interpolation do + rule %r/\$#{id}/, Str::Interpol + rule %r/\$\{[^\}]+\}/, Str::Interpol + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/datastudio.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/datastudio.rb new file mode 100644 index 0000000..7508aaa --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/datastudio.rb @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Datastudio < RegexLexer + tag 'datastudio' + filenames '*.job' + mimetypes 'text/x-datastudio' + + title "Datastudio" + desc 'Datastudio scripting language' + + id = /@?[_a-z]\w*/i + + def self.sql_keywords + @sql_keywords ||= %w( + ABORT ABS ABSOLUTE ACCESS ADA ADD ADMIN AFTER AGGREGATE ALIAS + ALL ALLOCATE ALTER ANALYSE ANALYZE AND ANY ARE AS ASC ASENSITIVE + ASSERTION ASSIGNMENT ASYMMETRIC AT ATOMIC AUTHORIZATION + AVG BACKWARD BEFORE BEGIN BETWEEN BITVAR BIT_LENGTH BOTH + BREADTH BY C CACHE CALL CALLED CARDINALITY CASCADE CASCADED + CASE CAST CATALOG CATALOG_NAME CHAIN CHARACTERISTICS + CHARACTER_LENGTH CHARACTER_SET_CATALOG CHARACTER_SET_NAME + CHARACTER_SET_SCHEMA CHAR_LENGTH CHECK CHECKED CHECKPOINT + CLASS CLASS_ORIGIN CLOB CLOSE CLUSTER COALSECE COBOL COLLATE + COLLATION COLLATION_CATALOG COLLATION_NAME COLLATION_SCHEMA + COLUMN COLUMN_NAME COMMAND_FUNCTION COMMAND_FUNCTION_CODE + COMMENT COMMIT COMMITTED COMPLETION CONDITION_NUMBER + CONNECT CONNECTION CONNECTION_NAME CONSTRAINT CONSTRAINTS + CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_SCHEMA + CONSTRUCTOR CONTAINS CONTINUE CONVERSION CONVERT COPY + CORRESPONTING COUNT CREATE CREATEDB CREATEUSER CROSS CUBE + CURRENT CURRENT_DATE CURRENT_PATH CURRENT_ROLE CURRENT_TIME + CURRENT_TIMESTAMP CURRENT_USER CURSOR CURSOR_NAME CYCLE DATA + DATABASE DATETIME_INTERVAL_CODE DATETIME_INTERVAL_PRECISION + DAY DEALLOCATE DECLARE DEFAULT DEFAULTS DEFERRABLE DEFERRED + DEFINED DEFINER DELETE DELIMITER DELIMITERS DEREF DESC DESCRIBE + DESCRIPTOR DESTROY DESTRUCTOR DETERMINISTIC DIAGNOSTICS + DICTIONARY DISCONNECT DISPATCH DISTINCT DO DOMAIN DROP + DYNAMIC DYNAMIC_FUNCTION DYNAMIC_FUNCTION_CODE EACH ELSE + ENCODING ENCRYPTED END END-EXEC EQUALS ESCAPE EVERY EXCEPT + ESCEPTION EXCLUDING EXCLUSIVE EXEC EXECUTE EXISTING EXISTS + EXPLAIN EXTERNAL EXTRACT FALSE FETCH FINAL FIRST FOR FORCE + FOREIGN FORTRAN FORWARD FOUND FREE FREEZE FROM FULL FUNCTION + G GENERAL GENERATED GET GLOBAL GO GOTO GRANT GRANTED GROUP + GROUPING HANDLER HAVING HIERARCHY HOLD HOST IDENTITY IGNORE + ILIKE IMMEDIATE IMMUTABLE IMPLEMENTATION IMPLICIT IN INCLUDING + INCREMENT INDEX INDITCATOR INFIX INHERITS INITIALIZE INITIALLY + INNER INOUT INPUT INSENSITIVE INSERT INSTANTIABLE INSTEAD + INTERSECT INTO INVOKER IS ISNULL ISOLATION ITERATE JOIN KEY + KEY_MEMBER KEY_TYPE LANCOMPILER LANGUAGE LARGE LAST LATERAL + LEADING LEFT LENGTH LESS LEVEL LIKE LIMIT LISTEN LOAD LOCAL + LOCALTIME LOCALTIMESTAMP LOCATION LOCATOR LOCK LOWER MAP MATCH + MAX MAXVALUE MESSAGE_LENGTH MESSAGE_OCTET_LENGTH MESSAGE_TEXT + METHOD MIN MINUTE MINVALUE MOD MODE MODIFIES MODIFY MONTH + MORE MOVE MUMPS NAMES NATURAL NCLOB NEW NEXT + NO NOCREATEDB NOCREATEUSER NONE NOT NOTHING NOTIFY NOTNULL + NULL NULLABLE NULLIF OBJECT OCTET_LENGTH OF OFF OFFSET OIDS + OLD ON ONLY OPEN OPERATION OPERATOR OPTION OPTIONS OR ORDER + ORDINALITY OUT OUTER OUTPUT OVERLAPS OVERLAY OVERRIDING + OWNER PAD PARAMETER PARAMETERS PARAMETER_MODE PARAMATER_NAME + PARAMATER_ORDINAL_POSITION PARAMETER_SPECIFIC_CATALOG + PARAMETER_SPECIFIC_NAME PARAMATER_SPECIFIC_SCHEMA PARTIAL PASCAL + PENDANT PLACING PLI POSITION POSTFIX PREFIX PREORDER + PREPARE PRESERVE PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE + PUBLIC READ READS RECHECK RECURSIVE REF REFERENCES REFERENCING + REINDEX RELATIVE RENAME REPEATABLE REPLACE RESET RESTART + RESTRICT RESULT RETURN RETURNED_LENGTH RETURNED_OCTET_LENGTH + RETURNED_SQLSTATE RETURNS REVOKE RIGHT ROLE ROLLBACK ROLLUP + ROUTINE ROUTINE_CATALOG ROUTINE_NAME ROUTINE_SCHEMA ROW ROWS + ROW_COUNT RULE SAVE_POINT SCALE SCHEMA SCHEMA_NAME SCOPE SCROLL + SEARCH SECOND SECURITY SELECT SELF SENSITIVE SERIALIZABLE + SERVER_NAME SESSION SESSION_USER SET SETOF SETS SHARE SHOW + SIMILAR SIMPLE SIZE SOME SOURCE SPACE SPECIFIC SPECIFICTYPE + SPECIFIC_NAME SQL SQLCODE SQLERROR SQLEXCEPTION SQLSTATE + SQLWARNINIG STABLE START STATE STATEMENT STATIC STATISTICS + STDIN STDOUT STORAGE STRICT STRUCTURE STYPE SUBCLASS_ORIGIN + SUBLIST SUBSTRING SUM SYMMETRIC SYSID SYSTEM SYSTEM_USER + TABLE TABLE_NAME TEMP TEMPLATE TEMPORARY TERMINATE THAN THEN + TIMEZONE_HOUR TIMEZONE_MINUTE TO TOAST TRAILING + TRANSATION TRANSACTIONS_COMMITTED TRANSACTIONS_ROLLED_BACK + TRANSATION_ACTIVE TRANSFORM TRANSFORMS TRANSLATE TRANSLATION + TREAT TRIGGER TRIGGER_CATALOG TRIGGER_NAME TRIGGER_SCHEMA TRIM + TRUE TRUNCATE TRUSTED TYPE UNCOMMITTED UNDER UNENCRYPTED UNION + UNIQUE UNKNOWN UNLISTEN UNNAMED UNNEST UNTIL UPDATE UPPER + USAGE USER USER_DEFINED_TYPE_CATALOG USER_DEFINED_TYPE_NAME + USER_DEFINED_TYPE_SCHEMA USING VACUUM VALID VALIDATOR VALUES + VARIABLE VERBOSE VERSION VIEW VOLATILE WHEN WHENEVER WHERE + WITH WITHOUT WORK WRITE ZONE + ) + end + + state :whitespace do + rule %r/\s+/m, Text + rule %r(//.*?$), Comment::Single + rule %r(/[*].*?[*]/)m, Comment::Multiline + end + + state :string do + rule %r/%(\\.|.)+?%/, Str::Escape + rule %r/\\"/, Str::Double + rule %r/"/, Str::Double, :pop! + rule %r/./m, Str::Double + end + + state :string_s do + rule %r/%(\\.|.)+?%/, Str::Escape + rule %r/\\'/, Str::Single + rule %r/'/, Str::Single, :pop! + rule %r/./m, Str::Single + end + + state :root do + mixin :whitespace + + rule %r/^:#{id}/, Name::Label + rule %r/@#{id}(\.#{id})?/m, Name::Entity + rule %r/%(\\.|.)+?%/, Name::Variable + rule %r/[~!%^&*()+=|\[\]{}:;,.<>\/?-]/, Punctuation + rule %r/"/, Str::Double, :string + rule %r/'/, Str::Single, :string_s + rule %r/\d(\.\d*)?/i, Num + rule %r/#{id}(?=\s*[(])/, Name::Function + rule id do |m| + name = m[0].upcase + + if self.class.sql_keywords.include? name + token Keyword + else + token Name + end + end + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/diff.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/diff.rb new file mode 100644 index 0000000..cd342b9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/diff.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + class Diff < RegexLexer + title 'diff' + desc 'Lexes unified diffs or patches' + + tag 'diff' + aliases 'patch', 'udiff' + filenames '*.diff', '*.patch' + mimetypes 'text/x-diff', 'text/x-patch' + + def self.detect?(text) + return true if text.start_with?('Index: ') + return true if text =~ %r(\Adiff[^\n]*?\ba/[^\n]*\bb/) + return true if text =~ /---.*?\n[+][+][+]/ || text =~ /[+][+][+].*?\n---/ + end + + state :root do + rule(/^ .*$\n?/, Text) + rule(/^---$\n?/, Punctuation) + + rule %r( + (^\++.*$\n?) | + (^>+[ \t]+.*$\n?) | + (^>+$\n?) + )x, Generic::Inserted + + rule %r( + (^-+.*$\n?) | + (^<+[ \t]+.*$\n?) | + (^<+$\n?) + )x, Generic::Deleted + + rule(/^!.*$\n?/, Generic::Strong) + rule(/^([Ii]ndex|diff).*$\n?/, Generic::Heading) + rule(/^(@@[^@]*@@)([^\n]*\n)/) do + groups Punctuation, Text + end + rule(/^\w.*$\n?/, Punctuation) + rule(/^=.*$\n?/, Generic::Heading) + rule(/.+$\n?/, Text) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/digdag.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/digdag.rb new file mode 100644 index 0000000..407d646 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/digdag.rb @@ -0,0 +1,70 @@ +# frozen_string_literal: true + +require 'set' +module Rouge + module Lexers + load_lexer 'yaml.rb' + + class Digdag < YAML + title 'digdag' + desc 'A simple, open source, multi-cloud workflow engine (https://www.digdag.io/)' + tag 'digdag' + filenames '*.dig' + + mimetypes 'application/x-digdag' + + # http://docs.digdag.io/operators.html + # as of digdag v0.9.10 + KEYWORD_PATTERN = Regexp.union(%w( + call + require + loop + for_each + if + fail + echo + + td + td_run + td_ddl + td_load + td_for_each + td_wait + td_wait_table + td_partial_delete + td_table_export + + pg + + mail + http + s3_wait + redshift + redshift_load + redshift_unload + emr + + gcs_wait + bq + bq_ddl + bq_extract + bq_load + + sh + py + rb + embulk + ).map { |name| "#{name}>"} + %w( + _do + _parallel + )) + + prepend :block_nodes do + rule %r/(#{KEYWORD_PATTERN})(:)(?=\s|$)/ do |m| + groups Keyword::Reserved, Punctuation::Indicator + set_indent m[0], :implicit => true + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/docker.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/docker.rb new file mode 100644 index 0000000..ba581a7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/docker.rb @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Docker < RegexLexer + title "Docker" + desc "Dockerfile syntax" + tag 'docker' + aliases 'dockerfile', 'Dockerfile', 'containerfile', 'Containerfile' + filenames 'Dockerfile', '*.Dockerfile', '*.docker', 'Containerfile', '*.Containerfile' + mimetypes 'text/x-dockerfile-config' + + KEYWORDS = %w( + FROM MAINTAINER CMD LABEL EXPOSE ENV ADD COPY ENTRYPOINT VOLUME USER WORKDIR ARG STOPSIGNAL HEALTHCHECK SHELL + ).join('|') + + start { @shell = Shell.new(@options) } + + state :root do + rule %r/\s+/, Text + + rule %r/^(FROM)(\s+)(.*)(\s+)(AS)(\s+)(.*)/io do + groups Keyword, Text::Whitespace, Str, Text::Whitespace, Keyword, Text::Whitespace, Str + end + + rule %r/^(ONBUILD)(\s+)(#{KEYWORDS})(.*)/io do + groups Keyword, Text::Whitespace, Keyword, Str + end + + rule %r/^(#{KEYWORDS})\b(.*)/io do + groups Keyword, Str + end + + rule %r/#.*?$/, Comment + + rule %r/^(ONBUILD\s+)?RUN(\s+)/i do + token Keyword + push :run + @shell.reset! + end + + rule %r/\w+/, Text + rule %r/[^\w]+/, Text + rule %r/./, Text + end + + state :run do + rule %r/\n/, Text, :pop! + rule %r/\\./m, Str::Escape + rule(/(\\.|[^\n\\])+/) { delegate @shell } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/dot.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/dot.rb new file mode 100644 index 0000000..56d5c5b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/dot.rb @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Dot < RegexLexer + title "DOT" + desc "graph description language" + + tag 'dot' + aliases 'graphviz' + filenames '*.dot' + mimetypes 'text/vnd.graphviz' + + start do + @html = HTML.new(options) + end + + state :comments_and_whitespace do + rule %r/\s+/, Text + rule %r(#.*), Comment::Single + rule %r(//.*?$), Comment::Single + rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline + end + + state :html do + rule %r/[^<>]+/ do + delegate @html + end + rule %r/<.+?>/m do + delegate @html + end + rule %r/>/, Punctuation, :pop! + end + + state :ID do + rule %r/([a-zA-Z][a-zA-Z_0-9]*)(\s*)(=)/ do |m| + token Name, m[1] + token Text, m[2] + token Punctuation, m[3] + end + rule %r/[a-zA-Z][a-zA-Z_0-9]*/, Name::Variable + rule %r/([0-9]+)?\.[0-9]+/, Num::Float + rule %r/[0-9]+/, Num::Integer + rule %r/"(\\"|[^"])*"/, Str::Double + rule %r/</ do + token Punctuation + @html.reset! + push :html + end + end + + state :a_list do + mixin :comments_and_whitespace + mixin :ID + rule %r/[=;,]/, Punctuation + rule %r/\]/, Operator, :pop! + end + + state :root do + mixin :comments_and_whitespace + rule %r/\b(strict|graph|digraph|subgraph|node|edge)\b/i, Keyword + rule %r/[{};:=]/, Punctuation + rule %r/-[->]/, Operator + rule %r/\[/, Operator, :a_list + mixin :ID + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ecl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ecl.rb new file mode 100644 index 0000000..1e8131a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ecl.rb @@ -0,0 +1,175 @@ +# -*- codding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class ECL < RegexLexer + tag 'ecl' + filenames '*.ecl' + mimetypes 'application/x-ecl' + + title "ECL" + desc "Enterprise Control Language (hpccsystems.com)" + + id = /(#?)\b([a-z_][\w]*?)(\d*)\b/i + + def self.class_first + @class_first ||= Set.new %w( + file date str math metaphone metaphone3 uni audit blas system + ) + end + + def self.class_second + @class_second ||= Set.new %w( + debug email job log thorlib util workunit + ) + end + + def self.functions + @functions ||= Set.new %w( + abs acos aggregate allnodes apply ascii asin asstring atan _token ave + case catch choose choosen choosesets clustersize combine correlation + cos cosh count covariance cron dataset dedup define denormalize + dictionary distribute distributed distribution ebcdic enth error + evaluate event eventextra eventname exists exp failcode failmessage + fetch fromunicode fromxml getenv getisvalid global graph group hash + hashcrc having httpcall httpheader if iff index intformat isvalid + iterate join keyunicode length library limit ln local log loop map + matched matchlength matchposition matchtext matchunicode max merge + mergejoin min nofold nolocal nonempty normalize parse pipe power + preload process project pull random range rank ranked realformat + recordof regexfind regexreplace regroup rejected rollup round roundup + row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt + stepped stored sum table tan tanh thisnode topn tounicode toxml + transfer transform trim truncate typeof ungroup unicodeorder variance + which workunit xmldecode xmlencode xmltext xmlunicode apply assert + build buildindex evaluate fail keydiff keypatch loadxml nothor notify + output parallel sequential soapcall wait + ) + end + + def self.keywords + @keywords ||= Set.new %w( + and or in not all any as from atmost before best between case const + counter csv descend encrypt end endmacro enum except exclusive expire + export extend fail few first flat full function functionmacro group + heading hole ifblock import joined keep keyed last left limit load + local locale lookup many maxcount maxlength _token module interface + named nocase noroot noscan nosort of only opt outer overwrite packed + partition penalty physicallength pipe quote record repeat return + right rows scan self separator service shared skew skip sql store + terminator thor threshold token transform trim type unicodeorder + unsorted validate virtual whole wild within xml xpath after cluster + compressed compression default encoding escape fileposition forward + grouped inner internal linkcounted literal lzw mofn multiple + namespace wnotrim noxpath onfail prefetch retry rowset scope smart + soapaction stable timelimit timeout unordered unstable update use + width + ) + end + + def self.template + @template ||= Set.new %w( + append apply break constant debug declare demangle else elseif end + endregion error expand export exportxml for forall getdatatype if + ifdefined inmodule isdefined isvalid line link loop mangle onwarning + option region set stored text trace uniquename warning webservice + workunit loadxml + ) + end + + def self.type + @type ||= Set.new %w( + ascii big_endian boolean data decimal ebcdic grouped integer + linkcounted pattern qstring real record rule set of streamed string + token udecimal unicode utf8 unsigned varstring varunicode + ) + end + + def self.typed + @typed ||= Set.new %w( + data string qstring varstring varunicode unicode utf8 + ) + end + + state :single_quote do + rule %r([xDQUV]?'([^'\\]*(?:\\.[^'\\]*)*)'), Str::Single + rule %r/\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)/, Text + end + + state :inline_whitespace do + rule %r/[ \t\r]+/, Text + rule %r/\\\n/, Text # line continuation + rule %r(/[*].*?[*]/)m, Comment::Multiline + end + + state :whitespace do + rule %r/\n+/m, Text + rule %r(//.*), Comment::Single + mixin :inline_whitespace + end + + state :root do + mixin :whitespace + mixin :single_quote + + rule %r(\b(?i:(and|not|or|in))\b), Operator::Word + rule %r(:=|>|<|<>|/|\\|\+|-|=), Operator + rule %r([\[\]{}();,\&\.\%]), Punctuation + + rule %r(\b(?i:(beginc\+\+.*?endc\+\+)))m, Str::Single + rule %r(\b(?i:(embed.*?endembed)))m, Str::Single + + rule %r(\b(\w+)\.(\w+)\.(\w+)) do |m| + if m[1] == "std" && + self.class.class_first.include?(m[2]) && + self.class.class_second.include?(m[3]) + token Name::Class + else + token Name::Variable + end + end + + rule %r(\b(?i:(u)?decimal)(\d+(_\d+)?)\b), Keyword::Type + + rule %r/\d+\.\d+(e[\+\-]?\d+)?/i, Num::Float + rule %r/x[0-9a-f]+/i, Num::Hex + + rule %r/0x[0-9a-f]+/i, Num::Hex + rule %r/0[0-9a-f]+x/i, Num::Hex + rule %r(0[bB][01]+), Num::Bin + rule %r([01]+[bB]), Num::Bin + rule %r(\d+), Num::Integer + + rule id do |m| + name_only = m[2].downcase + name = name_only + m[3] + number = (m[3] == "") ? nil : m[3].to_i + if m[1] == "#" + if self.class.template.include? name + token Keyword::Type + else + token Error + end + elsif self.class.typed.include?(name_only) && number != nil + token Keyword::Type + elsif self.class.type.include? name + token Keyword::Type + elsif self.class.keywords.include? name + token Keyword + elsif self.class.functions.include? name + token Name::Function + elsif ["integer", "unsigned"].include?(name_only) && (1..8).cover?(number) + token Keyword::Type + elsif name_only == "real" && [4, 8].include?(number) + token Keyword::Type + elsif ["true", "false"].include? name + token Keyword::Constant + else + token Name::Other + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/eex.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/eex.rb new file mode 100644 index 0000000..e89d22a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/eex.rb @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- # + +module Rouge + module Lexers + class EEX < TemplateLexer + title "EEX" + desc "Embedded Elixir" + + tag 'eex' + aliases 'leex', 'heex' + + filenames '*.eex', '*.leex', '*.heex' + + def initialize(opts={}) + @elixir_lexer = Elixir.new(opts) + + super(opts) + end + + start do + parent.reset! + @elixir_lexer.reset! + end + + open = /<%%|<%=|<%#|<%/ + close = /%%>|%>/ + + state :root do + rule %r/<%#/, Comment, :comment + + rule open, Comment::Preproc, :elixir + + rule %r/.+?(?=#{open})|.+/mo do + delegate parent + end + end + + state :comment do + rule close, Comment, :pop! + rule %r/.+?(?=#{close})|.+/mo, Comment + end + + state :elixir do + rule close, Comment::Preproc, :pop! + + rule %r/.+?(?=#{close})|.+/mo do + delegate @elixir_lexer + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/eiffel.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/eiffel.rb new file mode 100644 index 0000000..94123c5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/eiffel.rb @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Eiffel < RegexLexer + title "Eiffel" + desc "Eiffel programming language" + + tag 'eiffel' + filenames '*.e' + mimetypes 'text/x-eiffel' + + LanguageKeywords = %w( + across agent alias all and attached as assign attribute check + class convert create debug deferred detachable do else elseif end + ensure expanded export external feature from frozen if implies inherit + inspect invariant like local loop not note obsolete old once or + Precursor redefine rename require rescue retry select separate + some then undefine until variant Void when xor + ) + + BooleanConstants = %w(True False) + + LanguageVariables = %w(Current Result) + + SimpleString = /(?:[^"%\b\f\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)+?/ + + state :root do + rule %r/"\[/, Str::Other, :aligned_verbatim_string + rule %r/"\{/, Str::Other, :non_aligned_verbatim_string + rule %r/"(?:[^%\b\f\n\r\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)*?"/, Str::Double + rule %r/--.*/, Comment::Single + rule %r/'(?:[^%\b\f\n\r\t\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)'/, Str::Char + + rule %r/(?:#{LanguageKeywords.join('|')})\b/, Keyword + rule %r/(?:#{LanguageVariables.join('|')})\b/, Keyword::Variable + rule %r/(?:#{BooleanConstants.join('|')})\b/, Keyword::Constant + + rule %r/\b0[xX][\da-fA-F](?:_*[\da-fA-F])*b/, Num::Hex + rule %r/\b0[cC][0-7](?:_*[0-7])*\b/, Num::Oct + rule %r/\b0[bB][01](?:_*[01])*\b/, Num::Bin + rule %r/\d(?:_*\d)*/, Num::Integer + rule %r/(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?[eE][+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/, Num::Float + + rule %r/:=|<<|>>|\(\||\|\)|->|\.|[{}\[\];(),:?]/, Punctuation::Indicator + rule %r/\\\\|\|\.\.\||\.\.|\/[~\/]?|[><\/]=?|[-+*^=~≤≥−∀∃¦⟳⟲]/, Operator + + rule %r/[A-Z][\dA-Z_]*/, Name::Class + rule %r/[A-Za-z][\dA-Za-z_]*/, Name + rule %r/\s+/, Text + end + + state :aligned_verbatim_string do + rule %r/]"/, Str::Other, :pop! + rule SimpleString, Str::Other + end + + state :non_aligned_verbatim_string do + rule %r/}"/, Str::Other, :pop! + rule SimpleString, Str::Other + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/elixir.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/elixir.rb new file mode 100644 index 0000000..c48b653 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/elixir.rb @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + # Direct port of pygments Lexer. + # See: https://bitbucket.org/birkenfeld/pygments-main/src/7304e4759ae65343d89a51359ca538912519cc31/pygments/lexers/functional.py?at=default#cl-2362 + class Elixir < RegexLexer + title "Elixir" + desc "Elixir language (elixir-lang.org)" + + tag 'elixir' + aliases 'elixir', 'exs' + + filenames '*.ex', '*.exs' + + def self.detect?(text) + return true if text.shebang?('elixir') + end + + mimetypes 'text/x-elixir', 'application/x-elixir' + + state :root do + rule %r/\s+/m, Text + rule %r/#.*$/, Comment::Single + rule %r{\b(case|cond|end|bc|lc|if|unless|try|loop|receive|fn|defmodule| + defp?|defprotocol|defimpl|defrecord|defmacrop?|defdelegate| + defexception|defguardp?|defstruct|exit|raise|throw|after|rescue|catch|else)\b(?![?!])| + (?<!\.)\b(do|\-\>)\b}x, Keyword + rule %r/\b(import|require|use|recur|quote|unquote|super|refer)\b(?![?!])/, Keyword::Namespace + rule %r/(?<!\.)\b(and|not|or|when|xor|in)\b/, Operator::Word + rule %r{%=|\*=|\*\*=|\+=|\-=|\^=|\|\|=| + <=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?=[\s])\?| + (?<=[\s])!+|&(&&?|(?!\d))|\|\||\^|\*|\+|\-|/| + \||\+\+|\-\-|\*\*|\/\/|\<\-|\<\>|<<|>>|=|\.|~~~}x, Operator + rule %r{(?<!:)(:)([a-zA-Z_]\w*([?!]|=(?![>=]))?|\<\>|===?|>=?|<=?| + <=>|&&?|%\(\)|%\[\]|%\{\}|\+\+?|\-\-?|\|\|?|\!|//|[%&`/\|]| + \*\*?|=?~|<\-)|([a-zA-Z_]\w*([?!])?)(:)(?!:)}, Str::Symbol + rule %r/:"/, Str::Symbol, :interpoling_symbol + rule %r/\b(nil|true|false)\b(?![?!])|\b[A-Z]\w*\b/, Name::Constant + rule %r/\b(__(FILE|LINE|MODULE|MAIN|FUNCTION)__)\b(?![?!])/, Name::Builtin::Pseudo + rule %r/[a-zA-Z_!]\w*[!\?]?/, Name + rule %r{::|[%(){};,/\|:\\\[\]]}, Punctuation + rule %r/@[a-zA-Z_]\w*|&\d/, Name::Variable + rule %r{\b\d(_?\d)*(\.(?![^\d\s])(_?\d)+)([eE][-+]?\d(_?\d)*)?\b}, Num::Float + rule %r{\b0x[0-9A-Fa-f](_?[0-9A-Fa-f])*\b}, Num::Hex + rule %r{\b0o[0-7](_?[0-7])*\b}, Num::Oct + rule %r{\b0b[01](_?[01])*\b}, Num::Bin + rule %r{\b\d(_?\d)*\b}, Num::Integer + + mixin :strings + mixin :sigil_strings + end + + state :strings do + rule %r/(%[A-Ba-z])?"""(?:.|\n)*?"""/, Str::Doc + rule %r/'''(?:.|\n)*?'''/, Str::Doc + rule %r/"/, Str::Double, :dqs + rule %r/'/, Str::Single, :sqs + rule %r{(?<!\w)\?(\\(x\d{1,2}|\h{1,2}(?!\h)\b|0[0-7]{0,2}(?![0-7])\b[^x0MC])|(\\[MC]-)+\w|[^\s\\])}, Str::Other + end + + state :dqs do + mixin :escapes + mixin :interpoling + rule %r/[^#"\\]+/, Str::Double + rule %r/"/, Str::Double, :pop! + rule %r/[#\\]/, Str::Double + end + + state :sqs do + mixin :escapes + mixin :interpoling + rule %r/[^#'\\]+/, Str::Single + rule %r/'/, Str::Single, :pop! + rule %r/[#\\]/, Str::Single + end + + state :interpoling do + rule %r/#\{/, Str::Interpol, :interpoling_string + end + + state :interpoling_string do + rule %r/\}/, Str::Interpol, :pop! + mixin :root + end + + state :escapes do + rule %r/\\x\h{2}/, Str::Escape + rule %r/\\u\{?\d+\}?/, Str::Escape + rule %r/\\[\\abdefnrstv0"']/, Str::Escape + end + + state :interpoling_symbol do + rule %r/"/, Str::Symbol, :pop! + mixin :interpoling + rule %r/[^#"]+/, Str::Symbol + end + + state :sigil_strings do + # ~-sigiled strings + # ~(abc), ~[abc], ~<abc>, ~|abc|, ~r/abc/, etc + # Cribbed and adjusted from Ruby lexer + delimiter_map = { '{' => '}', '[' => ']', '(' => ')', '<' => '>' } + # Match a-z for custom sigils too + sigil_opens = Regexp.union(delimiter_map.keys + %w(| / ' ")) + rule %r/~([A-Za-z])?(#{sigil_opens})/ do |m| + open = Regexp.escape(m[2]) + close = Regexp.escape(delimiter_map[m[2]] || m[2]) + interp = /[SRCW]/ === m[1] + toktype = Str::Other + + puts " open: #{open.inspect}" if @debug + puts " close: #{close.inspect}" if @debug + + # regexes + if 'Rr'.include? m[1] + toktype = Str::Regex + push :regex_flags + end + + if 'Ww'.include? m[1] + push :list_flags + end + + token toktype + + push do + rule %r/#{close}/, toktype, :pop! + + if interp + mixin :interpoling + rule %r/#/, toktype + else + rule %r/[\\#]/, toktype + end + + uniq_chars = [open, close].uniq.join + rule %r/[^##{uniq_chars}\\]+/m, toktype + end + end + end + + state :regex_flags do + rule %r/[fgimrsux]*/, Str::Regex, :pop! + end + + state :list_flags do + rule %r/[csa]?/, Str::Other, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/elm.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/elm.rb new file mode 100644 index 0000000..526c33f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/elm.rb @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Elm < RegexLexer + title "Elm" + desc "The Elm programming language (http://elm-lang.org/)" + + tag 'elm' + filenames '*.elm' + mimetypes 'text/x-elm' + + # Keywords are logically grouped by lines + keywords = %w( + module exposing port + import as + type alias + if then else + case of + let in + ) + + state :root do + # Whitespaces + rule %r/\s+/m, Text + # Single line comments + rule %r/--.*/, Comment::Single + # Multiline comments + rule %r/{-/, Comment::Multiline, :multiline_comment + + # Keywords + rule %r/\b(#{keywords.join('|')})\b/, Keyword + + # Variable or a function + rule %r/[a-z]\w*/, Name + # Underscore is a name for a variable, when it won't be used later + rule %r/_/, Name + # Type + rule %r/[A-Z]\w*/, Keyword::Type + + # Two symbol operators: -> :: // .. && || ++ |> <| << >> == /= <= >= + rule %r/(->|::|\/\/|\.\.|&&|\|\||\+\+|\|>|<\||>>|<<|==|\/=|<=|>=)/, Operator + # One symbol operators: + - / * % = < > ^ | ! + rule %r/[+-\/*%=<>^\|!]/, Operator + # Lambda operator + rule %r/\\/, Operator + # Not standard Elm operators, but these symbols can be used for custom inflix operators. We need to highlight them as operators as well. + rule %r/[@\#$&~?]/, Operator + + # Single, double quotes, and triple double quotes + rule %r/"""/, Str, :multiline_string + rule %r/'(\\.|.)'/, Str::Char + rule %r/"/, Str, :double_quote + + # Numbers + rule %r/0x[\da-f]+/i, Num::Hex + rule %r/\d+e[+-]?\d+/i, Num::Float + rule %r/\d+\.\d+(e[+-]?\d+)?/i, Num::Float + rule %r/\d+/, Num::Integer + + # Punctuation: [ ] ( ) , ; ` { } : + rule %r/[\[\](),;`{}:]/, Punctuation + end + + # Multiline and nested commenting + state :multiline_comment do + rule %r/-}/, Comment::Multiline, :pop! + rule %r/{-/, Comment::Multiline, :multiline_comment + rule %r/[^-{}]+/, Comment::Multiline + rule %r/[-{}]/, Comment::Multiline + end + + # Double quotes + state :double_quote do + rule %r/[^\\"]+/, Str::Double + rule %r/\\"/, Str::Escape + rule %r/"/, Str::Double, :pop! + end + + # Multiple line string with triple double quotes, e.g. """ multi """ + state :multiline_string do + rule %r/\\"/, Str::Escape + rule %r/"""/, Str, :pop! + rule %r/[^"]+/, Str + rule %r/"/, Str + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/email.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/email.rb new file mode 100644 index 0000000..b9413fd --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/email.rb @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Email < RegexLexer + tag 'email' + aliases 'eml', 'e-mail' + filenames '*.eml' + mimetypes 'message/rfc822' + + title "Email" + desc "An email message" + + start do + push :fields + end + + state :fields do + rule %r/[:]/, Operator, :field_body + rule %r/[^\n\r:]+/, Name::Tag + rule %r/[\n\r]/, Name::Tag + end + + state :field_body do + rule(/(\r?\n){2}/) { token Text; pop!(2) } + rule %r/\r?\n(?![ \v\t\f])/, Text, :pop! + rule %r/[^\n\r]+/, Name::Attribute + rule %r/[\n\r]/, Name::Attribute + end + + state :root do + rule %r/\n/, Text + rule %r/^>.*/, Comment + rule %r/.+/, Text + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/epp.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/epp.rb new file mode 100644 index 0000000..dfec784 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/epp.rb @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- # + +module Rouge + module Lexers + class EPP < TemplateLexer + title "EPP" + desc "Embedded Puppet template files" + + tag 'epp' + + filenames '*.epp' + + def initialize(opts={}) + super(opts) + @parent = lexer_option(:parent) { PlainText.new(opts) } + @puppet_lexer = Puppet.new(opts) + end + + start do + parent.reset! + @puppet_lexer.reset! + end + + open = /<%%|<%=|<%#|(<%-|<%)(\s*\|)?/ + close = /%%>|(\|\s*)?(-%>|%>)/ + + state :root do + rule %r/<%#/, Comment, :comment + + rule open, Comment::Preproc, :puppet + + rule %r/.+?(?=#{open})|.+/m do + delegate parent + end + end + + state :comment do + rule close, Comment, :pop! + rule %r/.+?(?=#{close})|.+/m, Comment + end + + state :puppet do + rule close, Comment::Preproc, :pop! + + rule %r/.+?(?=#{close})|.+/m do + delegate @puppet_lexer + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/erb.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/erb.rb new file mode 100644 index 0000000..6c0aab1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/erb.rb @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class ERB < TemplateLexer + title "ERB" + desc "Embedded ruby template files" + + tag 'erb' + aliases 'eruby', 'rhtml' + + filenames '*.erb', '*.erubis', '*.rhtml', '*.eruby' + + def initialize(opts={}) + @ruby_lexer = Ruby.new(opts) + + super(opts) + end + + start do + parent.reset! + @ruby_lexer.reset! + end + + open = /<%%|<%=|<%#|<%-|<%/ + close = /%%>|-%>|%>/ + + state :root do + rule %r/<%#/, Comment, :comment + + rule open, Comment::Preproc, :ruby + + rule %r/.+?(?=#{open})|.+/m do + delegate parent + end + end + + state :comment do + rule close, Comment, :pop! + rule %r/.+?(?=#{close})|.+/m, Comment + end + + state :ruby do + rule close, Comment::Preproc, :pop! + + rule %r/.+?(?=#{close})|.+/m do + delegate @ruby_lexer + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/erlang.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/erlang.rb new file mode 100644 index 0000000..031f2bd --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/erlang.rb @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Erlang < RegexLexer + title "Erlang" + desc "The Erlang programming language (erlang.org)" + tag 'erlang' + aliases 'erl' + filenames '*.erl', '*.hrl' + + mimetypes 'text/x-erlang', 'application/x-erlang' + + keywords = %w( + after begin case catch cond end fun if + let of query receive try when + ) + + builtins = %w( + abs append_element apply atom_to_list binary_to_list + bitstring_to_list binary_to_term bit_size bump_reductions + byte_size cancel_timer check_process_code delete_module + demonitor disconnect_node display element erase exit + float float_to_list fun_info fun_to_list + function_exported garbage_collect get get_keys + group_leader hash hd integer_to_list iolist_to_binary + iolist_size is_atom is_binary is_bitstring is_boolean + is_builtin is_float is_function is_integer is_list + is_number is_pid is_port is_process_alive is_record + is_reference is_tuple length link list_to_atom + list_to_binary list_to_bitstring list_to_existing_atom + list_to_float list_to_integer list_to_pid list_to_tuple + load_module localtime_to_universaltime make_tuple md5 + md5_final md5_update memory module_loaded monitor + monitor_node node nodes open_port phash phash2 + pid_to_list port_close port_command port_connect + port_control port_call port_info port_to_list + process_display process_flag process_info purge_module + put read_timer ref_to_list register resume_process + round send send_after send_nosuspend set_cookie + setelement size spawn spawn_link spawn_monitor + spawn_opt split_binary start_timer statistics + suspend_process system_flag system_info system_monitor + system_profile term_to_binary tl trace trace_delivered + trace_info trace_pattern trunc tuple_size tuple_to_list + universaltime_to_localtime unlink unregister whereis + ) + + operators = %r{(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?)} + word_operators = %w( + and andalso band bnot bor bsl bsr bxor + div not or orelse rem xor + ) + + atom_re = %r{(?:[a-z][a-zA-Z0-9_]*|'[^\n']*[^\\]')} + + variable_re = %r{(?:[A-Z_][a-zA-Z0-9_]*)} + + escape_re = %r{(?:\\(?:[bdefnrstv\'"\\/]|[0-7][0-7]?[0-7]?|\^[a-zA-Z]))} + + macro_re = %r{(?:#{variable_re}|#{atom_re})} + + base_re = %r{(?:[2-9]|[12][0-9]|3[0-6])} + + state :root do + rule(/\s+/, Text) + rule(/%.*\n/, Comment) + rule(%r{(#{keywords.join('|')})\b}, Keyword) + rule(%r{(#{builtins.join('|')})\b}, Name::Builtin) + rule(%r{(#{word_operators.join('|')})\b}, Operator::Word) + rule(/^-/, Punctuation, :directive) + rule(operators, Operator) + rule(/"/, Str, :string) + rule(/<</, Name::Label) + rule(/>>/, Name::Label) + rule %r{(#{atom_re})(:)} do + groups Name::Namespace, Punctuation + end + rule %r{(?:^|(?<=:))(#{atom_re})(\s*)(\()} do + groups Name::Function, Text, Punctuation + end + rule(%r{[+-]?#{base_re}#[0-9a-zA-Z]+}, Num::Integer) + rule(/[+-]?\d+/, Num::Integer) + rule(/[+-]?\d+.\d+/, Num::Float) + rule(%r{[\]\[:_@\".{}()|;,]}, Punctuation) + rule(variable_re, Name::Variable) + rule(atom_re, Name) + rule(%r{\?#{macro_re}}, Name::Constant) + rule(%r{\$(?:#{escape_re}|\\[ %]|[^\\])}, Str::Char) + rule(%r{##{atom_re}(:?\.#{atom_re})?}, Name::Label) + end + + state :string do + rule(escape_re, Str::Escape) + rule(/"/, Str, :pop!) + rule(%r{~[0-9.*]*[~#+bBcdefginpPswWxX]}, Str::Interpol) + rule(%r{[^"\\~]+}, Str) + rule(/~/, Str) + end + + state :directive do + rule %r{(define)(\s*)(\()(#{macro_re})} do + groups Name::Entity, Text, Punctuation, Name::Constant + pop! + end + rule %r{(record)(\s*)(\()(#{macro_re})} do + groups Name::Entity, Text, Punctuation, Name::Label + pop! + end + rule(atom_re, Name::Entity, :pop!) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/escape.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/escape.rb new file mode 100644 index 0000000..8c66d38 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/escape.rb @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Escape < Lexer + tag 'escape' + aliases 'esc' + + desc 'A generic lexer for including escaped content - see Formatter.enable_escape!' + + option :start, 'the beginning of the escaped section, default "<!"' + option :end, 'the end of the escaped section, e.g. "!>"' + option :lang, 'the language to lex in unescaped sections' + + attr_reader :start + attr_reader :end + attr_reader :lang + + def initialize(*) + super + @start = string_option(:start) { '<!' } + @end = string_option(:end) { '!>' } + @lang = lexer_option(:lang) { PlainText.new } + end + + def to_start_regex + @to_start_regex ||= /(.*?)(#{Regexp.escape(@start)})/m + end + + def to_end_regex + @to_end_regex ||= /(.*?)(#{Regexp.escape(@end)})/m + end + + def stream_tokens(str, &b) + stream = StringScanner.new(str) + + loop do + if stream.scan(to_start_regex) + puts "pre-escape: #{stream[1].inspect}" if @debug + @lang.continue_lex(stream[1], &b) + else + # no more start delimiters, scan til the end + @lang.continue_lex(stream.rest, &b) + return + end + + if stream.scan(to_end_regex) + yield Token::Tokens::Escape, stream[1] + else + yield Token::Tokens::Escape, stream.rest + return + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/factor.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/factor.rb new file mode 100644 index 0000000..537575f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/factor.rb @@ -0,0 +1,303 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Factor < RegexLexer + title "Factor" + desc "Factor, the practical stack language (factorcode.org)" + tag 'factor' + filenames '*.factor' + mimetypes 'text/x-factor' + + def self.detect?(text) + return true if text.shebang? 'factor' + end + + def self.builtins + @builtins ||= {}.tap do |builtins| + builtins[:kernel] = Set.new %w( + or 2bi 2tri while wrapper nip 4dip wrapper? bi* + callstack>array both? hashcode die dupd callstack + callstack? 3dup tri@ pick curry build ?execute 3bi prepose + >boolean if clone eq? tri* ? = swapd 2over 2keep 3keep clear + 2dup when not tuple? dup 2bi* 2tri* call tri-curry object bi@ + do unless* if* loop bi-curry* drop when* assert= retainstack + assert? -rot execute 2bi@ 2tri@ boa with either? 3drop bi + curry? datastack until 3dip over 3curry tri-curry* tri-curry@ + swap and 2nip throw bi-curry (clone) hashcode* compose 2dip if + 3tri unless compose? tuple keep 2curry equal? assert tri 2drop + most <wrapper> boolean? identity-hashcode identity-tuple? + null new dip bi-curry@ rot xor identity-tuple boolean + ) + + builtins[:assocs] = Set.new %w( + ?at assoc? assoc-clone-like assoc= delete-at* assoc-partition + extract-keys new-assoc value? assoc-size map>assoc push-at + assoc-like key? assoc-intersect assoc-refine update + assoc-union assoc-combine at* assoc-empty? at+ set-at + assoc-all? assoc-subset? assoc-hashcode change-at assoc-each + assoc-diff zip values value-at rename-at inc-at enum? at cache + assoc>map <enum> assoc assoc-map enum value-at* assoc-map-as + >alist assoc-filter-as clear-assoc assoc-stack maybe-set-at + substitute assoc-filter 2cache delete-at assoc-find keys + assoc-any? unzip + ) + + builtins[:combinators] = Set.new %w( + case execute-effect no-cond no-case? 3cleave>quot 2cleave + cond>quot wrong-values? no-cond? cleave>quot no-case case>quot + 3cleave wrong-values to-fixed-point alist>quot case-find + cond cleave call-effect 2cleave>quot recursive-hashcode + linear-case-quot spread spread>quot + ) + + builtins[:math] = Set.new %w( + number= if-zero next-power-of-2 each-integer ?1+ + fp-special? imaginary-part unless-zero float>bits number? + fp-infinity? bignum? fp-snan? denominator fp-bitwise= * + + power-of-2? - u>= / >= bitand log2-expects-positive < + log2 > integer? number bits>double 2/ zero? (find-integer) + bits>float float? shift ratio? even? ratio fp-sign bitnot + >fixnum complex? /i /f byte-array>bignum when-zero sgn >bignum + next-float u< u> mod recip rational find-last-integer >float + (all-integers?) 2^ times integer fixnum? neg fixnum sq bignum + (each-integer) bit? fp-qnan? find-integer complex <fp-nan> + real double>bits bitor rem fp-nan-payload all-integers? + real-part log2-expects-positive? prev-float align unordered? + float fp-nan? abs bitxor u<= odd? <= /mod rational? >integer + real? numerator + ) + + builtins[:sequences] = Set.new %w( + member-eq? append assert-sequence= find-last-from + trim-head-slice clone-like 3sequence assert-sequence? map-as + last-index-from reversed index-from cut* pad-tail + remove-eq! concat-as but-last snip trim-tail nths + nth 2selector sequence slice? <slice> partition + remove-nth tail-slice empty? tail* if-empty + find-from virtual-sequence? member? set-length + drop-prefix unclip unclip-last-slice iota map-sum + bounds-error? sequence-hashcode-step selector-for + accumulate-as map start midpoint@ (accumulate) rest-slice + prepend fourth sift accumulate! new-sequence follow map! like + first4 1sequence reverse slice unless-empty padding virtual@ + repetition? set-last index 4sequence max-length set-second + immutable-sequence first2 first3 replicate-as reduce-index + unclip-slice supremum suffix! insert-nth trim-tail-slice + tail 3append short count suffix concat flip filter sum + immutable? reverse! 2sequence map-integers delete-all start* + indices snip-slice check-slice sequence? head map-find + filter! append-as reduce sequence= halves collapse-slice + interleave 2map filter-as binary-reduce slice-error? product + bounds-check? bounds-check harvest immutable virtual-exemplar + find produce remove pad-head last replicate set-fourth + remove-eq shorten reversed? map-find-last 3map-as + 2unclip-slice shorter? 3map find-last head-slice pop* 2map-as + tail-slice* but-last-slice 2map-reduce iota? collector-for + accumulate each selector append! new-resizable cut-slice + each-index head-slice* 2reverse-each sequence-hashcode + pop set-nth ?nth <flat-slice> second join when-empty + collector immutable-sequence? <reversed> all? 3append-as + virtual-sequence subseq? remove-nth! push-either new-like + length last-index push-if 2all? lengthen assert-sequence + copy map-reduce move third first 3each tail? set-first prefix + bounds-error any? <repetition> trim-slice exchange surround + 2reduce cut change-nth min-length set-third produce-as + push-all head? delete-slice rest sum-lengths 2each head* + infimum remove! glue slice-error subseq trim replace-slice + push repetition map-index trim-head unclip-last mismatch + ) + + builtins[:namespaces] = Set.new %w( + global +@ change set-namestack change-global init-namespaces + on off set-global namespace set with-scope bind with-variable + inc dec counter initialize namestack get get-global make-assoc + ) + + builtins[:arrays] = Set.new %w( + <array> 2array 3array pair >array 1array 4array pair? + array resize-array array? + ) + + builtins[:io] = Set.new %w( + +character+ bad-seek-type? readln each-morsel + stream-seek read print with-output-stream contents + write1 stream-write1 stream-copy stream-element-type + with-input-stream stream-print stream-read stream-contents + stream-tell tell-output bl seek-output bad-seek-type nl + stream-nl write flush stream-lines +byte+ stream-flush + read1 seek-absolute? stream-read1 lines stream-readln + stream-read-until each-line seek-end with-output-stream* + seek-absolute with-streams seek-input seek-relative? + input-stream stream-write read-partial seek-end? + seek-relative error-stream read-until with-input-stream* + with-streams* tell-input each-block output-stream + stream-read-partial each-stream-block each-stream-line + ) + + builtins[:strings] = Set.new %w( + resize-string >string <string> 1string string string? + ) + + builtins[:vectors] = Set.new %w( + with-return restarts return-continuation with-datastack + recover rethrow-restarts <restart> ifcc set-catchstack + >continuation< cleanup ignore-errors restart? + compute-restarts attempt-all-error error-thread + continue <continuation> attempt-all-error? condition? + <condition> throw-restarts error catchstack continue-with + thread-error-hook continuation rethrow callcc1 + error-continuation callcc0 attempt-all condition + continuation? restart return + ) + + builtins[:continuations] = Set.new %w( + with-return restarts return-continuation with-datastack + recover rethrow-restarts <restart> ifcc set-catchstack + >continuation< cleanup ignore-errors restart? + compute-restarts attempt-all-error error-thread + continue <continuation> attempt-all-error? condition? + <condition> throw-restarts error catchstack continue-with + thread-error-hook continuation rethrow callcc1 + error-continuation callcc0 attempt-all condition + continuation? restart return + ) + end + end + + state :root do + rule %r/\s+/m, Text + + rule %r/(:|::|MACRO:|MEMO:|GENERIC:|HELP:)(\s+)(\S+)/m do + groups Keyword, Text, Name::Function + end + + rule %r/(M:|HOOK:|GENERIC#)(\s+)(\S+)(\s+)(\S+)/m do + groups Keyword, Text, Name::Class, Text, Name::Function + end + + rule %r/\((?=\s)/, Name::Function, :stack_effect + rule %r/;(?=\s)/, Keyword + + rule %r/(USING:)((?:\s|\\\s)+)/m do + groups Keyword::Namespace, Text + push :import + end + + rule %r/(IN:|USE:|UNUSE:|QUALIFIED:|QUALIFIED-WITH:)(\s+)(\S+)/m do + groups Keyword::Namespace, Text, Name::Namespace + end + + rule %r/(FROM:|EXCLUDE:)(\s+)(\S+)(\s+)(=>)/m do + groups Keyword::Namespace, Text, Name::Namespace, Text, Punctuation + end + + rule %r/(?:ALIAS|DEFER|FORGET|POSTPONE):/, Keyword::Namespace + + rule %r/(TUPLE:)(\s+)(\S+)(\s+)(<)(\s+)(\S+)/m do + groups( + Keyword, Text, + Name::Class, Text, + Punctuation, Text, + Name::Class + ) + push :slots + end + + rule %r/(TUPLE:)(\s+)(\S+)/m do + groups Keyword, Text, Name::Class + push :slots + end + + rule %r/(UNION:|INTERSECTION:)(\s+)(\S+)/m do + groups Keyword, Text, Name::Class + end + + rule %r/(PREDICATE:)(\s+)(\S+)(\s+)(<)(\s+)(\S+)/m do + groups( + Keyword, Text, + Name::Class, Text, + Punctuation, Text, + Name::Class + ) + end + + rule %r/(C:)(\s+)(\S+)(\s+)(\S+)/m do + groups( + Keyword, Text, + Name::Function, Text, + Name::Class + ) + end + + rule %r( + (INSTANCE|SLOT|MIXIN|SINGLETONS?|CONSTANT|SYMBOLS?|ERROR|SYNTAX + |ALIEN|TYPEDEF|FUNCTION|STRUCT): + )x, Keyword + + rule %r/(?:<PRIVATE|PRIVATE>)/, Keyword::Namespace + + rule %r/(MAIN:)(\s+)(\S+)/ do + groups Keyword::Namespace, Text, Name::Function + end + + # strings + rule %r/"(?:\\\\|\\"|[^"])*"/, Str + rule %r/\S+"\s+(?:\\\\|\\"|[^"])*"/, Str + rule %r/(CHAR:)(\s+)(\\[\\abfnrstv]*|\S)(?=\s)/, Str::Char + + # comments + rule %r/!\s+.*$/, Comment + rule %r/#!\s+.*$/, Comment + + # booleans + rule %r/[tf](?=\s)/, Name::Constant + + # numbers + rule %r/-?\d+\.\d+(?=\s)/, Num::Float + rule %r/-?\d+(?=\s)/, Num::Integer + + rule %r/HEX:\s+[a-fA-F\d]+(?=\s)/m, Num::Hex + rule %r/BIN:\s+[01]+(?=\s)/, Num::Bin + rule %r/OCT:\s+[0-7]+(?=\s)/, Num::Oct + + rule %r([-+/*=<>^](?=\s)), Operator + + rule %r/(?:deprecated|final|foldable|flushable|inline|recursive)(?=\s)/, + Keyword + + rule %r/\S+/ do |m| + name = m[0] + + if self.class.builtins.values.any? { |b| b.include? name } + token Name::Builtin + else + token Name + end + end + end + + state :stack_effect do + rule %r/\s+/, Text + rule %r/\(/, Name::Function, :stack_effect + rule %r/\)/, Name::Function, :pop! + + rule %r/--/, Name::Function + rule %r/\S+/, Name::Variable + end + + state :slots do + rule %r/\s+/, Text + rule %r/;(?=\s)/, Keyword, :pop! + rule %r/\S+/, Name::Variable + end + + state :import do + rule %r/;(?=\s)/, Keyword, :pop! + rule %r/\s+/, Text + rule %r/\S+/, Name::Namespace + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/fluent.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/fluent.rb new file mode 100644 index 0000000..898804a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/fluent.rb @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Fluent < RegexLexer + title 'Fluent' + desc 'Fluent localization files' + tag 'fluent' + aliases 'ftl' + filenames '*.ftl' + + state :root do + rule %r{( *)(\=)( *)} do + groups Text::Whitespace, Punctuation, Text::Whitespace + push :template + end + + rule %r{(?:\s*\n)+}m, Text::Whitespace + rule %r{\#{1,3}(?: .*)?$}, Comment::Single + rule %r{[a-zA-Z][a-zA-Z0-9_-]*}, Name::Constant + rule %r{\-[a-zA-Z][a-zA-Z0-9_-]*}, Name::Entity + rule %r{\s*\.[a-zA-Z][a-zA-Z0-9_-]*}, Name::Attribute + rule %r{\s+(?=[^\s\.])}, Text::Whitespace, :template + end + + state :template do + rule %r{\n}m, Text::Whitespace, :pop! + rule %r{[^\{\n\}\*]+}, Text + rule %r{\{}, Punctuation, :placeable + rule %r{(?=\})}, Punctuation, :pop! + end + + state :placeable do + rule %r{\s+}m, Text::Whitespace + rule %r{\{}, Punctuation, :placeable + rule %r{\}}, Punctuation, :pop! + rule %r{\$[a-zA-Z][a-zA-Z0-9_-]*}, Name::Variable + rule %r{\-[a-zA-Z][a-zA-Z0-9_-]*}, Name::Entity + rule %r{\.[a-zA-Z][a-zA-Z0-9_-]*}, Name::Attribute + rule %r{[A-Z]+}, Name::Builtin + rule %r{[a-zA-Z][a-zA-Z0-9_-]*}, Name::Constant + rule %r{[\(\),\:]}, Punctuation + rule %r{->}, Punctuation + rule %r{\*}, Punctuation::Indicator + rule %r{\-?\d+\.\d+?}, Literal::Number::Float + rule %r{\-?\d+}, Literal::Number::Integer + rule %r{"}, Str::Double, :string + + rule %r{(\[)(\-?\d+\.\d+)(\])} do + groups Punctuation, Literal::Number::Float, Punctuation + push :template + end + + rule %r{(\[)(\-?\d+)(\])} do + groups Punctuation, Literal::Number::Integer, Punctuation + push :template + end + + rule %r{(\[)([a-zA-Z][a-zA-Z0-9_-]+)(\])} do + groups Punctuation, Str::Symbol, Punctuation + push :template + end + end + + state :string do + rule %r{\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{6}}, Str::Escape + rule %r{\\.}, Str::Escape + rule %r{[^\"\\]}, Str::Double + rule %r{"}, Str::Double, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/fortran.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/fortran.rb new file mode 100644 index 0000000..ccc8d36 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/fortran.rb @@ -0,0 +1,178 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# vim: set ts=2 sw=2 et: + +# TODO: Implement format list support. + +module Rouge + module Lexers + class Fortran < RegexLexer + title "Fortran" + desc "Fortran 2008 (free-form)" + + tag 'fortran' + filenames '*.f', '*.f90', '*.f95', '*.f03', '*.f08', + '*.F', '*.F90', '*.F95', '*.F03', '*.F08' + mimetypes 'text/x-fortran' + + name = /[A-Z][_A-Z0-9]*/i + kind_param = /(\d+|#{name})/ + exponent = /[ED][+-]?\d+/i + + def self.keywords + # Special rules for two-word keywords are defined further down. + # Note: Fortran allows to omit whitespace between certain keywords. + @keywords ||= Set.new %w( + abstract allocatable allocate assign assignment associate asynchronous + backspace bind block blockdata call case class close codimension + common concurrent contains contiguous continue critical cycle data + deallocate deferred dimension do elemental else elseif elsewhere end + endassociate endblock endblockdata enddo endenum endfile endforall + endfunction endif endinterface endmodule endprogram endselect + endsubmodule endsubroutine endtype endwhere endwhile entry enum + enumerator equivalence exit extends external final flush forall format + function generic goto if implicit import in include inout inquire + intent interface intrinsic is lock module namelist non_overridable + none nopass nullify only open operator optional out parameter pass + pause pointer print private procedure program protected public pure + read recursive result return rewind save select selectcase sequence + stop submodule subroutine target then type unlock use value volatile + wait where while write + ) + end + + def self.types + # A special rule for the two-word version "double precision" is + # defined further down. + @types ||= Set.new %w( + character complex doubleprecision integer logical real + ) + end + + def self.intrinsics + @intrinsics ||= Set.new %w( + abs achar acos acosh adjustl adjustr aimag aint all allocated anint + any asin asinh associated atan atan2 atanh atomic_define atomic_ref + bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn bge bgt + bit_size ble blt btest c_associated c_f_pointer c_f_procpointer + c_funloc c_loc c_sizeof ceiling char cmplx command_argument_count + compiler_options compiler_version conjg cos cosh count cpu_time cshift + date_and_time dble digits dim dot_product dprod dshiftl dshiftr + eoshift epsilon erf erfc_scaled erfc execute_command_line exp exponent + extends_type_of findloc floor fraction gamma get_command_argument + get_command get_environment_variable huge hypot iachar iall iand iany + ibclr ibits ibset ichar ieee_class ieee_copy_sign ieee_get_flag + ieee_get_halting_mode ieee_get_rounding_mode ieee_get_status + ieee_get_underflow_mode ieee_is_finite ieee_is_nan ieee_is_normal + ieee_logb ieee_next_after ieee_rem ieee_rint ieee_scalb + ieee_selected_real_kind ieee_set_flag ieee_set_halting_mode + ieee_set_rounding_mode ieee_set_status ieee_set_underflow_mode + ieee_support_datatype ieee_support_denormal ieee_support_divide + ieee_support_flag ieee_support_halting ieee_support_inf + ieee_support_io ieee_support_nan ieee_support_rounding + ieee_support_sqrt ieee_support_standard ieee_support_underflow_control + ieee_unordered ieee_value ieor image_index index int ior iparity + is_contiguous is_iostat_end is_iostat_eor ishft ishftc kind lbound + lcobound leadz len_trim len lge lgt lle llt log_gamma log log10 + logical maskl maskr matmul max maxexponent maxloc maxval merge_bits + merge min minexponent minloc minval mod modulo move_alloc mvbits + nearest new_line nint norm2 not null num_images pack parity popcnt + poppar present product radix random_number random_seed range real + repeat reshape rrspacing same_type_as scale scan selected_char_kind + selected_int_kind selected_real_kind set_exponent shape shifta shiftl + shiftr sign sin sinh size spacing spread sqrt storage_size sum + system_clock tan tanh this_image tiny trailz transfer transpose trim + ubound ucobound unpack verify + ) + end + + state :root do + rule %r/[\s]+/, Text::Whitespace + rule %r/!.*$/, Comment::Single + rule %r/^#.*$/, Comment::Preproc + + rule %r/::|[()\/;,:&\[\]]/, Punctuation + + # TODO: This does not take into account line continuation. + rule %r/^(\s*)([0-9]+)\b/m do |m| + token Text::Whitespace, m[1] + token Name::Label, m[2] + end + + # Format statements are quite a strange beast. + # Better process them in their own state. + rule %r/\b(FORMAT)(\s*)(\()/mi do |m| + token Keyword, m[1] + token Text::Whitespace, m[2] + token Punctuation, m[3] + push :format_spec + end + + rule %r( + [+-]? # sign + ( + (\d+[.]\d*|[.]\d+)(#{exponent})? + | \d+#{exponent} # exponent is mandatory + ) + (_#{kind_param})? # kind parameter + )xi, Num::Float + + rule %r/[+-]?\d+(_#{kind_param})?/i, Num::Integer + rule %r/B'[01]+'|B"[01]+"/i, Num::Bin + rule %r/O'[0-7]+'|O"[0-7]+"/i, Num::Oct + rule %r/Z'[0-9A-F]+'|Z"[0-9A-F]+"/i, Num::Hex + rule %r/(#{kind_param}_)?'/, Str::Single, :string_single + rule %r/(#{kind_param}_)?"/, Str::Double, :string_double + rule %r/[.](TRUE|FALSE)[.](_#{kind_param})?/i, Keyword::Constant + + rule %r{\*\*|//|==|/=|<=|>=|=>|[-+*/<>=%]}, Operator + rule %r/\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV|[A-Z]+)\./i, Operator::Word + + # Special rules for two-word keywords and types. + # Note: "doubleprecision" is covered by the normal keyword rule. + rule %r/double\s+precision\b/i, Keyword::Type + rule %r/go\s+to\b/i, Keyword + rule %r/sync\s+(all|images|memory)\b/i, Keyword + rule %r/error\s+stop\b/i, Keyword + + rule %r/#{name}/m do |m| + match = m[0].downcase + if self.class.keywords.include? match + token Keyword + elsif self.class.types.include? match + token Keyword::Type + elsif self.class.intrinsics.include? match + token Name::Builtin + else + token Name + end + end + + end + + state :string_single do + rule %r/[^']+/, Str::Single + rule %r/''/, Str::Escape + rule %r/'/, Str::Single, :pop! + end + + state :string_double do + rule %r/[^"]+/, Str::Double + rule %r/""/, Str::Escape + rule %r/"/, Str::Double, :pop! + end + + state :format_spec do + rule %r/'/, Str::Single, :string_single + rule %r/"/, Str::Double, :string_double + rule %r/\(/, Punctuation, :format_spec + rule %r/\)/, Punctuation, :pop! + rule %r/,/, Punctuation + rule %r/[\s]+/, Text::Whitespace + # Edit descriptors could be seen as a kind of "format literal". + rule %r/[^\s'"(),]+/, Literal + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/freefem.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/freefem.rb new file mode 100644 index 0000000..11df667 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/freefem.rb @@ -0,0 +1,240 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'cpp.rb' + + class FreeFEM < Cpp + title "FreeFEM" + desc "The FreeFEM programming language (freefem.org)" + + tag 'freefem' + aliases 'ff' + filenames '*.edp', '*.idp' + mimetypes 'text/x-ffhdr', 'text/x-ffsrc' + + # Override C/C++ ones (for example, `do` does not exists) + def self.keywords + @keywords ||= Set.new(%w( + break catch continue else for if return try while + )) + end + + # Override C/C++ ones (for example, `double` does not exists) + def self.keywords_type + @keywords_type ||= Set.new(%w( + bool border complex dmatrix fespace func gslspline ifstream int macro + matrix mesh mesh3 mpiComm mpiGroup mpiRequest NewMacro EndMacro + ofstream Pmmap problem Psemaphore real solve string varf + )) + end + + # Override C/C++ ones (totally different) + def self.reserved + @reserved ||= Set.new(%w( + BDM1 BDM1Ortho Edge03d Edge13d Edge23d FEQF HCT P0 P03d P0Edge P1 + P13d P1b P1b3d P1bl P1bl3d P1dc P1Edge P1nc P2 P23d P2b P2BR P2dc + P2Edge P2h P2Morley P2pnc P3 P3dc P3Edge P4 P4dc P4Edge P5Edge RT0 + RT03d RT0Ortho RT1 RT1Ortho RT2 RT2Ortho + + qf1pE qf1pElump qf1pT qf1pTlump qfV1 qfV1lump qf2pE qf2pT qf2pT4P1 + qfV2 qf3pE qf4pE qf5pE qf5pT qfV5 qf7pT qf9pT qfnbpE + + ARGV append area be binary BoundaryEdge bordermeasure CG Cholesky cin + cout Crout default diag edgeOrientation endl FILE fixed GMRES good + hTriangle im imax imin InternalEdge l1 l2 label lenEdge length LINE + linfty LU m max measure min mpiAnySource mpiBAND mpiBXOR mpiCommWorld + mpiLAND mpiLOR mpiLXOR mpiMAX mpiMIN mpiPROD mpirank mpisize mpiSUM + mpiUndefined n N nbe ndof ndofK noshowbase noshowpos notaregion nt + nTonEdge nuEdge nuTriangle nv P pi precision quantile re region + scientific searchMethod setw showbase showpos sparsesolver sum tellp + true UMFPACK unused whoinElement verbosity version volume x y z + )) + end + + def self.builtins + @builtins ||= Set.new(%w( + abs acos acosh adaptmesh adj AffineCG AffineGMRES arg asin asinh + assert atan atan2 atanh atof atoi BFGS broadcast buildlayers + buildmesh ceil chi complexEigenValue copysign change checkmovemesh + clock cmaes conj convect cos cosh cube d dd dfft diffnp diffpos + dimKrylov dist dumptable dx dxx dxy dxz dy dyx dyy dyz dz dzx dzy dzz + EigenValue emptymesh erf erfc exec exit exp fdim ffind find floor + flush fmax fmin fmod freeyams getARGV getline gmshload gmshload3 + gslcdfugaussianP gslcdfugaussianQ gslcdfugaussianPinv + gslcdfugaussianQinv gslcdfgaussianP gslcdfgaussianQ + gslcdfgaussianPinv gslcdfgaussianQinv gslcdfgammaP gslcdfgammaQ + gslcdfgammaPinv gslcdfgammaQinv gslcdfcauchyP gslcdfcauchyQ + gslcdfcauchyPinv gslcdfcauchyQinv gslcdflaplaceP gslcdflaplaceQ + gslcdflaplacePinv gslcdflaplaceQinv gslcdfrayleighP gslcdfrayleighQ + gslcdfrayleighPinv gslcdfrayleighQinv gslcdfchisqP gslcdfchisqQ + gslcdfchisqPinv gslcdfchisqQinv gslcdfexponentialP gslcdfexponentialQ + gslcdfexponentialPinv gslcdfexponentialQinv gslcdfexppowP + gslcdfexppowQ gslcdftdistP gslcdftdistQ gslcdftdistPinv + gslcdftdistQinv gslcdffdistP gslcdffdistQ gslcdffdistPinv + gslcdffdistQinv gslcdfbetaP gslcdfbetaQ gslcdfbetaPinv gslcdfbetaQinv + gslcdfflatP gslcdfflatQ gslcdfflatPinv gslcdfflatQinv + gslcdflognormalP gslcdflognormalQ gslcdflognormalPinv + gslcdflognormalQinv gslcdfgumbel1P gslcdfgumbel1Q gslcdfgumbel1Pinv + gslcdfgumbel1Qinv gslcdfgumbel2P gslcdfgumbel2Q gslcdfgumbel2Pinv + gslcdfgumbel2Qinv gslcdfweibullP gslcdfweibullQ gslcdfweibullPinv + gslcdfweibullQinv gslcdfparetoP gslcdfparetoQ gslcdfparetoPinv + gslcdfparetoQinv gslcdflogisticP gslcdflogisticQ gslcdflogisticPinv + gslcdflogisticQinv gslcdfbinomialP gslcdfbinomialQ gslcdfpoissonP + gslcdfpoissonQ gslcdfgeometricP gslcdfgeometricQ + gslcdfnegativebinomialP gslcdfnegativebinomialQ gslcdfpascalP + gslcdfpascalQ gslinterpakima gslinterpakimaperiodic + gslinterpcsplineperiodic gslinterpcspline gslinterpsteffen + gslinterplinear gslinterppolynomial gslranbernoullipdf gslranbeta + gslranbetapdf gslranbinomialpdf gslranexponential + gslranexponentialpdf gslranexppow gslranexppowpdf gslrancauchy + gslrancauchypdf gslranchisq gslranchisqpdf gslranerlang + gslranerlangpdf gslranfdist gslranfdistpdf gslranflat gslranflatpdf + gslrangamma gslrangammaint gslrangammapdf gslrangammamt + gslrangammaknuth gslrangaussian gslrangaussianratiomethod + gslrangaussianziggurat gslrangaussianpdf gslranugaussian + gslranugaussianratiomethod gslranugaussianpdf gslrangaussiantail + gslrangaussiantailpdf gslranugaussiantail gslranugaussiantailpdf + gslranlandau gslranlandaupdf gslrangeometricpdf gslrangumbel1 + gslrangumbel1pdf gslrangumbel2 gslrangumbel2pdf gslranlogistic + gslranlogisticpdf gslranlognormal gslranlognormalpdf + gslranlogarithmicpdf gslrannegativebinomialpdf gslranpascalpdf + gslranpareto gslranparetopdf gslranpoissonpdf gslranrayleigh + gslranrayleighpdf gslranrayleightail gslranrayleightailpdf + gslrantdist gslrantdistpdf gslranlaplace gslranlaplacepdf gslranlevy + gslranweibull gslranweibullpdf gslsfairyAi gslsfairyBi + gslsfairyAiscaled gslsfairyBiscaled gslsfairyAideriv gslsfairyBideriv + gslsfairyAiderivscaled gslsfairyBiderivscaled gslsfairyzeroAi + gslsfairyzeroBi gslsfairyzeroAideriv gslsfairyzeroBideriv + gslsfbesselJ0 gslsfbesselJ1 gslsfbesselJn gslsfbesselY0 gslsfbesselY1 + gslsfbesselYn gslsfbesselI0 gslsfbesselI1 gslsfbesselIn + gslsfbesselI0scaled gslsfbesselI1scaled gslsfbesselInscaled + gslsfbesselK0 gslsfbesselK1 gslsfbesselKn gslsfbesselK0scaled + gslsfbesselK1scaled gslsfbesselKnscaled gslsfbesselj0 gslsfbesselj1 + gslsfbesselj2 gslsfbesseljl gslsfbessely0 gslsfbessely1 gslsfbessely2 + gslsfbesselyl gslsfbesseli0scaled gslsfbesseli1scaled + gslsfbesseli2scaled gslsfbesselilscaled gslsfbesselk0scaled + gslsfbesselk1scaled gslsfbesselk2scaled gslsfbesselklscaled + gslsfbesselJnu gslsfbesselYnu gslsfbesselInuscaled gslsfbesselInu + gslsfbesselKnuscaled gslsfbesselKnu gslsfbessellnKnu + gslsfbesselzeroJ0 gslsfbesselzeroJ1 gslsfbesselzeroJnu gslsfclausen + gslsfhydrogenicR1 gslsfdawson gslsfdebye1 gslsfdebye2 gslsfdebye3 + gslsfdebye4 gslsfdebye5 gslsfdebye6 gslsfdilog gslsfmultiply + gslsfellintKcomp gslsfellintEcomp gslsfellintPcomp gslsfellintDcomp + gslsfellintF gslsfellintE gslsfellintRC gslsferfc gslsflogerfc + gslsferf gslsferfZ gslsferfQ gslsfhazard gslsfexp gslsfexpmult + gslsfexpm1 gslsfexprel gslsfexprel2 gslsfexpreln gslsfexpintE1 + gslsfexpintE2 gslsfexpintEn gslsfexpintE1scaled gslsfexpintE2scaled + gslsfexpintEnscaled gslsfexpintEi gslsfexpintEiscaled gslsfShi + gslsfChi gslsfexpint3 gslsfSi gslsfCi gslsfatanint gslsffermidiracm1 + gslsffermidirac0 gslsffermidirac1 gslsffermidirac2 gslsffermidiracint + gslsffermidiracmhalf gslsffermidirachalf gslsffermidirac3half + gslsffermidiracinc0 gslsflngamma gslsfgamma gslsfgammastar + gslsfgammainv gslsftaylorcoeff gslsffact gslsfdoublefact gslsflnfact + gslsflndoublefact gslsflnchoose gslsfchoose gslsflnpoch gslsfpoch + gslsfpochrel gslsfgammaincQ gslsfgammaincP gslsfgammainc gslsflnbeta + gslsfbeta gslsfbetainc gslsfgegenpoly1 gslsfgegenpoly2 + gslsfgegenpoly3 gslsfgegenpolyn gslsfhyperg0F1 gslsfhyperg1F1int + gslsfhyperg1F1 gslsfhypergUint gslsfhypergU gslsfhyperg2F0 + gslsflaguerre1 gslsflaguerre2 gslsflaguerre3 gslsflaguerren + gslsflambertW0 gslsflambertWm1 gslsflegendrePl gslsflegendreP1 + gslsflegendreP2 gslsflegendreP3 gslsflegendreQ0 gslsflegendreQ1 + gslsflegendreQl gslsflegendrePlm gslsflegendresphPlm + gslsflegendrearraysize gslsfconicalPhalf gslsfconicalPmhalf + gslsfconicalP0 gslsfconicalP1 gslsfconicalPsphreg gslsfconicalPcylreg + gslsflegendreH3d0 gslsflegendreH3d1 gslsflegendreH3d gslsflog + gslsflogabs gslsflog1plusx gslsflog1plusxmx gslsfpowint gslsfpsiint + gslsfpsi gslsfpsi1piy gslsfpsi1int gslsfpsi1 gslsfpsin + gslsfsynchrotron1 gslsfsynchrotron2 gslsftransport2 gslsftransport3 + gslsftransport4 gslsftransport5 gslsfsin gslsfcos gslsfhypot + gslsfsinc gslsflnsinh gslsflncosh gslsfanglerestrictsymm + gslsfanglerestrictpos gslsfzetaint gslsfzeta gslsfzetam1 + gslsfzetam1int gslsfhzeta gslsfetaint gslsfeta imag int1d int2d int3d + intalledges intallfaces interpolate invdiff invdiffnp invdiffpos + Isend isInf isNaN isoline Irecv j0 j1 jn jump lgamma LinearCG + LinearGMRES log log10 lrint lround max mean medit min mmg3d movemesh + movemesh23 mpiAlltoall mpiAlltoallv mpiAllgather mpiAllgatherv + mpiAllReduce mpiBarrier mpiGather mpiGatherv mpiRank mpiReduce + mpiScatter mpiScatterv mpiSize mpiWait mpiWaitAny mpiWtick mpiWtime + mshmet NLCG on plot polar Post pow processor processorblock + projection randinit randint31 randint32 random randreal1 randreal2 + randreal3 randres53 Read readmesh readmesh3 Recv rfind rint round + savemesh savesol savevtk seekg Sent set sign signbit sin sinh sort + splitComm splitmesh sqrt square srandom srandomdev Stringification + swap system tan tanh tellg tetg tetgconvexhull tetgreconstruction + tetgtransfo tgamma triangulate trunc Wait Write y0 y1 yn + )) + end + + def self.attributes + @builtinsParameters ||= Set.new(%w( + A A1 abserror absolute aniso aspectratio B B1 bb beginend bin + boundary bw close cmm coef composante cutoff datafilename dataname + dim distmax displacement doptions dparams eps err errg facemerge + facetcl factorize file fill fixedborder flabel flags floatmesh + floatsol fregion gradation grey hmax hmin holelist hsv init inquire + inside IsMetric iso ivalue keepbackvertices label labeldown labelmid + labelup levelset loptions lparams maxit maxsubdiv meditff mem memory + metric mode nbarrow nbiso nbiter nbjacoby nboffacetcl nbofholes + nbofregions nbregul nbsmooth nbvx ncv nev nomeshgeneration + normalization omega op optimize option options order orientation + periodic power precon prev ps ptmerge qfe qforder qft qfV ratio + rawvector reffacelow reffacemid reffaceup refnum reftet reftri region + regionlist renumv rescaling ridgeangle save sigma sizeofvolume + smoothing solver sparams split splitin2 splitpbedge stop strategy + swap switch sym t tgv thetamax tol tolpivot tolpivotsym transfo U2Vc + value varrow vector veps viso wait width withsurfacemesh WindowIndex + which zbound + )) + end + + id = /[a-z_]\w*/i + + state :expr_bol do + mixin :inline_whitespace + + rule %r/include/, Comment::Preproc, :macro + rule %r/load/, Comment::Preproc, :macro + rule %r/ENDIFMACRO/, Comment::Preproc, :macro + rule %r/IFMACRO/, Comment::Preproc, :macro + + rule(//) { pop! } + end + + state :statements do + mixin :whitespace + rule %r/(u8|u|U|L)?"/, Str, :string + rule %r((u8|u|U|L)?'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char + rule %r((\d+[.]\d*|[.]?\d+)e[+-]?\d+[lu]*)i, Num::Float + rule %r(\d+e[+-]?\d+[lu]*)i, Num::Float + rule %r/0x[0-9a-f]+[lu]*/i, Num::Hex + rule %r/0[0-7]+[lu]*/i, Num::Oct + rule %r/\d+[lu]*/i, Num::Integer + rule %r(\*/), Error + rule %r([~!%^&*+=\|?:<>/-]), Operator + rule %r/'/, Operator + rule %r/[()\[\],.;]/, Punctuation + rule %r/\bcase\b/, Keyword, :case + rule %r/(?:true|false|NaN)\b/, Name::Builtin + rule id do |m| + name = m[0] + + if self.class.keywords.include? name + token Keyword + elsif self.class.keywords_type.include? name + token Keyword::Type + elsif self.class.reserved.include? name + token Keyword::Reserved + elsif self.class.builtins.include? name + token Name::Builtin + elsif self.class.attributes.include? name + token Name::Attribute + else + token Name + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/fsharp.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/fsharp.rb new file mode 100644 index 0000000..8640b6c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/fsharp.rb @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class FSharp < RegexLexer + title "FSharp" + desc 'F# (fsharp.net)' + tag 'fsharp' + filenames '*.fs', '*.fsi', '*.fsx' + mimetypes 'application/fsharp-script', 'text/x-fsharp', 'text/x-fsi' + + def self.keywords + @keywords ||= Set.new %w( + abstract and as assert base begin class default delegate do + done downcast downto elif else end exception extern false + finally for fun function global if in inherit inline interface + internal lazy let let! match member module mutable namespace + new not null of open or override private public rec return + return! select static struct then to true try type upcast + use use! val void when while with yield yield! sig atomic + break checked component const constraint constructor + continue eager event external fixed functor include method + mixin object parallel process protected pure sealed tailcall + trait virtual volatile + ) + end + + def self.keyopts + @keyopts ||= Set.new %w( + != # & && ( ) * \+ , - -. -> . .. : :: := :> ; ;; < <- = + > >] >} ? ?? [ [< [> [| ] _ ` { {< | |] } ~ |> <| <> + ) + end + + def self.word_operators + @word_operators ||= Set.new %w(and asr land lor lsl lxor mod or) + end + + def self.primitives + @primitives ||= Set.new %w(unit int float bool string char list array) + end + + operator = %r([\[\];,{}_()!$%&*+./:<=>?@^|~#-]+) + id = /([a-z][\w']*)|(``[^`\n\r\t]+``)/i + upper_id = /[A-Z][\w']*/ + + state :root do + rule %r/\s+/m, Text + rule %r/false|true|[(][)]|\[\]/, Name::Builtin::Pseudo + rule %r/#{upper_id}(?=\s*[.])/, Name::Namespace, :dotted + rule upper_id, Name::Class + rule %r/[(][*](?![)])/, Comment, :comment + rule %r(//.*?$), Comment::Single + rule id do |m| + match = m[0] + if self.class.keywords.include? match + token Keyword + elsif self.class.word_operators.include? match + token Operator::Word + elsif self.class.primitives.include? match + token Keyword::Type + else + token Name + end + end + + rule operator do |m| + match = m[0] + if self.class.keyopts.include? match + token Punctuation + else + token Operator + end + end + + rule %r/-?\d[\d_]*(.[\d_]*)?(e[+-]?\d[\d_]*)/i, Num::Float + rule %r/0x\h[\h_]*/i, Num::Hex + rule %r/0o[0-7][0-7_]*/i, Num::Oct + rule %r/0b[01][01_]*/i, Num::Bin + rule %r/\d[\d_]*/, Num::Integer + + rule %r/'(?:(\\[\\"'ntbr ])|(\\[0-9]{3})|(\\x\h{2}))'/, Str::Char + rule %r/'[.]'/, Str::Char + rule %r/'/, Keyword + rule %r/"/, Str::Double, :string + rule %r/[~?]#{id}/, Name::Variable + end + + state :comment do + rule %r/[^(*)]+/, Comment + rule(/[(][*]/) { token Comment; push } + rule %r/[*][)]/, Comment, :pop! + rule %r/[(*)]/, Comment + end + + state :string do + rule %r/[^\\"]+/, Str::Double + mixin :escape_sequence + rule %r/\\\n/, Str::Double + rule %r/"/, Str::Double, :pop! + end + + state :escape_sequence do + rule %r/\\[\\"'ntbr]/, Str::Escape + rule %r/\\\d{3}/, Str::Escape + rule %r/\\x\h{2}/, Str::Escape + end + + state :dotted do + rule %r/\s+/m, Text + rule %r/[.]/, Punctuation + rule %r/#{upper_id}(?=\s*[.])/, Name::Namespace + rule upper_id, Name::Class, :pop! + rule id, Name, :pop! + rule %r/\[/, Punctuation, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gdscript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gdscript.rb new file mode 100644 index 0000000..123bbc0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gdscript.rb @@ -0,0 +1,171 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class GDScript < RegexLexer + title "GDScript" + desc "The Godot Engine programming language (https://godotengine.org/)" + tag 'gdscript' + aliases 'gd', 'gdscript' + filenames '*.gd' + mimetypes 'text/x-gdscript', 'application/x-gdscript' + + def self.keywords + @keywords ||= %w( + and in not or as breakpoint class class_name extends is func setget + signal tool const enum export onready static var break continue + if elif else for pass return match while remote master puppet + remotesync mastersync puppetsync + ).join('|') + end + + # Reserved for future implementation + def self.keywords_reserved + @keywords_reserved ||= %w( + do switch case + ).join('|') + end + + def self.builtins + @builtins ||= %w( + Color8 ColorN abs acos asin assert atan atan2 bytes2var ceil char + clamp convert cos cosh db2linear decimals dectime deg2rad dict2inst + ease exp floor fmod fposmod funcref hash inst2dict instance_from_id + is_inf is_nan lerp linear2db load log max min nearest_po2 pow + preload print print_stack printerr printraw prints printt rad2deg + rand_range rand_seed randf randi randomize range round seed sign + sin sinh sqrt stepify str str2var tan tan tanh type_exist typeof + var2bytes var2str weakref yield + ).join('|') + end + + def self.builtins_type + @builtins_type ||= %w( + bool int float String Vector2 Rect2 Transform2D Vector3 AABB + Plane Quat Basis Transform Color RID Object NodePath Dictionary + Array PoolByteArray PoolIntArray PoolRealArray PoolStringArray + PoolVector2Array PoolVector3Array PoolColorArray null + ).join('|') + end + + state :root do + rule %r/\n/, Text + rule %r/[^\S\n]+/, Text + rule %r/#.*/, Comment::Single + rule %r/[\[\]{}:(),;]/, Punctuation + rule %r/\\\n/, Text + rule %r/(in|and|or|not)\b/, Operator::Word + rule %r/!=|==|<<|>>|&&|\+=|-=|\*=|\/=|%=|&=|\|=|\|\||[-~+\/*%=<>&^.!|$]/, Operator + rule %r/(func)((?:\s|\\)+)/ do + groups Keyword, Text + push :funcname + end + rule %r/(class)((?:\s|\\)+)/ do + groups Keyword, Text + push :classname + end + mixin :keywords + mixin :builtins + rule %r/"""/, Str::Double, :escape_tdqs + rule %r/'''/, Str::Double, :escape_tsqs + rule %r/"/, Str::Double, :escape_dqs + rule %r/'/, Str::Double, :escape_sqs + mixin :name + mixin :numbers + end + + state :keywords do + rule %r/\b(#{GDScript.keywords})\b/, Keyword + rule %r/\b(#{GDScript.keywords_reserved})\b/, Keyword::Reserved + end + + state :builtins do + rule %r/\b(#{GDScript.builtins})\b/, Name::Builtin + rule %r/\b((self|false|true)|(PI|TAU|NAN|INF))\b/, Name::Builtin::Pseudo + rule %r/\b(#{GDScript.builtins_type})\b/, Keyword::Type + end + + state :numbers do + rule %r/(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?/, Num::Float + rule %r/\d+[eE][+-]?[0-9]+j?/, Num::Float + rule %r/0[xX][a-fA-F0-9]+/, Num::Hex + rule %r/\d+j?/, Num::Integer + end + + state :name do + rule %r/[a-zA-Z_]\w*/, Name + end + + state :funcname do + rule %r/[a-zA-Z_]\w*/, Name::Function, :pop! + end + + state :classname do + rule %r/[a-zA-Z_]\w*/, Name::Class, :pop! + end + + state :string_escape do + rule %r/\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})/, Str::Escape + end + + state :strings_single do + rule %r/%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]/, Str::Interpol + rule %r/[^\\'%\n]+/, Str::Single + rule %r/["\\]/, Str::Single + rule %r/%/, Str::Single + end + + state :strings_double do + rule %r/%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]/, Str::Interpol + rule %r/[^\\"%\n]+/, Str::Double + rule %r/['\\]/, Str::Double + rule %r/%/, Str::Double + end + + state :dqs do + rule %r/"/, Str::Double, :pop! + rule %r/\\\\|\\"|\\\n/, Str::Escape + mixin :strings_double + end + + state :escape_dqs do + mixin :string_escape + mixin :dqs + end + + state :sqs do + rule %r/'/, Str::Single, :pop! + rule %r/\\\\|\\'|\\\n/, Str::Escape + mixin :strings_single + end + + state :escape_sqs do + mixin :string_escape + mixin :sqs + end + + state :tdqs do + rule %r/"""/, Str::Double, :pop! + mixin :strings_double + rule %r/\n/, Str::Double + end + + state :escape_tdqs do + mixin :string_escape + mixin :tdqs + end + + state :tsqs do + rule %r/'''/, Str::Single, :pop! + mixin :strings_single + rule %r/\n/, Str::Single + end + + state :escape_tsqs do + mixin :string_escape + mixin :tsqs + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ghc_cmm.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ghc_cmm.rb new file mode 100644 index 0000000..d2a8942 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ghc_cmm.rb @@ -0,0 +1,340 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# C minus minus (Cmm) is a pun on the name C++. It's an intermediate language +# of the Glasgow Haskell Compiler (GHC) that is very similar to C, but with +# many features missing and some special constructs. +# +# Cmm is a dialect of C--. The goal of this lexer is to use what GHC produces +# and parses (Cmm); C-- itself is not supported. +# +# https://gitlab.haskell.org/ghc/ghc/wikis/commentary/compiler/cmm-syntax +# +module Rouge + module Lexers + class GHCCmm < RegexLexer + title "GHC Cmm (C--)" + desc "GHC Cmm is the intermediate representation of the GHC Haskell compiler" + tag 'ghc-cmm' + filenames '*.cmm', '*.dump-cmm', '*.dump-cmm-*' + aliases 'cmm' + + ws = %r(\s|//.*?\n|/[*](?:[^*]|(?:[*][^/]))*[*]+/)mx + + # Make sure that this is not a preprocessor macro, e.g. `#if` or `#define`. + id = %r((?!\#[a-zA-Z])[\w#\$%']+) + + complex_id = %r( + (?:[\w#$%']|\(\)|\(,\)|\[\]|[0-9])* + (?:[\w#$%']+) + )mx + + state :root do + rule %r/\s+/m, Text + + # sections markers + rule %r/^=====.*=====$/, Generic::Heading + + # timestamps + rule %r/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ UTC$/, Comment::Single + + mixin :detect_section + mixin :preprocessor_macros + + mixin :info_tbls + mixin :comments + mixin :literals + mixin :keywords + mixin :types + mixin :infos + mixin :names + mixin :operators + + # escaped newline + rule %r/\\\n/, Text + + # rest is Text + rule %r/./, Text + end + + state :detect_section do + rule %r/(section)(\s+)/ do |m| + token Keyword, m[1] + token Text, m[2] + push :section + end + end + + state :section do + rule %r/"(data|cstring|text|rodata|relrodata|bss)"/, Name::Builtin + + rule %r/{/, Punctuation, :pop! + + mixin :names + mixin :operators + mixin :keywords + + rule %r/\s+/, Text + end + + state :preprocessor_macros do + rule %r/#(include|endif|else|if)/, Comment::Preproc + + rule %r{ + (\#define) + (#{ws}*) + (#{id}) + }mx do |m| + token Comment::Preproc, m[1] + recurse m[2] + token Name::Label, m[3] + end + end + + state :info_tbls do + rule %r/({ )(info_tbls)(:)/ do |m| + token Punctuation, m[1] + token Name::Entity, m[2] + token Punctuation, m[3] + + push :info_tbls_body + end + end + + state :info_tbls_body do + rule %r/}/, Punctuation, :pop! + rule %r/{/, Punctuation, :info_tbls_body + + rule %r/(?=label:)/ do + push :label + end + + rule %r{(\()(#{complex_id})(,)}mx do |m| + token Punctuation, m[1] + token Name::Label, m[2] + token Punctuation, m[3] + end + + mixin :literals + mixin :infos + mixin :keywords + mixin :operators + + rule %r/#{id}/, Text + rule %r/\s+/, Text + end + + state :label do + mixin :infos + mixin :names + mixin :keywords + mixin :operators + + rule %r/[^\S\n]+/, Text # Tab, space, etc. but not newline! + rule %r/\n/, Text, :pop! + end + + state :comments do + rule %r/\/{2}.*/, Comment::Single + rule %r/\(likely.*?\)/, Comment + rule %r/\/\*.*?\*\//m, Comment::Multiline + end + + state :literals do + rule %r/-?[0-9]+\.[0-9]+/, Literal::Number::Float + rule %r/-?[0-9]+/, Literal::Number::Integer + rule %r/"/, Literal::String::Delimiter, :literal_string + end + + state :literal_string do + # quotes + rule %r/\\./, Literal::String::Escape + rule %r/%./, Literal::String::Symbol + rule %r/"/, Literal::String::Delimiter, :pop! + rule %r/./, Literal::String + end + + state :operators do + rule %r/\.\./, Operator + rule %r/[+\-*\/<>=!&|~]/, Operator + rule %r/[\[\].{}:;,()]/, Punctuation + end + + state :keywords do + rule %r/(const)(\s+)/ do |m| + token Keyword::Constant, m[1] + token Text, m[2] + end + + rule %r/"/, Literal::String::Double + + rule %r/(switch)([^{]*)({)/ do |m| + token Keyword, m[1] + recurse m[2] + token Punctuation, m[3] + end + + rule %r/(arg|result)(#{ws}+)(hints)(:)/ do |m| + token Name::Property, m[1] + recurse m[2] + token Name::Property, m[3] + token Punctuation, m[4] + end + + rule %r/(returns)(#{ws}*)(to)/ do |m| + token Keyword, m[1] + recurse m[2] + token Keyword, m[3] + end + + rule %r/(never)(#{ws}*)(returns)/ do |m| + token Keyword, m[1] + recurse m[2] + token Keyword, m[3] + end + + rule %r{(return)(#{ws}*)(\()} do |m| + token Keyword, m[1] + recurse m[2] + token Punctuation, m[3] + end + + rule %r{(if|else|goto|call|offset|import|jump|ccall|foreign|prim|case|unwind|export|reserve|push)(#{ws})} do |m| + token Keyword, m[1] + recurse m[2] + end + + rule %r{(default)(#{ws}*)(:)} do |m| + token Keyword, m[1] + recurse m[2] + token Punctuation, m[3] + end + end + + state :types do + # Memory access: `type[42]` + # Note: Only a token for type is produced. + rule %r/(#{id})(?=\[[^\]])/ do |m| + token Keyword::Type, m[1] + end + + # Array type: `type[]` + rule %r/(#{id}\[\])/ do |m| + token Keyword::Type, m[1] + end + + # Capture macro substitutions before lexing typed declarations + # I.e. there is no type in `PREPROCESSOR_MACRO_VARIABLE someFun()` + rule %r{ + (^#{id}) + (#{ws}+) + (#{id}) + (#{ws}*) + (\() + }mx do |m| + token Name::Label, m[1] + recurse m[2] + token Name::Function, m[3] + recurse m[4] + token Punctuation, m[5] + end + + # Type in variable or parameter declaration: + # `type /* optional whitespace */ var_name /* optional whitespace */;` + # `type /* optional whitespace */ var_name /* optional whitespace */, var_name2` + # `(type /* optional whitespace */ var_name /* optional whitespace */)` + # Note: Only the token for type is produced here. + rule %r{ + (^#{id}) + (#{ws}+) + (#{id}) + }mx do |m| + token Keyword::Type, m[1] + recurse m[2] + token Name::Label, m[3] + end + end + + state :infos do + rule %r/(args|res|upd|label|rep|srt|arity|fun_type|arg_space|updfr_space)(:)/ do |m| + token Name::Property, m[1] + token Punctuation, m[2] + end + + rule %r/(stack_info)(:)/ do |m| + token Name::Entity, m[1] + token Punctuation, m[2] + end + end + + state :names do + rule %r/(::)(#{ws}*)([A-Z]\w+)/ do |m| + token Operator, m[1] + recurse m[2] + token Keyword::Type, m[3] + end + + rule %r/<(#{id})>/, Name::Builtin + + rule %r/(Sp|SpLim|Hp|HpLim|HpAlloc|BaseReg|CurrentNursery|CurrentTSO|R\d{1,2}|gcptr)(?!#{id})/, Name::Variable::Global + rule %r/([A-Z]#{id})(\.)/ do |m| + token Name::Namespace, m[1] + token Punctuation, m[2] + push :namespace_name + end + + # Inline function calls: + # ``` + # arg1 `lt` arg2 + # ``` + rule %r/(`)(#{id})(`)/ do |m| + token Punctuation, m[1] + token Name::Function, m[2] + token Punctuation, m[3] + end + + # Function: `name /* optional whitespace */ (` + # Function (arguments via explicit stack handling): `name /* optional whitespace */ {` + rule %r{(?= + #{complex_id} + #{ws}* + [\{\(] + )}mx do + push :function + end + + rule %r/CLOSURE/, Keyword::Type + rule %r/#{complex_id}/, Name::Label + end + + state :namespace_name do + rule %r/([A-Z]#{id})(\.)/ do |m| + token Name::Namespace, m[1] + token Punctuation, m[2] + end + + rule %r{(#{complex_id})(#{ws}*)([\{\(])}mx do |m| + token Name::Function, m[1] + recurse m[2] + token Punctuation, m[3] + pop! + end + + rule %r/#{complex_id}/, Name::Label, :pop! + + rule %r/(?=.)/m do + pop! + end + end + + state :function do + rule %r/INFO_TABLE_FUN|INFO_TABLE_CONSTR|INFO_TABLE_SELECTOR|INFO_TABLE_RET|INFO_TABLE/, Name::Builtin + rule %r/%#{id}/, Name::Builtin + rule %r/#{complex_id}/, Name::Function + rule %r/\s+/, Text + rule %r/[({]/, Punctuation, :pop! + mixin :comments + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ghc_core.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ghc_core.rb new file mode 100644 index 0000000..4a25244 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ghc_core.rb @@ -0,0 +1,152 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# See http://www.cs.cmu.edu/afs/andrew/course/15/411/ghc/share/doc/ghc/ext-core/core.pdf for a description of the syntax +# of the language and https://www.aosabook.org/en/ghc.html for a high level overview. +module Rouge + module Lexers + class GHCCore < RegexLexer + title "GHC Core" + desc "Intermediate representation of the GHC Haskell compiler." + tag 'ghc-core' + + filenames '*.dump-simpl', '*.dump-cse', '*.dump-ds', '*.dump-spec' + + state :root do + # sections + rule %r/^=====.*=====$/, Generic::Heading + # timestamps + rule %r/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ UTC$/, Comment::Single + rule %r/^Result size of .+\n.+{[^}]*}/, Comment::Multiline + rule %r/--.*$/, Comment::Single + + rule %r/\[/, Comment::Special, :annotation + + mixin :recursive_binding + mixin :ghc_rule + mixin :function + + # rest is Text + # TODO: this is really inefficient + rule %r/\s/m, Text + rule %r/./, Text + end + + state :expression do + rule %r/[\n]+/, Text + rule %r/(?=^\S)/ do + pop! + end + + rule %r/\s+/, Text, :expression_line + end + + state :expression_line do + rule %r/ /, Text + + mixin :common + + rule %r/\n/, Text, :pop! + end + + state :annotation do + rule %r/\]/, Comment::Special, :pop! + rule %r/\[/, Comment::Special, :annotation + rule %r/[^\[\]]+/, Comment::Special + end + + state :common do + # array, e.g. '[]' or '[Char]' + rule %r/\[[^=]*\]/, Keyword::Type + + rule %r/\[/, Comment::Special, :annotation + + mixin :literal + mixin :constants + mixin :punctuation + mixin :operator + mixin :name + end + + state :literal do + rule %r/\d+\.\d+\#{0,2}/, Literal::Number::Float + rule %r/\d+\#{0,2}/, Literal::Number::Integer + rule %r/".*"#/, Literal::String + rule %r/'.'#/, Literal::String::Char + end + + state :constants do + rule %r/__DEFAULT/, Name::Constant + end + + state :name do + rule %r/^([A-Z]\w*)(\.)/ do |m| + token Name::Namespace, m[0] + token Punctuation, m[1] + end + + rule %r/[A-Z][^\s.,(){}]*/, Keyword::Type + + # packages, e.g. 'ghc-prim-0.5.3:' + rule %r/(^[a-z].*?\d+\.\d+\.\d+)(:)(?=\S)/ do |m| + token Name::Namespace, m[1] + token Punctuation, m[2] + end + + rule %r/\S*\(,\)\S*/, Name::Variable # '(,)' is a name, not punctuation + rule %r/\S[^\s.,(){}]*/, Name::Variable + end + + state :punctuation do + rule %r/[.,(){};]/, Punctuation + end + + state :operator do + rule %r/=>/, Operator + rule %r/->/, Operator + rule %r/::/, Operator + rule %r/=/, Operator + rule %r/forall/, Keyword + rule %r/case/, Keyword + rule %r/of/, Keyword + rule %r/letrec/, Keyword + rule %r/let/, Keyword + rule %r/join/, Keyword + rule %r/@/, Operator + rule %r/\\/, Operator + end + + state :recursive_binding do + rule %r/(Rec)(\s*)({)/ do |m| + token Keyword, m[1] + token Text, m[2] + token Punctuation, m[3] + end + + rule %r/^(end)(\s*)(Rec)(\s*)(})/ do |m| + token Keyword, m[1] + token Text, m[2] + token Keyword, m[3] + token Text, m[4] + token Punctuation, m[5] + end + end + + state :ghc_rule do + rule %r/^(".*?")/m do |m| + token Name::Label, m[0] + + push :expression + end + end + + state :function do + rule %r/^(\S+)(?=.*?(=|::))/m do |m| + token Name::Function, m[0] + + push :expression + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gherkin.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gherkin.rb new file mode 100644 index 0000000..0b655b0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gherkin.rb @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Gherkin < RegexLexer + tag 'gherkin' + aliases 'cucumber', 'behat' + + title "Gherkin" + desc 'A business-readable spec DSL (github.com/cucumber/cucumber/wiki/Gherkin)' + + filenames '*.feature' + mimetypes 'text/x-gherkin' + + def self.detect?(text) + return true if text.shebang? 'cucumber' + end + + # self-modifying method that loads the keywords file + def self.keywords + Kernel::load File.join(Lexers::BASE_DIR, 'gherkin/keywords.rb') + keywords + end + + def self.step_regex + # in Gherkin's config, keywords that end in < don't + # need word boundaries at the ends - all others do. + @step_regex ||= Regexp.new( + keywords[:step].map do |w| + if w.end_with? '<' + Regexp.escape(w.chop) + elsif w.end_with?(' ') + Regexp.escape(w) + else + "#{Regexp.escape(w)}\\b" + end + end.join('|') + ) + end + + rest_of_line = /.*?(?=[#\n])/ + + state :basic do + rule %r(#.*$), Comment + rule %r/[ \r\t]+/, Text + end + + state :root do + mixin :basic + rule %r(\n), Text + rule %r(""".*?""")m, Str + rule %r(@[^\s@]+), Name::Tag + mixin :has_table + mixin :has_examples + end + + state :has_scenarios do + rule %r((.*?)(:)) do |m| + reset_stack + + keyword = m[1] + keyword_tok = if self.class.keywords[:element].include? keyword + push :description; Keyword::Namespace + elsif self.class.keywords[:feature].include? keyword + push :feature_description; Keyword::Declaration + elsif self.class.keywords[:examples].include? keyword + push :example_description; Name::Namespace + else + Error + end + + groups keyword_tok, Punctuation + end + end + + state :has_examples do + mixin :has_scenarios + rule Gherkin.step_regex, Name::Function do + token Name::Function + reset_stack; push :step + end + end + + state :has_table do + rule(/(?=[|])/) { push :table_header } + end + + state :table_header do + rule %r/[^|\s]+/, Name::Variable + rule %r/\n/ do + token Text + goto :table + end + mixin :table + end + + state :table do + mixin :basic + rule %r/\n/, Text, :table_bol + rule %r/[|]/, Punctuation + rule %r/[^|\s]+/, Name + end + + state :table_bol do + rule(/(?=\s*[^\s|])/) { reset_stack } + rule(//) { pop! } + end + + state :description do + mixin :basic + mixin :has_examples + rule %r/\n/, Text + rule rest_of_line, Text + end + + state :feature_description do + mixin :basic + mixin :has_scenarios + rule %r/\n/, Text + rule rest_of_line, Text + end + + state :example_description do + mixin :basic + mixin :has_table + rule %r/\n/, Text + rule rest_of_line, Text + end + + state :step do + mixin :basic + rule %r/<.*?>/, Name::Variable + rule %r/".*?"/, Str + rule %r/\S[^\s<]*/, Text + rule rest_of_line, Text, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gherkin/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gherkin/keywords.rb new file mode 100644 index 0000000..cfe884b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gherkin/keywords.rb @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# DO NOT EDIT +# This file is automatically generated by `rake builtins:gherkin`. +# See tasks/builtins/gherkin.rake for more info. + +module Rouge + module Lexers + def Gherkin.keywords + @keywords ||= {}.tap do |k| + k[:step] = Set.new ["'a ", "'ach ", "'ej ", "* ", "7 ", "A ", "A taktiež ", "A také ", "A tiež ", "A zároveň ", "AN ", "Aber ", "Ac ", "Ach", "Adott ", "Agus", "Ak ", "Akkor ", "Alavez ", "Ale ", "Aleshores ", "Ali ", "All git out ", "Allora ", "Alors ", "Als ", "Ama ", "Amennyiben ", "Amikor ", "Amma ", "Ampak ", "An ", "Ananging ", "Ancaq ", "And ", "Angenommen ", "Anrhegedig a ", "Ansin", "Antonces ", "Apabila ", "Atesa ", "Atunci ", "Atès ", "Avast! ", "Aye ", "BUT ", "Bagi ", "Banjur ", "Belgilangan ", "Bet ", "Bila ", "Biết ", "Blimey! ", "Buh ", "But ", "But at the end of the day I reckon ", "Bæþsealf ", "Bæþsealfa ", "Bæþsealfe ", "Cal ", "Cand ", "Cando ", "Ce ", "Cho ", "Ciricæw ", "Ciricæwa ", "Ciricæwe ", "Come hell or high water ", "Cuan ", "Cuando ", "Cuir i gcás go", "Cuir i gcás gur", "Cuir i gcás nach", "Cuir i gcás nár", "Când ", "DEN ", "DaH ghu' bejlu' ", "Dada ", "Dadas ", "Dadena ", "Dadeno ", "Dado ", "Dados ", "Daes ", "Dan ", "Dann ", "Dano ", "Daos ", "Dar ", "Dat fiind ", "Data ", "Date ", "Date fiind ", "Dati ", "Dati fiind ", "Dato ", "Dată fiind", "Dau ", "Daus ", "Daţi fiind ", "Dați fiind ", "De ", "Den youse gotta ", "Dengan ", "Diasumsikan ", "Diberi ", "Diketahui ", "Diyelim ki ", "Do ", "Donada ", "Donat ", "Donc ", "Donitaĵo ", "Dun ", "Duota ", "Dáu ", "E ", "Eeldades ", "Ef ", "En ", "Entao ", "Entonces ", "Então ", "Entón ", "Entós ", "Epi ", "Et ", "Et qu'", "Et que ", "Etant donné ", "Etant donné qu'", "Etant donné que ", "Etant donnée ", "Etant données ", "Etant donnés ", "Eğer ki ", "Fakat ", "Fixin' to ", "Gangway! ", "Gdy ", "Gegeben sei ", "Gegeben seien ", "Gegeven ", "Gegewe ", "Gitt ", "Given ", "Givet ", "Givun ", "Ha ", "Həm ", "I ", "I CAN HAZ ", "In ", "Ir ", "It's just unbelievable ", "Ja ", "Jeśli ", "Jeżeli ", "Jika ", "Kad ", "Kada ", "Kadar ", "Kai ", "Kaj ", "Když ", "Kemudian ", "Ketika ", "Keď ", "Khi ", "Kiedy ", "Ko ", "Koga ", "Komence ", "Kui ", "Kuid ", "Kun ", "Lan ", "Le ", "Le sa a ", "Let go and haul ", "Logo ", "Lorsqu'", "Lorsque ", "Lè ", "Lè sa a ", "Ma ", "Maar ", "Mais ", "Mais qu'", "Mais que ", "Majd ", "Mając ", "Maka ", "Manawa ", "Mas ", "Men ", "Menawa ", "Mutta ", "Nalika ", "Nalikaning ", "Nanging ", "Nato ", "Nhưng ", "Niin ", "Njuk ", "No ", "Nuair a", "Nuair ba", "Nuair nach", "Nuair nár", "När ", "Når ", "Nə vaxt ki ", "O halda ", "O zaman ", "Och ", "Og ", "Oletetaan ", "Ond ", "Onda ", "Oraz ", "Pak ", "Pero ", "Peru ", "Però ", "Podano ", "Pokiaľ ", "Pokud ", "Potem ", "Potom ", "Privzeto ", "Pryd ", "Quan ", "Quand ", "Quando ", "Quick out of the chute ", "Sachant ", "Sachant qu'", "Sachant que ", "Se ", "Sed ", "Si ", "Siis ", "Sipoze ", "Sipoze Ke ", "Sipoze ke ", "Soit ", "Stel ", "Så ", "Tad ", "Tada ", "Tak ", "Takrat ", "Tapi ", "Ter ", "Tetapi ", "Tha ", "Tha the ", "Then ", "There’s no tree but bears some fruit ", "Thurh ", "Thì ", "Toda ", "Togash ", "Too right ", "Tutaq ki ", "Ukoliko ", "Un ", "Und ", "Ve ", "Vendar ", "Verilir ", "Và ", "Və ", "WEN ", "Wanneer ", "Well now hold on, I'll you what ", "Wenn ", "When ", "Wtedy ", "Wun ", "Y ", "Y'know ", "Ya ", "Yeah nah ", "Yna ", "Youse know like when ", "Youse know when youse got ", "Za date ", "Za dati ", "Za dato ", "Za predpokladu ", "Za předpokladu ", "Zadan ", "Zadani ", "Zadano ", "Zakładając ", "Zakładając, że ", "Zaradi ", "Zatim ", "a ", "an ", "awer ", "dann ", "ghu' noblu' ", "latlh ", "mä ", "qaSDI' ", "ugeholl ", "vaj ", "wann ", "És ", "Étant donné ", "Étant donné qu'", "Étant donné que ", "Étant donnée ", "Étant données ", "Étant donnés ", "Ða ", "Ða ðe ", "Ðurh ", "Þa ", "Þa þe ", "Þegar ", "Þurh ", "Þá ", "Če ", "Şi ", "Əgər ", "Și ", "Όταν ", "Αλλά ", "Δεδομένου ", "Και ", "Τότε ", "І ", "А ", "А також ", "Агар ", "Але ", "Али ", "Аммо ", "Анх ", "Бирок ", "Ва ", "Вә ", "Гэхдээ ", "Дадена ", "Дадено ", "Дано ", "Допустим ", "Если ", "За дате ", "За дати ", "За дато ", "Затем ", "И ", "Иначе ", "К тому же ", "Кад ", "Када ", "Кога ", "Когато ", "Когда ", "Коли ", "Лекин ", "Ләкин ", "Мөн ", "Нехай ", "Но ", "Нәтиҗәдә ", "Онда ", "Припустимо ", "Припустимо, що ", "Пусть ", "Та ", "Также ", "То ", "Тогаш ", "Тогда ", "Тоді ", "Тэгэхэд ", "Тэгээд ", "Унда ", "Харин ", "Хэрэв ", "Якщо ", "Үүний дараа ", "Һәм ", "Әгәр ", "Әйтик ", "Әмма ", "Өгөгдсөн нь ", "Ապա ", "Բայց ", "Դիցուք ", "Եթե ", "Եվ ", "Երբ ", "אבל ", "אז ", "אזי ", "בהינתן ", "וגם ", "כאשר ", "آنگاه ", "اذاً ", "اما ", "اور ", "اگر ", "با فرض ", "بالفرض ", "بفرض ", "تب ", "ثم ", "جب ", "عندما ", "فرض کیا ", "لكن ", "لیکن ", "متى ", "هنگامی ", "و ", "پھر ", "अगर ", "अनि ", "अनी ", "आणि ", "और ", "कदा ", "किन्तु ", "चूंकि ", "जब ", "जर", "जेव्हा ", "तथा ", "तदा ", "तब ", "तर ", "तसेच ", "तेव्हा ", "त्यसपछि ", "दिइएको ", "दिएको ", "दिलेल्या प्रमाणे ", "पण ", "पर ", "परंतु ", "परन्तु ", "मग ", "यदि ", "र ", "ਅਤੇ ", "ਜਦੋਂ ", "ਜਿਵੇਂ ਕਿ ", "ਜੇਕਰ ", "ਤਦ ", "ਪਰ ", "અને ", "આપેલ છે ", "ક્યારે ", "પછી ", "પણ ", "அப்பொழுது ", "ஆனால் ", "எப்போது ", "கொடுக்கப்பட்ட ", "மற்றும் ", "மேலும் ", "అప్పుడు ", "ఈ పరిస్థితిలో ", "కాని ", "చెప్పబడినది ", "మరియు ", "ಆದರೆ ", "ನಂತರ ", "ನೀಡಿದ ", "ಮತ್ತು ", "ಸ್ಥಿತಿಯನ್ನು ", "กำหนดให้ ", "ดังนั้น ", "เมื่อ ", "แต่ ", "และ ", "ასევე ", "და ", "ვთქვათ ", "თუ ", "თუმცა ", "მაგრამ ", "მაშინ ", "მოცემული ", "მოცემულია ", "როგორც კი ", "როდესაც ", "როცა ", "መቼ ", "እና ", "ከዚያ ", "የተሰጠ ", "ግን ", "かつ", "しかし", "ただし", "ならば", "もし", "且つ", "並且", "但し", "但是", "假如", "假定", "假設", "假设", "前提", "同时", "同時", "并且", "当", "然し", "當", "而且", "那么", "那麼", "그러면", "그리고", "단", "만약", "만일", "먼저", "조건", "하지만", "🎬", "😂", "😐", "😔", "🙏"] + k[:element] = Set.new ["Abstract Scenario", "Abstrakt Scenario", "Achtergrond", "Aer", "Agtergrond", "All hat and no cattle", "Antecedentes", "Antecedents", "Atburðarás", "Aturan", "Awww, look mate", "B4", "Background", "Baggrund", "Bakgrund", "Bakgrunn", "Bakgrunnur", "Beispiel", "Beispill", "Busy as a hound in flea season", "Bối cảnh", "Caso", "Casu", "Cefndir", "Cenario", "Cenario de Fundo", "Cenário", "Cenário de Fundo", "Contesto", "Context", "Contexte", "Contexto", "Cás", "Cás Achomair", "Cúlra", "Dasar", "Delineacao do Cenario", "Delineação do Cenário", "Dis is what went down", "Dyagram Senaryo", "Dyagram senaryo", "Eixemplo", "Ejemplo", "Eksempel", "Ekzemplo", "Enghraifft", "Esbozo do escenario", "Esbozu del casu", "Escenari", "Escenario", "Esempio", "Esquema de l'escenari", "Esquema del caso", "Esquema del escenario", "Esquema do Cenario", "Esquema do Cenário", "Example", "Exemple", "Exemplo", "Exemplu", "First off", "Fono", "Forgatókönyv", "Forgatókönyv vázlat", "Fundo", "Garis Panduan Senario", "Garis-Besar Skenario", "Geçmiş", "Grundlage", "Hannergrond", "Heave to", "Hintergrund", "Háttér", "Istorik", "Juhtum", "Kazo", "Kazo-skizo", "Keadaan", "Kerangka Keadaan", "Kerangka Senario", "Kerangka Situasi", "Keçmiş", "Khung kịch bản", "Khung tình huống", "Koncept", "Konsep skenario", "Kontekst", "Kontekstas", "Konteksts", "Kontext", "Konturo de la scenaro", "Kontèks", "Kural", "Kịch bản", "Latar Belakang", "Lemme tell y'all a story", "Lýsing Atburðarásar", "Lýsing Dæma", "MISHUN", "MISHUN SRSLY", "Na primer", "Náčrt Scenára", "Náčrt Scenáru", "Náčrt Scénáře", "Nümunə", "Oris scenarija", "Osnova", "Osnova Scenára", "Osnova scénáře", "Osnutek", "Ozadje", "Pavyzdys", "Piemērs", "Plan Senaryo", "Plan du Scénario", "Plan du scénario", "Plan senaryo", "Plang vum Szenario", "Pozadie", "Pozadina", "Pozadí", "Pravidlo", "Pravilo", "Pregled na scenarija", "Primer", "Primjer", "Przykład", "Príklad", "Példa", "Příklad", "Raamjuhtum", "Raamstsenaarium", "Reckon it's like", "Reegel", "Regel", "Regla", "Regla de negocio", "Regola", "Regra", "Reguła", "Rerefons", "Rule", "Rule ", "Règle", "Sampla", "Scenarie", "Scenarij", "Scenarijaus šablonas", "Scenariju", "Scenariju-obris", "Scenarijus", "Scenario", "Scenario Amlinellol", "Scenario Outline", "Scenario Template", "Scenario-outline", "Scenariomal", "Scenariomall", "Scenariu", "Scenariusz", "Scenaro", "Scenár", "Scenārijs", "Scenārijs pēc parauga", "Schema dello scenario", "Scénario", "Scénář", "Senario", "Senaryo", "Senaryo Deskripsyon", "Senaryo deskripsyon", "Senaryo taslağı", "Serious as a snake bite", "Shiver me timbers", "Situasi", "Situasie", "Situasie Uiteensetting", "Situācija", "Skenario", "Skenario konsep", "Skica", "Skizo", "Sodrzhina", "Ssenari", "Ssenarinin strukturu", "Structura scenariu", "Structură scenariu", "Struktura scenarija", "Stsenaarium", "Swa", "Swa hwaer swa", "Swa hwær swa", "Szablon scenariusza", "Szabály", "Szenarien", "Szenario", "Szenariogrundriss", "Tapaus", "Tapausaihio", "Taust", "Tausta", "The thing of it is", "Tình huống", "Voorbeeld", "Voraussetzungen", "Vorbedingungen", "Wharrimean is", "Yo-ho-ho", "Zasada", "Założenia", "lut", "lut chovnatlh", "mo'", "Ær", "Örnek", "Παράδειγμα", "Περίγραμμα Σεναρίου", "Περιγραφή Σεναρίου", "Σενάριο", "Υπόβαθρο", "Агуулга", "Кереш", "Контекст", "Концепт", "На пример", "Основа", "Передумова", "Позадина", "Правило", "Преглед на сценарија", "Предистория", "Предыстория", "Приклад", "Пример", "Рамка на сценарий", "Скица", "Содржина", "Структура сценария", "Структура сценарија", "Структура сценарію", "Сценар", "Сценарий", "Сценарий структураси", "Сценарийның төзелеше", "Сценарио", "Сценарын төлөвлөгөө", "Сценарій", "Тарих", "Шаблон сценария", "Կոնտեքստ", "Սցենար", "Սցենարի կառուցվացքը", "Օրինակ", "דוגמא", "כלל", "רקע", "תבנית תרחיש", "תרחיש", "الخلفية", "الگوی سناریو", "زمینه", "سناریو", "سيناريو", "سيناريو مخطط", "مثال", "منظر نامے کا خاکہ", "منظرنامہ", "پس منظر", "नियम", "परिदृश्य", "परिदृश्य रूपरेखा", "पार्श्वभूमी", "पृष्ठभूमि", "पृष्ठभूमी", "ਉਦਾਹਰਨ", "ਪਟਕਥਾ", "ਪਟਕਥਾ ਢਾਂਚਾ", "ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ", "ਪਿਛੋਕੜ", "ઉદાહરણ", "પરિદ્દશ્ય ઢાંચો", "પરિદ્દશ્ય રૂપરેખા", "બેકગ્રાઉન્ડ", "સ્થિતિ", "உதாரணமாக", "காட்சி", "காட்சி சுருக்கம்", "காட்சி வார்ப்புரு", "பின்னணி", "ఉదాహరణ", "కథనం", "నేపథ్యం", "సన్నివేశం", "ಉದಾಹರಣೆ", "ಕಥಾಸಾರಾಂಶ", "ವಿವರಣೆ", "ಹಿನ್ನೆಲೆ", "สรุปเหตุการณ์", "เหตุการณ์", "แนวคิด", "โครงสร้างของเหตุการณ์", "კონტექსტი", "მაგ", "მაგალითად", "მაგალითი", "ნიმუში", "სცენარი", "სცენარის ნიმუში", "სცენარის შაბლონი", "შაბლონი", "წესი", "ሁናቴ", "ሁናቴ አብነት", "ሁናቴ ዝርዝር", "ህግ", "መነሻ", "መነሻ ሀሳብ", "ምሳሌ", "ቅድመ ሁኔታ", "シナリオ", "シナリオアウトライン", "シナリオテンプレ", "シナリオテンプレート", "テンプレ", "ルール", "剧本", "剧本大纲", "劇本", "劇本大綱", "场景", "场景大纲", "場景", "場景大綱", "背景", "规则", "배경", "시나리오", "시나리오 개요", "💤", "📕", "📖", "🥒"] + k[:examples] = Set.new ["Atburðarásir", "Beispiele", "Beispiller", "Cenarios", "Cenários", "Conto", "Contoh", "Contone", "Dead men tell no tales", "Dæmi", "Dữ liệu", "EXAMPLZ", "Egzanp", "Eixemplos", "Ejemplos", "Eksempler", "Ekzemploj", "Enghreifftiau", "Esempi", "Examples", "Exempel", "Exemple", "Exemples", "Exemplos", "Juhtumid", "Misal", "Now that's a story longer than a cattle drive in July", "Nümunələr", "Paraugs", "Pavyzdžiai", "Piemēri", "Primeri", "Primjeri", "Przykłady", "Príklady", "Példák", "Příklady", "Samplaí", "Scenaria", "Scenarijai", "Scenariji", "Scenarios", "Se the", "Se ðe", "Se þe", "Tapaukset", "Variantai", "Voorbeelde", "Voorbeelden", "You'll wanna", "ghantoH", "lutmey", "Örnekler", "Παραδείγματα", "Σενάρια", "Мисаллар", "Мисоллар", "Приклади", "Примери", "Примеры", "Сценарија", "Сценарији", "Тухайлбал", "Үрнәкләр", "Օրինակներ", "דוגמאות", "امثلة", "مثالیں", "نمونه ها", "उदाहरण", "उदाहरणहरु", "ਉਦਾਹਰਨਾਂ", "ઉદાહરણો", "எடுத்துக்காட்டுகள்", "காட்சிகள்", "நிலைமைகளில்", "ఉదాహరణలు", "ಉದಾಹರಣೆಗಳು", "ชุดของตัวอย่าง", "ชุดของเหตุการณ์", "მაგალითები", "ሁናቴዎች", "ምሳሌዎች", "サンプル", "例", "例子", "예", "📓"] + k[:feature] = Set.new ["Ability", "Abilità", "Ahoy matey!", "All gussied up", "Arwedd", "Aspekt", "Besigheid Behoefte", "Biznis potreba", "Business Need", "Caracteristica", "Característica", "Carauterística", "Egenskab", "Egenskap", "Eiginleiki", "Esigenza di Business", "Feature", "Fitur", "Fonctionnalité", "Fonksyonalite", "Funcionalidade", "Funcionalitat", "Functionalitate", "Functionaliteit", "Funcţionalitate", "Funcționalitate", "Fungsi", "Funkcia", "Funkcija", "Funkcionalitāte", "Funkcionalnost", "Funkcja", "Funksie", "Funktion", "Funktionalität", "Funktionalitéit", "Funzionalità", "Fīča", "Gné", "Hwaet", "Hwæt", "Jellemző", "Karakteristik", "Karakteristika", "Lastnost", "Mak", "Mogucnost", "Mogućnost", "Mozhnost", "Moznosti", "Možnosti", "Necesidad del negocio", "OH HAI", "Omadus", "Ominaisuus", "Osobina", "Potrzeba biznesowa", "Požadavek", "Požiadavka", "Pretty much", "Qap", "Qu'meH 'ut", "Requisito", "Savybė", "This ain’t my first rodeo", "Trajto", "Tính năng", "Vermoë", "Vlastnosť", "Właściwość", "Značilnost", "laH", "perbogh", "poQbogh malja'", "Özellik", "Özəllik", "Δυνατότητα", "Λειτουργία", "Бизнис потреба", "Могућност", "Можност", "Мөмкинлек", "Особина", "Свойство", "Фича", "Функц", "Функционал", "Функционалност", "Функциональность", "Функция", "Функціонал", "Үзенчәлеклелек", "Հատկություն", "Ֆունկցիոնալություն", "תכונה", "خاصية", "خصوصیت", "صلاحیت", "وِیژگی", "کاروبار کی ضرورت", "रूप लेख", "विशेषता", "वैशिष्ट्य", "सुविधा", "ਖਾਸੀਅਤ", "ਨਕਸ਼ ਨੁਹਾਰ", "ਮੁਹਾਂਦਰਾ", "ક્ષમતા", "લક્ષણ", "વ્યાપાર જરૂર", "அம்சம்", "திறன்", "வணிக தேவை", "గుణము", "ಹೆಚ್ಚಳ", "ความต้องการทางธุรกิจ", "ความสามารถ", "โครงหลัก", "თვისება", "მოთხოვნა", "ስራ", "የሚፈለገው ድርጊት", "የተፈለገው ስራ", "フィーチャ", "功能", "機能", "기능", "📚"] + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/glsl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/glsl.rb new file mode 100644 index 0000000..aea62ea --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/glsl.rb @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'c.rb' + + # This file defines the GLSL language lexer to the Rouge + # syntax highlighter. + # + # Author: Sri Harsha Chilakapati + class Glsl < C + tag 'glsl' + filenames '*.glsl', '*.frag', '*.vert', '*.geom', '*.vs', '*.gs', '*.shader' + mimetypes 'x-shader/x-vertex', 'x-shader/x-fragment', 'x-shader/x-geometry' + + title "GLSL" + desc "The GLSL shader language" + + def self.keywords + @keywords ||= Set.new %w( + attribute const uniform varying + layout + centroid flat smooth noperspective + patch sample + break continue do for while switch case default + if else + subroutine + in out inout + invariant + discard return struct precision + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + float double int void bool true false + lowp mediump highp + mat2 mat3 mat4 dmat2 dmat3 dmat4 + mat2x2 mat2x3 mat2x4 dmat2x2 dmat2x3 dmat2x4 + mat3x2 mat3x3 mat3x4 dmat3x2 dmat3x3 dmat3x4 + mat4x2 mat4x3 mat4x4 dmat4x2 dmat4x3 dmat4x4 + vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 dvec2 dvec3 dvec4 + uint uvec2 uvec3 uvec4 + sampler1D sampler2D sampler3D samplerCube + sampler1DShadow sampler2DShadow samplerCubeShadow + sampler1DArray sampler2DArray + sampler1DArrayShadow sampler2DArrayShadow + isampler1D isampler2D isampler3D isamplerCube + isampler1DArray isampler2DArray + usampler1D usampler2D usampler3D usamplerCube + usampler1DArray usampler2DArray + sampler2DRect sampler2DRectShadow isampler2DRect usampler2DRect + samplerBuffer isamplerBuffer usamplerBuffer + sampler2DMS isampler2DMS usampler2DMS + sampler2DMSArray isampler2DMSArray usampler2DMSArray + samplerCubeArray samplerCubeArrayShadow isamplerCubeArray usamplerCubeArray + ) + end + + def self.reserved + @reserved ||= Set.new %w( + common partition active + asm + class union enum typedef template this packed + goto + inline noinline volatile public static extern external interface + long short half fixed unsigned superp + input output + hvec2 hvec3 hvec4 fvec2 fvec3 fvec4 + sampler3DRect + filter + image1D image2D image3D imageCube + iimage1D iimage2D iimage3D iimageCube + uimage1D uimage2D uimage3D uimageCube + image1DArray image2DArray + iimage1DArray iimage2DArray uimage1DArray uimage2DArray + image1DShadow image2DShadow + image1DArrayShadow image2DArrayShadow + imageBuffer iimageBuffer uimageBuffer + sizeof cast + namespace using + row_major + ) + end + + def self.builtins + @builtins ||= Set.new %w( + gl_VertexID gl_InstanceID gl_PerVertex gl_Position gl_PointSize gl_ClipDistance + gl_PrimitiveIDIn gl_InvocationID gl_PrimitiveID gl_Layer gl_ViewportIndex + gl_MaxPatchVertices gl_PatchVerticesIn gl_TessLevelOuter gl_TessLevelInner + gl_TessCoord gl_FragCoord gl_FrontFacing gl_PointCoord gl_SampleID gl_SamplePosition + gl_FragColor gl_FragData gl_MaxDrawBuffers gl_FragDepth gl_SampleMask + gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor + gl_TexCoord gl_FogFragCoord gl_Color gl_SecondaryColor gl_Normal gl_VertexID + gl_MultiTexCord0 gl_MultiTexCord1 gl_MultiTexCord2 gl_MultiTexCord3 + gl_MultiTexCord4 gl_MultiTexCord5 gl_MultiTexCord6 gl_MultiTexCord7 + gl_FogCoord gl_MaxVertexAttribs gl_MaxVertexUniformComponents + gl_MaxVaryingFloats gl_MaxVaryingComponents gl_MaxVertexOutputComponents + gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents + gl_MaxFragmentInputComponents gl_MaxVertexTextureImageUnits + gl_MaxCombinedTextureImageUnits gl_MaxTextureImageUnits + gl_MaxFragmentUniformComponents gl_MaxClipDistances + gl_MaxGeometryTextureImageUnits gl_MaxGeometryUniformComponents + gl_MaxGeometryVaryingComponents gl_MaxTessControlInputComponents + gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits + gl_MaxTessControlUniformComponents gl_MaxTessControlTotalOutputComponents + gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents + gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents + gl_MaxTessPatchComponents gl_MaxTessGenLevel gl_MaxViewports + gl_MaxVertexUniformVectors gl_MaxFragmentUniformVectors gl_MaxVaryingVectors + gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxClipPlanes gl_DepthRange + gl_DepthRangeParameters gl_ModelViewMatrix gl_ProjectionMatrix + gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix + gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse + gl_TextureMatrixInverse gl_ModelViewMatrixTranspose + gl_ModelViewProjectionMatrixTranspose gl_TextureMatrixTranspose + gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose + gl_ModelViewProjectionMatrixInverseTranspose + gl_TextureMatrixInverseTranspose gl_NormalScale gl_ClipPlane gl_PointParameters + gl_Point gl_MaterialParameters gl_FrontMaterial gl_BackMaterial + gl_LightSourceParameters gl_LightSource gl_MaxLights gl_LightModelParameters + gl_LightModel gl_LightModelProducts gl_FrontLightModelProduct + gl_BackLightModelProduct gl_LightProducts gl_FrontLightProduct + gl_BackLightProduct gl_TextureEnvColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR + gl_EyePlaneQ gl_ObjectPlaneS gl_ObjectPlaneT gl_ObjectPlaneR gl_ObjectPlaneQ + gl_FogParameters gl_Fog + ) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/go.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/go.rb new file mode 100644 index 0000000..62ae519 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/go.rb @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Go < RegexLexer + title "Go" + desc 'The Go programming language (http://golang.org)' + tag 'go' + aliases 'go', 'golang' + filenames '*.go' + + mimetypes 'text/x-go', 'application/x-go' + + # Characters + + WHITE_SPACE = /\s+/ + + NEWLINE = /\n/ + UNICODE_CHAR = /[^\n]/ + UNICODE_LETTER = /[[:alpha:]]/ + UNICODE_DIGIT = /[[:digit:]]/ + + # Letters and digits + + LETTER = /#{UNICODE_LETTER}|_/ + DECIMAL_DIGIT = /[0-9]/ + OCTAL_DIGIT = /[0-7]/ + HEX_DIGIT = /[0-9A-Fa-f]/ + + # Comments + + LINE_COMMENT = /\/\/(?:(?!#{NEWLINE}).)*/ + GENERAL_COMMENT = /\/\*(?:(?!\*\/).)*\*\//m + COMMENT = /#{LINE_COMMENT}|#{GENERAL_COMMENT}/ + + # Keywords + + KEYWORD = /\b(?: + break | default | func + | interface | select | case + | defer | go | map + | struct | chan | else + | goto | package | switch + | const | fallthrough | if + | range | type | continue + | for | import | return + | var + )\b/x + + # Identifiers + + IDENTIFIER = / (?!#{KEYWORD}) + #{LETTER}(?:#{LETTER}|#{UNICODE_DIGIT})* /x + + # Operators and delimiters + + OPERATOR = / \+= | \+\+ | \+ | &\^= | &\^ + | &= | && | & | == | = + | \!= | \! | -= | -- | - + | \|= | \|\| | \| | <= | <- + | <<= | << | < | \*= | \* + | \^= | \^ | >>= | >> | >= + | > | \/ | \/= | := | % + | %= | \.\.\. | \. | : + /x + + SEPARATOR = / \( | \) | \[ | \] | \{ + | \} | , | ; + /x + + # Integer literals + + DECIMAL_LIT = /[0-9]#{DECIMAL_DIGIT}*/ + OCTAL_LIT = /0#{OCTAL_DIGIT}*/ + HEX_LIT = /0[xX]#{HEX_DIGIT}+/ + INT_LIT = /#{HEX_LIT}|#{DECIMAL_LIT}|#{OCTAL_LIT}/ + + # Floating-point literals + + DECIMALS = /#{DECIMAL_DIGIT}+/ + EXPONENT = /[eE][+\-]?#{DECIMALS}/ + FLOAT_LIT = / #{DECIMALS} \. #{DECIMALS}? #{EXPONENT}? + | #{DECIMALS} #{EXPONENT} + | \. #{DECIMALS} #{EXPONENT}? + /x + + # Imaginary literals + + IMAGINARY_LIT = /(?:#{DECIMALS}|#{FLOAT_LIT})i/ + + # Rune literals + + ESCAPED_CHAR = /\\[abfnrtv\\'"]/ + LITTLE_U_VALUE = /\\u#{HEX_DIGIT}{4}/ + BIG_U_VALUE = /\\U#{HEX_DIGIT}{8}/ + UNICODE_VALUE = / #{UNICODE_CHAR} | #{LITTLE_U_VALUE} + | #{BIG_U_VALUE} | #{ESCAPED_CHAR} + /x + OCTAL_BYTE_VALUE = /\\#{OCTAL_DIGIT}{3}/ + HEX_BYTE_VALUE = /\\x#{HEX_DIGIT}{2}/ + BYTE_VALUE = /#{OCTAL_BYTE_VALUE}|#{HEX_BYTE_VALUE}/ + CHAR_LIT = /'(?:#{UNICODE_VALUE}|#{BYTE_VALUE})'/ + ESCAPE_SEQUENCE = / #{ESCAPED_CHAR} + | #{LITTLE_U_VALUE} + | #{BIG_U_VALUE} + | #{HEX_BYTE_VALUE} + /x + + # String literals + + RAW_STRING_LIT = /`(?:#{UNICODE_CHAR}|#{NEWLINE})*`/ + INTERPRETED_STRING_LIT = / "(?: (?!") + (?: #{UNICODE_VALUE} | #{BYTE_VALUE} ) + )*" /x + STRING_LIT = /#{RAW_STRING_LIT}|#{INTERPRETED_STRING_LIT}/ + + # Predeclared identifiers + + PREDECLARED_TYPES = /\b(?: + bool | byte | complex64 + | complex128 | error | float32 + | float64 | int8 | int16 + | int32 | int64 | int + | rune | string | uint8 + | uint16 | uint32 | uint64 + | uintptr | uint + )\b/x + + PREDECLARED_CONSTANTS = /\b(?:true|false|iota|nil)\b/ + + PREDECLARED_FUNCTIONS = /\b(?: + append | cap | close | complex + | copy | delete | imag | len + | make | new | panic | print + | println | real | recover + )\b/x + + state :simple_tokens do + rule(COMMENT, Comment) + rule(KEYWORD, Keyword) + rule(PREDECLARED_TYPES, Keyword::Type) + rule(PREDECLARED_FUNCTIONS, Name::Builtin) + rule(PREDECLARED_CONSTANTS, Name::Constant) + rule(IMAGINARY_LIT, Num) + rule(FLOAT_LIT, Num) + rule(INT_LIT, Num) + rule(CHAR_LIT, Str::Char) + rule(OPERATOR, Operator) + rule(SEPARATOR, Punctuation) + rule(IDENTIFIER, Name) + rule(WHITE_SPACE, Text) + end + + state :root do + mixin :simple_tokens + + rule(/`/, Str, :raw_string) + rule(/"/, Str, :interpreted_string) + end + + state :interpreted_string do + rule(ESCAPE_SEQUENCE, Str::Escape) + rule(/\\./, Error) + rule(/"/, Str, :pop!) + rule(/[^"\\]+/, Str) + end + + state :raw_string do + rule(/`/, Str, :pop!) + rule(/[^`]+/m, Str) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gradle.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gradle.rb new file mode 100644 index 0000000..27b5f96 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/gradle.rb @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'groovy.rb' + + class Gradle < Groovy + title "Gradle" + desc "A powerful build system for the JVM" + + tag 'gradle' + filenames '*.gradle' + mimetypes 'text/x-gradle' + + def self.keywords + @keywords ||= super + Set.new(%w( + allprojects artifacts buildscript configuration dependencies + repositories sourceSets subprojects publishing + )) + end + + def self.types + @types ||= super + Set.new(%w( + Project Task Gradle Settings Script JavaToolChain SourceSet + SourceSetOutput IncrementalTaskInputs Configuration + ResolutionStrategy ArtifactResolutionQuery ComponentSelection + ComponentSelectionRules ConventionProperty ExtensionAware + ExtraPropertiesExtension PublishingExtension IvyPublication + IvyArtifact IvyArtifactSet IvyModuleDescriptorSpec + MavenPublication MavenArtifact MavenArtifactSet MavenPom + PluginDependenciesSpec PluginDependencySpec ResourceHandler + TextResourceFactory + )) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/graphql.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/graphql.rb new file mode 100644 index 0000000..e94dce5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/graphql.rb @@ -0,0 +1,261 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class GraphQL < RegexLexer + desc 'GraphQL' + tag 'graphql' + filenames '*.graphql', '*.gql' + mimetypes 'application/graphql' + + name = /[_A-Za-z][_0-9A-Za-z]*/ + + state :root do + rule %r/\b(?:query|mutation|subscription)\b/, Keyword, :query_definition + rule %r/\{/ do + token Punctuation + push :query_definition + push :selection_set + end + + rule %r/\bfragment\b/, Keyword, :fragment_definition + + rule %r/\bscalar\b/, Keyword, :value + + rule %r/\b(?:type|interface|enum)\b/, Keyword, :type_definition + + rule %r/\b(?:input|schema)\b/, Keyword, :type_definition + + rule %r/\bunion\b/, Keyword, :union_definition + + rule %r/\bextend\b/, Keyword + + mixin :basic + + # Markdown descriptions + rule %r/(""")(\n)(.*?)(\n)(""")/m do |m| + token Str::Double, m[1] + token Text::Whitespace, m[2] + delegate Markdown, m[3] + token Text::Whitespace, m[4] + token Str::Double, m[5] + end + end + + state :basic do + rule %r/\s+/m, Text::Whitespace + rule %r/#.*$/, Comment + + rule %r/[!,]/, Punctuation + end + + state :has_directives do + rule %r/(@#{name})(\s*)(\()/ do + groups Keyword, Text::Whitespace, Punctuation + push :arguments + end + rule %r/@#{name}\b/, Keyword + end + + state :fragment_definition do + rule %r/\bon\b/, Keyword + + mixin :query_definition + end + + state :query_definition do + mixin :has_directives + + rule %r/\b#{name}\b/, Name + rule %r/\(/, Punctuation, :variable_definitions + rule %r/\{/, Punctuation, :selection_set + + mixin :basic + end + + state :type_definition do + rule %r/\bimplements\b/, Keyword + rule %r/\b#{name}\b/, Name + rule %r/\(/, Punctuation, :variable_definitions + rule %r/\{/, Punctuation, :type_definition_set + + mixin :basic + end + + state :union_definition do + rule %r/\b#{name}\b/, Name + rule %r/\=/, Punctuation, :union_definition_variant + + mixin :basic + end + + state :union_definition_variant do + rule %r/\b#{name}\b/ do + token Name + pop! + push :union_definition_pipe + end + + mixin :basic + end + + state :union_definition_pipe do + rule %r/\|/ do + token Punctuation + pop! + push :union_definition_variant + end + + rule %r/(?!\||\s+|#[^\n]*)/ do + pop! 2 + end + + mixin :basic + end + + state :type_definition_set do + rule %r/\}/ do + token Punctuation + pop! 2 + end + + rule %r/\b(#{name})(\s*)(\()/ do + groups Name, Text::Whitespace, Punctuation + push :variable_definitions + end + rule %r/\b#{name}\b/, Name + + rule %r/:/, Punctuation, :type_names + + mixin :basic + end + + state :arguments do + rule %r/\)/ do + token Punctuation + pop! + end + + rule %r/\b#{name}\b/, Name + rule %r/:/, Punctuation, :value + + mixin :basic + end + + state :variable_definitions do + rule %r/\)/ do + token Punctuation + pop! + end + + rule %r/\$#{name}\b/, Name::Variable + rule %r/\b#{name}\b/, Name + rule %r/:/, Punctuation, :type_names + rule %r/\=/, Punctuation, :value + + mixin :basic + end + + state :type_names do + rule %r/\b(?:Int|Float|String|Boolean|ID)\b/, Name::Builtin, :pop! + rule %r/\b#{name}\b/, Name, :pop! + + rule %r/\[/, Punctuation, :type_name_list + + mixin :basic + end + + state :type_name_list do + rule %r/\b(?:Int|Float|String|Boolean|ID)\b/, Name::Builtin + rule %r/\b#{name}\b/, Name + + rule %r/\]/ do + token Punctuation + pop! 2 + end + + mixin :basic + end + + state :selection_set do + mixin :has_directives + + rule %r/\}/ do + token Punctuation + pop! + pop! if state?(:query_definition) || state?(:fragment_definition) + end + + rule %r/\b(#{name})(\s*)(\()/ do + groups Name, Text::Whitespace, Punctuation + push :arguments + end + + rule %r/\b(#{name})(\s*)(:)/ do + groups Name, Text::Whitespace, Punctuation + end + + rule %r/\b#{name}\b/, Name + + rule %r/(\.\.\.)(\s+)(on)\b/ do + groups Punctuation, Text::Whitespace, Keyword + end + rule %r/\.\.\./, Punctuation + + rule %r/\{/, Punctuation, :selection_set + + mixin :basic + end + + state :list do + rule %r/\]/ do + token Punctuation + pop! + pop! if state?(:value) + end + + mixin :value + end + + state :object do + rule %r/\}/ do + token Punctuation + pop! + pop! if state?(:value) + end + + rule %r/\b(#{name})(\s*)(:)/ do + groups Name, Text::Whitespace, Punctuation + push :value + end + + mixin :basic + end + + state :value do + pop_unless_list = ->(t) { + ->(m) { + token t + pop! unless state?(:list) + } + } + + # Multiline strings + rule %r/""".*?"""/m, Str::Double + + rule %r/\$#{name}\b/, &pop_unless_list[Name::Variable] + rule %r/\b(?:true|false|null)\b/, &pop_unless_list[Keyword::Constant] + rule %r/[+-]?[0-9]+\.[0-9]+(?:[eE][+-]?[0-9]+)?/, &pop_unless_list[Num::Float] + rule %r/[+-]?[1-9][0-9]*(?:[eE][+-]?[0-9]+)?/, &pop_unless_list[Num::Integer] + rule %r/"(\\[\\"]|[^"])*"/, &pop_unless_list[Str::Double] + rule %r/\b#{name}\b/, &pop_unless_list[Name] + + rule %r/\{/, Punctuation, :object + rule %r/\[/, Punctuation, :list + + mixin :basic + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/groovy.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/groovy.rb new file mode 100644 index 0000000..4c10458 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/groovy.rb @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Groovy < RegexLexer + title "Groovy" + desc 'The Groovy programming language (http://www.groovy-lang.org/)' + tag 'groovy' + aliases 'nextflow', 'nf' + filenames '*.groovy', 'Jenkinsfile', '*.Jenkinsfile', '*.nf' + mimetypes 'text/x-groovy' + + def self.detect?(text) + return true if text.shebang?(/groovy/) + return true if text.shebang?(/nextflow/) + end + + def self.keywords + @keywords ||= Set.new %w( + assert break case catch continue default do else finally for + if goto instanceof new return switch this throw try while in as + ) + end + + def self.declarations + @declarations ||= Set.new %w( + abstract const extends final implements native private + protected public static strictfp super synchronized throws + transient volatile + ) + end + + def self.types + @types ||= Set.new %w( + def var boolean byte char double float int long short void + ) + end + + def self.constants + @constants ||= Set.new %w(true false null) + end + + state :root do + rule %r(^ + (\s*(?:\w[\w.\[\]]*\s+)+?) # return arguments + (\w\w*) # method name + (\s*) (\() # signature start + )x do |m| + delegate self.clone, m[1] + token Name::Function, m[2] + token Text, m[3] + token Operator, m[4] + end + + # whitespace + rule %r/[^\S\n]+/, Text + rule %r(//.*?$), Comment::Single + rule %r(/[*].*?[*]/)m, Comment::Multiline + rule %r/@\w[\w.]*/, Name::Decorator + rule %r/(class|interface|trait|enum|record)\b/, Keyword::Declaration, :class + rule %r/package\b/, Keyword::Namespace, :import + rule %r/import\b/, Keyword::Namespace, :import + + # TODO: highlight backslash escapes + rule %r/""".*?"""/m, Str::Double + rule %r/'''.*?'''/m, Str::Single + + rule %r/"(\\.|\\\n|.)*?"/, Str::Double + rule %r/'(\\.|\\\n|.)*?'/, Str::Single + rule %r(\$/(\$.|.)*?/\$)m, Str + rule %r(/(\\.|\\\n|.)*?/), Str + rule %r/'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'/, Str::Char + rule %r/(\.)([a-zA-Z_][a-zA-Z0-9_]*)/ do + groups Operator, Name::Attribute + end + + rule %r/[a-zA-Z_][a-zA-Z0-9_]*:/, Name::Label + rule %r/[a-zA-Z_\$][a-zA-Z0-9_]*/ do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.declarations.include? m[0] + token Keyword::Declaration + elsif self.class.types.include? m[0] + token Keyword::Type + elsif self.class.constants.include? m[0] + token Keyword::Constant + else + token Name + end + end + + rule %r([~^*!%&\[\](){}<>\|+=:;,./?-]), Operator + + # numbers + rule %r/\d+\.\d+([eE]\d+)?[fd]?/, Num::Float + rule %r/0x[0-9a-f]+/, Num::Hex + rule %r/[0-9]+L?/, Num::Integer + rule %r/\n/, Text + end + + state :class do + rule %r/\s+/, Text + rule %r/\w\w*/, Name::Class, :pop! + end + + state :import do + rule %r/\s+/, Text + rule %r/[\w.]+[*]?/, Name::Namespace, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hack.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hack.rb new file mode 100644 index 0000000..1e8f831 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hack.rb @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'php.rb' + + class Hack < PHP + title 'Hack' + desc 'The Hack programming language (hacklang.org)' + tag 'hack' + aliases 'hack', 'hh' + filenames '*.php', '*.hh' + + def self.detect?(text) + return true if /<\?hh/ =~ text + return true if text.shebang?('hhvm') + return true if /async function [a-zA-Z]/ =~ text + return true if /\): Awaitable</ =~ text + + return false + end + + def self.keywords + @hh_keywords ||= super.merge Set.new %w( + type newtype enum + as super + async await Awaitable + vec dict keyset + void int string bool float double + arraykey num Stringish + ) + end + + prepend :root do + rule %r/<\?hh(\s*\/\/\s*(strict|decl|partial))?$/, Comment::Preproc, :php + end + + prepend :php do + rule %r((/\*\s*)(HH_(?:IGNORE_ERROR|FIXME)\[\d+\])([^*]*)(\*/)) do + groups Comment::Preproc, Comment::Preproc, Comment::Multiline, Comment::Preproc + end + + rule %r(// UNSAFE(?:_EXPR|_BLOCK)?), Comment::Preproc + rule %r(/\*\s*UNSAFE_EXPR\s*\*/), Comment::Preproc + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/haml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/haml.rb new file mode 100644 index 0000000..e63486a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/haml.rb @@ -0,0 +1,226 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + # A lexer for the Haml templating system for Ruby. + # @see http://haml.info + class Haml < RegexLexer + include Indentation + + title "Haml" + desc "The Haml templating system for Ruby (haml.info)" + + tag 'haml' + aliases 'HAML' + + filenames '*.haml' + mimetypes 'text/x-haml' + + option 'filters[filter_name]', 'Mapping of lexers to use for haml :filters' + attr_reader :filters + # @option opts :filters + # A hash of filter name to lexer of how various filters should be + # highlighted. By default, :javascript, :css, :ruby, and :erb + # are supported. + def initialize(opts={}) + super + + default_filters = { + 'javascript' => Javascript.new(options), + 'css' => CSS.new(options), + 'ruby' => ruby, + 'erb' => ERB.new(options), + 'markdown' => Markdown.new(options), + 'sass' => Sass.new(options), + # TODO + # 'textile' => Textile.new(options), + # 'maruku' => Maruku.new(options), + } + + @filters = hash_option(:filters, default_filters) do |v| + as_lexer(v) || PlainText.new(@options) + end + end + + def ruby + @ruby ||= Ruby.new(@options) + end + + def html + @html ||= HTML.new(@options) + end + + def ruby!(state) + ruby.reset! + push state + end + + start { ruby.reset!; html.reset! } + + identifier = /[\w:-]+/ + ruby_var = /[a-z]\w*/ + + # Haml can include " |\n" anywhere, + # which is ignored and used to wrap long lines. + # To accomodate this, use this custom faux dot instead. + dot = /[ ]\|\n(?=.*[ ]\|)|./ + + state :root do + rule %r/\s*\n/, Text + rule(/\s*/) { |m| token Text; indentation(m[0]) } + end + + state :content do + mixin :css + rule(/%#{identifier}/) { token Name::Tag; goto :tag } + rule %r/!!!#{dot}*\n/, Name::Namespace, :pop! + rule %r( + (/) (\[#{dot}*?\]) (#{dot}*\n) + )x do + groups Comment, Comment::Special, Comment + pop! + end + + rule %r(/#{dot}*\n) do + token Comment + pop! + starts_block :html_comment_block + end + + rule %r/-##{dot}*\n/ do + token Comment + pop! + starts_block :haml_comment_block + end + + rule %r/-/ do + token Punctuation + reset_stack + ruby! :ruby_line + end + + # filters + rule %r/:(#{dot}*)\n/ do |m| + token Name::Decorator + pop! + starts_block :filter_block + + filter_name = m[1].strip + + @filter_lexer = self.filters[filter_name] + @filter_lexer.reset! unless @filter_lexer.nil? + + puts " haml: filter #{filter_name.inspect} #{@filter_lexer.inspect}" if @debug + end + + mixin :eval_or_plain + end + + state :css do + rule(/\.#{identifier}/) { token Name::Class; goto :tag } + rule(/##{identifier}/) { token Name::Function; goto :tag } + end + + state :tag do + mixin :css + rule(/[{]/) { token Punctuation; ruby! :ruby_tag } + rule(/\[#{dot}*?\]/) { delegate ruby } + + rule %r/\(/, Punctuation, :html_attributes + rule %r/\s*\n/, Text, :pop! + + # whitespace chompers + rule %r/[<>]{1,2}(?=[ \t=])/, Punctuation + + mixin :eval_or_plain + end + + state :plain do + rule(/([^#\n]|#[^{\n]|(\\\\)*\\#\{)+/) { delegate html } + mixin :interpolation + rule(/\n/) { token Text; reset_stack } + end + + state :eval_or_plain do + rule %r/[&!]?==/, Punctuation, :plain + rule %r/[&!]?[=!]/ do + token Punctuation + reset_stack + ruby! :ruby_line + end + + rule(//) { push :plain } + end + + state :ruby_line do + rule %r/\n/, Text, :pop! + rule(/,[ \t]*\n/) { delegate ruby } + rule %r/[ ]\|[ \t]*\n/, Str::Escape + rule(/.*?(?=(,$| \|)?[ \t]*$)/) { delegate ruby } + end + + state :ruby_tag do + mixin :ruby_inner + end + + state :html_attributes do + rule %r/\s+/, Text + rule %r/#{identifier}\s*=/, Name::Attribute, :html_attribute_value + rule identifier, Name::Attribute + rule %r/\)/, Text, :pop! + end + + state :html_attribute_value do + rule %r/\s+/, Text + rule ruby_var, Name::Variable, :pop! + rule %r/@#{ruby_var}/, Name::Variable::Instance, :pop! + rule %r/\$#{ruby_var}/, Name::Variable::Global, :pop! + rule %r/'(\\\\|\\'|[^'\n])*'/, Str, :pop! + rule %r/"(\\\\|\\"|[^"\n])*"/, Str, :pop! + end + + state :html_comment_block do + rule %r/#{dot}+/, Comment + mixin :indented_block + end + + state :haml_comment_block do + rule %r/#{dot}+/, Comment::Preproc + mixin :indented_block + end + + state :filter_block do + rule %r/([^#\n]|#[^{\n]|(\\\\)*\\#\{)+/ do + if @filter_lexer + delegate @filter_lexer + else + token Name::Decorator + end + end + + mixin :interpolation + mixin :indented_block + end + + state :interpolation do + rule %r/#[{]/, Str::Interpol, :ruby + end + + state :ruby do + rule %r/[}]/, Str::Interpol, :pop! + mixin :ruby_inner + end + + state :ruby_inner do + rule(/[{]/) { delegate ruby; push :ruby_inner } + rule(/[}]/) { delegate ruby; pop! } + rule(/[^{}]+/) { delegate ruby } + end + + state :indented_block do + rule(/\n/) { token Text; reset_stack } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/handlebars.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/handlebars.rb new file mode 100644 index 0000000..4cf7e36 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/handlebars.rb @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Handlebars < TemplateLexer + title "Handlebars" + desc 'the Handlebars and Mustache templating languages' + tag 'handlebars' + aliases 'hbs', 'mustache' + filenames '*.handlebars', '*.hbs', '*.mustache' + mimetypes 'text/x-handlebars', 'text/x-mustache' + + id = %r([\w$-]+) + + state :root do + # escaped slashes + rule(/\\{+/) { delegate parent } + + # block comments + rule %r/{{!--/, Comment, :comment + rule %r/{{!.*?}}/, Comment + + rule %r/{{{?/ do + token Keyword + push :stache + push :open_sym + end + + rule(/(.+?)(?=\\|{{)/m) do + delegate parent + + # if parent state is attr, then we have an html attribute without quotes + # pop the parent state to return to the tag state + if parent.state?('attr') + parent.pop! + end + end + + # if we get here, there's no more mustache tags, so we eat + # the rest of the doc + rule(/.+/m) { delegate parent } + end + + state :comment do + rule(/{{/) { token Comment; push } + rule(/}}/) { token Comment; pop! } + rule(/[^{}]+/m) { token Comment } + rule(/[{}]/) { token Comment } + end + + state :stache do + rule %r/}}}?/, Keyword, :pop! + rule %r/\|/, Punctuation + rule %r/~/, Keyword + rule %r/\s+/m, Text + rule %r/[=]/, Operator + rule %r/[\[\]]/, Punctuation + rule %r/[\(\)]/, Punctuation + rule %r/[.](?=[}\s])/, Name::Variable + rule %r/[.][.]/, Name::Variable + rule %r([/.]), Punctuation + rule %r/"(\\.|.)*?"/, Str::Double + rule %r/'(\\.|.)*?'/, Str::Single + rule %r/\d+(?=}\s)/, Num + rule %r/(true|false)(?=[}\s])/, Keyword::Constant + rule %r/else(?=[}\s])/, Keyword + rule %r/this(?=[}\s])/, Name::Builtin::Pseudo + rule %r/@#{id}/, Name::Attribute + rule id, Name::Variable + end + + state :open_sym do + rule %r([#/]) do + token Keyword + goto :block_name + end + + rule %r/[>^&~]/, Keyword + + rule(//) { pop! } + end + + state :block_name do + rule %r/if(?=[}\s])/, Keyword + rule id, Name::Namespace, :pop! + rule(//) { pop! } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/haskell.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/haskell.rb new file mode 100644 index 0000000..6891847 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/haskell.rb @@ -0,0 +1,207 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Haskell < RegexLexer + title "Haskell" + desc "The Haskell programming language (haskell.org)" + + tag 'haskell' + aliases 'hs' + filenames '*.hs', '*.hs-boot' + mimetypes 'text/x-haskell' + + def self.detect?(text) + return true if text.shebang?('runhaskell') + end + + reserved = %w( + _ case class data default deriving do else if in infix infixl infixr + instance let newtype of then type where + ) + + ascii = %w( + NUL SOH [SE]TX EOT ENQ ACK BEL BS HT LF VT FF CR S[OI] DLE + DC[1-4] NAK SYN ETB CAN EM SUB ESC [FGRU]S SP DEL + ) + + state :basic do + rule %r/\s+/m, Text + rule %r/{-#/, Comment::Preproc, :comment_preproc + rule %r/{-/, Comment::Multiline, :comment + rule %r/^--\s+\|.*?$/, Comment::Doc + # this is complicated in order to support custom symbols + # like --> + rule %r/--(?![!#\$\%&*+.\/<=>?@\^\|_~]).*?$/, Comment::Single + end + + # nested commenting + state :comment do + rule %r/-}/, Comment::Multiline, :pop! + rule %r/{-/, Comment::Multiline, :comment + rule %r/[^-{}]+/, Comment::Multiline + rule %r/[-{}]/, Comment::Multiline + end + + state :comment_preproc do + rule %r/-}/, Comment::Preproc, :pop! + rule %r/{-/, Comment::Preproc, :comment + rule %r/[^-{}]+/, Comment::Preproc + rule %r/[-{}]/, Comment::Preproc + end + + state :root do + mixin :basic + + rule %r/'(?=(?:.|\\\S+)')/, Str::Char, :character + rule %r/"/, Str, :string + + rule %r/\d+e[+-]?\d+/i, Num::Float + rule %r/\d+\.\d+(e[+-]?\d+)?/i, Num::Float + rule %r/0o[0-7]+/i, Num::Oct + rule %r/0x[\da-f]+/i, Num::Hex + rule %r/\d+/, Num::Integer + + rule %r/[\w']+/ do |m| + match = m[0] + if match == "import" + token Keyword::Reserved + push :import + elsif match == "module" + token Keyword::Reserved + push :module + elsif reserved.include?(match) + token Keyword::Reserved + elsif match =~ /\A'?[A-Z]/ + token Keyword::Type + else + token Name + end + end + + # lambda operator + rule %r(\\(?![:!#\$\%&*+.\\/<=>?@^\|~-]+)), Name::Function + # special operators + rule %r((<-|::|->|=>|=)(?![:!#\$\%&*+.\\/<=>?@^\|~-]+)), Operator + # constructor/type operators + rule %r(:[:!#\$\%&*+.\\/<=>?@^\|~-]*), Operator + # other operators + rule %r([:!#\$\%&*+.\\/<=>?@^\|~-]+), Operator + + rule %r/\[\s*\]/, Keyword::Type + rule %r/\(\s*\)/, Name::Builtin + + # Quasiquotations + rule %r/(\[)([_a-z][\w']*)(\|)/ do |m| + token Operator, m[1] + token Name, m[2] + token Operator, m[3] + push :quasiquotation + end + + rule %r/[\[\](),;`{}]/, Punctuation + end + + state :import do + rule %r/\s+/, Text + rule %r/"/, Str, :string + rule %r/\bqualified\b/, Keyword + # import X as Y + rule %r/([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][a-zA-Z0-9_.]*)/ do + groups( + Name::Namespace, # X + Text, Keyword, # as + Text, Name # Y + ) + pop! + end + + # import X hiding (functions) + rule %r/([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()/ do + groups( + Name::Namespace, # X + Text, Keyword, # hiding + Text, Punctuation # ( + ) + goto :funclist + end + + # import X (functions) + rule %r/([A-Z][\w.]*)(\s+)(\()/ do + groups( + Name::Namespace, # X + Text, + Punctuation # ( + ) + goto :funclist + end + + rule %r/[\w.]+/, Name::Namespace, :pop! + end + + state :module do + rule %r/\s+/, Text + # module Foo (functions) + rule %r/([A-Z][\w.]*)(\s+)(\()/ do + groups Name::Namespace, Text, Punctuation + push :funclist + end + + rule %r/\bwhere\b/, Keyword::Reserved, :pop! + + rule %r/[A-Z][a-zA-Z0-9_.]*/, Name::Namespace, :pop! + end + + state :funclist do + mixin :basic + rule %r/[A-Z]\w*/, Keyword::Type + rule %r/(_[\w\']+|[a-z][\w\']*)/, Name::Function + rule %r/,/, Punctuation + rule %r/[:!#\$\%&*+.\\\/<=>?@^\|~-]+/, Operator + rule %r/\(/, Punctuation, :funclist + rule %r/\)/, Punctuation, :pop! + end + + state :character do + rule %r/\\/ do + token Str::Escape + goto :character_end + push :escape + end + + rule %r/./ do + token Str::Char + goto :character_end + end + end + + state :character_end do + rule %r/'/, Str::Char, :pop! + rule %r/./, Error, :pop! + end + + state :quasiquotation do + rule %r/\|\]/, Operator, :pop! + rule %r/[^\|]+/m, Text + rule %r/\|/, Text + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\/, Str::Escape, :escape + rule %r/[^\\"]+/, Str + end + + state :escape do + rule %r/[abfnrtv"'&\\]/, Str::Escape, :pop! + rule %r/\^[\]\[A-Z@\^_]/, Str::Escape, :pop! + rule %r/#{ascii.join('|')}/, Str::Escape, :pop! + rule %r/o[0-7]+/i, Str::Escape, :pop! + rule %r/x[\da-f]+/i, Str::Escape, :pop! + rule %r/\d+/, Str::Escape, :pop! + rule %r/\s+\\/, Str::Escape, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/haxe.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/haxe.rb new file mode 100644 index 0000000..bca64ce --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/haxe.rb @@ -0,0 +1,265 @@ +# -*- coding: utf-8 -*- # + +module Rouge + module Lexers + class Haxe < RegexLexer + title "Haxe" + desc "Haxe Cross-platform Toolkit (http://haxe.org)" + + tag 'haxe' + aliases 'hx', 'haxe' + filenames '*.hx' + mimetypes 'text/haxe', 'text/x-haxe', 'text/x-hx' + + def self.detect?(text) + return true if text.shebang? "haxe" + end + + def self.keywords + @keywords ||= Set.new %w( + as break case cast catch class continue default do else enum false for + function if import in interface macro new null override package private + public return switch this throw true try untyped while + ) + end + + def self.imports + @imports ||= Set.new %w( + package import using + ) + end + + def self.declarations + @declarations ||= Set.new %w( + abstract dynamic extern extends from implements inline static to + typedef var + ) + end + + def self.reserved + @reserved ||= Set.new %w( + super trace inline build autoBuild enum + ) + end + + def self.constants + @constants ||= Set.new %w(true false null) + end + + def self.builtins + @builtins ||= %w( + Void Dynamic Math Class Any Float Int UInt String StringTools Sys + EReg isNaN parseFloat parseInt this Array Map Date DateTools Bool + Lambda Reflect Std File FileSystem + ) + end + + id = /[$a-zA-Z_][a-zA-Z0-9_]*/ + dotted_id = /[$a-zA-Z_][a-zA-Z0-9_.]*/ + + state :comments_and_whitespace do + rule %r/\s+/, Text + rule %r(//.*?$), Comment::Single + rule %r(/\*.*?\*/)m, Comment::Multiline + end + + state :expr_start do + mixin :comments_and_whitespace + + rule %r/#(?:if|elseif|else|end).*/, Comment::Preproc + + rule %r(~) do + token Str::Regex + goto :regex + end + + rule %r/[{]/, Punctuation, :object + + rule %r//, Text, :pop! + end + + state :namespace do + mixin :comments_and_whitespace + + rule %r/ + (#{dotted_id}) + (\s+)(in|as)(\s+) + (#{id}) + /x do + groups(Name::Namespace, Text::Whitespace, Keyword, Text::Whitespace, Name) + end + + rule %r/#{dotted_id}/, Name::Namespace + + rule(//) { pop! } + end + + state :regex do + rule %r(/) do + token Str::Regex + goto :regex_end + end + + rule %r([^/]\n), Error, :pop! + + rule %r/\n/, Error, :pop! + rule %r/\[\^/, Str::Escape, :regex_group + rule %r/\[/, Str::Escape, :regex_group + rule %r/\\./, Str::Escape + rule %r{[(][?][:=<!]}, Str::Escape + rule %r/[{][\d,]+[}]/, Str::Escape + rule %r/[()?]/, Str::Escape + rule %r/./, Str::Regex + end + + state :regex_end do + rule %r/[gim]+/, Str::Regex, :pop! + rule(//) { pop! } + end + + state :regex_group do + # specially highlight / in a group to indicate that it doesn't + # close the regex + rule %r/\//, Str::Escape + + rule %r([^/]\n) do + token Error + pop! 2 + end + + rule %r/\]/, Str::Escape, :pop! + rule %r/\\./, Str::Escape + rule %r/./, Str::Regex + end + + state :bad_regex do + rule %r/[^\n]+/, Error, :pop! + end + + state :root do + rule %r/\n/, Text, :statement + rule %r(\{), Punctuation, :expr_start + + mixin :comments_and_whitespace + + rule %r/@/, Name::Decorator, :metadata + rule %r(\+\+ | -- | ~ | && | \|\| | \\(?=\n) | << | >> | == + | != )x, + Operator, :expr_start + rule %r([-:<>+*%&|\^/!=]=?), Operator, :expr_start + rule %r/[(\[,]/, Punctuation, :expr_start + rule %r/;/, Punctuation, :statement + rule %r/[)\]}.]/, Punctuation + + rule %r/[?]/ do + token Punctuation + push :ternary + push :expr_start + end + + rule id do |m| + match = m[0] + + if self.class.imports.include?(match) + token Keyword::Namespace + push :namespace + elsif self.class.keywords.include?(match) + token Keyword + push :expr_start + elsif self.class.declarations.include?(match) + token Keyword::Declaration + push :expr_start + elsif self.class.reserved.include?(match) + token Keyword::Reserved + elsif self.class.constants.include?(match) + token Keyword::Constant + elsif self.class.builtins.include?(match) + token Name::Builtin + else + token Name::Other + end + end + + rule %r/\-?\d+\.\d+(?:[eE]\d+)?[fd]?/, Num::Float + rule %r/0x\h+/, Num::Hex + rule %r/\-?[0-9]+/, Num::Integer + rule %r/"/, Str::Double, :str_double + rule %r/'/, Str::Single, :str_single + end + + # braced parts that aren't object literals + state :statement do + rule %r/(#{id})(\s*)(:)/ do + groups Name::Label, Text, Punctuation + end + + mixin :expr_start + end + + # object literals + state :object do + mixin :comments_and_whitespace + rule %r/[}]/ do + token Punctuation + goto :statement + end + + rule %r/(#{id})(\s*)(:)/ do + groups Name::Attribute, Text, Punctuation + push :expr_start + end + + rule %r/:/, Punctuation + mixin :root + end + + state :metadata do + rule %r/(#{id})(\()?/ do |m| + groups Name::Decorator, Punctuation + pop! unless m[2] + end + rule %r/:#{id}(?:\.#{id})*/, Name::Decorator, :pop! + rule %r/\)/, Name::Decorator, :pop! + mixin :root + end + + # ternary expressions, where <id>: is not a label! + state :ternary do + rule %r/:/ do + token Punctuation + goto :expr_start + end + + mixin :root + end + + state :str_double do + mixin :str_escape + rule %r/"/, Str::Double, :pop! + rule %r/[^\\"]+/, Str::Double + end + + state :str_single do + mixin :str_escape + rule %r/'/, Str::Single, :pop! + rule %r/\$\$/, Str::Single + rule %r/\$#{id}/, Str::Interpol + rule %r/\$\{/, Str::Interpol, :str_interpol + rule %r/[^\\$']+/, Str::Single + end + + state :str_escape do + rule %r/\\[\\tnr'"]/, Str::Escape + rule %r/\\[0-7]{3}/, Str::Escape + rule %r/\\x\h{2}/, Str::Escape + rule %r/\\u\h{4}/, Str::Escape + rule %r/\\u\{\h{1,6}\}/, Str::Escape + end + + state :str_interpol do + rule %r/\}/, Str::Interpol, :pop! + mixin :root + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hcl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hcl.rb new file mode 100644 index 0000000..69a65f9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hcl.rb @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Hcl < RegexLexer + tag 'hcl' + filenames '*.hcl', '*.nomad' + + title 'Hashicorp Configuration Language' + desc 'Hashicorp Configuration Language, used by Terraform and other Hashicorp tools' + + state :multiline_comment do + rule %r([*]/), Comment::Multiline, :pop! + rule %r([^*/]+), Comment::Multiline + rule %r([*/]), Comment::Multiline + end + + state :comments_and_whitespace do + rule %r/\s+/, Text + rule %r(//.*?$), Comment::Single + rule %r(#.*?$), Comment::Single + rule %r(/[*]), Comment::Multiline, :multiline_comment + end + + state :primitives do + rule %r/[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?([kKmMgG]b?)?/, Num::Float + rule %r/[0-9]+([kKmMgG]b?)?/, Num::Integer + rule %r/[-+*\/!%&<>|=:?]/, Operator + + rule %r/"/, Str::Double, :dq + rule %r/'/, Str::Single, :sq + rule %r/(<<-?)(\s*)(\'?)(\\?)(\w+)(\3)/ do |m| + groups Operator, Text, Str::Heredoc, Str::Heredoc, Name::Constant, Str::Heredoc + @heredocstr = Regexp.escape(m[5]) + push :heredoc + end + end + + def self.keywords + @keywords ||= Set.new %w() + end + + def self.declarations + @declarations ||= Set.new %w() + end + + def self.reserved + @reserved ||= Set.new %w() + end + + def self.constants + @constants ||= Set.new %w(true false null) + end + + def self.builtins + @builtins ||= %w() + end + + id = /[$a-z_\-][a-z0-9_\-]*/io + + state :root do + mixin :comments_and_whitespace + mixin :primitives + + rule %r/\{/ do + token Punctuation + push :hash + end + rule %r/\[/ do + token Punctuation + push :array + end + + rule id do |m| + if self.class.keywords.include? m[0] + token Keyword + push :composite + elsif self.class.declarations.include? m[0] + token Keyword::Declaration + push :composite + elsif self.class.reserved.include? m[0] + token Keyword::Reserved + elsif self.class.constants.include? m[0] + token Keyword::Constant + elsif self.class.builtins.include? m[0] + token Name::Builtin + else + token Name::Other + push :composite + end + end + end + + state :composite do + mixin :comments_and_whitespace + + rule %r/[{]/ do + token Punctuation + pop! + push :hash + end + + rule %r/[\[]/ do + token Punctuation + pop! + push :array + end + + mixin :root + + rule %r//, Text, :pop! + end + + state :hash do + mixin :comments_and_whitespace + + rule %r/[.,()\\\/*]/, Punctuation + rule %r/\=/, Punctuation + rule %r/\}/, Punctuation, :pop! + + mixin :root + end + + state :array do + mixin :comments_and_whitespace + + rule %r/[.,()\\\/*]/, Punctuation + rule %r/\]/, Punctuation, :pop! + + mixin :root + end + + state :dq do + rule %r/[^\\"]+/, Str::Double + rule %r/\\"/, Str::Escape + rule %r/"/, Str::Double, :pop! + end + + state :sq do + rule %r/[^\\']+/, Str::Single + rule %r/\\'/, Str::Escape + rule %r/'/, Str::Single, :pop! + end + + state :heredoc do + rule %r/\n/, Str::Heredoc, :heredoc_nl + rule %r/[^$\n]+/, Str::Heredoc + rule %r/[$]/, Str::Heredoc + end + + state :heredoc_nl do + rule %r/\s*(\w+)\s*\n/ do |m| + if m[1] == @heredocstr + token Name::Constant + pop! 2 + else + token Str::Heredoc + end + end + + rule(//) { pop! } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hlsl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hlsl.rb new file mode 100644 index 0000000..8fac6fa --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hlsl.rb @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'c.rb' + + class HLSL < C + title "HLSL" + desc "HLSL, the High Level Shading Language for DirectX (docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl)" + tag 'hlsl' + filenames '*.hlsl', '*.hlsli' + mimetypes 'text/x-hlsl' + + def self.keywords + @keywords ||= Set.new %w( + asm asm_fragment break case cbuffer centroid class column_major + compile compile_fragment const continue default discard do else export + extern for fxgroup globallycoherent groupshared if in inline inout + interface line lineadj linear namespace nointerpolation noperspective + NULL out packoffset pass pixelfragment point precise return register + row_major sample sampler shared stateblock stateblock_state static + struct switch tbuffer technique technique10 technique11 texture + typedef triangle uniform vertexfragment volatile while + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + dword matrix snorm string unorm unsigned void vector BlendState Buffer + ByteAddressBuffer ComputeShader DepthStencilState DepthStencilView + DomainShader GeometryShader HullShader InputPatch LineStream + OutputPatch PixelShader PointStream RasterizerState RenderTargetView + RasterizerOrderedBuffer RasterizerOrderedByteAddressBuffer + RasterizerOrderedStructuredBuffer RasterizerOrderedTexture1D + RasterizerOrderedTexture1DArray RasterizerOrderedTexture2D + RasterizerOrderedTexture2DArray RasterizerOrderedTexture3D RWBuffer + RWByteAddressBuffer RWStructuredBuffer RWTexture1D RWTexture1DArray + RWTexture2D RWTexture2DArray RWTexture3D SamplerState + SamplerComparisonState StructuredBuffer Texture1D Texture1DArray + Texture2D Texture2DArray Texture2DMS Texture2DMSArray Texture3D + TextureCube TextureCubeArray TriangleStream VertexShader + + bool1 bool2 bool3 bool4 BOOL1 BOOL2 BOOL3 BOOL4 + int1 int2 int3 int4 + half1 half2 half3 half4 + float1 float2 float3 float4 + double1 double2 double3 double4 + + bool1x1 bool1x2 bool1x3 bool1x4 bool2x1 bool2x2 bool2x3 bool2x4 + bool3x1 bool3x2 bool3x3 bool3x4 bool4x1 bool4x2 bool4x3 bool4x4 + BOOL1x1 BOOL1x2 BOOL1x3 BOOL1x4 BOOL2x1 BOOL2x2 BOOL2x3 BOOL2x4 + BOOL3x1 BOOL3x2 BOOL3x3 BOOL3x4 BOOL4x1 BOOL4x2 BOOL4x3 BOOL4x4 + half1x1 half1x2 half1x3 half1x4 half2x1 half2x2 half2x3 half2x4 + half3x1 half3x2 half3x3 half3x4 half4x1 half4x2 half4x3 half4x4 + int1x1 int1x2 int1x3 int1x4 int2x1 int2x2 int2x3 int2x4 + int3x1 int3x2 int3x3 int3x4 int4x1 int4x2 int4x3 int4x4 + float1x1 float1x2 float1x3 float1x4 float2x1 float2x2 float2x3 float2x4 + float3x1 float3x2 float3x3 float3x4 float4x1 float4x2 float4x3 float4x4 + double1x1 double1x2 double1x3 double1x4 double2x1 double2x2 double2x3 double2x4 + double3x1 double3x2 double3x3 double3x4 double4x1 double4x2 double4x3 double4x4 + ) + end + + def self.reserved + @reserved ||= Set.new %w( + auto catch char const_cast delete dynamic_cast enum explicit friend + goto long mutable new operator private protected public + reinterpret_cast short signed sizeof static_cast template this throw + try typename union unsigned using virtual + ) + end + + def self.builtins + @builtins ||= Set.new %w( + abort abs acos all AllMemoryBarrier AllMemoryBarrierWithGroupSync any + AppendStructuredBuffer asdouble asfloat asin asint asuint asuint atan + atan2 ceil CheckAccessFullyMapped clamp clip CompileShader + ConsumeStructuredBuffer cos cosh countbits cross D3DCOLORtoUBYTE4 ddx + ddx_coarse ddx_fine ddy ddy_coarse ddy_fine degrees determinant + DeviceMemoryBarrier DeviceMemoryBarrierWithGroupSync distance dot dst + errorf EvaluateAttributeAtCentroid EvaluateAttributeAtSample + EvaluateAttributeSnapped exp exp2 f16tof32 f32tof16 faceforward + firstbithigh firstbitlow floor fma fmod frac frexp fwidth + GetRenderTargetSampleCount GetRenderTargetSamplePosition + GlobalOrderedCountIncrement GroupMemoryBarrier + GroupMemoryBarrierWithGroupSync InterlockedAdd InterlockedAnd + InterlockedCompareExchange InterlockedCompareStore InterlockedExchange + InterlockedMax InterlockedMin InterlockedOr InterlockedXor isfinite + isinf isnan ldexp length lerp lit log log10 log2 mad max min modf + msad4 mul noise normalize pow printf Process2DQuadTessFactorsAvg + Process2DQuadTessFactorsMax Process2DQuadTessFactorsMin + ProcessIsolineTessFactors ProcessQuadTessFactorsAvg + ProcessQuadTessFactorsMax ProcessQuadTessFactorsMin + ProcessTriTessFactorsAvg ProcessTriTessFactorsMax + ProcessTriTessFactorsMin QuadReadLaneAt QuadSwapX QuadSwapY radians + rcp reflect refract reversebits round rsqrt saturate sign sin sincos + sinh smoothstep sqrt step tan tanh tex1D tex1D tex1Dbias tex1Dgrad + tex1Dlod tex1Dproj tex2D tex2D tex2Dbias tex2Dgrad tex2Dlod tex2Dproj + tex3D tex3D tex3Dbias tex3Dgrad tex3Dlod tex3Dproj texCUBE texCUBE + texCUBEbias texCUBEgrad texCUBElod texCUBEproj transpose trunc + WaveAllBitAnd WaveAllMax WaveAllMin WaveAllBitOr WaveAllBitXor + WaveAllEqual WaveAllProduct WaveAllSum WaveAllTrue WaveAnyTrue + WaveBallot WaveGetLaneCount WaveGetLaneIndex WaveGetOrderedIndex + WaveIsHelperLane WaveOnce WavePrefixProduct WavePrefixSum + WaveReadFirstLane WaveReadLaneAt + + SV_CLIPDISTANCE SV_CLIPDISTANCE0 SV_CLIPDISTANCE1 SV_CULLDISTANCE + SV_CULLDISTANCE0 SV_CULLDISTANCE1 SV_COVERAGE SV_DEPTH + SV_DEPTHGREATEREQUAL SV_DEPTHLESSEQUAL SV_DISPATCHTHREADID + SV_DOMAINLOCATION SV_GROUPID SV_GROUPINDEX SV_GROUPTHREADID + SV_GSINSTANCEID SV_INNERCOVERAGE SV_INSIDETESSFACTOR SV_INSTANCEID + SV_ISFRONTFACE SV_OUTPUTCONTROLPOINTID SV_POSITION SV_PRIMITIVEID + SV_RENDERTARGETARRAYINDEX SV_SAMPLEINDEX SV_STENCILREF SV_TESSFACTOR + SV_VERTEXID SV_VIEWPORTARRAYINDEX + + allow_uav_condition branch call domain earlydepthstencil fastopt + flatten forcecase instance loop maxtessfactor numthreads + outputcontrolpoints outputtopology partitioning patchconstantfunc + unroll + + BINORMAL BINORMAL0 BINORMAL1 BINORMAL2 BINORMAL3 BINORMAL4 + BLENDINDICES0 BLENDINDICES1 BLENDINDICES2 BLENDINDICES3 BLENDINDICES4 + BLENDWEIGHT0 BLENDWEIGHT1 BLENDWEIGHT2 BLENDWEIGHT3 BLENDWEIGHT4 COLOR + COLOR0 COLOR1 COLOR2 COLOR3 COLOR4 NORMAL NORMAL0 NORMAL1 NORMAL2 + NORMAL3 NORMAL4 POSITION POSITION0 POSITION1 POSITION2 POSITION3 + POSITION4 POSITIONT PSIZE0 PSIZE1 PSIZE2 PSIZE3 PSIZE4 TANGENT + TANGENT0 TANGENT1 TANGENT2 TANGENT3 TANGENT4 TESSFACTOR0 TESSFACTOR1 + TESSFACTOR2 TESSFACTOR3 TESSFACTOR4 TEXCOORD0 TEXCOORD1 TEXCOORD2 + TEXCOORD3 TEXCOORD4 + + FOG PSIZE + + VFACE VPOS + + DEPTH0 DEPTH1 DEPTH2 DEPTH3 DEPTH4 + ) + end + + ws = %r((?:\s|//.*?\n|/[*].*?[*]/)+) + id = /[a-zA-Z_][a-zA-Z0-9_]*/ + + state :root do + mixin :expr_whitespace + rule %r( + ([\w*\s]+?[\s*]) # return arguments + (#{id}) # function name + (\s*\([^;]*?\)(?:\s*:\s+#{id})?) # signature + (#{ws}?)({|;) # open brace or semicolon + )mx do |m| + # This is copied from the C lexer + recurse m[1] + token Name::Function, m[2] + recurse m[3] + recurse m[4] + token Punctuation, m[5] + if m[5] == ?{ + push :function + end + end + rule %r/\{/, Punctuation, :function + mixin :statements + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hocon.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hocon.rb new file mode 100644 index 0000000..881a969 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hocon.rb @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'json.rb' + + class HOCON < JSON + title 'HOCON' + desc "Human-Optimized Config Object Notation (https://github.com/lightbend/config)" + tag 'hocon' + filenames '*.hocon' + + state :comments do + # Comments + rule %r(//.*?$), Comment::Single + rule %r(#.*?$), Comment::Single + end + + prepend :root do + mixin :comments + end + + prepend :object do + # Keywords + rule %r/\b(?:include|url|file|classpath)\b/, Keyword + end + + state :name do + rule %r/("(?:\"|[^"\n])*?")(\s*)([:=]|(?={))/ do + groups Name::Label, Text::Whitespace, Punctuation + end + + rule %r/([-\w.]+)(\s*)([:=]|(?={))/ do + groups Name::Label, Text::Whitespace, Punctuation + end + end + + state :value do + mixin :comments + + rule %r/\n/, Text::Whitespace + rule %r/\s+/, Text::Whitespace + + mixin :constants + + # Interpolation + rule %r/[$][{][?]?/, Literal::String::Interpol, :interpolation + + # Strings + rule %r/"""/, Literal::String::Double, :multiline_string + rule %r/"/, Str::Double, :string + + rule %r/\[/, Punctuation, :array + rule %r/{/, Punctuation, :object + + # Symbols (only those not handled by JSON) + rule %r/[()=]/, Punctuation + + # Values + rule %r/[^$"{}\[\]:=,\+#`^?!@*&]+?/, Literal + end + + state :interpolation do + rule %r/[\w\-\.]+?/, Name::Variable + rule %r/}/, Literal::String::Interpol, :pop! + end + + prepend :string do + rule %r/[$][{][?]?/, Literal::String::Interpol, :interpolation + rule %r/[^\\"\${]+/, Literal::String::Double + end + + state :multiline_string do + rule %r/"[^"]{1,2}/, Literal::String::Double + mixin :string + rule %r/"""/, Literal::String::Double, :pop! + end + + prepend :constants do + # Numbers (handle the case where we have multiple periods, ie. IP addresses) + rule %r/\d+\.(\d+\.?){3,}/, Literal + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hql.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hql.rb new file mode 100644 index 0000000..ba7dab4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hql.rb @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- # + +module Rouge + module Lexers + load_lexer 'sql.rb' + + class HQL < SQL + title "HQL" + desc "Hive Query Language SQL dialect" + tag 'hql' + filenames '*.hql' + + def self.keywords + # sources: + # https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL + # https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF + @keywords ||= Set.new(%w( + ADD ADMIN AFTER ANALYZE ARCHIVE ASC BEFORE BUCKET BUCKETS CASCADE + CHANGE CLUSTER CLUSTERED CLUSTERSTATUS COLLECTION COLUMNS COMMENT + COMPACT COMPACTIONS COMPUTE CONCATENATE CONTINUE DATA DATABASES + DATETIME DAY DBPROPERTIES DEFERRED DEFINED DELIMITED DEPENDENCY DESC + DIRECTORIES DIRECTORY DISABLE DISTRIBUTE ELEM_TYPE ENABLE ESCAPED + EXCLUSIVE EXPLAIN EXPORT FIELDS FILE FILEFORMAT FIRST FORMAT FORMATTED + FUNCTIONS HOLD_DDLTIME HOUR IDXPROPERTIES IGNORE INDEX INDEXES INPATH + INPUTDRIVER INPUTFORMAT ITEMS JAR KEYS KEY_TYPE LIMIT LINES LOAD + LOCATION LOCK LOCKS LOGICAL LONG MAPJOIN MATERIALIZED METADATA MINUS + MINUTE MONTH MSCK NOSCAN NO_DROP OFFLINE OPTION OUTPUTDRIVER + OUTPUTFORMAT OVERWRITE OWNER PARTITIONED PARTITIONS PLUS PRETTY + PRINCIPALS PROTECTION PURGE READ READONLY REBUILD RECORDREADER + RECORDWRITER REGEXP RELOAD RENAME REPAIR REPLACE REPLICATION RESTRICT + REWRITE RLIKE ROLE ROLES SCHEMA SCHEMAS SECOND SEMI SERDE + SERDEPROPERTIES SERVER SETS SHARED SHOW SHOW_DATABASE SKEWED SORT + SORTED SSL STATISTICS STORED STREAMTABLE STRING STRUCT TABLES + TBLPROPERTIES TEMPORARY TERMINATED TINYINT TOUCH TRANSACTIONS UNARCHIVE + UNDO UNIONTYPE UNLOCK UNSET UNSIGNED URI USE UTC UTCTIMESTAMP + VALUE_TYPE VIEW WHILE YEAR IF + + ALL ALTER AND ARRAY AS AUTHORIZATION BETWEEN BIGINT BINARY BOOLEAN + BOTH BY CASE CAST CHAR COLUMN CONF CREATE CROSS CUBE CURRENT + CURRENT_DATE CURRENT_TIMESTAMP CURSOR DATABASE DATE DECIMAL DELETE + DESCRIBE DISTINCT DOUBLE DROP ELSE END EXCHANGE EXISTS EXTENDED + EXTERNAL FALSE FETCH FLOAT FOLLOWING FOR FROM FULL FUNCTION GRANT + GROUP GROUPING HAVING IF IMPORT IN INNER INSERT INT INTERSECT + INTERVAL INTO IS JOIN LATERAL LEFT LESS LIKE LOCAL MACRO MAP MORE + NONE NOT NULL OF ON OR ORDER OUT OUTER OVER PARTIALSCAN PARTITION + PERCENT PRECEDING PRESERVE PROCEDURE RANGE READS REDUCE REVOKE RIGHT + ROLLUP ROW ROWS SELECT SET SMALLINT TABLE TABLESAMPLE THEN TIMESTAMP + TO TRANSFORM TRIGGER TRUE TRUNCATE UNBOUNDED UNION UNIQUEJOIN UPDATE + USER USING UTC_TMESTAMP VALUES VARCHAR WHEN WHERE WINDOW WITH + + AUTOCOMMIT ISOLATION LEVEL OFFSET SNAPSHOT TRANSACTION WORK WRITE + + COMMIT ONLY REGEXP RLIKE ROLLBACK START + + ABORT KEY LAST NORELY NOVALIDATE NULLS RELY VALIDATE + + CACHE CONSTRAINT FOREIGN PRIMARY REFERENCES + + DETAIL DOW EXPRESSION OPERATOR QUARTER SUMMARY VECTORIZATION WEEK YEARS MONTHS WEEKS DAYS HOURS MINUTES SECONDS + + DAYOFWEEK EXTRACT FLOOR INTEGER PRECISION VIEWS + + TIMESTAMPTZ ZONE + + TIME NUMERIC + + NAMED_STRUCT CREATE_UNION + + ROUND BROUND FLOOR CEIL CEILING RAND EXP LN LOG10 LOG2 LOG POW POWER SQRT BIN + HEX UNHEX CONV ABS PMOD SIN ASIN COS ACOS TAN ATAN DEGREES RADIANS POSITIVE + NEGATIVE SIGN E PI FACTORIAL CBRT SHIFTLEFT SHIFTRIGHT SHIFTRIGHTUNSIGNED + GREATEST LEAST WIDTH_BUCKET SIZE SIZE MAP_KEYS MAP_VALUES ARRAY_CONTAINS + SORT_ARRAY BINARY CAST FROM_UNIXTIME UNIX_TIMESTAMP UNIX_TIMESTAMP + UNIX_TIMESTAMP TO_DATE YEAR QUARTER MONTH DAY DAYOFMONTH HOUR MINUTE SECOND + WEEKOFYEAR EXTRACT DATEDIFF DATE_ADD DATE_SUB FROM_UTC_TIMESTAMP + TO_UTC_TIMESTAMP CURRENT_DATE CURRENT_TIMESTAMP ADD_MONTHS LAST_DAY NEXT_DAY + TRUNC MONTHS_BETWEEN DATE_FORMAT IF ISNULL ISNOTNULL NVL COALESCE CASE WHEN + then else end NULLIF ASSERT_TRUE ASCII BASE64 CHARACTER_LENGTH CHR CONCAT + CONTEXT_NGRAMS CONCAT_WS CONCAT_WS DECODE ELT ENCODE FIELD FIND_IN_SET + FORMAT_NUMBER GET_JSON_OBJECT IN_FILE INSTR LENGTH LOCATE LOWER LCASE LPAD LTRIM + NGRAMS OCTET_LENGTH PARSE_URL PRINTF REGEXP_EXTRACT REGEXP_REPLACE REPEAT + REPLACE REVERSE RPAD RTRIM SENTENCES SPACE SPLIT STR_TO_MAP SUBSTR SUBSTRING + SUBSTRING_INDEX TRANSLATE TRIM UNBASE64 UPPER UCASE INITCAP LEVENSHTEIN SOUNDEX + MASK MASK_FIRST_N MASK_LAST_N MASK_SHOW_FIRST_N MASK_SHOW_LAST_N MASK_HASH + JAVA_METHOD REFLECT HASH CURRENT_USER LOGGED_IN_USER CURRENT_DATABASE MD5 SHA1 + SHA CRC32 SHA2 AES_ENCRYPT AES_DECRYPT VERSION COUNT SUM AVG MIN MAX VARIANCE + VAR_POP VAR_SAMP STDDEV_POP STDDEV_SAMP COVAR_POP COVAR_SAMP CORR PERCENTILE + PERCENTILE_APPROX PERCENTILE_APPROX REGR_AVGX REGR_AVGY REGR_COUNT + REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY HISTOGRAM_NUMERIC + COLLECT_SET COLLECT_LIST NTILE EXPLODE EXPLODE POSEXPLODE INLINE STACK + + JSON_TUPLE PARSE_URL_TUPLE + + XPATH XPATH_SHORT XPATH_INT XPATH_LONG XPATH_FLOAT XPATH_DOUBLE + XPATH_NUMBER XPATH_STRING GET_JSON_OBJECT JSON_TUPLE + + PARSE_URL_TUPLE + )) + end + + def self.keywords_type + # source: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types + @keywords_type ||= Set.new(%w( + TINYINT SMALLINT INT INTEGER BIGINT FLOAT DOUBLE PRECISION DECIMAL NUMERIC + TIMESTAMP DATE INTERVAL + STRING VARCHAR CHAR + BOOLEAN BINARY + ARRAY MAP STRUCT UNIONTYPE + )) + end + + prepend :root do + # a double-quoted string is a string literal in Hive QL. + rule %r/"/, Str::Double, :double_string + + # interpolation of variables through ${...} + rule %r/\$\{/, Name::Variable, :hive_variable + end + + prepend :single_string do + rule %r/\$\{/, Name::Variable, :hive_variable + rule %r/[^\\'\$]+/, Str::Single + end + + prepend :double_string do + rule %r/\$\{/, Name::Variable, :hive_variable + # double-quoted strings are string literals so need to change token + rule %r/"/, Str::Double, :pop! + rule %r/[^\\"\$]+/, Str::Double + end + + state :hive_variable do + rule %r/\}/, Name::Variable, :pop! + rule %r/[^\}]+/, Name::Variable + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/html.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/html.rb new file mode 100644 index 0000000..f50e8e7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/html.rb @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class HTML < RegexLexer + title "HTML" + desc "HTML, the markup language of the web" + tag 'html' + filenames '*.htm', '*.html', '*.xhtml', '*.cshtml', '*.razor' + mimetypes 'text/html', 'application/xhtml+xml' + + def self.detect?(text) + return true if text.doctype?(/\bhtml\b/i) + return false if text =~ /\A<\?xml\b/ + return true if text =~ /<\s*html\b/ + end + + start do + @javascript = Javascript.new(options) + @css = CSS.new(options) + end + + state :root do + rule %r/[^<&]+/m, Text + rule %r/&\S*?;/, Name::Entity + rule %r/<!DOCTYPE .*?>/im, Comment::Preproc + rule %r/<!\[CDATA\[.*?\]\]>/m, Comment::Preproc + rule %r/<!--/, Comment, :comment + rule %r/<\?.*?\?>/m, Comment::Preproc # php? really? + + rule %r/<\s*script\s*/m do + token Name::Tag + @javascript.reset! + push :script_content + push :tag + end + + rule %r/<\s*style\s*/m do + token Name::Tag + @css.reset! + @lang = @css + push :style_content + push :tag + end + + rule %r(</), Name::Tag, :tag_end + rule %r/</, Name::Tag, :tag_start + + rule %r(<\s*[\p{L}:_-][\p{Word}\p{Cf}:.·-]*), Name::Tag, :tag # opening tags + rule %r(<\s*/\s*[\p{L}:_-][\p{Word}\p{Cf}:.·-]*\s*>), Name::Tag # closing tags + end + + state :tag_end do + mixin :tag_end_end + rule %r/[\p{L}:_-][\p{Word}\p{Cf}:.·-]*/ do + token Name::Tag + goto :tag_end_end + end + end + + state :tag_end_end do + rule %r/\s+/, Text + rule %r/>/, Name::Tag, :pop! + end + + state :tag_start do + rule %r/\s+/, Text + + rule %r/[\p{L}:_-][\p{Word}\p{Cf}:.·-]*/ do + token Name::Tag + goto :tag + end + + rule(//) { goto :tag } + end + + state :comment do + rule %r/[^-]+/, Comment + rule %r/-->/, Comment, :pop! + rule %r/-/, Comment + end + + state :tag do + rule %r/\s+/m, Text + rule %r/[\p{L}:_\[\]()*.-][\p{Word}\p{Cf}:.·\[\]()*-]*\s*=\s*/m, Name::Attribute, :attr + rule %r/[\p{L}:_*#-][\p{Word}\p{Cf}:.·*#-]*/, Name::Attribute + rule %r(/?\s*>)m, Name::Tag, :pop! + end + + state :attr do + # TODO: are backslash escapes valid here? + rule %r/"/ do + token Str + goto :dq + end + + rule %r/'/ do + token Str + goto :sq + end + + rule %r/[^\s>]+/, Str, :pop! + end + + state :dq do + rule %r/"/, Str, :pop! + rule %r/[^"]+/, Str + end + + state :sq do + rule %r/'/, Str, :pop! + rule %r/[^']+/, Str + end + + state :script_content do + rule %r([^<]+) do + delegate @javascript + end + + rule %r(<\s*/\s*script\s*>)m, Name::Tag, :pop! + + rule %r(<) do + delegate @javascript + end + end + + state :style_content do + rule %r/[^<]+/ do + delegate @lang + end + + rule %r(<\s*/\s*style\s*>)m, Name::Tag, :pop! + + rule %r/</ do + delegate @lang + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/http.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/http.rb new file mode 100644 index 0000000..681358d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/http.rb @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class HTTP < RegexLexer + tag 'http' + title "HTTP" + desc 'http requests and responses' + + option :content, "the language for the content (default: auto-detect)" + + def self.http_methods + @http_methods ||= %w(GET POST PUT DELETE HEAD OPTIONS TRACE PATCH QUERY) + end + + def content_lexer + @content_lexer ||= (lexer_option(:content) || guess_content_lexer) + end + + def guess_content_lexer + return Lexers::PlainText unless @content_type + + Lexer.guess_by_mimetype(@content_type) + rescue Lexer::AmbiguousGuess + Lexers::PlainText + end + + start { @content_type = 'text/plain' } + + state :root do + # request + rule %r( + (#{HTTP.http_methods.join('|')})([ ]+) # method + ([^ ]+)([ ]+) # path + (HTTPS?)(/)(\d(?:\.\d)?)(\r?\n|$) # http version + )ox do + groups( + Name::Function, Text, + Name::Namespace, Text, + Keyword, Operator, Num, Text + ) + + push :headers + end + + # response + rule %r( + (HTTPS?)(/)(\d(?:\.\d)?)([ ]+) # http version + (\d{3})([ ]+)? # status + ([^\r\n]*)?(\r?\n|$) # status message + )x do + groups( + Keyword, Operator, Num, Text, + Num, Text, + Name::Exception, Text + ) + push :headers + end + end + + state :headers do + rule %r/([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|$)/ do |m| + key = m[1] + value = m[5] + if key.strip.casecmp('content-type').zero? + @content_type = value.split(';')[0].downcase + end + + groups Name::Attribute, Text, Punctuation, Text, Str, Text + end + + rule %r/([^\r\n]+)(\r?\n|$)/ do + groups Str, Text + end + + rule %r/\r?\n/, Text, :content + end + + state :content do + rule %r/.+/m do + delegate(content_lexer) + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hylang.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hylang.rb new file mode 100644 index 0000000..17de1a2 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/hylang.rb @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class HyLang < RegexLexer + title "HyLang" + desc "The HyLang programming language (hylang.org)" + + tag 'hylang' + aliases 'hy' + + filenames '*.hy' + + mimetypes 'text/x-hy', 'application/x-hy' + + def self.keywords + @keywords ||= Set.new %w( + False None True and as assert break class continue def + del elif else except finally for from global if import + in is lambda nonlocal not or pass raise return try + ) + end + + def self.builtins + @builtins ||= Set.new %w( + != % %= & &= * ** **= *= *map + + += , - -= -> ->> . / // + //= /= < << <<= <= = > >= >> + >>= @ @= ^ ^= accumulate apply as-> assoc butlast + calling-module-name car cdr chain coll? combinations comp complement compress cond + cons cons? constantly count cut cycle dec defclass defmacro defmacro! + defmacro/g! defmain defn defreader dict-comp disassemble dispatch-reader-macro distinct do doto + drop drop-last drop-while empty? eval eval-and-compile eval-when-compile even? every? filter + first flatten float? fn for* fraction genexpr gensym get group-by + identity if* if-not if-python2 inc input instance? integer integer-char? integer? + interleave interpose islice iterable? iterate iterator? juxt keyword keyword? last + let lif lif-not list* list-comp macro-error macroexpand macroexpand-1 map merge-with + multicombinations name neg? none? not-in not? nth numeric? odd? partition + permutations pos? product quasiquote quote range read read-str reduce remove + repeat repeatedly require rest second set-comp setv some string string? + symbol? take take-nth take-while tee unless unquote unquote-splicing when with* + with-decorator with-gensyms xor yield-from zero? zip zip-longest | |= ~ + ) + end + + identifier = %r([\w!$%*+,<=>?/.-]+) + keyword = %r([\w!\#$%*+,<=>?/.-]+) + + def name_token(name) + return Keyword if self.class.keywords.include?(name) + return Name::Builtin if self.class.builtins.include?(name) + nil + end + + state :root do + rule %r/;.*?$/, Comment::Single + rule %r/\s+/m, Text::Whitespace + + rule %r/-?\d+\.\d+/, Num::Float + rule %r/-?\d+/, Num::Integer + rule %r/0x-?[0-9a-fA-F]+/, Num::Hex + + rule %r/"(\\.|[^"])*"/, Str + rule %r/'#{keyword}/, Str::Symbol + rule %r/::?#{keyword}/, Name::Constant + rule %r/\\(.|[a-z]+)/i, Str::Char + + + rule %r/~@|[`\'#^~&@]/, Operator + + rule %r/(\()(\s*)(#{identifier})/m do |m| + token Punctuation, m[1] + token Text::Whitespace, m[2] + token(name_token(m[3]) || Name::Function, m[3]) + end + + rule identifier do |m| + token name_token(m[0]) || Name + end + + # vectors + rule %r/[\[\]]/, Punctuation + + # maps + rule %r/[{}]/, Punctuation + + # parentheses + rule %r/[()]/, Punctuation + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/idlang.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/idlang.rb new file mode 100644 index 0000000..6431ce4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/idlang.rb @@ -0,0 +1,312 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# vim: set ts=2 sw=2 et: + +module Rouge + module Lexers + class IDLang < RegexLexer + title "IDL" + desc "Interactive Data Language" + + tag 'idlang' + filenames '*.idl' + + name = /[_A-Z]\w*/i + kind_param = /(\d+|#{name})/ + exponent = /[dDeE][+-]\d+/ + + def self.exec_unit + @exec_unit ||= Set.new %w( + PRO FUNCTION + ) + end + + def self.keywords + @keywords ||= Set.new %w( + STRUCT INHERITS + RETURN CONTINUE BEGIN END BREAK GOTO + ) + end + + def self.standalone_statements + # Must not have a comma afterwards + @standalone_statements ||= Set.new %w( + COMMON FORWARD_FUNCTION + ) + end + + def self.decorators + # Must not have a comma afterwards + @decorators ||= Set.new %w( + COMPILE_OPT + ) + end + + def self.operators + @operators ||= Set.new %w( + AND= EQ= GE= GT= LE= LT= MOD= NE= OR= XOR= NOT= + ) + end + + def self.conditionals + @conditionals ||= Set.new %w( + OF DO ENDIF ENDELSE ENDFOR ENDFOREACH ENDWHILE ENDREP ENDCASE ENDSWITCH + IF THEN ELSE FOR FOREACH WHILE REPEAT UNTIL CASE SWITCH + AND EQ GE GT LE LT MOD NE OR XOR NOT + ) + end + + def self.routines + @routines ||= Set.new %w( + A_CORRELATE ABS ACOS ADAPT_HIST_EQUAL ALOG ALOG10 + AMOEBA ANNOTATE ARG_PRESENT ARRAY_EQUAL + ARRAY_INDICES ARROW ASCII_TEMPLATE ASIN ASSOC ATAN + AXIS BAR_PLOT BESELI BESELJ BESELK BESELY BETA + BILINEAR BIN_DATE BINARY_TEMPLATE BINDGEN BINOMIAL + BLAS_AXPY BLK_CON BOX_CURSOR BREAK BREAKPOINT + BROYDEN BYTARR BYTE BYTEORDER BYTSCL C_CORRELATE + CALDAT CALENDAR CALL_EXTERNAL CALL_FUNCTION + CALL_METHOD CALL_PROCEDURE CATCH CD CEIL CHEBYSHEV + CHECK_MATH CHISQR_CVF CHISQR_PDF CHOLDC CHOLSOL + CINDGEN CIR_3PNT CLOSE CLUST_WTS CLUSTER + COLOR_CONVERT COLOR_QUAN COLORMAP_APPLICABLE COMFIT + COMPLEX COMPLEXARR COMPLEXROUND + COMPUTE_MESH_NORMALS COND CONGRID CONJ + CONSTRAINED_MIN CONTOUR CONVERT_COORD CONVOL + COORD2TO3 CORRELATE COS COSH CRAMER CREATE_STRUCT + CREATE_VIEW CROSSP CRVLENGTH CT_LUMINANCE CTI_TEST + CURSOR CURVEFIT CV_COORD CVTTOBM CW_ANIMATE + CW_ANIMATE_GETP CW_ANIMATE_LOAD CW_ANIMATE_RUN + CW_ARCBALL CW_BGROUP CW_CLR_INDEX CW_COLORSEL + CW_DEFROI CW_FIELD CW_FILESEL CW_FORM CW_FSLIDER + CW_LIGHT_EDITOR CW_LIGHT_EDITOR_GET + CW_LIGHT_EDITOR_SET CW_ORIENT CW_PALETTE_EDITOR + CW_PALETTE_EDITOR_GET CW_PALETTE_EDITOR_SET + CW_PDMENU CW_RGBSLIDER CW_TMPL CW_ZOOM DBLARR + DCINDGEN DCOMPLEX DCOMPLEXARR DEFINE_KEY DEFROI + DEFSYSV DELETE_SYMBOL DELLOG DELVAR DERIV DERIVSIG + DETERM DEVICE DFPMIN DIALOG_MESSAGE + DIALOG_PICKFILE DIALOG_PRINTERSETUP + DIALOG_PRINTJOB DIALOG_READ_IMAGE + DIALOG_WRITE_IMAGE DICTIONARY DIGITAL_FILTER DILATE DINDGEN + DISSOLVE DIST DLM_LOAD DLM_REGISTER + DO_APPLE_SCRIPT DOC_LIBRARY DOUBLE DRAW_ROI EFONT + EIGENQL EIGENVEC ELMHES EMPTY ENABLE_SYSRTN EOF + ERASE ERODE ERRORF ERRPLOT EXECUTE EXIT EXP EXPAND + EXPAND_PATH EXPINT EXTRAC EXTRACT_SLICE F_CVF + F_PDF FACTORIAL FFT FILE_CHMOD FILE_DELETE + FILE_EXPAND_PATH FILE_MKDIR FILE_TEST FILE_WHICH + FILE_SEARCH PATH_SEP FILE_DIRNAME FILE_BASENAME + FILE_INFO FILE_MOVE FILE_COPY FILE_LINK FILE_POLL_INPUT + FILEPATH FINDFILE FINDGEN FINITE FIX FLICK FLOAT + FLOOR FLOW3 FLTARR FLUSH FORMAT_AXIS_VALUES + FORWARD_FUNCTION FREE_LUN FSTAT FULSTR FUNCT + FV_TEST FX_ROOT FZ_ROOTS GAMMA GAMMA_CT + GAUSS_CVF GAUSS_PDF GAUSS2DFIT GAUSSFIT GAUSSINT + GET_DRIVE_LIST GET_KBRD GET_LUN GET_SCREEN_SIZE + GET_SYMBOL GETENV GOTO GREG2JUL GRID_TPS GRID3 GS_ITER + H_EQ_CT H_EQ_INT HANNING HASH HEAP_GC HELP HILBERT + HIST_2D HIST_EQUAL HISTOGRAM HLS HOUGH HQR HSV + IBETA IDENTITY IDL_CONTAINER IDLANROI + IDLANROIGROUP IDLFFDICOM IDLFFDXF IDLFFLANGUAGECAT + IDLFFSHAPE IDLGRAXIS IDLGRBUFFER IDLGRCLIPBOARD + IDLGRCOLORBAR IDLGRCONTOUR IDLGRFONT IDLGRIMAGE + IDLGRLEGEND IDLGRLIGHT IDLGRMODEL IDLGRMPEG + IDLGRPALETTE IDLGRPATTERN IDLGRPLOT IDLGRPOLYGON + IDLGRPOLYLINE IDLGRPRINTER IDLGRROI IDLGRROIGROUP + IDLGRSCENE IDLGRSURFACE IDLGRSYMBOL + IDLGRTESSELLATOR IDLGRTEXT IDLGRVIEW + IDLGRVIEWGROUP IDLGRVOLUME IDLGRVRML IDLGRWINDOW + IGAMMA IMAGE_CONT IMAGE_STATISTICS IMAGINARY + INDGEN INT_2D INT_3D INT_TABULATED INTARR INTERPOL + INTERPOLATE INVERT IOCTL ISA ISHFT ISOCONTOUR + ISOSURFACE JOURNAL JUL2GREG JULDAY KEYWORD_SET KRIG2D + KURTOSIS KW_TEST L64INDGEN LABEL_DATE LABEL_REGION + LADFIT LAGUERRE LEEFILT LEGENDRE LINBCG LINDGEN + LINFIT LINKIMAGE LIST LIVE_CONTOUR LIVE_CONTROL + LIVE_DESTROY LIVE_EXPORT LIVE_IMAGE LIVE_INFO + LIVE_LINE LIVE_LOAD LIVE_OPLOT LIVE_PLOT + LIVE_PRINT LIVE_RECT LIVE_STYLE LIVE_SURFACE + LIVE_TEXT LJLCT LL_ARC_DISTANCE LMFIT LMGR LNGAMMA + LNP_TEST LOADCT LOCALE_GET LON64ARR LONARR LONG + LONG64 LSODE LU_COMPLEX LUDC LUMPROVE LUSOL + M_CORRELATE MACHAR MAKE_ARRAY MAKE_DLL MAP_2POINTS + MAP_CONTINENTS MAP_GRID MAP_IMAGE MAP_PATCH + MAP_PROJ_INFO MAP_SET MAX MATRIX_MULTIPLY MD_TEST MEAN + MEANABSDEV MEDIAN MEMORY MESH_CLIP MESH_DECIMATE + MESH_ISSOLID MESH_MERGE MESH_NUMTRIANGLES MESH_OBJ + MESH_SMOOTH MESH_SURFACEAREA MESH_VALIDATE + MESH_VOLUME MESSAGE MIN MIN_CURVE_SURF MK_HTML_HELP + MODIFYCT MOMENT MORPH_CLOSE MORPH_DISTANCE + MORPH_GRADIENT MORPH_HITORMISS MORPH_OPEN + MORPH_THIN MORPH_TOPHAT MPEG_CLOSE MPEG_OPEN + MPEG_PUT MPEG_SAVE MSG_CAT_CLOSE MSG_CAT_COMPILE + MSG_CAT_OPEN MULTI N_ELEMENTS N_PARAMS N_TAGS + NEWTON NORM OBJ_CLASS OBJ_DESTROY OBJ_ISA OBJ_NEW + OBJ_VALID OBJARR ON_ERROR ON_IOERROR ONLINE_HELP + OPEN OPENR OPENW OPENU OPLOT OPLOTERR ORDEREDHASH P_CORRELATE + PARTICLE_TRACE PCOMP PLOT PLOT_3DBOX PLOT_FIELD + PLOTERR PLOTS PNT_LINE POINT_LUN POLAR_CONTOUR + POLAR_SURFACE POLY POLY_2D POLY_AREA POLY_FIT + POLYFILL POLYFILLV POLYSHADE POLYWARP POPD POWELL + PRIMES PRINT PRINTF PRINTD PRODUCT PROFILE PROFILER + PROFILES PROJECT_VOL PS_SHOW_FONTS PSAFM PSEUDO + PTR_FREE PTR_NEW PTR_VALID PTRARR PUSHD QROMB + QROMO QSIMP QUERY_CSV R_CORRELATE R_TEST RADON RANDOMN + RANDOMU RANKS RDPIX READ READF READ_ASCII + READ_BINARY READ_BMP READ_CSV READ_DICOM READ_IMAGE + READ_INTERFILE READ_JPEG READ_PICT READ_PNG + READ_PPM READ_SPR READ_SRF READ_SYLK READ_TIFF + READ_WAV READ_WAVE READ_X11_BITMAP READ_XWD READS + READU REBIN RECALL_COMMANDS RECON3 REDUCE_COLORS + REFORM REGRESS REPLICATE REPLICATE_INPLACE + RESOLVE_ALL RESOLVE_ROUTINE RESTORE RETALL + REVERSE REWIND RK4 ROBERTS ROT ROTATE ROUND + ROUTINE_INFO RS_TEST S_TEST SAVE SAVGOL SCALE3 + SCALE3D SCOPE_LEVEL SCOPE_TRACEBACK SCOPE_VARFETCH + SCOPE_VARNAME SEARCH2D SEARCH3D SET_PLOT SET_SHADING + SET_SYMBOL SETENV SETLOG SETUP_KEYS SFIT + SHADE_SURF SHADE_SURF_IRR SHADE_VOLUME SHIFT SHOW3 + SHOWFONT SIGNUM SIN SINDGEN SINH SIZE SKEWNESS SKIPF + SLICER3 SLIDE_IMAGE SMOOTH SOBEL SOCKET SORT SPAWN + SPH_4PNT SPH_SCAT SPHER_HARM SPL_INIT SPL_INTERP + SPLINE SPLINE_P SPRSAB SPRSAX SPRSIN SPRSTP SQRT + STANDARDIZE STDDEV STOP STRARR STRCMP STRCOMPRESS + STREAMLINE STREGEX STRETCH STRING STRJOIN STRLEN + STRLOWCASE STRMATCH STRMESSAGE STRMID STRPOS + STRPUT STRSPLIT STRTRIM STRUCT_ASSIGN STRUCT_HIDE + STRUPCASE SURFACE SURFR SVDC SVDFIT SVSOL + SWAP_ENDIAN SWITCH SYSTIME T_CVF T_PDF T3D + TAG_NAMES TAN TANH TAPRD TAPWRT TEK_COLOR + TEMPORARY TETRA_CLIP TETRA_SURFACE TETRA_VOLUME + THIN THREED TIME_TEST2 TIMEGEN TM_TEST TOTAL TRACE + TRANSPOSE TRI_SURF TRIANGULATE TRIGRID TRIQL + TRIRED TRISOL TRNLOG TS_COEF TS_DIFF TS_FCAST + TS_SMOOTH TV TVCRS TVLCT TVRD TVSCL TYPENAME UINDGEN UINT + UINTARR UL64INDGEN ULINDGEN ULON64ARR ULONARR + ULONG ULONG64 UNIQ USERSYM VALUE_LOCATE VARIANCE + VAX_FLOAT VECTOR_FIELD VEL VELOVECT VERT_T3D VOIGT + VORONOI VOXEL_PROJ WAIT WARP_TRI WATERSHED WDELETE + WEOF WF_DRAW WHERE WIDGET_BASE WIDGET_BUTTON + WIDGET_CONTROL WIDGET_DRAW WIDGET_DROPLIST + WIDGET_EVENT WIDGET_INFO WIDGET_LABEL WIDGET_LIST + WIDGET_SLIDER WIDGET_TABLE WIDGET_TEXT WINDOW + WRITE_BMP WRITE_CSV WRITE_IMAGE WRITE_JPEG WRITE_NRIF + WRITE_PICT WRITE_PNG WRITE_PPM WRITE_SPR WRITE_SRF + WRITE_SYLK WRITE_TIFF WRITE_WAV WRITE_WAVE WRITEU + WSET WSHOW WTN WV_APPLET WV_CW_WAVELET WV_CWT + WV_DENOISE WV_DWT WV_FN_COIFLET WV_FN_DAUBECHIES + WV_FN_GAUSSIAN WV_FN_HAAR WV_FN_MORLET WV_FN_PAUL + WV_FN_SYMLET WV_IMPORT_DATA WV_IMPORT_WAVELET + WV_PLOT3D_WPS WV_PLOT_MULTIRES WV_PWT + WV_TOOL_DENOISE XBM_EDIT XDISPLAYFILE XDXF XFONT + XINTERANIMATE XLOADCT XMANAGER XMNG_TMPL XMTOOL + XOBJVIEW XPALETTE XPCOLOR XPLOT3D XREGISTERED XROI + XSQ_TEST XSURFACE XVAREDIT XVOLUME XVOLUME_ROTATE + XVOLUME_WRITE_IMAGE XYOUTS ZOOM ZOOM_24 + ) + end + + state :root do + rule %r/\s+/, Text::Whitespace + # Normal comments + rule %r/;.*$/, Comment::Single + rule %r/\,\s*\,/, Error + rule %r/\!#{name}/, Name::Variable::Global + + rule %r/[(),:\&\$]/, Punctuation + + ## Format statements are quite a strange beast. + ## Better process them in their own state. + #rule %r/\b(FORMAT)(\s*)(\()/mi do |m| + # token Keyword, m[1] + # token Text::Whitespace, m[2] + # token Punctuation, m[3] + # push :format_spec + #end + + rule %r( + [+-]? # sign + ( + (\d+[.]\d*|[.]\d+)(#{exponent})? + | \d+#{exponent} # exponent is mandatory + ) + (_#{kind_param})? # kind parameter + )xi, Num::Float + + rule %r/\d+(B|S|U|US|LL|L|ULL|UL)?/i, Num::Integer + rule %r/"[0-7]+(B|O|U|ULL|UL|LL|L)?/i, Num::Oct + rule %r/'[0-9A-F]+'X(B|S|US|ULL|UL|U|LL|L)?/i, Num::Hex + rule %r/(#{kind_param}_)?'/, Str::Single, :string_single + rule %r/(#{kind_param}_)?"/, Str::Double, :string_double + + rule %r{\#\#|\#|\&\&|\|\||/=|<=|>=|->|\@|\?|[-+*/<=~^{}]}, Operator + # Structures and the like + rule %r/(#{name})(\.)([^\s,]*)/i do + groups Name, Operator, Name + #delegate IDLang, m[3] + end + + rule %r/(function|pro)((?:\s|\$\s)+)/i do + groups Keyword, Text::Whitespace + push :funcname + end + + rule %r/#{name}/m do |m| + match = m[0].upcase + if self.class.keywords.include? match + token Keyword + elsif self.class.conditionals.include? match + token Keyword + elsif self.class.decorators.include? match + token Name::Decorator + elsif self.class.standalone_statements.include? match + token Keyword::Reserved + elsif self.class.operators.include? match + token Operator::Word + elsif self.class.routines.include? match + token Name::Builtin + else + token Name + end + end + + end + + state :funcname do + rule %r/#{name}/, Name::Function + + rule %r/\s+/, Text::Whitespace + rule %r/(:+|\$)/, Operator + rule %r/;.*/, Comment::Single + + # Be done with this state if we hit EOL or comma + rule %r/$/, Text::Whitespace, :pop! + rule %r/,/, Operator, :pop! + end + + state :string_single do + rule %r/[^']+/, Str::Single + rule %r/''/, Str::Escape + rule %r/'/, Str::Single, :pop! + end + + state :string_double do + rule %r/[^"]+/, Str::Double + rule %r/"/, Str::Double, :pop! + end + + state :format_spec do + rule %r/'/, Str::Single, :string_single + rule %r/"/, Str::Double, :string_double + rule %r/\(/, Punctuation, :format_spec + rule %r/\)/, Punctuation, :pop! + rule %r/,/, Punctuation + rule %r/\s+/, Text::Whitespace + # Edit descriptors could be seen as a kind of "format literal". + rule %r/[^\s'"(),]+/, Literal + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/idris.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/idris.rb new file mode 100644 index 0000000..99b4cb5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/idris.rb @@ -0,0 +1,210 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Idris < RegexLexer + title "Idris" + desc "The Idris programming language (idris-lang.org)" + + tag 'idris' + aliases 'idr' + filenames '*.idr' + mimetypes 'text/x-idris' + + def self.reserved_keywords + @reserved_keywords ||= %w( + _ data class instance namespace + infix[lr]? let where of with type + do if then else case in + ) + end + + def self.ascii + @ascii ||= %w( + NUL SOH [SE]TX EOT ENQ ACK BEL BS HT LF VT FF CR S[OI] DLE + DC[1-4] NAK SYN ETB CAN EM SUB ESC [FGRU]S SP DEL + ) + end + + def self.prelude_functions + @prelude_functions ||= %w( + abs acos all and any asin atan atan2 break ceiling compare concat + concatMap const cos cosh curry cycle div drop dropWhile elem + encodeFloat enumFrom enumFromThen enumFromThenTo enumFromTo exp + fail filter flip floor foldl foldl1 foldr foldr1 fromInteger fst + gcd getChar getLine head id init iterate last lcm length lines log + lookup map max maxBound maximum maybe min minBound minimum mod + negate not null or pi pred print product putChar putStr putStrLn + readFile recip repeat replicate return reverse scanl scanl1 sequence + sequence_ show sin sinh snd span splitAt sqrt succ sum tail take + takeWhile tan tanh uncurry unlines unwords unzip unzip3 words + writeFile zip zip3 zipWith zipWith3 + ) + end + + state :basic do + rule %r/\s+/m, Text + rule %r/{-#/, Comment::Preproc, :comment_preproc + rule %r/{-/, Comment::Multiline, :comment + rule %r/^\|\|\|.*$/, Comment::Doc + rule %r/--(?![!#\$\%&*+.\/<=>?@\^\|_~]).*?$/, Comment::Single + end + + # nested commenting + state :comment do + rule %r/-}/, Comment::Multiline, :pop! + rule %r/{-/, Comment::Multiline, :comment + rule %r/[^-{}]+/, Comment::Multiline + rule %r/[-{}]/, Comment::Multiline + end + state :comment_preproc do + rule %r/-}/, Comment::Preproc, :pop! + rule %r/{-/, Comment::Preproc, :comment + rule %r/[^-{}]+/, Comment::Preproc + rule %r/[-{}]/, Comment::Preproc + end + + state :directive do + rule %r/\%(default)\s+(total|partial)/, Keyword # totality + rule %r/\%(access)\s+(public|abstract|private|export)/, Keyword # export + rule %r/\%(language)\s+(.*)/, Keyword # language + rule %r/\%(provide)\s+.*\s+(with)\s+/, Keyword # type + end + + state :prelude do + rule %r/\b(Type|Exists|World|IO|IntTy|FTy|File|Mode|Dec|Bool|Ordering|Either|IsJust|List|Maybe|Nat|Stream|StrM|Not|Lazy|Inf)\s/, Keyword::Type + rule %r/\b(Eq|Ord|Num|MinBound|MaxBound|Integral|Applicative|Alternative|Cast|Foldable|Functor|Monad|Traversable|Uninhabited|Semigroup|Monoid)\s/, Name::Class + rule %r/\b(?:#{Idris.prelude_functions.join('|')})[ ]+(?![=:-])/, Name::Builtin + end + + state :root do + mixin :basic + mixin :directive + + rule %r/\bimport\b/, Keyword::Reserved, :import + rule %r/\bmodule\b/, Keyword::Reserved, :module + rule %r/\b(?:#{Idris.reserved_keywords.join('|')})\b/, Keyword::Reserved + rule %r/\b(Just|Nothing|Left|Right|True|False|LT|LTE|EQ|GT|GTE)\b/, Keyword::Constant + # function signature + rule %r/^[\w']+\s*:/, Name::Function + # should be below as you can override names defined in Prelude + mixin :prelude + rule %r/[_a-z][\w']*/, Name + rule %r/[A-Z][\w']*/, Keyword::Type + + # lambda operator + rule %r(\\(?![:!#\$\%&*+.\\/<=>?@^\|~-]+)), Name::Function + # special operators + rule %r((<-|::|->|=>|=)(?![:!#\$\%&*+.\\/<=>?@^\|~-]+)), Operator + # constructor/type operators + rule %r(:[:!#\$\%&*+.\\/<=>?@^\|~-]*), Operator + # other operators + rule %r([:!#\$\%&*+.\\/<=>?@^\|~-]+), Operator + + rule %r/\d+(\.\d+)?(e[+-]?\d+)?/i, Num::Float + rule %r/0o[0-7]+/i, Num::Oct + rule %r/0x[\da-f]+/i, Num::Hex + rule %r/\d+/, Num::Integer + + rule %r/'/, Str::Char, :character + rule %r/"/, Str, :string + + rule %r/\[\s*\]/, Keyword::Type + rule %r/\(\s*\)/, Name::Builtin + + # Quasiquotations + rule %r/(\[)([_a-z][\w']*)(\|)/ do |m| + token Operator, m[1] + token Name, m[2] + token Operator, m[3] + push :quasiquotation + end + + rule %r/[\[\](),;`{}]/, Punctuation + end + + state :import do + rule %r/\s+/, Text + rule %r/"/, Str, :string + # import X as Y + rule %r/([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][a-zA-Z0-9_.]*)/ do + groups( + Name::Namespace, # X + Text, Keyword, # as + Text, Name # Y + ) + pop! + end + + # import X (functions) + rule %r/([A-Z][\w.]*)(\s+)(\()/ do + groups( + Name::Namespace, # X + Text, + Punctuation # ( + ) + goto :funclist + end + + rule %r/[\w.]+/, Name::Namespace, :pop! + end + + state :module do + rule %r/\s+/, Text + # module X + rule %r/([A-Z][\w.]*)/, Name::Namespace, :pop! + end + + state :funclist do + mixin :basic + rule %r/[A-Z]\w*/, Keyword::Type + rule %r/(_[\w\']+|[a-z][\w\']*)/, Name::Function + rule %r/,/, Punctuation + rule %r/[:!#\$\%&*+.\\\/<=>?@^\|~-]+/, Operator + rule %r/\(/, Punctuation, :funclist + rule %r/\)/, Punctuation, :pop! + end + + state :character do + rule %r/\\/ do + token Str::Escape + goto :character_end + push :escape + end + + rule %r/./ do + token Str::Char + goto :character_end + end + end + + state :character_end do + rule %r/'/, Str::Char, :pop! + rule %r/./, Error, :pop! + end + + state :quasiquotation do + rule %r/\|\]/, Operator, :pop! + rule %r/[^\|]+/m, Text + rule %r/\|/, Text + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\/, Str::Escape, :escape + rule %r/[^\\"]+/, Str + end + + state :escape do + rule %r/[abfnrtv"'&\\]/, Str::Escape, :pop! + rule %r/\^[\]\[A-Z@\^_]/, Str::Escape, :pop! + rule %r/#{Idris.ascii.join('|')}/, Str::Escape, :pop! + rule %r/o[0-7]+/i, Str::Escape, :pop! + rule %r/x[\da-fA-F]+/i, Str::Escape, :pop! + rule %r/\d+/, Str::Escape, :pop! + rule %r/\s+\\/, Str::Escape, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/iecst.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/iecst.rb new file mode 100644 index 0000000..d1e1196 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/iecst.rb @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class IecST < RegexLexer + tag 'iecst' + title "IEC 61131-3 Structured Text" + desc 'Structured text is a programming language for PLCs (programmable logic controllers).' + filenames '*.awl', '*.scl', '*.st' + + mimetypes 'text/x-iecst' + + def self.keywords + blocks = %w( + PROGRAM CONFIGURATION INITIAL_STEP INTERFACE FUNCTION_BLOCK FUNCTION ACTION TRANSITION + TYPE STRUCT STEP NAMESPACE LIBRARY CHANNEL FOLDER RESOURCE + VAR_ACCESS VAR_CONFIG VAR_EXTERNAL VAR_GLOBAL VAR_INPUT VAR_IN_OUT VAR_OUTPUT VAR_TEMP VAR + CONST METHOD PROPERTY + CASE FOR IF REPEAT WHILE + ) + @keywords ||= Set.new %w( + AT BEGIN BY CONSTANT CONTINUE DO ELSE ELSIF EXIT EXTENDS FROM GET GOTO IMPLEMENTS JMP + NON_RETAIN OF PRIVATE PROTECTED PUBLIC RETAIN RETURN SET TASK THEN TO UNTIL USING WITH + __CATCH __ENDTRY __FINALLY __TRY + ) + blocks + blocks.map {|kw| "END_" + kw} + end + + def self.types + @types ||= Set.new %w( + ANY ARRAY BOOL BYTE POINTER STRING + DATE DATE_AND_TIME DT TIME TIME_OF_DAY TOD + INT DINT LINT SINT UINT UDINT ULINT USINT + WORD DWORD LWORD + REAL LREAL + ) + end + + def self.literals + @literals ||= Set.new %w(TRUE FALSE NULL) + end + + def self.operators + @operators ||= Set.new %w(AND EQ EXPT GE GT LE LT MOD NE NOT OR XOR) + end + + state :whitespace do + # Spaces + rule %r/\s+/m, Text + # // Comments + rule %r((//).*$\n?), Comment::Single + # (* Comments *) + rule %r(\(\*.*?\*\))m, Comment::Multiline + # { Comments } + rule %r(\{.*?\})m, Comment::Special + end + + state :root do + mixin :whitespace + + rule %r/'[^']+'/, Literal::String::Single + rule %r/"[^"]+"/, Literal::String::Symbol + rule %r/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/, Name::Variable::Magic + rule %r/\b(?:D|DT|T|TOD)#[\d_shmd:]*/i, Literal::Date + rule %r/\b(?:16#[\d_a-f]+|0x[\d_a-f]+)\b/i, Literal::Number::Hex + rule %r/\b2#[01_]+/, Literal::Number::Bin + rule %r/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i, Literal::Number::Float + rule %r/\b[\d.,_]+/, Literal::Number + + rule %r/\b[A-Z_]+\b/i do |m| + name = m[0].upcase + if self.class.keywords.include?(name) + token Keyword + elsif self.class.types.include?(name) + token Keyword::Type + elsif self.class.literals.include?(name) + token Literal + elsif self.class.operators.include?(name) + token Operator + else + token Name + end + end + + rule %r/S?R?:?=>?|&&?|\*\*?|<[=>]?|>=?|[-:^\/+#]/, Operator + rule %r/\b[a-z_]\w*(?=\s*\()/i, Name::Function + rule %r/\b[a-z_]\w*\b/i, Name + rule %r/[()\[\].,;]/, Punctuation + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/igorpro.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/igorpro.rb new file mode 100644 index 0000000..a542cea --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/igorpro.rb @@ -0,0 +1,664 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class IgorPro < RegexLexer + tag 'igorpro' + filenames '*.ipf' + mimetypes 'text/x-igorpro' + + title "IgorPro" + desc "WaveMetrics Igor Pro" + + def self.keywords + @keywords ||= Set.new %w( + structure endstructure + threadsafe static + macro proc window menu function end + if else elseif endif switch strswitch endswitch + break return continue + for endfor do while + case default + try catch endtry + abortonrte + ) + end + + def self.preprocessor + @preprocessor ||= Set.new %w( + pragma include + define ifdef ifndef undef + if elif else endif + ) + end + + def self.igorDeclarations + @igorDeclarations ||= Set.new %w( + variable string wave strconstant constant + nvar svar dfref funcref struct + char uchar int16 uint16 int32 uint32 int64 uint64 float double + ) + end + + def self.igorConstants + @igorConstants ||= Set.new %w( + nan inf + ) + end + + def self.igorFunction + @igorFunction ||= Set.new %w( + AddListItem AiryA AiryAD AiryB AiryBD AnnotationInfo + AnnotationList AxisInfo AxisList AxisValFromPixel + AxonTelegraphAGetDataNum AxonTelegraphAGetDataString + AxonTelegraphAGetDataStruct AxonTelegraphGetDataNum + AxonTelegraphGetDataString AxonTelegraphGetDataStruct + AxonTelegraphGetTimeoutMs AxonTelegraphSetTimeoutMs + Base64Decode Base64Encode Besseli Besselj Besselk + Bessely BinarySearch BinarySearchInterp CTabList + CaptureHistory CaptureHistoryStart CheckName + ChildWindowList CleanupName ContourInfo ContourNameList + ContourNameToWaveRef ContourZ ControlNameList + ConvertTextEncoding CountObjects CountObjectsDFR + CreationDate CsrInfo CsrWave CsrWaveRef CsrXWave + CsrXWaveRef DataFolderDir DataFolderExists + DataFolderRefStatus DataFolderRefsEqual DateToJulian + Dawson DimDelta DimOffset DimSize Faddeeva FetchURL + FindDimLabel FindListItem FontList FontSizeHeight + FontSizeStringWidth FresnelCos FresnelSin FuncRefInfo + FunctionInfo FunctionList FunctionPath + GISGetAllFileFormats GISSRefsAreEqual Gauss Gauss1D + Gauss2D GetBrowserLine GetBrowserSelection + GetDataFolder GetDataFolderDFR GetDefaultFont + GetDefaultFontSize GetDefaultFontStyle GetDimLabel + GetEnvironmentVariable GetErrMessage GetFormula + GetIndependentModuleName GetIndexedObjName + GetIndexedObjNameDFR GetKeyState GetRTErrMessage + GetRTError GetRTLocInfo GetRTLocation GetRTStackInfo + GetScrapText GetUserData GetWavesDataFolder + GetWavesDataFolderDFR GizmoInfo GizmoScale GrepList + GrepString GuideInfo GuideNameList HDF5AttributeInfo + HDF5DatasetInfo HDF5LibraryInfo HDF5TypeInfo Hash + HyperG0F1 HyperG1F1 HyperG2F1 HyperGNoise HyperGPFQ + IgorInfo IgorVersion ImageInfo ImageNameList + ImageNameToWaveRef IndependentModuleList IndexToScale + IndexedDir IndexedFile Inf Integrate1D Interp2D + Interp3D ItemsInList JacobiCn JacobiSn JulianToDate + Laguerre LaguerreA LaguerreGauss LambertW LayoutInfo + LegendreA ListMatch ListToTextWave ListToWaveRefWave + LowerStr MCC_AutoBridgeBal MCC_AutoFastComp + MCC_AutoPipetteOffset MCC_AutoSlowComp + MCC_AutoWholeCellComp MCC_GetBridgeBalEnable + MCC_GetBridgeBalResist MCC_GetFastCompCap + MCC_GetFastCompTau MCC_GetHolding MCC_GetHoldingEnable + MCC_GetMode MCC_GetNeutralizationCap + MCC_GetNeutralizationEnable MCC_GetOscKillerEnable + MCC_GetPipetteOffset MCC_GetPrimarySignalGain + MCC_GetPrimarySignalHPF MCC_GetPrimarySignalLPF + MCC_GetRsCompBandwidth MCC_GetRsCompCorrection + MCC_GetRsCompEnable MCC_GetRsCompPrediction + MCC_GetSecondarySignalGain MCC_GetSecondarySignalLPF + MCC_GetSlowCompCap MCC_GetSlowCompTau + MCC_GetSlowCompTauX20Enable MCC_GetSlowCurrentInjEnable + MCC_GetSlowCurrentInjLevel + MCC_GetSlowCurrentInjSetlTime MCC_GetWholeCellCompCap + MCC_GetWholeCellCompEnable MCC_GetWholeCellCompResist + MCC_SelectMultiClamp700B MCC_SetBridgeBalEnable + MCC_SetBridgeBalResist MCC_SetFastCompCap + MCC_SetFastCompTau MCC_SetHolding MCC_SetHoldingEnable + MCC_SetMode MCC_SetNeutralizationCap + MCC_SetNeutralizationEnable MCC_SetOscKillerEnable + MCC_SetPipetteOffset MCC_SetPrimarySignalGain + MCC_SetPrimarySignalHPF MCC_SetPrimarySignalLPF + MCC_SetRsCompBandwidth MCC_SetRsCompCorrection + MCC_SetRsCompEnable MCC_SetRsCompPrediction + MCC_SetSecondarySignalGain MCC_SetSecondarySignalLPF + MCC_SetSlowCompCap MCC_SetSlowCompTau + MCC_SetSlowCompTauX20Enable MCC_SetSlowCurrentInjEnable + MCC_SetSlowCurrentInjLevel + MCC_SetSlowCurrentInjSetlTime MCC_SetTimeoutMs + MCC_SetWholeCellCompCap MCC_SetWholeCellCompEnable + MCC_SetWholeCellCompResist MPFXEMGPeak + MPFXExpConvExpPeak MPFXGaussPeak MPFXLorenzianPeak + MPFXVoigtPeak MacroList MandelbrotPoint MarcumQ + MatrixCondition MatrixDet MatrixDot MatrixRank + MatrixTrace ModDate NVAR_Exists NaN NameOfWave + NewFreeDataFolder NewFreeWave NormalizeUnicode + NumVarOrDefault NumberByKey OperationList PICTInfo + PICTList PadString PanelResolution ParamIsDefault + ParseFilePath PathList Pi PixelFromAxisVal PolygonArea + PossiblyQuoteName ProcedureText RemoveByKey + RemoveEnding RemoveFromList RemoveListItem + ReplaceNumberByKey ReplaceString ReplaceStringByKey + SQL2DBinaryWaveToTextWave SQLAllocHandle SQLAllocStmt + SQLBinaryWavesToTextWave SQLBindCol SQLBindParameter + SQLBrowseConnect SQLBulkOperations SQLCancel + SQLCloseCursor SQLColAttributeNum SQLColAttributeStr + SQLColumnPrivileges SQLColumns SQLConnect + SQLDataSources SQLDescribeCol SQLDescribeParam + SQLDisconnect SQLDriverConnect SQLDrivers SQLEndTran + SQLError SQLExecDirect SQLExecute SQLFetch + SQLFetchScroll SQLForeignKeys SQLFreeConnect SQLFreeEnv + SQLFreeHandle SQLFreeStmt SQLGetConnectAttrNum + SQLGetConnectAttrStr SQLGetCursorName SQLGetDataNum + SQLGetDataStr SQLGetDescFieldNum SQLGetDescFieldStr + SQLGetDescRec SQLGetDiagFieldNum SQLGetDiagFieldStr + SQLGetDiagRec SQLGetEnvAttrNum SQLGetEnvAttrStr + SQLGetFunctions SQLGetInfoNum SQLGetInfoStr + SQLGetStmtAttrNum SQLGetStmtAttrStr SQLGetTypeInfo + SQLMoreResults SQLNativeSql SQLNumParams + SQLNumResultCols SQLNumResultRowsIfKnown + SQLNumRowsFetched SQLParamData SQLPrepare + SQLPrimaryKeys SQLProcedureColumns SQLProcedures + SQLPutData SQLReinitialize SQLRowCount + SQLSetConnectAttrNum SQLSetConnectAttrStr + SQLSetCursorName SQLSetDescFieldNum SQLSetDescFieldStr + SQLSetDescRec SQLSetEnvAttrNum SQLSetEnvAttrStr + SQLSetPos SQLSetStmtAttrNum SQLSetStmtAttrStr + SQLSpecialColumns SQLStatistics SQLTablePrivileges + SQLTables SQLTextWaveTo2DBinaryWave + SQLTextWaveToBinaryWaves SQLUpdateBoundValues + SQLXOPCheckState SVAR_Exists ScreenResolution Secs2Date + Secs2Time SelectNumber SelectString + SetEnvironmentVariable SortList SpecialCharacterInfo + SpecialCharacterList SpecialDirPath SphericalBessJ + SphericalBessJD SphericalBessY SphericalBessYD + SphericalHarmonics StartMSTimer StatsBetaCDF + StatsBetaPDF StatsBinomialCDF StatsBinomialPDF + StatsCMSSDCDF StatsCauchyCDF StatsCauchyPDF StatsChiCDF + StatsChiPDF StatsCorrelation StatsDExpCDF StatsDExpPDF + StatsEValueCDF StatsEValuePDF StatsErlangCDF + StatsErlangPDF StatsErrorPDF StatsExpCDF StatsExpPDF + StatsFCDF StatsFPDF StatsFriedmanCDF StatsGEVCDF + StatsGEVPDF StatsGammaCDF StatsGammaPDF + StatsGeometricCDF StatsGeometricPDF StatsHyperGCDF + StatsHyperGPDF StatsInvBetaCDF StatsInvBinomialCDF + StatsInvCMSSDCDF StatsInvCauchyCDF StatsInvChiCDF + StatsInvDExpCDF StatsInvEValueCDF StatsInvExpCDF + StatsInvFCDF StatsInvFriedmanCDF StatsInvGammaCDF + StatsInvGeometricCDF StatsInvKuiperCDF + StatsInvLogNormalCDF StatsInvLogisticCDF + StatsInvMaxwellCDF StatsInvMooreCDF + StatsInvNBinomialCDF StatsInvNCChiCDF StatsInvNCFCDF + StatsInvNormalCDF StatsInvParetoCDF StatsInvPoissonCDF + StatsInvPowerCDF StatsInvQCDF StatsInvQpCDF + StatsInvRayleighCDF StatsInvRectangularCDF + StatsInvSpearmanCDF StatsInvStudentCDF + StatsInvTopDownCDF StatsInvTriangularCDF + StatsInvUsquaredCDF StatsInvVonMisesCDF + StatsInvWeibullCDF StatsKuiperCDF StatsLogNormalCDF + StatsLogNormalPDF StatsLogisticCDF StatsLogisticPDF + StatsMaxwellCDF StatsMaxwellPDF StatsMedian + StatsMooreCDF StatsNBinomialCDF StatsNBinomialPDF + StatsNCChiCDF StatsNCChiPDF StatsNCFCDF StatsNCFPDF + StatsNCTCDF StatsNCTPDF StatsNormalCDF StatsNormalPDF + StatsParetoCDF StatsParetoPDF StatsPermute + StatsPoissonCDF StatsPoissonPDF StatsPowerCDF + StatsPowerNoise StatsPowerPDF StatsQCDF StatsQpCDF + StatsRayleighCDF StatsRayleighPDF StatsRectangularCDF + StatsRectangularPDF StatsRunsCDF StatsSpearmanRhoCDF + StatsStudentCDF StatsStudentPDF StatsTopDownCDF + StatsTriangularCDF StatsTriangularPDF StatsTrimmedMean + StatsUSquaredCDF StatsVonMisesCDF StatsVonMisesNoise + StatsVonMisesPDF StatsWaldCDF StatsWaldPDF + StatsWeibullCDF StatsWeibullPDF StopMSTimer + StrVarOrDefault StringByKey StringFromList StringList + StudentA StudentT TDMAddChannel TDMAddGroup + TDMAppendDataValues TDMAppendDataValuesTime + TDMChannelPropertyExists TDMCloseChannel TDMCloseFile + TDMCloseGroup TDMCreateChannelProperty TDMCreateFile + TDMCreateFileProperty TDMCreateGroupProperty + TDMFilePropertyExists TDMGetChannelPropertyNames + TDMGetChannelPropertyNum TDMGetChannelPropertyStr + TDMGetChannelPropertyTime TDMGetChannelPropertyType + TDMGetChannelStringPropertyLen TDMGetChannels + TDMGetDataType TDMGetDataValues TDMGetDataValuesTime + TDMGetFilePropertyNames TDMGetFilePropertyNum + TDMGetFilePropertyStr TDMGetFilePropertyTime + TDMGetFilePropertyType TDMGetFileStringPropertyLen + TDMGetGroupPropertyNames TDMGetGroupPropertyNum + TDMGetGroupPropertyStr TDMGetGroupPropertyTime + TDMGetGroupPropertyType TDMGetGroupStringPropertyLen + TDMGetGroups TDMGetLibraryErrorDescription + TDMGetNumChannelProperties TDMGetNumChannels + TDMGetNumDataValues TDMGetNumFileProperties + TDMGetNumGroupProperties TDMGetNumGroups + TDMGroupPropertyExists TDMOpenFile TDMOpenFileEx + TDMRemoveChannel TDMRemoveGroup TDMReplaceDataValues + TDMReplaceDataValuesTime TDMSaveFile + TDMSetChannelPropertyNum TDMSetChannelPropertyStr + TDMSetChannelPropertyTime TDMSetDataValues + TDMSetDataValuesTime TDMSetFilePropertyNum + TDMSetFilePropertyStr TDMSetFilePropertyTime + TDMSetGroupPropertyNum TDMSetGroupPropertyStr + TDMSetGroupPropertyTime TableInfo TagVal TagWaveRef + TextEncodingCode TextEncodingName TextFile + ThreadGroupCreate ThreadGroupGetDF ThreadGroupGetDFR + ThreadGroupRelease ThreadGroupWait ThreadProcessorCount + ThreadReturnValue TraceFromPixel TraceInfo + TraceNameList TraceNameToWaveRef TrimString URLDecode + URLEncode UnPadString UniqueName + UnsetEnvironmentVariable UpperStr VariableList Variance + VoigtFunc VoigtPeak WaveCRC WaveDims WaveExists + WaveHash WaveInfo WaveList WaveMax WaveMin WaveName + WaveRefIndexed WaveRefIndexedDFR WaveRefWaveToList + WaveRefsEqual WaveTextEncoding WaveType WaveUnits + WhichListItem WinList WinName WinRecreation WinType + XWaveName XWaveRefFromTrace ZernikeR abs acos acosh + alog area areaXY asin asinh atan atan2 atanh beta betai + binomial binomialNoise binomialln cabs ceil cequal + char2num chebyshev chebyshevU cmplx cmpstr conj cos + cosIntegral cosh cot coth cpowi csc csch date date2secs + datetime defined deltax digamma dilogarithm ei enoise + equalWaves erf erfc erfcw exists exp expInt + expIntegralE1 expNoise fDAQmx_AI_GetReader + fDAQmx_AO_UpdateOutputs fDAQmx_CTR_Finished + fDAQmx_CTR_IsFinished fDAQmx_CTR_IsPulseFinished + fDAQmx_CTR_ReadCounter fDAQmx_CTR_ReadWithOptions + fDAQmx_CTR_SetPulseFrequency fDAQmx_CTR_Start + fDAQmx_ConnectTerminals fDAQmx_DIO_Finished + fDAQmx_DIO_PortWidth fDAQmx_DIO_Read fDAQmx_DIO_Write + fDAQmx_DeviceNames fDAQmx_DisconnectTerminals + fDAQmx_ErrorString fDAQmx_ExternalCalDate + fDAQmx_NumAnalogInputs fDAQmx_NumAnalogOutputs + fDAQmx_NumCounters fDAQmx_NumDIOPorts fDAQmx_ReadChan + fDAQmx_ReadNamedChan fDAQmx_ResetDevice + fDAQmx_ScanGetAvailable fDAQmx_ScanGetNextIndex + fDAQmx_ScanStart fDAQmx_ScanStop fDAQmx_ScanWait + fDAQmx_ScanWaitWithTimeout fDAQmx_SelfCalDate + fDAQmx_SelfCalibration fDAQmx_WF_IsFinished + fDAQmx_WF_WaitUntilFinished fDAQmx_WaveformStart + fDAQmx_WaveformStop fDAQmx_WriteChan factorial fakedata + faverage faverageXY floor gamma gammaEuler gammaInc + gammaNoise gammln gammp gammq gcd gnoise hcsr hermite + hermiteGauss imag interp inverseERF inverseERFC leftx + limit ln log logNormalNoise lorentzianNoise magsqr max + mean median min mod norm note num2char num2istr num2str + numpnts numtype p2rect pcsr pnt2x poissonNoise poly + poly2D qcsr r2polar real rightx round sawtooth + scaleToIndex sec sech sign sin sinIntegral sinc sinh + sqrt str2num stringCRC stringmatch strlen strsearch sum + tan tango_close_device tango_command_inout + tango_compute_image_proj tango_get_dev_attr_list + tango_get_dev_black_box tango_get_dev_cmd_list + tango_get_dev_status tango_get_dev_timeout + tango_get_error_stack tango_open_device + tango_ping_device tango_read_attribute + tango_read_attributes tango_reload_dev_interface + tango_resume_attr_monitor tango_set_attr_monitor_period + tango_set_dev_timeout tango_start_attr_monitor + tango_stop_attr_monitor tango_suspend_attr_monitor + tango_write_attribute tango_write_attributes tanh ticks + time trunc vcsr viAssertIntrSignal viAssertTrigger + viAssertUtilSignal viClear viClose viDisableEvent + viDiscardEvents viEnableEvent viFindNext viFindRsrc + viGetAttribute viGetAttributeString viGpibCommand + viGpibControlATN viGpibControlREN viGpibPassControl + viGpibSendIFC viIn16 viIn32 viIn8 viLock viMapAddress + viMapTrigger viMemAlloc viMemFree viMoveIn16 viMoveIn32 + viMoveIn8 viMoveOut16 viMoveOut32 viMoveOut8 viOpen + viOpenDefaultRM viOut16 viOut32 viOut8 viPeek16 + viPeek32 viPeek8 viPoke16 viPoke32 viPoke8 viRead + viReadSTB viSetAttribute viSetAttributeString + viStatusDesc viTerminate viUnlock viUnmapAddress + viUnmapTrigger viUsbControlIn viUsbControlOut + viVxiCommandQuery viWaitOnEvent viWrite wnoise x2pnt + xcsr zcsr zeromq_client_connect zeromq_client_connect + zeromq_client_recv zeromq_client_recv + zeromq_client_send zeromq_client_send + zeromq_handler_start zeromq_handler_start + zeromq_handler_stop zeromq_handler_stop + zeromq_server_bind zeromq_server_bind + zeromq_server_recv zeromq_server_recv + zeromq_server_send zeromq_server_send zeromq_set + zeromq_set zeromq_stop zeromq_stop + zeromq_test_callfunction zeromq_test_callfunction + zeromq_test_serializeWave zeromq_test_serializeWave + zeta + ) + end + + def self.igorOperation + @igorOperation ||= Set.new %w( + APMath Abort AddFIFOData AddFIFOVectData AddMovieAudio + AddMovieFrame AddWavesToBoxPlot AddWavesToViolinPlot + AdoptFiles Append AppendBoxPlot AppendImage + AppendLayoutObject AppendMatrixContour AppendText + AppendToGizmo AppendToGraph AppendToLayout + AppendToTable AppendViolinPlot AppendXYZContour + AutoPositionWindow AxonTelegraphFindServers + BackgroundInfo Beep BoundingBall BoxSmooth BrowseURL + BuildMenu Button CWT Chart CheckBox CheckDisplayed + ChooseColor Close CloseHelp CloseMovie CloseProc + ColorScale ColorTab2Wave Concatenate ControlBar + ControlInfo ControlUpdate + ConvertGlobalStringTextEncoding ConvexHull Convolve + CopyDimLabels CopyFile CopyFolder CopyScales Correlate + CreateAliasShortcut CreateBrowser Cross CtrlBackground + CtrlFIFO CtrlNamedBackground Cursor CurveFit + CustomControl DAQmx_AI_SetupReader DAQmx_AO_SetOutputs + DAQmx_CTR_CountEdges DAQmx_CTR_OutputPulse + DAQmx_CTR_Period DAQmx_CTR_PulseWidth DAQmx_DIO_Config + DAQmx_DIO_WriteNewData DAQmx_Scan DAQmx_WaveformGen + DPSS DSPDetrend DSPPeriodogram DWT Debugger + DebuggerOptions DefaultFont DefaultGuiControls + DefaultGuiFont DefaultTextEncoding DefineGuide + DelayUpdate DeleteAnnotations DeleteFile DeleteFolder + DeletePoints Differentiate Display DisplayHelpTopic + DisplayProcedure DoAlert DoIgorMenu DoUpdate DoWindow + DoXOPIdle DrawAction DrawArc DrawBezier DrawLine + DrawOval DrawPICT DrawPoly DrawRRect DrawRect DrawText + DrawUserShape Duplicate DuplicateDataFolder EdgeStats + Edit ErrorBars EstimatePeakSizes Execute + ExecuteScriptText ExperimentInfo ExperimentModified + ExportGizmo Extract FBinRead FBinWrite FFT FGetPos + FIFO2Wave FIFOStatus FMaxFlat FPClustering FReadLine + FSetPos FStatus FTPCreateDirectory FTPDelete + FTPDownload FTPUpload FastGaussTransform FastOp + FilterFIR FilterIIR FindAPeak FindContour + FindDuplicates FindLevel FindLevels FindPeak + FindPointsInPoly FindRoots FindSequence FindValue + FuncFit FuncFitMD GBLoadWave GISCreateVectorLayer + GISGetRasterInfo GISGetRegisteredFileInfo + GISGetVectorLayerInfo GISLoadRasterData + GISLoadVectorData GISRasterizeVectorData + GISRegisterFile GISTransformCoords GISUnRegisterFile + GISWriteFieldData GISWriteGeometryData GISWriteRaster + GPIB2 GPIBRead2 GPIBReadBinary2 GPIBReadBinaryWave2 + GPIBReadWave2 GPIBWrite2 GPIBWriteBinary2 + GPIBWriteBinaryWave2 GPIBWriteWave2 GetAxis GetCamera + GetFileFolderInfo GetGizmo GetLastUserMenuInfo + GetMarquee GetMouse GetSelection GetWindow GraphNormal + GraphWaveDraw GraphWaveEdit Grep GroupBox + HDF5CloseFile HDF5CloseGroup HDF5ConvertColors + HDF5CreateFile HDF5CreateGroup HDF5CreateLink HDF5Dump + HDF5DumpErrors HDF5DumpState HDF5FlushFile + HDF5ListAttributes HDF5ListGroup HDF5LoadData + HDF5LoadGroup HDF5LoadImage HDF5OpenFile HDF5OpenGroup + HDF5SaveData HDF5SaveGroup HDF5SaveImage + HDF5TestOperation HDF5UnlinkObject HDFInfo + HDFReadImage HDFReadSDS HDFReadVset Hanning + HideIgorMenus HideInfo HideProcedures HideTools + HilbertTransform Histogram ICA IFFT ITCCloseAll2 + ITCCloseDevice2 ITCConfigAllChannels2 + ITCConfigChannel2 ITCConfigChannelReset2 + ITCConfigChannelUpload2 ITCFIFOAvailable2 + ITCFIFOAvailableAll2 ITCGetAllChannelsConfig2 + ITCGetChannelConfig2 ITCGetCurrentDevice2 + ITCGetDeviceInfo2 ITCGetDevices2 ITCGetErrorString2 + ITCGetSerialNumber2 ITCGetState2 ITCGetVersions2 + ITCInitialize2 ITCOpenDevice2 ITCReadADC2 + ITCReadDigital2 ITCReadTimer2 ITCSelectDevice2 + ITCSetDAC2 ITCSetGlobals2 ITCSetModes2 ITCSetState2 + ITCStartAcq2 ITCStopAcq2 ITCUpdateFIFOPosition2 + ITCUpdateFIFOPositionAll2 ITCWriteDigital2 + ImageAnalyzeParticles ImageBlend ImageBoundaryToMask + ImageComposite ImageEdgeDetection ImageFileInfo + ImageFilter ImageFocus ImageFromXYZ ImageGLCM + ImageGenerateROIMask ImageHistModification + ImageHistogram ImageInterpolate ImageLineProfile + ImageLoad ImageMorphology ImageRegistration + ImageRemoveBackground ImageRestore ImageRotate + ImageSave ImageSeedFill ImageSkeleton3d ImageSnake + ImageStats ImageThreshold ImageTransform + ImageUnwrapPhase ImageWindow IndexSort InsertPoints + Integrate Integrate2D IntegrateODE Interp3DPath + Interpolate2 Interpolate3D JCAMPLoadWave + JointHistogram KMeans KillBackground KillControl + KillDataFolder KillFIFO KillFreeAxis KillPICTs + KillPath KillStrings KillVariables KillWaves + KillWindow Label Layout LayoutPageAction + LayoutSlideShow Legend LinearFeedbackShiftRegister + ListBox LoadData LoadPICT LoadPackagePreferences + LoadWave Loess LombPeriodogram MCC_FindServers + MFR_CheckForNewBricklets MFR_CloseResultFile + MFR_CreateOverviewTable MFR_GetBrickletCount + MFR_GetBrickletData MFR_GetBrickletDeployData + MFR_GetBrickletMetaData MFR_GetBrickletRawData + MFR_GetReportTemplate MFR_GetResultFileMetaData + MFR_GetResultFileName MFR_GetVernissageVersion + MFR_GetVersion MFR_GetXOPErrorMessage + MFR_OpenResultFile + MLLoadWave Make MakeIndex MarkPerfTestTime + MatrixConvolve MatrixCorr MatrixEigenV MatrixFilter + MatrixGLM MatrixGaussJ MatrixInverse MatrixLLS + MatrixLUBkSub MatrixLUD MatrixLUDTD MatrixLinearSolve + MatrixLinearSolveTD MatrixMultiply MatrixOP + MatrixSVBkSub MatrixSVD MatrixSchur MatrixSolve + MatrixTranspose MeasureStyledText Modify ModifyBoxPlot + ModifyBrowser ModifyCamera ModifyContour ModifyControl + ModifyControlList ModifyFreeAxis ModifyGizmo + ModifyGraph ModifyImage ModifyLayout ModifyPanel + ModifyTable ModifyViolinPlot ModifyWaterfall + MoveDataFolder MoveFile MoveFolder MoveString + MoveSubwindow MoveVariable MoveWave MoveWindow + MultiTaperPSD MultiThreadingControl NC_CloseFile + NC_DumpErrors NC_Inquire NC_ListAttributes + NC_ListObjects NC_LoadData NC_OpenFile NI4882 + NILoadWave NeuralNetworkRun NeuralNetworkTrain + NewCamera NewDataFolder NewFIFO NewFIFOChan + NewFreeAxis NewGizmo NewImage NewLayout NewMovie + NewNotebook NewPanel NewPath NewWaterfall Note + Notebook NotebookAction Open OpenHelp OpenNotebook + Optimize PCA ParseOperationTemplate PathInfo + PauseForUser PauseUpdate PlayMovie PlayMovieAction + PlaySound PopupContextualMenu PopupMenu Preferences + PrimeFactors Print PrintGraphs PrintLayout + PrintNotebook PrintSettings PrintTable Project + PulseStats PutScrapText Quit RatioFromNumber + Redimension Remez Remove RemoveContour RemoveFromGizmo + RemoveFromGraph RemoveFromLayout RemoveFromTable + RemoveImage RemoveLayoutObjects RemovePath Rename + RenameDataFolder RenamePICT RenamePath RenameWindow + ReorderImages ReorderTraces ReplaceText ReplaceWave + Resample ResumeUpdate Reverse Rotate SQLHighLevelOp + STFT Save SaveData SaveExperiment SaveGizmoCopy + SaveGraphCopy SaveNotebook SavePICT + SavePackagePreferences SaveTableCopy + SetActiveSubwindow SetAxis SetBackground + SetDashPattern SetDataFolder SetDimLabel SetDrawEnv + SetDrawLayer SetFileFolderInfo SetFormula + SetIdlePeriod SetIgorHook SetIgorMenuMode + SetIgorOption SetMarquee SetProcessSleep SetRandomSeed + SetScale SetVariable SetWaveLock SetWaveTextEncoding + SetWindow ShowIgorMenus ShowInfo ShowTools Silent + Sleep Slider Smooth SmoothCustom Sort SortColumns + SoundInRecord SoundInSet SoundInStartChart + SoundInStatus SoundInStopChart SoundLoadWave + SoundSaveWave SphericalInterpolate + SphericalTriangulate SplitString SplitWave Stack + StackWindows StatsANOVA1Test StatsANOVA2NRTest + StatsANOVA2RMTest StatsANOVA2Test + StatsAngularDistanceTest StatsChiTest + StatsCircularCorrelationTest StatsCircularMeans + StatsCircularMoments StatsCircularTwoSampleTest + StatsCochranTest StatsContingencyTable StatsDIPTest + StatsDunnettTest StatsFTest StatsFriedmanTest + StatsHodgesAjneTest StatsJBTest StatsKDE StatsKSTest + StatsKWTest StatsKendallTauTest + StatsLinearCorrelationTest StatsLinearRegression + StatsMultiCorrelationTest StatsNPMCTest + StatsNPNominalSRTest StatsQuantiles + StatsRankCorrelationTest StatsResample StatsSRTest + StatsSample StatsScheffeTest StatsShapiroWilkTest + StatsSignTest StatsTTest StatsTukeyTest + StatsVariancesTest StatsWRCorrelationTest + StatsWatsonUSquaredTest StatsWatsonWilliamsTest + StatsWheelerWatsonTest StatsWilcoxonRankTest String + StructFill StructGet StructPut SumDimension SumSeries + TDMLoadData TDMSaveData TabControl Tag TextBox + ThreadGroupPutDF ThreadStart TickWavesFromAxis Tile + TileWindows TitleBox ToCommandLine ToolsGrid + Triangulate3d URLRequest Unwrap VDT2 VDTClosePort2 + VDTGetPortList2 VDTGetStatus2 VDTOpenPort2 + VDTOperationsPort2 VDTRead2 VDTReadBinary2 + VDTReadBinaryWave2 VDTReadHex2 VDTReadHexWave2 + VDTReadWave2 VDTTerminalPort2 VDTWrite2 + VDTWriteBinary2 VDTWriteBinaryWave2 VDTWriteHex2 + VDTWriteHexWave2 VDTWriteWave2 VISAControl VISARead + VISAReadBinary VISAReadBinaryWave VISAReadWave + VISAWrite VISAWriteBinary VISAWriteBinaryWave + VISAWriteWave ValDisplay Variable WaveMeanStdv + WaveStats WaveTransform WignerTransform WindowFunction + XLLoadWave cd dir fprintf printf pwd sprintf sscanf + wfprintf + ) + end + + def self.object_name + /\b[a-z][a-z0-9_\.]*?\b/i + end + + object = self.object_name + noLineBreak = /(?:[ \t]|(?:\\\s*[\r\n]))+/ + operator = %r([\#$~!%^&*+=\|?:<>/-]) + punctuation = /[{}()\[\],.;]/ + number_float= /0x[a-f0-9]+/i + number_hex = /\d+\.\d+(e[\+\-]?\d+)?/ + number_int = /[\d]+(?:_\d+)*/ + + state :root do + rule %r(//), Comment, :comments + + rule %r/#{object}/ do |m| + if m[0].downcase =~ /function/ + token Keyword::Declaration + push :parse_function + elsif self.class.igorDeclarations.include? m[0].downcase + token Keyword::Declaration + push :parse_variables + elsif self.class.keywords.include? m[0].downcase + token Keyword + elsif self.class.igorConstants.include? m[0].downcase + token Keyword::Constant + elsif self.class.igorFunction.include? m[0].downcase + token Name::Builtin + elsif self.class.igorOperation.include? m[0].downcase + token Keyword::Reserved + push :operationFlags + elsif m[0].downcase =~ /\b(v|s|w)_[a-z]+[a-z0-9]*/ + token Name::Constant + else + token Name + end + end + + mixin :preprocessor + mixin :waveFlag + + mixin :characters + mixin :numbers + mixin :whitespace + end + + state :preprocessor do + rule %r((\#)(#{object})) do |m| + if self.class.preprocessor.include? m[2].downcase + token Comment::Preproc + else + token Punctuation, m[1] #i.e. ModuleFunctions + token Name, m[2] + end + + + end + end + + state :assignment do + mixin :whitespace + rule %r/\"/, Literal::String::Double, :string1 #punctuation for string + mixin :string2 + rule %r/#{number_float}/, Literal::Number::Float, :pop! + rule %r/#{number_int}/, Literal::Number::Integer, :pop! + rule %r/[\(\[\{][^\)\]\}]+[\)\]\}]/, Generic, :pop! + rule %r/[^\s\/\(]+/, Generic, :pop! + rule(//) { pop! } + end + + state :parse_variables do + mixin :whitespace + rule %r/[=]/, Punctuation, :assignment + rule object, Name::Variable + rule %r/[\[\]]/, Punctuation # optional variables in functions + rule %r/[,]/, Punctuation, :parse_variables + rule %r/\)/, Punctuation, :pop! # end of function + rule %r([/][a-z]+)i, Keyword::Pseudo, :parse_variables + rule(//) { pop! } + end + + state :parse_function do + rule %r([/][a-z]+)i, Keyword::Pseudo # only one flag + mixin :whitespace + rule object, Name::Function + rule %r/[\(]/, Punctuation, :parse_variables + rule(//) { pop! } + end + + state :operationFlags do + rule %r/#{noLineBreak}/, Text + rule %r/[=]/, Punctuation, :assignment + rule %r([/][a-z]+)i, Keyword::Pseudo, :operationFlags + rule %r/(as)(\s*)(#{object})/i do + groups Keyword::Type, Text, Name::Label + end + rule(//) { pop! } + end + + # inline variable assignments (i.e. for Make) with strict syntax + state :waveFlag do + rule %r( + (/(?:wave|X|Y)) + (\s*)(=)(\s*) + (#{object}) + )ix do |m| + token Keyword::Pseudo, m[1] + token Text, m[2] + token Punctuation, m[3] + token Text, m[4] + token Name::Variable, m[5] + end + end + + state :characters do + rule %r/\s/, Text + rule %r/#{operator}/, Operator + rule %r/#{punctuation}/, Punctuation + rule %r/\"/, Literal::String::Double, :string1 #punctuation for string + mixin :string2 + end + + state :numbers do + rule %r/#{number_float}/, Literal::Number::Float + rule %r/#{number_hex}/, Literal::Number::Hex + rule %r/#{number_int}/, Literal::Number::Integer + end + + state :whitespace do + rule %r/#{noLineBreak}/, Text + end + + state :string1 do + rule %r/%\w\b/, Literal::String::Other + rule %r/\\\\/, Literal::String::Escape + rule %r/\\\"/, Literal::String::Escape + rule %r/\\/, Literal::String::Escape + rule %r/[^"]/, Literal::String + rule %r/\"/, Literal::String::Double, :pop! #punctuation for string + end + + state :string2 do + rule %r/\'[^']*\'/, Literal::String::Single + end + + state :comments do + rule %r{([/]\s*)([@]\w+\b)}i do + # doxygen comments + groups Comment, Comment::Special + end + rule %r/[^\r\n]/, Comment + rule(//) { pop! } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ini.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ini.rb new file mode 100644 index 0000000..86adb38 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ini.rb @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class INI < RegexLexer + title "INI" + desc 'the INI configuration format' + tag 'ini' + + filenames '*.ini', '*.INI', '*.gitconfig', '*.cfg', '.editorconfig', '*.inf' + mimetypes 'text/x-ini', 'text/inf' + + identifier = /[\w\-.]+/ + + state :basic do + rule %r/[;#].*?\n/, Comment + rule %r/\s+/, Text + rule %r/\\\n/, Str::Escape + end + + state :root do + mixin :basic + + rule %r/(#{identifier})(\s*)(=)/ do + groups Name::Property, Text, Punctuation + push :value + end + + rule %r/\[.*?\]/, Name::Namespace + end + + state :value do + rule %r/\n/, Text, :pop! + mixin :basic + rule %r/"/, Str, :dq + rule %r/'.*?'/, Str + mixin :esc_str + rule %r/[^\\\n]+/, Str + end + + state :dq do + rule %r/"/, Str, :pop! + mixin :esc_str + rule %r/[^\\"]+/m, Str + end + + state :esc_str do + rule %r/\\./m, Str::Escape + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/io.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/io.rb new file mode 100644 index 0000000..9e049a9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/io.rb @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class IO < RegexLexer + tag 'io' + title "Io" + desc 'The IO programming language (http://iolanguage.com)' + mimetypes 'text/x-iosrc' + filenames '*.io' + + def self.detect?(text) + return true if text.shebang? 'io' + end + + def self.constants + @constants ||= Set.new %w(nil false true) + end + + def self.builtins + @builtins ||= Set.new %w( + args call clone do doFile doString else elseif for if list + method return super then + ) + end + + state :root do + rule %r/\s+/m, Text + rule %r(//.*), Comment::Single + rule %r(#.*), Comment::Single + rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline + rule %r(/[+]), Comment::Multiline, :nested_comment + + rule %r/"(\\\\|\\"|[^"])*"/, Str + + rule %r(:?:=), Keyword + rule %r/[()]/, Punctuation + + rule %r([-=;,*+><!/|^.%&\[\]{}]), Operator + + rule %r/[A-Z]\w*/, Name::Class + + rule %r/[a-z_]\w*/ do |m| + name = m[0] + + if self.class.constants.include? name + token Keyword::Constant + elsif self.class.builtins.include? name + token Name::Builtin + else + token Name + end + end + + rule %r((\d+[.]?\d*|\d*[.]\d+)(e[+-]?[0-9]+)?)i, Num::Float + rule %r/\d+/, Num::Integer + + rule %r/@@?/, Keyword + end + + state :nested_comment do + rule %r([^/+]+)m, Comment::Multiline + rule %r(/[+]), Comment::Multiline, :nested_comment + rule %r([+]/), Comment::Multiline, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/irb.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/irb.rb new file mode 100644 index 0000000..b3720ec --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/irb.rb @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'console.rb' + + class IRBLexer < ConsoleLexer + tag 'irb' + aliases 'pry' + + desc 'Shell sessions in IRB or Pry' + + # unlike the superclass, we do not accept any options + @option_docs = {} + + def output_lexer + @output_lexer ||= IRBOutputLexer.new(@options) + end + + def lang_lexer + @lang_lexer ||= Ruby.new(@options) + end + + def prompt_regex + %r( + ^.*? + ( + (irb|pry).*?[>"*] | + [>"*]> + ) + )x + end + + def allow_comments? + true + end + end + + load_lexer 'ruby.rb' + class IRBOutputLexer < Ruby + tag 'irb_output' + + start do + push :stdout + end + + state :has_irb_output do + rule %r(=>), Punctuation, :pop! + rule %r/.+?(\n|$)/, Generic::Output + end + + state :irb_error do + rule %r/.+?(\n|$)/, Generic::Error + mixin :has_irb_output + end + + state :stdout do + rule %r/\w+?(Error|Exception):.+?(\n|$)/, Generic::Error, :irb_error + mixin :has_irb_output + end + + prepend :root do + rule %r/#</, Keyword::Type, :irb_object + end + + state :irb_object do + rule %r/>/, Keyword::Type, :pop! + mixin :root + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/isabelle.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/isabelle.rb new file mode 100644 index 0000000..6b97b22 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/isabelle.rb @@ -0,0 +1,251 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true +# Lexer adapted from https://github.com/pygments/pygments/blob/ad55974ce83b85dbb333ab57764415ab84169461/pygments/lexers/theorem.py + +module Rouge + module Lexers + class Isabelle < RegexLexer + title "Isabelle" + desc 'Isabelle theories (isabelle.in.tum.de)' + tag 'isabelle' + aliases 'isa', 'Isabelle' + filenames '*.thy' + mimetypes 'text/x-isabelle' + + def self.keyword_minor + @keyword_minor ||= Set.new %w( + and assumes attach avoids binder checking + class_instance class_relation code_module congs + constant constrains datatypes defines file fixes + for functions hints identifier if imports in + includes infix infixl infixr is keywords lazy + module_name monos morphisms no_discs_sels notes + obtains open output overloaded parametric permissive + pervasive rep_compat shows structure type_class + type_constructor unchecked unsafe where + ) + end + + def self.keyword_diag + @keyword_diag ||= Set.new %w( + ML_command ML_val class_deps code_deps code_thms + display_drafts find_consts find_theorems find_unused_assms + full_prf help locale_deps nitpick pr prf + print_abbrevs print_antiquotations print_attributes + print_binds print_bnfs print_bundles + print_case_translations print_cases print_claset + print_classes print_codeproc print_codesetup + print_coercions print_commands print_context + print_defn_rules print_dependencies print_facts + print_induct_rules print_inductives print_interps + print_locale print_locales print_methods print_options + print_orders print_quot_maps print_quotconsts + print_quotients print_quotientsQ3 print_quotmapsQ3 + print_rules print_simpset print_state print_statement + print_syntax print_theorems print_theory print_trans_rules + prop pwd quickcheck refute sledgehammer smt_status + solve_direct spark_status term thm thm_deps thy_deps + try try0 typ unused_thms value values welcome + print_ML_antiquotations print_term_bindings values_prolog + ) + end + + def self.keyword_thy + @keyword_thy ||= Set.new %w(theory begin end) + end + + def self.keyword_section + @keyword_section ||= Set.new %w(header chapter) + end + + def self.keyword_subsection + @keyword_subsection ||= Set.new %w(section subsection subsubsection sect subsect subsubsect) + end + + def self.keyword_theory_decl + @keyword_theory_decl ||= Set.new %w( + ML ML_file abbreviation adhoc_overloading arities + atom_decl attribute_setup axiomatization bundle + case_of_simps class classes classrel codatatype + code_abort code_class code_const code_datatype + code_identifier code_include code_instance code_modulename + code_monad code_printing code_reflect code_reserved + code_type coinductive coinductive_set consts context + datatype datatype_new datatype_new_compat declaration + declare default_sort defer_recdef definition defs + domain domain_isomorphism domaindef equivariance + export_code extract extract_type fixrec fun + fun_cases hide_class hide_const hide_fact hide_type + import_const_map import_file import_tptp import_type_map + inductive inductive_set instantiation judgment lemmas + lifting_forget lifting_update local_setup locale + method_setup nitpick_params no_adhoc_overloading + no_notation no_syntax no_translations no_type_notation + nominal_datatype nonterminal notation notepad oracle + overloading parse_ast_translation parse_translation + partial_function primcorec primrec primrec_new + print_ast_translation print_translation quickcheck_generator + quickcheck_params realizability realizers recdef record + refute_params setup setup_lifting simproc_setup + simps_of_case sledgehammer_params spark_end spark_open + spark_open_siv spark_open_vcg spark_proof_functions + spark_types statespace syntax syntax_declaration text + text_raw theorems translations type_notation + type_synonym typed_print_translation typedecl hoarestate + install_C_file install_C_types wpc_setup c_defs c_types + memsafe SML_export SML_file SML_import approximate + bnf_axiomatization cartouche datatype_compat + free_constructors functor nominal_function + nominal_termination permanent_interpretation + binds defining smt2_status term_cartouche + boogie_file text_cartouche + ) + end + + def self.keyword_theory_script + @keyword_theory_script ||= Set.new %w(inductive_cases inductive_simps) + end + + def self.keyword_theory_goal + @keyword_theory_goal ||= Set.new %w( + ax_specification bnf code_pred corollary cpodef + crunch crunch_ignore + enriched_type function instance interpretation lemma + lift_definition nominal_inductive nominal_inductive2 + nominal_primrec pcpodef primcorecursive + quotient_definition quotient_type recdef_tc rep_datatype + schematic_corollary schematic_lemma schematic_theorem + spark_vc specification subclass sublocale termination + theorem typedef wrap_free_constructors + ) + end + + def self.keyword_qed + @keyword_qed ||= Set.new %w(by done qed) + end + + def self.keyword_abandon_proof + @keyword_abandon_proof ||= Set.new %w(sorry oops) + end + + def self.keyword_proof_goal + @keyword_proof_goal ||= Set.new %w(have hence interpret) + end + + def self.keyword_proof_block + @keyword_proof_block ||= Set.new %w(next proof) + end + + def self.keyword_proof_chain + @keyword_proof_chain ||= Set.new %w(finally from then ultimately with) + end + + def self.keyword_proof_decl + @keyword_proof_decl ||= Set.new %w( + ML_prf also include including let moreover note + txt txt_raw unfolding using write + ) + end + + def self.keyword_proof_asm + @keyword_proof_asm ||= Set.new %w(assume case def fix presume) + end + + def self.keyword_proof_asm_goal + @keyword_proof_asm_goal ||= Set.new %w(guess obtain show thus) + end + + def self.keyword_proof_script + @keyword_proof_script ||= Set.new %w(apply apply_end apply_trace back defer prefer) + end + + state :root do + rule %r/\s+/, Text::Whitespace + rule %r/\(\*/, Comment, :comment + rule %r/\{\*|‹/, Text, :text + + rule %r/::|\[|\]|-|[:()_=,|+!?]/, Operator + rule %r/[{}.]|\.\./, Operator::Word + + def word(keywords) + return %r/\b(#{keywords.join('|')})\b/ + end + + rule %r/[a-zA-Z]\w*/ do |m| + sym = m[0] + + if self.class.keyword_minor.include?(sym) || + self.class.keyword_proof_script.include?(sym) + token Keyword::Pseudo + elsif self.class.keyword_diag.include?(sym) + token Keyword::Type + elsif self.class.keyword_thy.include?(sym) || + self.class.keyword_theory_decl.include?(sym) || + self.class.keyword_qed.include?(sym) || + self.class.keyword_proof_goal.include?(sym) || + self.class.keyword_proof_block.include?(sym) || + self.class.keyword_proof_decl.include?(sym) || + self.class.keyword_proof_chain.include?(sym) || + self.class.keyword_proof_asm.include?(sym) || + self.class.keyword_proof_asm_goal.include?(sym) + token Keyword + elsif self.class.keyword_section.include?(sym) + token Generic::Heading + elsif self.class.keyword_subsection.include?(sym) + token Generic::Subheading + elsif self.class.keyword_theory_goal.include?(sym) || + self.class.keyword_theory_script.include?(sym) + token Keyword::Namespace + elsif self.class.keyword_abandon_proof.include?(sym) + token Generic::Error + else + token Name + end + end + + rule %r/\\<\w*>/, Str::Symbol + + rule %r/'[^\W\d][.\w']*/, Name::Variable + + rule %r/0[xX][\da-fA-F][\da-fA-F_]*/, Num::Hex + rule %r/0[oO][0-7][0-7_]*/, Num::Oct + rule %r/0[bB][01][01_]*/, Num::Bin + + rule %r/"/, Str, :string + rule %r/`/, Str::Other, :fact + # Everything except for (most) operators whitespaces may be name + rule %r/[^\s:|\[\]\-()=,+!?{}._][^\s:|\[\]\-()=,+!?{}]*/, Name + end + + state :comment do + rule %r/[^(*)]+/, Comment + rule %r/\(\*/, Comment, :comment + rule %r/\*\)/, Comment, :pop! + rule %r/[(*)]/, Comment + end + + state :text do + rule %r/[^{*}‹›]+/, Text + rule %r/\{\*|‹/, Text, :text + rule %r/\*\}|›/, Text, :pop! + rule %r/[{*}]/, Text + end + + state :string do + rule %r/[^"\\]+/, Str + rule %r/\\<\w*>/, Str::Symbol + rule %r/\\"/, Str + rule %r/\\/, Str + rule %r/"/, Str, :pop! + end + + state :fact do + rule %r/[^`\\]+/, Str::Other + rule %r/\\<\w*>/, Str::Symbol + rule %r/\\`/, Str::Other + rule %r/\\/, Str::Other + rule %r/`/, Str::Other, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/isbl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/isbl.rb new file mode 100644 index 0000000..2e1184b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/isbl.rb @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class ISBL < RegexLexer + title "ISBL" + desc "The ISBL programming language" + tag 'isbl' + filenames '*.isbl' + + def self.builtins + Kernel::load File.join(Lexers::BASE_DIR, 'isbl/builtins.rb') + self.builtins + end + + def self.constants + @constants ||= self.builtins["const"].merge(self.builtins["enum"]).collect!(&:downcase) + end + + def self.interfaces + @interfaces ||= self.builtins["interface"].collect!(&:downcase) + end + + def self.globals + @globals ||= self.builtins["global"].collect!(&:downcase) + end + + def self.keywords + @keywords = Set.new %w( + and и else иначе endexcept endfinally endforeach конецвсе endif конецесли endwhile + конецпока except exitfor finally foreach все if если in в not не or или try while пока + ) + end + + state :whitespace do + rule %r/\s+/m, Text + rule %r(//.*?$), Comment::Single + rule %r(/[*].*?[*]/)m, Comment::Multiline + end + + state :dotted do + mixin :whitespace + rule %r/[a-zа-яё_0-9]+/i do |m| + name = m[0] + if self.class.constants.include? name.downcase + token Name::Builtin + elsif in_state? :type + token Keyword::Type + else + token Name + end + pop! + end + end + + state :type do + mixin :whitespace + rule %r/[a-zа-яё_0-9]+/i do |m| + name = m[0] + if self.class.interfaces.include? name.downcase + token Keyword::Type + else + token Name + end + pop! + end + rule %r/[.]/, Punctuation, :dotted + rule(//) { pop! } + end + + state :root do + mixin :whitespace + rule %r/[:]/, Punctuation, :type + rule %r/[.]/, Punctuation, :dotted + rule %r/[\[\]();]/, Punctuation + rule %r([&*+=<>/-]), Operator + rule %r/\b[a-zа-яё_][a-zа-яё_0-9]*(?=[(])/i, Name::Function + rule %r/[a-zа-яё_!][a-zа-яё_0-9]*/i do |m| + name = m[0] + if self.class.keywords.include? name.downcase + token Keyword + elsif self.class.constants.include? name.downcase + token Name::Builtin + elsif self.class.globals.include? name.downcase + token Name::Variable::Global + else + token Name::Variable + end + end + rule %r/\b(\d+(\.\d+)?)\b/, Literal::Number + rule %r(["].*?["])m, Literal::String::Double + rule %r(['].*?['])m, Literal::String::Single + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/isbl/builtins.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/isbl/builtins.rb new file mode 100644 index 0000000..5e9eeeb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/isbl/builtins.rb @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class ISBL + def self.builtins + @builtins ||= {}.tap do |b| + b["const"] = Set.new %w(SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT SYSRES_CONST_ACCES_RIGHT_TYPE_FULL SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE SYSRES_CONST_ACCESS_NO_ACCESS_VIEW SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_TYPE_CHANGE SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE SYSRES_CONST_ACCESS_TYPE_EXISTS SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE SYSRES_CONST_ACCESS_TYPE_FULL SYSRES_CONST_ACCESS_TYPE_FULL_CODE SYSRES_CONST_ACCESS_TYPE_VIEW SYSRES_CONST_ACCESS_TYPE_VIEW_CODE SYSRES_CONST_ACTION_TYPE_ABORT SYSRES_CONST_ACTION_TYPE_ACCEPT SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT SYSRES_CONST_ACTION_TYPE_CHANGE_CARD SYSRES_CONST_ACTION_TYPE_CHANGE_KIND SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE SYSRES_CONST_ACTION_TYPE_CONTINUE SYSRES_CONST_ACTION_TYPE_COPY SYSRES_CONST_ACTION_TYPE_CREATE SYSRES_CONST_ACTION_TYPE_CREATE_VERSION SYSRES_CONST_ACTION_TYPE_DELETE SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT SYSRES_CONST_ACTION_TYPE_DELETE_VERSION SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE SYSRES_CONST_ACTION_TYPE_LOCK SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY SYSRES_CONST_ACTION_TYPE_MARK_AS_READED SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED SYSRES_CONST_ACTION_TYPE_MODIFY SYSRES_CONST_ACTION_TYPE_MODIFY_CARD SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE SYSRES_CONST_ACTION_TYPE_PERFORM SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY SYSRES_CONST_ACTION_TYPE_RESTART SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE SYSRES_CONST_ACTION_TYPE_REVISION SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL SYSRES_CONST_ACTION_TYPE_SIGN SYSRES_CONST_ACTION_TYPE_START SYSRES_CONST_ACTION_TYPE_UNLOCK SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER SYSRES_CONST_ACTION_TYPE_VERSION_STATE SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY SYSRES_CONST_ACTION_TYPE_VIEW SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE SYSRES_CONST_ADD_REFERENCE_MODE_NAME SYSRES_CONST_ADDITION_REQUISITE_CODE SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS SYSRES_CONST_ALL_USERS_GROUP SYSRES_CONST_ALL_USERS_GROUP_NAME SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE SYSRES_CONST_APPROVING_SIGNATURE_NAME SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN SYSRES_CONST_ATTACH_TYPE_DOC SYSRES_CONST_ATTACH_TYPE_EDOC SYSRES_CONST_ATTACH_TYPE_FOLDER SYSRES_CONST_ATTACH_TYPE_JOB SYSRES_CONST_ATTACH_TYPE_REFERENCE SYSRES_CONST_ATTACH_TYPE_TASK SYSRES_CONST_AUTH_ENCODED_PASSWORD SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE SYSRES_CONST_AUTH_NOVELL SYSRES_CONST_AUTH_PASSWORD SYSRES_CONST_AUTH_PASSWORD_CODE SYSRES_CONST_AUTH_WINDOWS SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_AUTO_ENUM_METHOD_FLAG SYSRES_CONST_AUTO_NUMERATION_CODE SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_USAGE_ALL SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE SYSRES_CONST_AUTOTEXT_USAGE_SIGN SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE SYSRES_CONST_AUTOTEXT_USAGE_WORK SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BTN_PART SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT SYSRES_CONST_CARD_PART SYSRES_CONST_CARD_REFERENCE_MODE_NAME SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT SYSRES_CONST_CODE_COMPONENT_TYPE_URL SYSRES_CONST_CODE_REQUISITE_ACCESS SYSRES_CONST_CODE_REQUISITE_CODE SYSRES_CONST_CODE_REQUISITE_COMPONENT SYSRES_CONST_CODE_REQUISITE_DESCRIPTION SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT SYSRES_CONST_CODE_REQUISITE_RECORD SYSRES_CONST_COMMENT_REQ_CODE SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE SYSRES_CONST_COMP_CODE_GRD SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DOCS SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_COMPONENT_TYPE_EDOCS SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_COMPONENT_TYPE_OTHER SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES SYSRES_CONST_COMPONENT_TYPE_REFERENCES SYSRES_CONST_COMPONENT_TYPE_REPORTS SYSRES_CONST_COMPONENT_TYPE_SCRIPTS SYSRES_CONST_COMPONENT_TYPE_URL SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION SYSRES_CONST_CONST_FIRM_STATUS_COMMON SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL SYSRES_CONST_CONST_NEGATIVE_VALUE SYSRES_CONST_CONST_POSITIVE_VALUE SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE SYSRES_CONST_CONTENTS_REQUISITE_CODE SYSRES_CONST_DATA_TYPE_BOOLEAN SYSRES_CONST_DATA_TYPE_DATE SYSRES_CONST_DATA_TYPE_FLOAT SYSRES_CONST_DATA_TYPE_INTEGER SYSRES_CONST_DATA_TYPE_PICK SYSRES_CONST_DATA_TYPE_REFERENCE SYSRES_CONST_DATA_TYPE_STRING SYSRES_CONST_DATA_TYPE_TEXT SYSRES_CONST_DATA_TYPE_VARIANT SYSRES_CONST_DATE_CLOSE_REQ_CODE SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR SYSRES_CONST_DATE_OPEN_REQ_CODE SYSRES_CONST_DATE_REQUISITE SYSRES_CONST_DATE_REQUISITE_CODE SYSRES_CONST_DATE_REQUISITE_NAME SYSRES_CONST_DATE_REQUISITE_TYPE SYSRES_CONST_DATE_TYPE_CHAR SYSRES_CONST_DATETIME_FORMAT_VALUE SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_DET1_PART SYSRES_CONST_DET2_PART SYSRES_CONST_DET3_PART SYSRES_CONST_DET4_PART SYSRES_CONST_DET5_PART SYSRES_CONST_DET6_PART SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE SYSRES_CONST_DETAIL_REQ_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME SYSRES_CONST_DOCUMENT_STORAGES_CODE SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME SYSRES_CONST_DOUBLE_REQUISITE_CODE SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE SYSRES_CONST_EDITORS_REFERENCE_CODE SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE SYSRES_CONST_EDOC_DATE_REQUISITE_CODE SYSRES_CONST_EDOC_KIND_REFERENCE_CODE SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE SYSRES_CONST_EDOC_NONE_ENCODE_CODE SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_READONLY_ACCESS_CODE SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE SYSRES_CONST_EDOC_WRITE_ACCES_CODE SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_END_DATE_REQUISITE_CODE SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE SYSRES_CONST_EXIST_CONST SYSRES_CONST_EXIST_VALUE SYSRES_CONST_EXPORT_LOCK_TYPE_ASK SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK SYSRES_CONST_EXPORT_VERSION_TYPE_ASK SYSRES_CONST_EXPORT_VERSION_TYPE_LAST SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE SYSRES_CONST_EXTENSION_REQUISITE_CODE SYSRES_CONST_FILTER_NAME_REQUISITE_CODE SYSRES_CONST_FILTER_REQUISITE_CODE SYSRES_CONST_FILTER_TYPE_COMMON_CODE SYSRES_CONST_FILTER_TYPE_COMMON_NAME SYSRES_CONST_FILTER_TYPE_USER_CODE SYSRES_CONST_FILTER_TYPE_USER_NAME SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR SYSRES_CONST_FLOAT_REQUISITE_TYPE SYSRES_CONST_FOLDER_AUTHOR_VALUE SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS SYSRES_CONST_FOLDER_KIND_COMPONENTS SYSRES_CONST_FOLDER_KIND_EDOCS SYSRES_CONST_FOLDER_KIND_JOBS SYSRES_CONST_FOLDER_KIND_TASKS SYSRES_CONST_FOLDER_TYPE_COMMON SYSRES_CONST_FOLDER_TYPE_COMPONENT SYSRES_CONST_FOLDER_TYPE_FAVORITES SYSRES_CONST_FOLDER_TYPE_INBOX SYSRES_CONST_FOLDER_TYPE_OUTBOX SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH SYSRES_CONST_FOLDER_TYPE_SEARCH SYSRES_CONST_FOLDER_TYPE_SHORTCUTS SYSRES_CONST_FOLDER_TYPE_USER SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG SYSRES_CONST_FULL_SUBSTITUTE_TYPE SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE SYSRES_CONST_FUNCTION_CANCEL_RESULT SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM SYSRES_CONST_FUNCTION_CATEGORY_USER SYSRES_CONST_FUNCTION_FAILURE_RESULT SYSRES_CONST_FUNCTION_SAVE_RESULT SYSRES_CONST_GENERATED_REQUISITE SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_USER_REQUISITE_CODE SYSRES_CONST_GROUPS_REFERENCE_CODE SYSRES_CONST_GROUPS_REQUISITE_CODE SYSRES_CONST_HIDDEN_MODE_NAME SYSRES_CONST_HIGH_LVL_REQUISITE_CODE SYSRES_CONST_HISTORY_ACTION_CREATE_CODE SYSRES_CONST_HISTORY_ACTION_DELETE_CODE SYSRES_CONST_HISTORY_ACTION_EDIT_CODE SYSRES_CONST_HOUR_CHAR SYSRES_CONST_ID_REQUISITE_CODE SYSRES_CONST_IDSPS_REQUISITE_CODE SYSRES_CONST_IMAGE_MODE_COLOR SYSRES_CONST_IMAGE_MODE_GREYSCALE SYSRES_CONST_IMAGE_MODE_MONOCHROME SYSRES_CONST_IMPORTANCE_HIGH SYSRES_CONST_IMPORTANCE_LOW SYSRES_CONST_IMPORTANCE_NORMAL SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE SYSRES_CONST_INT_REQUISITE SYSRES_CONST_INT_REQUISITE_TYPE SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR SYSRES_CONST_INTEGER_TYPE_CHAR SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_JOB_BLOCK_DESCRIPTION SYSRES_CONST_JOB_KIND_CONTROL_JOB SYSRES_CONST_JOB_KIND_JOB SYSRES_CONST_JOB_KIND_NOTICE SYSRES_CONST_JOB_STATE_ABORTED SYSRES_CONST_JOB_STATE_COMPLETE SYSRES_CONST_JOB_STATE_WORKING SYSRES_CONST_KIND_REQUISITE_CODE SYSRES_CONST_KIND_REQUISITE_NAME SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE SYSRES_CONST_KOD_INPUT_TYPE SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT SYSRES_CONST_LINK_OBJECT_KIND_EDOC SYSRES_CONST_LINK_OBJECT_KIND_FOLDER SYSRES_CONST_LINK_OBJECT_KIND_JOB SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE SYSRES_CONST_LINK_OBJECT_KIND_TASK SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE SYSRES_CONST_LIST_REFERENCE_MODE_NAME SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE SYSRES_CONST_MAIN_VIEW_CODE SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE SYSRES_CONST_MAXIMIZED_MODE_NAME SYSRES_CONST_ME_VALUE SYSRES_CONST_MESSAGE_ATTENTION_CAPTION SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION SYSRES_CONST_MESSAGE_ERROR_CAPTION SYSRES_CONST_MESSAGE_INFORMATION_CAPTION SYSRES_CONST_MINIMIZED_MODE_NAME SYSRES_CONST_MINUTE_CHAR SYSRES_CONST_MODULE_REQUISITE_CODE SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION SYSRES_CONST_MONTH_FORMAT_VALUE SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_NAME_REQUISITE_CODE SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE SYSRES_CONST_NAMEAN_INPUT_TYPE SYSRES_CONST_NEGATIVE_PICK_VALUE SYSRES_CONST_NEGATIVE_VALUE SYSRES_CONST_NO SYSRES_CONST_NO_PICK_VALUE SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE SYSRES_CONST_NO_VALUE SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_NORMAL_MODE_NAME SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_NOTE_REQUISITE_CODE SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION SYSRES_CONST_NUM_REQUISITE SYSRES_CONST_NUM_STR_REQUISITE_CODE SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG SYSRES_CONST_NUMERATION_AUTO_STRONG SYSRES_CONST_NUMERATION_FROM_DICTONARY SYSRES_CONST_NUMERATION_MANUAL SYSRES_CONST_NUMERIC_TYPE_CHAR SYSRES_CONST_NUMREQ_REQUISITE_CODE SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_ORIGINALREF_REQUISITE_CODE SYSRES_CONST_OURFIRM_REF_CODE SYSRES_CONST_OURFIRM_REQUISITE_CODE SYSRES_CONST_OURFIRM_VAR SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE SYSRES_CONST_PICK_NEGATIVE_RESULT SYSRES_CONST_PICK_POSITIVE_RESULT SYSRES_CONST_PICK_REQUISITE SYSRES_CONST_PICK_REQUISITE_TYPE SYSRES_CONST_PICK_TYPE_CHAR SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE SYSRES_CONST_PLATFORM_VERSION_COMMENT SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_POSITIVE_PICK_VALUE SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE SYSRES_CONST_PRIORITY_REQUISITE_CODE SYSRES_CONST_QUALIFIED_TASK_TYPE SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE SYSRES_CONST_RECSTAT_REQUISITE_CODE SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_REF_REQUISITE SYSRES_CONST_REF_REQUISITE_TYPE SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE SYSRES_CONST_REFERENCE_TYPE_CHAR SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_MODE_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_EDIT_CODE SYSRES_CONST_REQ_MODE_HIDDEN_CODE SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_VIEW_CODE SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE SYSRES_CONST_REQ_SECTION_VALUE SYSRES_CONST_REQ_TYPE_VALUE SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME SYSRES_CONST_REQUISITE_FORMAT_LEFT SYSRES_CONST_REQUISITE_FORMAT_RIGHT SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_REQUISITE_SECTION_ACTIONS SYSRES_CONST_REQUISITE_SECTION_BUTTON SYSRES_CONST_REQUISITE_SECTION_BUTTONS SYSRES_CONST_REQUISITE_SECTION_CARD SYSRES_CONST_REQUISITE_SECTION_TABLE SYSRES_CONST_REQUISITE_SECTION_TABLE10 SYSRES_CONST_REQUISITE_SECTION_TABLE11 SYSRES_CONST_REQUISITE_SECTION_TABLE12 SYSRES_CONST_REQUISITE_SECTION_TABLE13 SYSRES_CONST_REQUISITE_SECTION_TABLE14 SYSRES_CONST_REQUISITE_SECTION_TABLE15 SYSRES_CONST_REQUISITE_SECTION_TABLE16 SYSRES_CONST_REQUISITE_SECTION_TABLE17 SYSRES_CONST_REQUISITE_SECTION_TABLE18 SYSRES_CONST_REQUISITE_SECTION_TABLE19 SYSRES_CONST_REQUISITE_SECTION_TABLE2 SYSRES_CONST_REQUISITE_SECTION_TABLE20 SYSRES_CONST_REQUISITE_SECTION_TABLE21 SYSRES_CONST_REQUISITE_SECTION_TABLE22 SYSRES_CONST_REQUISITE_SECTION_TABLE23 SYSRES_CONST_REQUISITE_SECTION_TABLE24 SYSRES_CONST_REQUISITE_SECTION_TABLE3 SYSRES_CONST_REQUISITE_SECTION_TABLE4 SYSRES_CONST_REQUISITE_SECTION_TABLE5 SYSRES_CONST_REQUISITE_SECTION_TABLE6 SYSRES_CONST_REQUISITE_SECTION_TABLE7 SYSRES_CONST_REQUISITE_SECTION_TABLE8 SYSRES_CONST_REQUISITE_SECTION_TABLE9 SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_RIGHT_ALIGNMENT_CODE SYSRES_CONST_ROLES_REFERENCE_CODE SYSRES_CONST_ROUTE_STEP_AFTER_RUS SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS SYSRES_CONST_ROUTE_TYPE_COMPLEX SYSRES_CONST_ROUTE_TYPE_PARALLEL SYSRES_CONST_ROUTE_TYPE_SERIAL SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE SYSRES_CONST_SEARCHES_COMPONENT_CONTENT SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME SYSRES_CONST_SEARCHES_EDOC_CONTENT SYSRES_CONST_SEARCHES_FOLDER_CONTENT SYSRES_CONST_SEARCHES_JOB_CONTENT SYSRES_CONST_SEARCHES_REFERENCE_CODE SYSRES_CONST_SEARCHES_TASK_CONTENT SYSRES_CONST_SECOND_CHAR SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE SYSRES_CONST_SECTION_REQUISITE_CODE SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE SYSRES_CONST_SELECT_REFERENCE_MODE_NAME SYSRES_CONST_SELECT_TYPE_SELECTABLE SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD SYSRES_CONST_SELECT_TYPE_UNSLECTABLE SYSRES_CONST_SERVER_TYPE_MAIN SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE SYSRES_CONST_STATE_REQ_NAME SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE SYSRES_CONST_STATE_REQUISITE_CODE SYSRES_CONST_STATIC_ROLE_TYPE_CODE SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE SYSRES_CONST_STATUS_VALUE_AUTOCLEANING SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE SYSRES_CONST_STATUS_VALUE_COMPLETE SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE SYSRES_CONST_STATUS_VALUE_RED_SQUARE SYSRES_CONST_STATUS_VALUE_SUSPEND SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE SYSRES_CONST_STORAGE_TYPE_FILE SYSRES_CONST_STORAGE_TYPE_SQL_SERVER SYSRES_CONST_STR_REQUISITE SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR SYSRES_CONST_STRING_REQUISITE_CODE SYSRES_CONST_STRING_REQUISITE_TYPE SYSRES_CONST_STRING_TYPE_CHAR SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE SYSRES_CONST_SYSTEM_VERSION_COMMENT SYSRES_CONST_TASK_ACCESS_TYPE_ALL SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD SYSRES_CONST_TASK_ENCODE_TYPE_NONE SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD SYSRES_CONST_TASK_ROUTE_ALL_CONDITION SYSRES_CONST_TASK_ROUTE_AND_CONDITION SYSRES_CONST_TASK_ROUTE_OR_CONDITION SYSRES_CONST_TASK_STATE_ABORTED SYSRES_CONST_TASK_STATE_COMPLETE SYSRES_CONST_TASK_STATE_CONTINUED SYSRES_CONST_TASK_STATE_CONTROL SYSRES_CONST_TASK_STATE_INIT SYSRES_CONST_TASK_STATE_WORKING SYSRES_CONST_TASK_TITLE SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE SYSRES_CONST_TASK_TYPES_REFERENCE_CODE SYSRES_CONST_TEMPLATES_REFERENCE_CODE SYSRES_CONST_TEST_DATE_REQUISITE_NAME SYSRES_CONST_TEST_DEV_DATABASE_NAME SYSRES_CONST_TEST_DEV_SYSTEM_CODE SYSRES_CONST_TEST_EDMS_DATABASE_NAME SYSRES_CONST_TEST_EDMS_MAIN_CODE SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME SYSRES_CONST_TEST_EDMS_SECOND_CODE SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME SYSRES_CONST_TEST_EDMS_SYSTEM_CODE SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME SYSRES_CONST_TEXT_REQUISITE SYSRES_CONST_TEXT_REQUISITE_CODE SYSRES_CONST_TEXT_REQUISITE_TYPE SYSRES_CONST_TEXT_TYPE_CHAR SYSRES_CONST_TYPE_CODE_REQUISITE_CODE SYSRES_CONST_TYPE_REQUISITE_CODE SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME SYSRES_CONST_USE_ACCESS_TYPE_CODE SYSRES_CONST_USE_ACCESS_TYPE_NAME SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE SYSRES_CONST_USER_CATEGORY_NORMAL SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE SYSRES_CONST_USER_COMMON_CATEGORY SYSRES_CONST_USER_COMMON_CATEGORY_CODE SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_USER_LOGIN_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_USER_SERVICE_CATEGORY SYSRES_CONST_USER_SERVICE_CATEGORY_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME SYSRES_CONST_USER_STATUS_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_DEVELOPER_NAME SYSRES_CONST_USER_STATUS_DISABLED_CODE SYSRES_CONST_USER_STATUS_DISABLED_NAME SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_USER_CODE SYSRES_CONST_USER_STATUS_USER_NAME SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER SYSRES_CONST_USER_TYPE_REQUISITE_CODE SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE SYSRES_CONST_USERS_REFERENCE_CODE SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME SYSRES_CONST_USERS_REQUISITE_CODE SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME SYSRES_CONST_VIEW_DEFAULT_CODE SYSRES_CONST_VIEW_DEFAULT_NAME SYSRES_CONST_VIEWER_REQUISITE_CODE SYSRES_CONST_WAITING_BLOCK_DESCRIPTION SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT SYSRES_CONST_XML_ENCODING SYSRES_CONST_XREC_STAT_REQUISITE_CODE SYSRES_CONST_XRECID_FIELD_NAME SYSRES_CONST_YES SYSRES_CONST_YES_NO_2_REQUISITE_CODE SYSRES_CONST_YES_NO_REQUISITE_CODE SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_YES_PICK_VALUE SYSRES_CONST_YES_VALUE CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION JOB_BLOCK_ABORT_DEADLINE_PROPERTY JOB_BLOCK_AFTER_FINISH_EVENT JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT JOB_BLOCK_ATTACHMENT_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT JOB_BLOCK_BEFORE_START_EVENT JOB_BLOCK_CREATED_JOBS_PROPERTY JOB_BLOCK_DEADLINE_PROPERTY JOB_BLOCK_EXECUTION_RESULTS_PROPERTY JOB_BLOCK_IS_PARALLEL_PROPERTY JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY JOB_BLOCK_JOB_TEXT_PROPERTY JOB_BLOCK_NAME_PROPERTY JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY JOB_BLOCK_PERFORMER_PROPERTY JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY JOB_BLOCK_SUBJECT_PROPERTY ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE smHidden smMaximized smMinimized smNormal wmNo wmYes COMPONENT_TOKEN_LINK_KIND DOCUMENT_LINK_KIND EDOCUMENT_LINK_KIND FOLDER_LINK_KIND JOB_LINK_KIND REFERENCE_LINK_KIND TASK_LINK_KIND COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE MONITOR_BLOCK_AFTER_FINISH_EVENT MONITOR_BLOCK_BEFORE_START_EVENT MONITOR_BLOCK_DEADLINE_PROPERTY MONITOR_BLOCK_INTERVAL_PROPERTY MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY MONITOR_BLOCK_NAME_PROPERTY MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY NOTICE_BLOCK_AFTER_FINISH_EVENT NOTICE_BLOCK_ATTACHMENT_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY NOTICE_BLOCK_BEFORE_START_EVENT NOTICE_BLOCK_CREATED_NOTICES_PROPERTY NOTICE_BLOCK_DEADLINE_PROPERTY NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY NOTICE_BLOCK_NAME_PROPERTY NOTICE_BLOCK_NOTICE_TEXT_PROPERTY NOTICE_BLOCK_PERFORMER_PROPERTY NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY NOTICE_BLOCK_SUBJECT_PROPERTY dseAfterCancel dseAfterClose dseAfterDelete dseAfterDeleteOutOfTransaction dseAfterInsert dseAfterOpen dseAfterScroll dseAfterUpdate dseAfterUpdateOutOfTransaction dseBeforeCancel dseBeforeClose dseBeforeDelete dseBeforeDetailUpdate dseBeforeInsert dseBeforeOpen dseBeforeUpdate dseOnAnyRequisiteChange dseOnCloseRecord dseOnDeleteError dseOnOpenRecord dseOnPrepareUpdate dseOnUpdateError dseOnUpdateRatifiedRecord dseOnValidDelete dseOnValidUpdate reOnChange reOnChangeValues SELECTION_BEGIN_ROUTE_EVENT SELECTION_END_ROUTE_EVENT CURRENT_PERIOD_IS_REQUIRED PREVIOUS_CARD_TYPE_NAME SHOW_RECORD_PROPERTIES_FORM ACCESS_RIGHTS_SETTING_DIALOG_CODE ADMINISTRATOR_USER_CODE ANALYTIC_REPORT_TYPE asrtHideLocal asrtHideRemote CALCULATED_ROLE_TYPE_CODE COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE DCTS_TEST_PROTOCOLS_FOLDER_PATH E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER E_EDOC_VERSION_ALREDY_SIGNED E_EDOC_VERSION_ALREDY_SIGNED_BY_USER EDOC_TYPES_CODE_REQUISITE_FIELD_NAME EDOCUMENTS_ALIAS_NAME FILES_FOLDER_PATH FILTER_OPERANDS_DELIMITER FILTER_OPERATIONS_DELIMITER FORMCARD_NAME FORMLIST_NAME GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE INTEGRATED_REPORT_TYPE IS_BUILDER_APPLICATION_ROLE IS_BUILDER_APPLICATION_ROLE2 IS_BUILDER_USERS ISBSYSDEV LOG_FOLDER_PATH mbCancel mbNo mbNoToAll mbOK mbYes mbYesToAll MEMORY_DATASET_DESRIPTIONS_FILENAME mrNo mrNoToAll mrYes mrYesToAll MULTIPLE_SELECT_DIALOG_CODE NONOPERATING_RECORD_FLAG_FEMININE NONOPERATING_RECORD_FLAG_MASCULINE OPERATING_RECORD_FLAG_FEMININE OPERATING_RECORD_FLAG_MASCULINE PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE PROGRAM_INITIATED_LOOKUP_ACTION ratDelete ratEdit ratInsert REPORT_TYPE REQUIRED_PICK_VALUES_VARIABLE rmCard rmList SBRTE_PROGID_DEV SBRTE_PROGID_RELEASE STATIC_ROLE_TYPE_CODE SUPPRESS_EMPTY_TEMPLATE_CREATION SYSTEM_USER_CODE UPDATE_DIALOG_DATASET USED_IN_OBJECT_HINT_PARAM USER_INITIATED_LOOKUP_ACTION USER_NAME_FORMAT USER_SELECTION_RESTRICTIONS WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH ELS_SUBTYPE_CONTROL_NAME ELS_FOLDER_KIND_CONTROL_NAME REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME PRIVILEGE_COMPONENT_FULL_ACCESS PRIVILEGE_DEVELOPMENT_EXPORT PRIVILEGE_DEVELOPMENT_IMPORT PRIVILEGE_DOCUMENT_DELETE PRIVILEGE_ESD PRIVILEGE_FOLDER_DELETE PRIVILEGE_MANAGE_ACCESS_RIGHTS PRIVILEGE_MANAGE_REPLICATION PRIVILEGE_MANAGE_SESSION_SERVER PRIVILEGE_OBJECT_FULL_ACCESS PRIVILEGE_OBJECT_VIEW PRIVILEGE_RESERVE_LICENSE PRIVILEGE_SYSTEM_CUSTOMIZE PRIVILEGE_SYSTEM_DEVELOP PRIVILEGE_SYSTEM_INSTALL PRIVILEGE_TASK_DELETE PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE PRIVILEGES_PSEUDOREFERENCE_CODE ACCESS_TYPES_PSEUDOREFERENCE_CODE ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE COMPONENTS_PSEUDOREFERENCE_CODE FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE GROUPS_PSEUDOREFERENCE_CODE RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE REFTYPES_PSEUDOREFERENCE_CODE REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE SEND_PROTOCOL_PSEUDOREFERENCE_CODE SUBSTITUTES_PSEUDOREFERENCE_CODE SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE UNITS_PSEUDOREFERENCE_CODE USERS_PSEUDOREFERENCE_CODE VIEWERS_PSEUDOREFERENCE_CODE CERTIFICATE_TYPE_ENCRYPT CERTIFICATE_TYPE_SIGN CERTIFICATE_TYPE_SIGN_AND_ENCRYPT STORAGE_TYPE_FILE STORAGE_TYPE_NAS_CIFS STORAGE_TYPE_SAPERION STORAGE_TYPE_SQL_SERVER COMPTYPE2_REQUISITE_DOCUMENTS_VALUE COMPTYPE2_REQUISITE_TASKS_VALUE COMPTYPE2_REQUISITE_FOLDERS_VALUE COMPTYPE2_REQUISITE_REFERENCES_VALUE SYSREQ_CODE SYSREQ_COMPTYPE2 SYSREQ_CONST_AVAILABLE_FOR_WEB SYSREQ_CONST_COMMON_CODE SYSREQ_CONST_COMMON_VALUE SYSREQ_CONST_FIRM_CODE SYSREQ_CONST_FIRM_STATUS SYSREQ_CONST_FIRM_VALUE SYSREQ_CONST_SERVER_STATUS SYSREQ_CONTENTS SYSREQ_DATE_OPEN SYSREQ_DATE_CLOSE SYSREQ_DESCRIPTION SYSREQ_DESCRIPTION_LOCALIZE_ID SYSREQ_DOUBLE SYSREQ_EDOC_ACCESS_TYPE SYSREQ_EDOC_AUTHOR SYSREQ_EDOC_CREATED SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE SYSREQ_EDOC_EDITOR SYSREQ_EDOC_ENCODE_TYPE SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_EXPORT_DATE SYSREQ_EDOC_EXPORTER SYSREQ_EDOC_KIND SYSREQ_EDOC_LIFE_STAGE_NAME SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE SYSREQ_EDOC_MODIFIED SYSREQ_EDOC_NAME SYSREQ_EDOC_NOTE SYSREQ_EDOC_QUALIFIED_ID SYSREQ_EDOC_SESSION_KEY SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_SIGNATURE_TYPE SYSREQ_EDOC_SIGNED SYSREQ_EDOC_STORAGE SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE SYSREQ_EDOC_STORAGES_CHECK_RIGHTS SYSREQ_EDOC_STORAGES_COMPUTER_NAME SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE SYSREQ_EDOC_STORAGES_FUNCTION SYSREQ_EDOC_STORAGES_INITIALIZED SYSREQ_EDOC_STORAGES_LOCAL_PATH SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT SYSREQ_EDOC_STORAGES_SERVER_NAME SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME SYSREQ_EDOC_STORAGES_TYPE SYSREQ_EDOC_TEXT_MODIFIED SYSREQ_EDOC_TYPE_ACT_CODE SYSREQ_EDOC_TYPE_ACT_DESCRIPTION SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_EDOC_TYPE_ACT_SECTION SYSREQ_EDOC_TYPE_ADD_PARAMS SYSREQ_EDOC_TYPE_COMMENT SYSREQ_EDOC_TYPE_EVENT_TEXT SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID SYSREQ_EDOC_TYPE_NUMERATION_METHOD SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE SYSREQ_EDOC_TYPE_REQ_CODE SYSREQ_EDOC_TYPE_REQ_DESCRIPTION SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_REQ_IS_LEADING SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED SYSREQ_EDOC_TYPE_REQ_NUMBER SYSREQ_EDOC_TYPE_REQ_ON_CHANGE SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_EDOC_TYPE_REQ_ON_SELECT SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND SYSREQ_EDOC_TYPE_REQ_SECTION SYSREQ_EDOC_TYPE_VIEW_CARD SYSREQ_EDOC_TYPE_VIEW_CODE SYSREQ_EDOC_TYPE_VIEW_COMMENT SYSREQ_EDOC_TYPE_VIEW_IS_MAIN SYSREQ_EDOC_TYPE_VIEW_NAME SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_EDOC_VERSION_AUTHOR SYSREQ_EDOC_VERSION_CRC SYSREQ_EDOC_VERSION_DATA SYSREQ_EDOC_VERSION_EDITOR SYSREQ_EDOC_VERSION_EXPORT_DATE SYSREQ_EDOC_VERSION_EXPORTER SYSREQ_EDOC_VERSION_HIDDEN SYSREQ_EDOC_VERSION_LIFE_STAGE SYSREQ_EDOC_VERSION_MODIFIED SYSREQ_EDOC_VERSION_NOTE SYSREQ_EDOC_VERSION_SIGNATURE_TYPE SYSREQ_EDOC_VERSION_SIGNED SYSREQ_EDOC_VERSION_SIZE SYSREQ_EDOC_VERSION_SOURCE SYSREQ_EDOC_VERSION_TEXT_MODIFIED SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE SYSREQ_FOLDER_KIND SYSREQ_FUNC_CATEGORY SYSREQ_FUNC_COMMENT SYSREQ_FUNC_GROUP SYSREQ_FUNC_GROUP_COMMENT SYSREQ_FUNC_GROUP_NUMBER SYSREQ_FUNC_HELP SYSREQ_FUNC_PARAM_DEF_VALUE SYSREQ_FUNC_PARAM_IDENT SYSREQ_FUNC_PARAM_NUMBER SYSREQ_FUNC_PARAM_TYPE SYSREQ_FUNC_TEXT SYSREQ_GROUP_CATEGORY SYSREQ_ID SYSREQ_LAST_UPDATE SYSREQ_LEADER_REFERENCE SYSREQ_LINE_NUMBER SYSREQ_MAIN_RECORD_ID SYSREQ_NAME SYSREQ_NAME_LOCALIZE_ID SYSREQ_NOTE SYSREQ_ORIGINAL_RECORD SYSREQ_OUR_FIRM SYSREQ_PROFILING_SETTINGS_BATCH_LOGING SYSREQ_PROFILING_SETTINGS_BATCH_SIZE SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_START_LOGGED SYSREQ_RECORD_STATUS SYSREQ_REF_REQ_FIELD_NAME SYSREQ_REF_REQ_FORMAT SYSREQ_REF_REQ_GENERATED SYSREQ_REF_REQ_LENGTH SYSREQ_REF_REQ_PRECISION SYSREQ_REF_REQ_REFERENCE SYSREQ_REF_REQ_SECTION SYSREQ_REF_REQ_STORED SYSREQ_REF_REQ_TOKENS SYSREQ_REF_REQ_TYPE SYSREQ_REF_REQ_VIEW SYSREQ_REF_TYPE_ACT_CODE SYSREQ_REF_TYPE_ACT_DESCRIPTION SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_ACT_ON_EXECUTE SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_REF_TYPE_ACT_SECTION SYSREQ_REF_TYPE_ADD_PARAMS SYSREQ_REF_TYPE_COMMENT SYSREQ_REF_TYPE_COMMON_SETTINGS SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME SYSREQ_REF_TYPE_EVENT_TEXT SYSREQ_REF_TYPE_MAIN_LEADING_REF SYSREQ_REF_TYPE_NAME_IN_SINGULAR SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_REF_TYPE_NAME_LOCALIZE_ID SYSREQ_REF_TYPE_NUMERATION_METHOD SYSREQ_REF_TYPE_REQ_CODE SYSREQ_REF_TYPE_REQ_DESCRIPTION SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_REQ_IS_CONTROL SYSREQ_REF_TYPE_REQ_IS_FILTER SYSREQ_REF_TYPE_REQ_IS_LEADING SYSREQ_REF_TYPE_REQ_IS_REQUIRED SYSREQ_REF_TYPE_REQ_NUMBER SYSREQ_REF_TYPE_REQ_ON_CHANGE SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_REF_TYPE_REQ_ON_SELECT SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND SYSREQ_REF_TYPE_REQ_SECTION SYSREQ_REF_TYPE_VIEW_CARD SYSREQ_REF_TYPE_VIEW_CODE SYSREQ_REF_TYPE_VIEW_COMMENT SYSREQ_REF_TYPE_VIEW_IS_MAIN SYSREQ_REF_TYPE_VIEW_NAME SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_REFERENCE_TYPE_ID SYSREQ_STATE SYSREQ_STATЕ SYSREQ_SYSTEM_SETTINGS_VALUE SYSREQ_TYPE SYSREQ_UNIT SYSREQ_UNIT_ID SYSREQ_USER_GROUPS_GROUP_FULL_NAME SYSREQ_USER_GROUPS_GROUP_NAME SYSREQ_USER_GROUPS_GROUP_SERVER_NAME SYSREQ_USERS_ACCESS_RIGHTS SYSREQ_USERS_AUTHENTICATION SYSREQ_USERS_CATEGORY SYSREQ_USERS_COMPONENT SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC SYSREQ_USERS_DOMAIN SYSREQ_USERS_FULL_USER_NAME SYSREQ_USERS_GROUP SYSREQ_USERS_IS_MAIN_SERVER SYSREQ_USERS_LOGIN SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC SYSREQ_USERS_STATUS SYSREQ_USERS_USER_CERTIFICATE SYSREQ_USERS_USER_CERTIFICATE_INFO SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION SYSREQ_USERS_USER_CERTIFICATE_STATE SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT SYSREQ_USERS_USER_DEFAULT_CERTIFICATE SYSREQ_USERS_USER_DESCRIPTION SYSREQ_USERS_USER_GLOBAL_NAME SYSREQ_USERS_USER_LOGIN SYSREQ_USERS_USER_MAIN_SERVER SYSREQ_USERS_USER_TYPE SYSREQ_WORK_RULES_FOLDER_ID RESULT_VAR_NAME RESULT_VAR_NAME_ENG AUTO_NUMERATION_RULE_ID CANT_CHANGE_ID_REQUISITE_RULE_ID CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID CHECK_CODE_REQUISITE_RULE_ID CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID CHECK_FILTRATER_CHANGES_RULE_ID CHECK_RECORD_INTERVAL_RULE_ID CHECK_REFERENCE_INTERVAL_RULE_ID CHECK_REQUIRED_DATA_FULLNESS_RULE_ID CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID MAKE_RECORD_UNRATIFIED_RULE_ID RESTORE_AUTO_NUMERATION_RULE_ID SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID SET_IDSPS_VALUE_RULE_ID SET_NEXT_CODE_VALUE_RULE_ID SET_OURFIRM_BOUNDS_RULE_ID SET_OURFIRM_REQUISITE_RULE_ID SCRIPT_BLOCK_AFTER_FINISH_EVENT SCRIPT_BLOCK_BEFORE_START_EVENT SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY SCRIPT_BLOCK_NAME_PROPERTY SCRIPT_BLOCK_SCRIPT_PROPERTY SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_AFTER_FINISH_EVENT SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT SUBTASK_BLOCK_ATTACHMENTS_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY SUBTASK_BLOCK_BEFORE_START_EVENT SUBTASK_BLOCK_CREATED_TASK_PROPERTY SUBTASK_BLOCK_CREATION_EVENT SUBTASK_BLOCK_DEADLINE_PROPERTY SUBTASK_BLOCK_IMPORTANCE_PROPERTY SUBTASK_BLOCK_INITIATOR_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY SUBTASK_BLOCK_JOBS_TYPE_PROPERTY SUBTASK_BLOCK_NAME_PROPERTY SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY SUBTASK_BLOCK_PERFORMERS_PROPERTY SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_START_EVENT SUBTASK_BLOCK_STEP_CONTROL_PROPERTY SUBTASK_BLOCK_SUBJECT_PROPERTY SUBTASK_BLOCK_TASK_CONTROL_PROPERTY SUBTASK_BLOCK_TEXT_PROPERTY SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY SYSCOMP_CONTROL_JOBS SYSCOMP_FOLDERS SYSCOMP_JOBS SYSCOMP_NOTICES SYSCOMP_TASKS SYSDLG_CREATE_EDOCUMENT SYSDLG_CREATE_EDOCUMENT_VERSION SYSDLG_CURRENT_PERIOD SYSDLG_EDIT_FUNCTION_HELP SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS SYSDLG_EXPORT_SINGLE_EDOCUMENT SYSDLG_IMPORT_EDOCUMENT SYSDLG_MULTIPLE_SELECT SYSDLG_SETUP_ACCESS_RIGHTS SYSDLG_SETUP_DEFAULT_RIGHTS SYSDLG_SETUP_FILTER_CONDITION SYSDLG_SETUP_SIGN_RIGHTS SYSDLG_SETUP_TASK_OBSERVERS SYSDLG_SETUP_TASK_ROUTE SYSDLG_SETUP_USERS_LIST SYSDLG_SIGN_EDOCUMENT SYSDLG_SIGN_MULTIPLE_EDOCUMENTS SYSREF_ACCESS_RIGHTS_TYPES SYSREF_ADMINISTRATION_HISTORY SYSREF_ALL_AVAILABLE_COMPONENTS SYSREF_ALL_AVAILABLE_PRIVILEGES SYSREF_ALL_REPLICATING_COMPONENTS SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS SYSREF_CALENDAR_EVENTS SYSREF_COMPONENT_TOKEN_HISTORY SYSREF_COMPONENT_TOKENS SYSREF_COMPONENTS SYSREF_CONSTANTS SYSREF_DATA_RECEIVE_PROTOCOL SYSREF_DATA_SEND_PROTOCOL SYSREF_DIALOGS SYSREF_DIALOGS_REQUISITES SYSREF_EDITORS SYSREF_EDOC_CARDS SYSREF_EDOC_TYPES SYSREF_EDOCUMENT_CARD_REQUISITES SYSREF_EDOCUMENT_CARD_TYPES SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE SYSREF_EDOCUMENT_CARDS SYSREF_EDOCUMENT_HISTORY SYSREF_EDOCUMENT_KINDS SYSREF_EDOCUMENT_REQUISITES SYSREF_EDOCUMENT_SIGNATURES SYSREF_EDOCUMENT_TEMPLATES SYSREF_EDOCUMENT_TEXT_STORAGES SYSREF_EDOCUMENT_VIEWS SYSREF_FILTERER_SETUP_CONFLICTS SYSREF_FILTRATER_SETTING_CONFLICTS SYSREF_FOLDER_HISTORY SYSREF_FOLDERS SYSREF_FUNCTION_GROUPS SYSREF_FUNCTION_PARAMS SYSREF_FUNCTIONS SYSREF_JOB_HISTORY SYSREF_LINKS SYSREF_LOCALIZATION_DICTIONARY SYSREF_LOCALIZATION_LANGUAGES SYSREF_MODULES SYSREF_PRIVILEGES SYSREF_RECORD_HISTORY SYSREF_REFERENCE_REQUISITES SYSREF_REFERENCE_TYPE_VIEWS SYSREF_REFERENCE_TYPES SYSREF_REFERENCES SYSREF_REFERENCES_REQUISITES SYSREF_REMOTE_SERVERS SYSREF_REPLICATION_SESSIONS_LOG SYSREF_REPLICATION_SESSIONS_PROTOCOL SYSREF_REPORTS SYSREF_ROLES SYSREF_ROUTE_BLOCK_GROUPS SYSREF_ROUTE_BLOCKS SYSREF_SCRIPTS SYSREF_SEARCHES SYSREF_SERVER_EVENTS SYSREF_SERVER_EVENTS_HISTORY SYSREF_STANDARD_ROUTE_GROUPS SYSREF_STANDARD_ROUTES SYSREF_STATUSES SYSREF_SYSTEM_SETTINGS SYSREF_TASK_HISTORY SYSREF_TASK_KIND_GROUPS SYSREF_TASK_KINDS SYSREF_TASK_RIGHTS SYSREF_TASK_SIGNATURES SYSREF_TASKS SYSREF_UNITS SYSREF_USER_GROUPS SYSREF_USER_GROUPS_REFERENCE SYSREF_USER_SUBSTITUTION SYSREF_USERS SYSREF_USERS_REFERENCE SYSREF_VIEWERS SYSREF_WORKING_TIME_CALENDARS ACCESS_RIGHTS_TABLE_NAME EDMS_ACCESS_TABLE_NAME EDOC_TYPES_TABLE_NAME TEST_DEV_DB_NAME TEST_DEV_SYSTEM_CODE TEST_EDMS_DB_NAME TEST_EDMS_MAIN_CODE TEST_EDMS_MAIN_DB_NAME TEST_EDMS_SECOND_CODE TEST_EDMS_SECOND_DB_NAME TEST_EDMS_SYSTEM_CODE TEST_ISB5_MAIN_CODE TEST_ISB5_SECOND_CODE TEST_SQL_SERVER_2005_NAME TEST_SQL_SERVER_NAME ATTENTION_CAPTION cbsCommandLinks cbsDefault CONFIRMATION_CAPTION ERROR_CAPTION INFORMATION_CAPTION mrCancel mrOk EDOC_VERSION_ACTIVE_STAGE_CODE EDOC_VERSION_DESIGN_STAGE_CODE EDOC_VERSION_OBSOLETE_STAGE_CODE cpDataEnciphermentEnabled cpDigitalSignatureEnabled cpID cpIssuer cpPluginVersion cpSerial cpSubjectName cpSubjSimpleName cpValidFromDate cpValidToDate ISBL_SYNTAX NO_SYNTAX XML_SYNTAX WAIT_BLOCK_AFTER_FINISH_EVENT WAIT_BLOCK_BEFORE_START_EVENT WAIT_BLOCK_DEADLINE_PROPERTY WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY WAIT_BLOCK_NAME_PROPERTY WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SYSRES_COMMON SYSRES_CONST SYSRES_MBFUNC SYSRES_SBDATA SYSRES_SBGUI SYSRES_SBINTF SYSRES_SBREFDSC SYSRES_SQLERRORS SYSRES_SYSCOMP) + b["enum"] = Set.new %w(atUser atGroup atRole aemEnabledAlways aemDisabledAlways aemEnabledOnBrowse aemEnabledOnEdit aemDisabledOnBrowseEmpty apBegin apEnd alLeft alRight asmNever asmNoButCustomize asmAsLastTime asmYesButCustomize asmAlways cirCommon cirRevoked ctSignature ctEncode ctSignatureEncode clbUnchecked clbChecked clbGrayed ceISB ceAlways ceNever ctDocument ctReference ctScript ctUnknown ctReport ctDialog ctFunction ctFolder ctEDocument ctTask ctJob ctNotice ctControlJob cfInternal cfDisplay ciUnspecified ciWrite ciRead ckFolder ckEDocument ckTask ckJob ckComponentToken ckAny ckReference ckScript ckReport ckDialog ctISBLEditor ctBevel ctButton ctCheckListBox ctComboBox ctComboEdit ctGrid ctDBCheckBox ctDBComboBox ctDBEdit ctDBEllipsis ctDBMemo ctDBNavigator ctDBRadioGroup ctDBStatusLabel ctEdit ctGroupBox ctInplaceHint ctMemo ctPanel ctListBox ctRadioButton ctRichEdit ctTabSheet ctWebBrowser ctImage ctHyperLink ctLabel ctDBMultiEllipsis ctRibbon ctRichView ctInnerPanel ctPanelGroup ctBitButton cctDate cctInteger cctNumeric cctPick cctReference cctString cctText cltInternal cltPrimary cltGUI dseBeforeOpen dseAfterOpen dseBeforeClose dseAfterClose dseOnValidDelete dseBeforeDelete dseAfterDelete dseAfterDeleteOutOfTransaction dseOnDeleteError dseBeforeInsert dseAfterInsert dseOnValidUpdate dseBeforeUpdate dseOnUpdateRatifiedRecord dseAfterUpdate dseAfterUpdateOutOfTransaction dseOnUpdateError dseAfterScroll dseOnOpenRecord dseOnCloseRecord dseBeforeCancel dseAfterCancel dseOnUpdateDeadlockError dseBeforeDetailUpdate dseOnPrepareUpdate dseOnAnyRequisiteChange dssEdit dssInsert dssBrowse dssInActive dftDate dftShortDate dftDateTime dftTimeStamp dotDays dotHours dotMinutes dotSeconds dtkndLocal dtkndUTC arNone arView arEdit arFull ddaView ddaEdit emLock emEdit emSign emExportWithLock emImportWithUnlock emChangeVersionNote emOpenForModify emChangeLifeStage emDelete emCreateVersion emImport emUnlockExportedWithLock emStart emAbort emReInit emMarkAsReaded emMarkAsUnreaded emPerform emAccept emResume emChangeRights emEditRoute emEditObserver emRecoveryFromLocalCopy emChangeWorkAccessType emChangeEncodeTypeToCertificate emChangeEncodeTypeToPassword emChangeEncodeTypeToNone emChangeEncodeTypeToCertificatePassword emChangeStandardRoute emGetText emOpenForView emMoveToStorage emCreateObject emChangeVersionHidden emDeleteVersion emChangeLifeCycleStage emApprovingSign emExport emContinue emLockFromEdit emUnLockForEdit emLockForServer emUnlockFromServer emDelegateAccessRights emReEncode ecotFile ecotProcess eaGet eaCopy eaCreate eaCreateStandardRoute edltAll edltNothing edltQuery essmText essmCard esvtLast esvtLastActive esvtSpecified edsfExecutive edsfArchive edstSQLServer edstFile edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile vsDefault vsDesign vsActive vsObsolete etNone etCertificate etPassword etCertificatePassword ecException ecWarning ecInformation estAll estApprovingOnly evtLast evtLastActive evtQuery fdtString fdtNumeric fdtInteger fdtDate fdtText fdtUnknown fdtWideString fdtLargeInteger ftInbox ftOutbox ftFavorites ftCommonFolder ftUserFolder ftComponents ftQuickLaunch ftShortcuts ftSearch grhAuto grhX1 grhX2 grhX3 hltText hltRTF hltHTML iffBMP iffJPEG iffMultiPageTIFF iffSinglePageTIFF iffTIFF iffPNG im8bGrayscale im24bRGB im1bMonochrome itBMP itJPEG itWMF itPNG ikhInformation ikhWarning ikhError ikhNoIcon icUnknown icScript icFunction icIntegratedReport icAnalyticReport icDataSetEventHandler icActionHandler icFormEventHandler icLookUpEventHandler icRequisiteChangeEventHandler icBeforeSearchEventHandler icRoleCalculation icSelectRouteEventHandler icBlockPropertyCalculation icBlockQueryParamsEventHandler icChangeSearchResultEventHandler icBlockEventHandler icSubTaskInitEventHandler icEDocDataSetEventHandler icEDocLookUpEventHandler icEDocActionHandler icEDocFormEventHandler icEDocRequisiteChangeEventHandler icStructuredConversionRule icStructuredConversionEventBefore icStructuredConversionEventAfter icWizardEventHandler icWizardFinishEventHandler icWizardStepEventHandler icWizardStepFinishEventHandler icWizardActionEnableEventHandler icWizardActionExecuteEventHandler icCreateJobsHandler icCreateNoticesHandler icBeforeLookUpEventHandler icAfterLookUpEventHandler icTaskAbortEventHandler icWorkflowBlockActionHandler icDialogDataSetEventHandler icDialogActionHandler icDialogLookUpEventHandler icDialogRequisiteChangeEventHandler icDialogFormEventHandler icDialogValidCloseEventHandler icBlockFormEventHandler icTaskFormEventHandler icReferenceMethod icEDocMethod icDialogMethod icProcessMessageHandler isShow isHide isByUserSettings jkJob jkNotice jkControlJob jtInner jtLeft jtRight jtFull jtCross lbpAbove lbpBelow lbpLeft lbpRight eltPerConnection eltPerUser sfcUndefined sfcBlack sfcGreen sfcRed sfcBlue sfcOrange sfcLilac sfsItalic sfsStrikeout sfsNormal ldctStandardRoute ldctWizard ldctScript ldctFunction ldctRouteBlock ldctIntegratedReport ldctAnalyticReport ldctReferenceType ldctEDocumentType ldctDialog ldctServerEvents mrcrtNone mrcrtUser mrcrtMaximal mrcrtCustom vtEqual vtGreaterOrEqual vtLessOrEqual vtRange rdYesterday rdToday rdTomorrow rdThisWeek rdThisMonth rdThisYear rdNextMonth rdNextWeek rdLastWeek rdLastMonth rdWindow rdFile rdPrinter rdtString rdtNumeric rdtInteger rdtDate rdtReference rdtAccount rdtText rdtPick rdtUnknown rdtLargeInteger rdtDocument reOnChange reOnChangeValues ttGlobal ttLocal ttUser ttSystem ssmBrowse ssmSelect ssmMultiSelect ssmBrowseModal smSelect smLike smCard stNone stAuthenticating stApproving sctString sctStream sstAnsiSort sstNaturalSort svtEqual svtContain soatString soatNumeric soatInteger soatDatetime soatReferenceRecord soatText soatPick soatBoolean soatEDocument soatAccount soatIntegerCollection soatNumericCollection soatStringCollection soatPickCollection soatDatetimeCollection soatBooleanCollection soatReferenceRecordCollection soatEDocumentCollection soatAccountCollection soatContents soatUnknown tarAbortByUser tarAbortByWorkflowException tvtAllWords tvtExactPhrase tvtAnyWord usNone usCompleted usRedSquare usBlueSquare usYellowSquare usGreenSquare usOrangeSquare usPurpleSquare usFollowUp utUnknown utUser utDeveloper utAdministrator utSystemDeveloper utDisconnected btAnd btDetailAnd btOr btNotOr btOnly vmView vmSelect vmNavigation vsmSingle vsmMultiple vsmMultipleCheck vsmNoSelection wfatPrevious wfatNext wfatCancel wfatFinish wfepUndefined wfepText3 wfepText6 wfepText9 wfepSpinEdit wfepDropDown wfepRadioGroup wfepFlag wfepText12 wfepText15 wfepText18 wfepText21 wfepText24 wfepText27 wfepText30 wfepRadioGroupColumn1 wfepRadioGroupColumn2 wfepRadioGroupColumn3 wfetQueryParameter wfetText wfetDelimiter wfetLabel wptString wptInteger wptNumeric wptBoolean wptDateTime wptPick wptText wptUser wptUserList wptEDocumentInfo wptEDocumentInfoList wptReferenceRecordInfo wptReferenceRecordInfoList wptFolderInfo wptTaskInfo wptContents wptFileName wptDate wsrComplete wsrGoNext wsrGoPrevious wsrCustom wsrCancel wsrGoFinal wstForm wstEDocument wstTaskCard wstReferenceRecordCard wstFinal waAll waPerformers waManual wsbStart wsbFinish wsbNotice wsbStep wsbDecision wsbWait wsbMonitor wsbScript wsbConnector wsbSubTask wsbLifeCycleStage wsbPause wdtInteger wdtFloat wdtString wdtPick wdtDateTime wdtBoolean wdtTask wdtJob wdtFolder wdtEDocument wdtReferenceRecord wdtUser wdtGroup wdtRole wdtIntegerCollection wdtFloatCollection wdtStringCollection wdtPickCollection wdtDateTimeCollection wdtBooleanCollection wdtTaskCollection wdtJobCollection wdtFolderCollection wdtEDocumentCollection wdtReferenceRecordCollection wdtUserCollection wdtGroupCollection wdtRoleCollection wdtContents wdtUserList wdtSearchDescription wdtDeadLine wdtPickSet wdtAccountCollection wiLow wiNormal wiHigh wrtSoft wrtHard wsInit wsRunning wsDone wsControlled wsAborted wsContinued wtmFull wtmFromCurrent wtmOnlyCurrent) + b["global"] = Set.new %w(AltState Application CallType ComponentTokens CreatedJobs CreatedNotices ControlState DialogResult Dialogs EDocuments EDocumentVersionSource Folders GlobalIDs Job Jobs InputValue LookUpReference LookUpRequisiteNames LookUpSearch Object ParentComponent Processes References Requisite ReportName Reports Result Scripts Searches SelectedAttachments SelectedItems SelectMode Sender ServerEvents ServiceFactory ShiftState SubTask SystemDialogs Tasks Wizard Wizards Work ВызовСпособ ИмяОтчета РеквЗнач) + b["interface"] = Set.new %w(IApplication IAccessRights IAccountRepository IAccountSelectionRestrictions IAction IActionList IAdministrationHistoryDescription IAnchors IApplication IArchiveInfo IAttachment IAttachmentList ICheckListBox ICheckPointedList IColumn IComponent IComponentDescription IComponentToken IComponentTokenFactory IComponentTokenInfo ICompRecordInfo IConnection IContents IControl IControlJob IControlJobInfo IControlList ICrypto ICrypto2 ICustomJob ICustomJobInfo ICustomListBox ICustomObjectWizardStep ICustomWork ICustomWorkInfo IDataSet IDataSetAccessInfo IDataSigner IDateCriterion IDateRequisite IDateRequisiteDescription IDateValue IDeaAccessRights IDeaObjectInfo IDevelopmentComponentLock IDialog IDialogFactory IDialogPickRequisiteItems IDialogsFactory IDICSFactory IDocRequisite IDocumentInfo IDualListDialog IECertificate IECertificateInfo IECertificates IEditControl IEditorForm IEdmsExplorer IEdmsObject IEdmsObjectDescription IEdmsObjectFactory IEdmsObjectInfo IEDocument IEDocumentAccessRights IEDocumentDescription IEDocumentEditor IEDocumentFactory IEDocumentInfo IEDocumentStorage IEDocumentVersion IEDocumentVersionListDialog IEDocumentVersionSource IEDocumentWizardStep IEDocVerSignature IEDocVersionState IEnabledMode IEncodeProvider IEncrypter IEvent IEventList IException IExternalEvents IExternalHandler IFactory IField IFileDialog IFolder IFolderDescription IFolderDialog IFolderFactory IFolderInfo IForEach IForm IFormTitle IFormWizardStep IGlobalIDFactory IGlobalIDInfo IGrid IHasher IHistoryDescription IHyperLinkControl IImageButton IImageControl IInnerPanel IInplaceHint IIntegerCriterion IIntegerList IIntegerRequisite IIntegerValue IISBLEditorForm IJob IJobDescription IJobFactory IJobForm IJobInfo ILabelControl ILargeIntegerCriterion ILargeIntegerRequisite ILargeIntegerValue ILicenseInfo ILifeCycleStage IList IListBox ILocalIDInfo ILocalization ILock IMemoryDataSet IMessagingFactory IMetadataRepository INotice INoticeInfo INumericCriterion INumericRequisite INumericValue IObject IObjectDescription IObjectImporter IObjectInfo IObserver IPanelGroup IPickCriterion IPickProperty IPickRequisite IPickRequisiteDescription IPickRequisiteItem IPickRequisiteItems IPickValue IPrivilege IPrivilegeList IProcess IProcessFactory IProcessMessage IProgress IProperty IPropertyChangeEvent IQuery IReference IReferenceCriterion IReferenceEnabledMode IReferenceFactory IReferenceHistoryDescription IReferenceInfo IReferenceRecordCardWizardStep IReferenceRequisiteDescription IReferencesFactory IReferenceValue IRefRequisite IReport IReportFactory IRequisite IRequisiteDescription IRequisiteDescriptionList IRequisiteFactory IRichEdit IRouteStep IRule IRuleList ISchemeBlock IScript IScriptFactory ISearchCriteria ISearchCriterion ISearchDescription ISearchFactory ISearchFolderInfo ISearchForObjectDescription ISearchResultRestrictions ISecuredContext ISelectDialog IServerEvent IServerEventFactory IServiceDialog IServiceFactory ISignature ISignProvider ISignProvider2 ISignProvider3 ISimpleCriterion IStringCriterion IStringList IStringRequisite IStringRequisiteDescription IStringValue ISystemDialogsFactory ISystemInfo ITabSheet ITask ITaskAbortReasonInfo ITaskCardWizardStep ITaskDescription ITaskFactory ITaskInfo ITaskRoute ITextCriterion ITextRequisite ITextValue ITreeListSelectDialog IUser IUserList IValue IView IWebBrowserControl IWizard IWizardAction IWizardFactory IWizardFormElement IWizardParam IWizardPickParam IWizardReferenceParam IWizardStep IWorkAccessRights IWorkDescription IWorkflowAskableParam IWorkflowAskableParams IWorkflowBlock IWorkflowBlockResult IWorkflowEnabledMode IWorkflowParam IWorkflowPickParam IWorkflowReferenceParam IWorkState IWorkTreeCustomNode IWorkTreeJobNode IWorkTreeTaskNode IXMLEditorForm SBCrypto) + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/j.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/j.rb new file mode 100644 index 0000000..7a5ede1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/j.rb @@ -0,0 +1,244 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class J < RegexLexer + title 'J' + desc "The J programming language (jsoftware.com)" + tag 'j' + filenames '*.ijs', '*.ijt' + + # For J-specific terms we use, see: + # https://code.jsoftware.com/wiki/Vocabulary/AET + # https://code.jsoftware.com/wiki/Vocabulary/Glossary + + # https://code.jsoftware.com/wiki/Vocabulary/PartsOfSpeech + def self.token_map + @token_map ||= { + noun: Keyword::Constant, + verb: Name::Function, + modifier: Operator, + name: Name, + param: Name::Builtin::Pseudo, + other: Punctuation, + nil => Error, + } + end + + # https://code.jsoftware.com/wiki/NuVoc + def self.inflection_list + @inflection_list ||= ['', '.', ':', '..', '.:', ':.', '::'] + end + + def self.primitive_table + @primitive_table ||= Hash.new([:name]).tap do |h| + { + '()' => [:other], + '=' => [:verb, :other, :other], + '<>+-*%$|,#' => [:verb, :verb, :verb], + '^' => [:verb, :verb, :modifier], + '~"' => [:modifier, :verb, :verb], + '.:@' => [:modifier, :modifier, :modifier], + ';' => [:verb, :modifier, :verb], + '!' => [:verb, :modifier, :modifier], + '/\\' => [:modifier, :modifier, :verb], + '[' => [:verb, nil, :verb], + ']' => [:verb], + '{' => [:verb, :verb, :verb, nil, nil, nil, :verb], + '}' => [:modifier, :verb, :verb, nil, nil, nil, :modifier], + '`' => [:modifier, nil, :modifier], + '&' => [:modifier, :modifier, :modifier, nil, :modifier], + '?' => [:verb, :verb], + 'a' => [:name, :noun, :noun], + 'ACeEIjorv' => [:name, :verb], + 'bdfHMT' => [:name, :modifier], + 'Dt' => [:name, :modifier, :modifier], + 'F' => [:name, :modifier, :modifier, :modifier, :modifier, + :modifier, :modifier], + 'iu' => [:name, :verb, :verb], + 'L' => [:name, :verb, :modifier], + 'mny' => [:param], + 'p' => [:name, :verb, :verb, :verb], + 'qsZ' => [:name, nil, :verb], + 'S' => [:name, nil, :modifier], + 'u' => [:param, :verb, :verb], + 'v' => [:param, :verb], + 'x' => [:param, nil, :verb], + }.each {|k, v| k.each_char {|c| h[c] = v } } + end + end + + def self.primitive(char, inflection) + i = inflection_list.index(inflection) or return Error + token_map[primitive_table[char][i]] + end + + def self.control_words + @control_words ||= Set.new %w( + assert break case catch catchd catcht continue do else elseif end + fcase for if return select throw try while whilst + ) + end + + def self.control_words_id + @control_words_id ||= Set.new %w(for goto label) + end + + state :expr do + rule %r/\s+/, Text + + rule %r'([!-&(-/:-@\[-^`{-~]|[A-Za-z]\b)([.:]*)' do |m| + token J.primitive(m[1], m[2]) + end + + rule %r/(?:\d|_\d?):([.:]*)/ do |m| + token m[1].empty? ? J.token_map[:verb] : Error + end + + rule %r/[\d_][\w.]*([.:]*)/ do |m| + token m[1].empty? ? Num : Error + end + + rule %r/'/, Str::Single, :str + + rule %r/NB\.(?![.:]).*/, Comment::Single + + rule %r/([A-Za-z]\w*)([.:]*)/ do |m| + if m[2] == '.' + word, sep, id = m[1].partition '_' + list = if sep.empty? + J.control_words + elsif not id.empty? + J.control_words_id + end + if list and list.include? word + token Keyword, word + sep + token((word == 'for' ? Name : Name::Label), id) + token Keyword, m[2] + else + token Error + end + else + token m[2].empty? ? Name : Error + end + end + end + + state :str do + rule %r/''/, Str::Escape + rule %r/[^'\n]+/, Str::Single + rule %r/'|$/, Str::Single, :pop! + end + + start do + @note_next = false + end + + state :root do + rule %r/\n/ do + token Text + if @note_next + push :note + @note_next = false + end + end + + # https://code.jsoftware.com/wiki/Vocabulary/com + # https://code.jsoftware.com/wiki/Vocabulary/NounExplicitDefinition + rule %r/ + ([0-4]|13|adverb|conjunction|dyad|monad|noun|verb)([\ \t]+) + (def(?:ine)?\b|:)(?![.:])([\ \t]*) + /x do |m| + groups Keyword::Pseudo, Text, Keyword::Pseudo, Text + @def_body = (m[1] == '0' || m[1] == 'noun') ? :noun : :code + if m[3] == 'define' + # stack: [:root] + # or [:root, ..., :def_next] + pop! if stack.size > 1 + push @def_body + push :def_next # [:root, ..., @def_body, :def_next] + else + push :expl_def + end + end + + rule %r/^([ \t]*)(Note\b(?![.:]))([ \t\r]*)(?!=[.:]|$)/ do + groups Text, Name, Text + @note_next = true + end + + rule %r/[mnuvxy]\b(?![.:])/, Name + mixin :expr + end + + state :def_next do + rule %r/\n/, Text, :pop! + mixin :root + end + + state :expl_def do + rule %r/0\b(?![.:])/ do + token Keyword::Pseudo + # stack: [:root, :expl_def] + # or [:root, ..., :def_next, :expl_def] + pop! if stack.size > 2 + goto @def_body + push :def_next # [:root, ..., @def_body, :def_next] + end + rule %r/'/ do + if @def_body == :noun + token Str::Single + goto :str + else + token Punctuation + goto :q_expr + end + end + rule(//) { pop! } + end + + # `q_expr` lexes the content of a string literal which is a part of an + # explicit definition. + # e.g. dyad def 'x + y' + state :q_expr do + rule %r/''/, Str::Single, :q_str + rule %r/'|$/, Punctuation, :pop! + rule %r/NB\.(?![.:])([^'\n]|'')*/, Comment::Single + mixin :expr + end + + state :q_str do + rule %r/''''/, Str::Escape + rule %r/[^'\n]+/, Str::Single + rule %r/''/, Str::Single, :pop! + rule(/'|$/) { token Punctuation; pop! 2 } + end + + state :note do + mixin :delimiter + rule %r/.+\n?/, Comment::Multiline + end + + state :noun do + mixin :delimiter + rule %r/.+\n?/, Str::Heredoc + end + + state :code do + mixin :delimiter + rule %r/^([ \t]*)(:)([ \t\r]*)$/ do + groups Text, Punctuation, Text + end + mixin :expr + end + + state :delimiter do + rule %r/^([ \t]*)(\))([ \t\r]*$\n?)/ do + groups Text, Punctuation, Text + pop! + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/janet.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/janet.rb new file mode 100644 index 0000000..18b2465 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/janet.rb @@ -0,0 +1,218 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Janet < RegexLexer + title "Janet" + desc "The Janet programming language (janet-lang.org)" + + tag 'janet' + aliases 'jdn' + + filenames '*.janet', '*.jdn' + + mimetypes 'text/x-janet', 'application/x-janet' + + def self.specials + @specials ||= Set.new %w( + break def do fn if quote quasiquote splice set unquote var while + ) + end + + def self.bundled + @bundled ||= Set.new %w( + % %= * *= + ++ += - -- -= -> ->> -?> -?>> / /= < <= = > >= + abstract? accumulate accumulate2 all all-bindings + all-dynamics and apply array array/concat array/ensure + array/fill array/insert array/new array/new-filled + array/peek array/pop array/push array/remove array/slice + array? as-> as?-> asm assert bad-compile bad-parse band + blshift bnot boolean? bor brshift brushift buffer buffer/bit + buffer/bit-clear buffer/bit-set buffer/bit-toggle + buffer/blit buffer/clear buffer/fill buffer/format + buffer/new buffer/new-filled buffer/popn buffer/push-byte + buffer/push-string buffer/push-word buffer/slice buffer? + bxor bytes? case cfunction? chr cli-main comment comp + compare compare= compare< compare<= compare> compare>= + compile complement comptime cond coro count debug + debug/arg-stack debug/break debug/fbreak debug/lineage + debug/stack debug/stacktrace debug/step debug/unbreak + debug/unfbreak debugger-env dec deep-not= deep= default + default-peg-grammar def- defer defmacro defmacro- defn defn- + defglobal describe dictionary? disasm distinct doc doc* + doc-format dofile drop drop-until drop-while dyn each eachk + eachp eachy edefer eflush empty? env-lookup eprin eprinf + eprint eprintf error errorf eval eval-string even? every? + extreme false? fiber/can-resume? fiber/current fiber/getenv + fiber/maxstack fiber/new fiber/root fiber/setenv + fiber/setmaxstack fiber/status fiber? file/close file/flush + file/open file/popen file/read file/seek file/temp + file/write filter find find-index first flatten flatten-into + flush for forv freeze frequencies function? gccollect + gcinterval gcsetinterval generate gensym get get-in getline + hash idempotent? identity import import* if-let if-not + if-with in inc indexed? int/s64 int/u64 int? interleave + interpose invert janet/build janet/config-bits janet/version + juxt juxt* keep keys keyword keyword? kvs label last length + let load-image load-image-dict loop macex macex1 make-env + make-image make-image-dict map mapcat marshal math/-inf + math/abs math/acos math/acosh math/asin math/asinh math/atan + math/atan2 math/atanh math/cbrt math/ceil math/cos math/cosh + math/e math/erf math/erfc math/exp math/exp2 math/expm1 + math/floor math/gamma math/hypot math/inf math/log + math/log10 math/log1p math/log2 math/next math/pi math/pow + math/random math/rng math/rng-buffer math/rng-int + math/rng-uniform math/round math/seedrandom math/sin + math/sinh math/sqrt math/tan math/tanh math/trunc match max + mean merge merge-into min mod module/add-paths module/cache + module/expand-path module/find module/loaders module/loading + module/paths nan? nat? native neg? net/chunk net/close + net/connect net/read net/server net/write next nil? not not= + number? odd? one? or os/arch os/cd os/chmod os/clock + os/cryptorand os/cwd os/date os/dir os/environ os/execute + os/exit os/getenv os/link os/lstat os/mkdir os/mktime + os/perm-int os/perm-string os/readlink os/realpath os/rename + os/rm os/rmdir os/setenv os/shell os/sleep os/stat + os/symlink os/time os/touch os/umask os/which pairs parse + parser/byte parser/clone parser/consume parser/eof + parser/error parser/flush parser/has-more parser/insert + parser/new parser/produce parser/state parser/status + parser/where partial partition peg/compile peg/match pos? + postwalk pp prewalk prin prinf print printf product prompt + propagate protect put put-in quit range reduce reduce2 + repeat repl require resume return reverse reversed root-env + run-context scan-number seq setdyn shortfn signal slice + slurp some sort sort-by sorted sorted-by spit stderr stdin + stdout string string/ascii-lower string/ascii-upper + string/bytes string/check-set string/find string/find-all + string/format string/from-bytes string/has-prefix? + string/has-suffix? string/join string/repeat string/replace + string/replace-all string/reverse string/slice string/split + string/trim string/triml string/trimr string? struct struct? + sum symbol symbol? table table/clone table/getproto + table/new table/rawget table/setproto table/to-struct table? + take take-until take-while tarray/buffer tarray/copy-bytes + tarray/length tarray/new tarray/properties tarray/slice + tarray/swap-bytes thread/close thread/current thread/new + thread/receive thread/send trace tracev true? truthy? try + tuple tuple/brackets tuple/setmap tuple/slice + tuple/sourcemap tuple/type tuple? type unless unmarshal + untrace update update-in use values var- varfn varglobal + walk walk-ind walk-dict when when-let when-with with + with-dyns with-syms with-vars yield zero? zipcoll + ) + end + + def name_token(name) + if self.class.specials.include? name + Keyword + elsif self.class.bundled.include? name + Keyword::Reserved + else + Name::Function + end + end + + punctuation = %r/[_!$%^&*+=~<>.?\/-]/o + symbol = %r/([[:alpha:]]|#{punctuation})([[:word:]]|#{punctuation}|:)*/o + + state :root do + rule %r/#.*?$/, Comment::Single + rule %r/\s+/m, Text::Whitespace + + rule %r/(true|false|nil)\b/, Name::Constant + rule %r/(['~])(#{symbol})/ do + groups Operator, Str::Symbol + end + rule %r/:([[:word:]]|#{punctuation}|:)*/, Keyword::Constant + + # radix-specified numbers + rule %r/[+-]?\d{1,2}r[\w.]+(&[+-]?\w+)?/, Num::Float + + # hex numbers + rule %r/[+-]?0x\h[\h_]*(\.\h[\h_]*)?/, Num::Hex + rule %r/[+-]?0x\.\h[\h_]*/, Num::Hex + + # decimal numbers (Janet treats all decimals as floats) + rule %r/[+-]?\d[\d_]*(\.\d[\d_]*)?([e][+-]?\d+)?/i, Num::Float + rule %r/[+-]?\.\d[\d_]*([e][+-]?\d+)?/i, Num::Float + + rule %r/@?"/, Str::Double, :string + rule %r/@?(`+).*?\1/m, Str::Heredoc + + rule %r/\(/, Punctuation, :function + + rule %r/(')(@?[(\[{])/ do + groups Operator, Punctuation + push :quote + end + + rule %r/(~)(@?[(\[{])/ do + groups Operator, Punctuation + push :quasiquote + end + + rule %r/[\#~,';\|]/, Operator + + rule %r/@?[(){}\[\]]/, Punctuation + + rule symbol, Name + end + + state :string do + rule %r/"/, Str::Double, :pop! + rule %r/\\(u\h{4}|U\h{6})/, Str::Escape + rule %r/\\./, Str::Escape + rule %r/[^"\\]+/, Str::Double + end + + state :function do + rule %r/[\)]/, Punctuation, :pop! + + rule symbol do |m| + case m[0] + when "quote" + token Keyword + goto :quote + when "quasiquote" + token Keyword + goto :quasiquote + else + token name_token(m[0]) + goto :root + end + end + + mixin :root + end + + state :quote do + rule %r/[(\[{]/, Punctuation, :push + rule %r/[)\]}]/, Punctuation, :pop! + rule symbol, Str::Escape + mixin :root + end + + state :quasiquote do + rule %r/(,)(\()/ do + groups Operator, Punctuation + push :function + end + rule %r/(\()(\s*)(unquote)(\s+)(\()/ do + groups Punctuation, Text, Keyword, Text, Punctuation + push :function + end + + rule %r/(,)(#{symbol})/ do + groups Operator, Name + end + rule %r/(\()(\s*)(unquote)(\s+)(#{symbol})/ do + groups Punctuation, Text, Keyword, Text, Name + end + + mixin :quote + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/java.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/java.rb new file mode 100644 index 0000000..f6749a7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/java.rb @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Java < RegexLexer + title "Java" + desc "The Java programming language (java.com)" + + tag 'java' + filenames '*.java' + mimetypes 'text/x-java' + + keywords = %w( + assert break case catch continue default do else finally for + if goto instanceof new return switch this throw try while + ) + + declarations = %w( + abstract const enum extends final implements native private protected + public static strictfp super synchronized throws transient volatile + ) + + types = %w(boolean byte char double float int long short var void) + + id = /[[:alpha:]_][[:word:]]*/ + const_name = /[[:upper:]][[:upper:][:digit:]_]*\b/ + class_name = /[[:upper:]][[:alnum:]]*\b/ + + state :root do + rule %r/[^\S\n]+/, Text + rule %r(//.*?$), Comment::Single + rule %r(/\*.*?\*/)m, Comment::Multiline + # keywords: go before method names to avoid lexing "throw new XYZ" + # as a method signature + rule %r/(?:#{keywords.join('|')})\b/, Keyword + + rule %r( + (\s*(?:[a-zA-Z_][a-zA-Z0-9_.\[\]<>]*\s+)+?) # return arguments + ([a-zA-Z_][a-zA-Z0-9_]*) # method name + (\s*)(\() # signature start + )mx do |m| + # TODO: do this better, this shouldn't need a delegation + delegate Java, m[1] + token Name::Function, m[2] + token Text, m[3] + token Operator, m[4] + end + + rule %r/@#{id}/, Name::Decorator + rule %r/(?:#{declarations.join('|')})\b/, Keyword::Declaration + rule %r/(?:#{types.join('|')})\b/, Keyword::Type + rule %r/(?:true|false|null)\b/, Keyword::Constant + rule %r/(?:class|interface|record)\b/, Keyword::Declaration, :class + rule %r/(?:import|package)\b/, Keyword::Namespace, :import + rule %r/"""\s*\n.*?(?<!\\)"""/m, Str::Heredoc + rule %r/"(\\\\|\\"|[^"])*"/, Str + rule %r/'(?:\\.|[^\\]|\\u[0-9a-f]{4})'/, Str::Char + rule %r/(\.)(#{id})/ do + groups Operator, Name::Attribute + end + + rule %r/#{id}:/, Name::Label + rule const_name, Name::Constant + rule class_name, Name::Class + rule %r/\$?#{id}/, Name + rule %r/[~^*!%&\[\](){}<>\|+=:;,.\/?-]/, Operator + + digit = /[0-9]_+[0-9]|[0-9]/ + bin_digit = /[01]_+[01]|[01]/ + oct_digit = /[0-7]_+[0-7]|[0-7]/ + hex_digit = /[0-9a-f]_+[0-9a-f]|[0-9a-f]/i + rule %r/#{digit}+\.#{digit}+([eE]#{digit}+)?[fd]?/, Num::Float + rule %r/0b#{bin_digit}+/i, Num::Bin + rule %r/0x#{hex_digit}+/i, Num::Hex + rule %r/0#{oct_digit}+/, Num::Oct + rule %r/#{digit}+L?/, Num::Integer + rule %r/\n/, Text + end + + state :class do + rule %r/\s+/m, Text + rule id, Name::Class, :pop! + end + + state :import do + rule %r/\s+/m, Text + rule %r/[a-z0-9_.]+\*?/i, Name::Namespace, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/javascript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/javascript.rb new file mode 100644 index 0000000..45a1184 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/javascript.rb @@ -0,0 +1,315 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + # IMPORTANT NOTICE: + # + # Please do not copy this lexer and open a pull request + # for a new language. It will not get merged, you will + # be unhappy, and kittens will cry. + # + class Javascript < RegexLexer + title "JavaScript" + desc "JavaScript, the browser scripting language" + + tag 'javascript' + aliases 'js' + filenames '*.cjs', '*.js', '*.mjs' + mimetypes 'application/javascript', 'application/x-javascript', + 'text/javascript', 'text/x-javascript' + + # Pseudo-documentation: https://stackoverflow.com/questions/1661197/what-characters-are-valid-for-javascript-variable-names + + def self.detect?(text) + return 1 if text.shebang?('node') + return 1 if text.shebang?('jsc') + # TODO: rhino, spidermonkey, etc + end + + state :multiline_comment do + rule %r([*]/), Comment::Multiline, :pop! + rule %r([^*/]+), Comment::Multiline + rule %r([*/]), Comment::Multiline + end + + state :comments_and_whitespace do + rule %r/\s+/, Text + rule %r/<!--/, Comment # really...? + rule %r(//.*?$), Comment::Single + rule %r(/[*]), Comment::Multiline, :multiline_comment + end + + state :expr_start do + mixin :comments_and_whitespace + + rule %r(/) do + token Str::Regex + goto :regex + end + + rule %r/[{]/ do + token Punctuation + goto :object + end + + rule %r//, Text, :pop! + end + + state :regex do + rule %r(/) do + token Str::Regex + goto :regex_end + end + + rule %r([^/]\n), Error, :pop! + + rule %r/\n/, Error, :pop! + rule %r/\[\^/, Str::Escape, :regex_group + rule %r/\[/, Str::Escape, :regex_group + rule %r/\\./, Str::Escape + rule %r{[(][?][:=<!]}, Str::Escape + rule %r/[{][\d,]+[}]/, Str::Escape + rule %r/[()?]/, Str::Escape + rule %r/./, Str::Regex + end + + state :regex_end do + rule %r/[gimuy]+/, Str::Regex, :pop! + rule(//) { pop! } + end + + state :regex_group do + # specially highlight / in a group to indicate that it doesn't + # close the regex + rule %r(/), Str::Escape + + rule %r([^/]\n) do + token Error + pop! 2 + end + + rule %r/\]/, Str::Escape, :pop! + rule %r/\\./, Str::Escape + rule %r/./, Str::Regex + end + + state :bad_regex do + rule %r/[^\n]+/, Error, :pop! + end + + def self.keywords + @keywords ||= Set.new %w( + async await break case catch continue debugger default delete + do else export finally from for if import in instanceof new of + return super switch this throw try typeof void while yield + ) + end + + def self.declarations + @declarations ||= Set.new %w( + var let const with function class + extends constructor get set static + ) + end + + def self.reserved + @reserved ||= Set.new %w( + enum implements interface + package private protected public + ) + end + + def self.constants + @constants ||= Set.new %w(true false null NaN Infinity undefined) + end + + def self.builtins + @builtins ||= %w( + Array Boolean Date Error Function Math netscape + Number Object Packages RegExp String sun decodeURI + decodeURIComponent encodeURI encodeURIComponent + Error eval isFinite isNaN parseFloat parseInt + document window navigator self global + Promise Set Map WeakSet WeakMap Symbol Proxy Reflect + Int8Array Uint8Array Uint8ClampedArray + Int16Array Uint16Array Uint16ClampedArray + Int32Array Uint32Array Uint32ClampedArray + Float32Array Float64Array DataView ArrayBuffer + ) + end + + def self.id_regex + /[\p{L}\p{Nl}$_][\p{Word}]*/io + end + + id = self.id_regex + + state :root do + rule %r/\A\s*#!.*?\n/m, Comment::Preproc, :statement + rule %r((?<=\n)(?=\s|/|<!--)), Text, :expr_start + mixin :comments_and_whitespace + rule %r(\+\+ | -- | ~ | \?\?=? | && | \|\| | \\(?=\n) | << | >>>? | === + | !== )x, + Operator, :expr_start + rule %r([-<>+*%&|\^/!=]=?), Operator, :expr_start + rule %r/[(\[,]/, Punctuation, :expr_start + rule %r/;/, Punctuation, :statement + rule %r/[)\].]/, Punctuation + + rule %r/`/ do + token Str::Double + push :template_string + end + + # special case for the safe navigation operator ?. + # so that we don't start detecting a ternary expr + rule %r/[?][.]/, Punctuation + + rule %r/[?]/ do + token Punctuation + push :ternary + push :expr_start + end + + rule %r/(\@)(\w+)?/ do + groups Punctuation, Name::Decorator + push :expr_start + end + + rule %r/(class)((?:\s|\\\s)+)/ do + groups Keyword::Declaration, Text + push :classname + end + + rule %r/([\p{Nl}$_]*\p{Lu}[\p{Word}]*)[ \t]*(?=(\(.*\)))/m, Name::Class + + rule %r/(function)((?:\s|\\\s)+)(#{id})/ do + groups Keyword::Declaration, Text, Name::Function + end + + rule %r/function(?=(\(.*\)))/, Keyword::Declaration # For anonymous functions + + rule %r/(#?#{id})[ \t]*(?=(\(.*\)))/m do |m| + if self.class.keywords.include?(m[1]) + # "if" in "if (...)" or "switch" in "switch (...)" are recognized as keywords. + token Keyword + else + token Name::Function + end + end + + rule %r/[{}]/, Punctuation, :statement + + rule %r/#?#{id}/ do |m| + if self.class.keywords.include? m[0] + token Keyword + push :expr_start + elsif self.class.declarations.include? m[0] + token Keyword::Declaration + push :expr_start + elsif self.class.reserved.include? m[0] + token Keyword::Reserved + elsif self.class.constants.include? m[0] + token Keyword::Constant + elsif self.class.builtins.include? m[0] + token Name::Builtin + else + token Name::Other + end + end + + rule %r/[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?/, Num::Float + rule %r/0x[0-9a-fA-F]+/i, Num::Hex + rule %r/0o[0-7][0-7_]*/i, Num::Oct + rule %r/0b[01][01_]*/i, Num::Bin + rule %r/[0-9]+/, Num::Integer + + rule %r/"/, Str::Delimiter, :dq + rule %r/'/, Str::Delimiter, :sq + rule %r/:/, Punctuation + end + + state :dq do + rule %r/\\[\\nrt"]?/, Str::Escape + rule %r/[^\\"]+/, Str::Double + rule %r/"/, Str::Delimiter, :pop! + end + + state :sq do + rule %r/\\[\\nrt']?/, Str::Escape + rule %r/[^\\']+/, Str::Single + rule %r/'/, Str::Delimiter, :pop! + end + + state :classname do + rule %r/(#{id})((?:\s|\\\s)+)(extends)((?:\s|\\\s)+)/ do + groups Name::Class, Text, Keyword::Declaration, Text + end + + rule id, Name::Class, :pop! + end + + # braced parts that aren't object literals + state :statement do + rule %r/case\b/ do + token Keyword + goto :expr_start + end + + rule %r/(#{id})(\s*)(:)/ do + groups Name::Label, Text, Punctuation + end + + mixin :expr_start + end + + # object literals + state :object do + mixin :comments_and_whitespace + + rule %r/[{]/ do + token Punctuation + push + end + + rule %r/[}]/ do + token Punctuation + goto :statement + end + + rule %r/(#{id})(\s*)(:)/ do + groups Name::Attribute, Text, Punctuation + push :expr_start + end + + rule %r/:/, Punctuation + mixin :root + end + + # ternary expressions, where <id>: is not a label! + state :ternary do + rule %r/:/ do + token Punctuation + goto :expr_start + end + + mixin :root + end + + # template strings + state :template_string do + rule %r/[$]{/, Punctuation, :template_string_expr + rule %r/`/, Str::Double, :pop! + rule %r/\\[$`\\]/, Str::Escape + rule %r/[^$`\\]+/, Str::Double + rule %r/[\\$]/, Str::Double + end + + state :template_string_expr do + rule %r/}/, Punctuation, :pop! + mixin :root + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jinja.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jinja.rb new file mode 100644 index 0000000..15c28b7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jinja.rb @@ -0,0 +1,169 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Jinja < TemplateLexer + title "Jinja" + desc "Django/Jinja template engine (jinja.pocoo.org)" + + tag 'jinja' + aliases 'django' + + mimetypes 'application/x-django-templating', 'application/x-jinja', + 'text/html+django', 'text/html+jinja' + + def self.keywords + @keywords ||= %w(as context do else extends from ignore missing + import include reversed recursive scoped + autoescape endautoescape block endblock call endcall + filter endfilter for endfor if endif macro endmacro + set endset trans endtrans with endwith without) + end + + def self.tests + @tests ||= %w(callable defined divisibleby equalto escaped even iterable + lower mapping none number odd sameas sequence string + undefined upper) + end + + def self.pseudo_keywords + @pseudo_keywords ||= %w(true false none True False None) + end + + def self.word_operators + @word_operators ||= %w(is in and or not) + end + + state :root do + # Comments + rule %r/{#/, Comment, :comment + rule %r/##.*/, Comment + + # Raw and verbatim + rule %r/({%-?)(\s*)(raw|verbatim)(\s*)(-?%})/ do |m| + groups Comment::Preproc, Text, Keyword, Text, Comment::Preproc + case m[3] + when "raw" + push :raw + when "verbatim" + push :verbatim + end + end + + # Statements + rule %r/\{\%/ do + token Comment::Preproc + push :statement + end + + # Expressions + rule %r/\{\{/ do + token Comment::Preproc + push :expression + end + + rule(/(.+?)(?=\\|{{|{%|{#|##)/m) { delegate parent } + rule(/.+/m) { delegate parent } + end + + state :filter do + # Filters are called like variable|foo(arg1, ...) + rule %r/(\|\s*)(\w+)/ do + groups Operator, Name::Function + end + end + + state :function do + rule %r/(\w+)(\()/ do + groups Name::Function, Punctuation + end + end + + state :text do + rule %r/\s+/m, Text + end + + state :literal do + # Strings + rule %r/"(\\.|.)*?"/, Str::Double + rule %r/'(\\.|.)*?'/, Str::Single + + # Numbers + rule %r/\d+(?=}\s)/, Num + + # Arithmetic operators (+, -, *, **, //, /) + # TODO : implement modulo (%) + rule %r/(\+|\-|\*|\/\/?|\*\*?|=)/, Operator + + # Comparisons operators (<=, <, >=, >, ==, ===, !=) + rule %r/(<=?|>=?|===?|!=)/, Operator + + # Punctuation (the comma, [], ()) + rule %r/,/, Punctuation + rule %r/\[/, Punctuation + rule %r/\]/, Punctuation + rule %r/\(/, Punctuation + rule %r/\)/, Punctuation + end + + state :comment do + rule %r/[^#]+/m, Comment + rule(/#}/) { token Comment; pop! } + rule %r/#/, Comment + end + + state :expression do + rule %r/\w+\.?/m, Name::Variable + + mixin :filter + mixin :function + mixin :literal + mixin :text + + rule %r/%}|}}/, Comment::Preproc, :pop! + end + + state :statement do + rule %r/(\w+\.?)/ do |m| + if self.class.keywords.include?(m[0]) + groups Keyword + elsif self.class.pseudo_keywords.include?(m[0]) + groups Keyword::Pseudo + elsif self.class.word_operators.include?(m[0]) + groups Operator::Word + elsif self.class.tests.include?(m[0]) + groups Name::Builtin + else + groups Name::Variable + end + end + + mixin :filter + mixin :function + mixin :literal + mixin :text + + rule %r/\%\}/, Comment::Preproc, :pop! + end + + state :raw do + rule %r/({%-?)(\s*)(endraw)(\s*)(-?%})/ do + groups Comment::Preproc, Text, Keyword, Text, Comment::Preproc + pop! + end + rule %r/[^{]+/, Text + rule %r/{/, Text + end + + state :verbatim do + rule %r/({%-?)(\s*)(endverbatim)(\s*)(-?%})/ do + groups Comment::Preproc, Text, Keyword, Text, Comment::Preproc + pop! + end + rule %r/[^{]+/, Text + rule %r/{/, Text + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsl.rb new file mode 100644 index 0000000..91f6076 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsl.rb @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class JSL < RegexLexer + title "JSL" + desc "The JMP Scripting Language (JSL) (jmp.com)" + + tag 'jsl' + filenames '*.jsl' + + state :root do + rule %r/\s+/m, Text::Whitespace + + rule %r(//.*?$), Comment::Single + rule %r'/[*].*?', Comment::Multiline, :comment # multiline block comment + + # messages + rule %r/<</, Operator, :message + + # covers built-in and custom functions + rule %r/(::|:)?([a-z_][\w\s'%.\\]*)(\()/i do |m| + groups Punctuation, Keyword, Punctuation + end + + rule %r/\d{2}(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d{2}(\d{2})?(:\d{2}:\d{2}(:\d{2}(\.\d*)?)?)?/i, Literal::Date + + rule %r/-?(?:[0-9]+(?:[.][0-9]+)?|[.][0-9]*)(?:e[+-]?[0-9]+)?i?/i, Num + + rule %r/(::|:)?([a-z_][\w\s'%.\\]*|"(?:\\!"|[^"])*?"n)/i do |m| + groups Punctuation, Name::Variable + end + + rule %r/(")(\\\[)(.*?)(\]\\)(")/m do + groups Str::Double, Str::Escape, Str::Double, Str::Escape, Str::Double # escaped string + end + rule %r/"/, Str::Double, :dq + + rule %r/[-+*\/!%&<>\|=:`^]/, Operator + rule %r/[\[\](){},;]/, Punctuation + end + + state :message do + rule %r/\s+/m, Text::Whitespace + rule %r/[a-z_][\w\s'%.\\]*/i, Name::Function + rule %r/[(),;]/, Punctuation, :pop! + rule %r/[&|!=<>]/, Operator, :pop! + end + + state :dq do + rule %r/\\![btrnNf0\\"]/, Str::Escape + rule %r/\\/, Str::Double + rule %r/"/, Str::Double, :pop! + rule %r/[^\\"]+/m, Str::Double + end + + state :comment do + rule %r'/[*]', Comment::Multiline, :comment + rule %r'[*]/', Comment::Multiline, :pop! + rule %r'[^/*]+', Comment::Multiline + rule %r'[/*]', Comment::Multiline + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/json.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/json.rb new file mode 100644 index 0000000..85228bf --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/json.rb @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class JSON < RegexLexer + title 'JSON' + desc "JavaScript Object Notation (json.org)" + tag 'json' + filenames '*.json', 'Pipfile.lock' + mimetypes 'application/json', 'application/vnd.api+json', + 'application/hal+json', 'application/problem+json', + 'application/schema+json' + + state :whitespace do + rule %r/\s+/, Text::Whitespace + end + + state :root do + mixin :whitespace + rule %r/{/, Punctuation, :object + rule %r/\[/, Punctuation, :array + + mixin :name + mixin :value + + # These characters may be invalid but syntax correctness is a non-goal + rule %r/[\]}]/, Punctuation + end + + state :object do + mixin :whitespace + mixin :name + mixin :value + rule %r/}/, Punctuation, :pop! + rule %r/,/, Punctuation + end + + state :name do + rule %r/("(?:\\.|[^"\\\n])*?")(\s*)(:)/ do + groups Name::Label, Text::Whitespace, Punctuation + end + end + + state :value do + mixin :whitespace + mixin :constants + rule %r/"/, Str::Double, :string + rule %r/\[/, Punctuation, :array + rule %r/{/, Punctuation, :object + end + + state :string do + rule %r/[^\\"]+/, Str::Double + rule %r/\\./, Str::Escape + rule %r/"/, Str::Double, :pop! + end + + state :array do + mixin :value + rule %r/\]/, Punctuation, :pop! + rule %r/,/, Punctuation + end + + state :constants do + rule %r/(?:true|false|null)/, Keyword::Constant + rule %r/-?(?:0|[1-9]\d*)\.\d+(?:e[+-]?\d+)?/i, Num::Float + rule %r/-?(?:0|[1-9]\d*)(?:e[+-]?\d+)?/i, Num::Integer + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/json5.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/json5.rb new file mode 100644 index 0000000..0756f35 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/json5.rb @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'json.rb' + + class JSON5 < JSON + title 'JSON 5' + tag 'json5' + filenames '*.json5' + mimetypes 'application/json5', 'application/x-json5' + + desc 'JSON 5 extension for JSON (json5.org)' + + append :whitespace do + rule %r://.*$:, Comment + + # comments are non-nesting, so a single regex will do + rule %r:/[*].*?[*]/:m, Comment + end + + prepend :name do + rule Javascript.id_regex, Name::Label + rule %r/".*?"/, Name::Label + end + + # comments can appear between keys and :, so we have to + # manage our states a little more carefully + append :object do + rule %r/:/ do + token Punctuation + goto :object_value + end + end + + state :object_value do + mixin :value + rule %r/,/ do + token Punctuation + goto :object + end + + rule %r/}/, Punctuation, :pop! + end + + append :value do + rule %r/'/, Str::Single, :sstring + end + + state :sstring do + rule %r/[^\\']+/, Str::Single + rule %r/\\./m, Str::Escape + rule %r/'/, Str::Single, :pop! + end + + # can escape newlines + append :string do + rule %r/\\./m, Str::Escape + end + + # override: numbers are very different in json5 + state :constants do + rule %r/\b(?:true|false|null)\b/, Keyword::Constant + rule %r/[+-]?\b(?:Infinity|NaN)\b/, Keyword::Constant + rule %r/[+-]?0x\h+/i, Num::Hex + + rule %r/[+-.]?[0-9]+[.]?[0-9]?([eE][-]?[0-9]+)?/i, Num::Float + rule %r/[+-]?\d+e[+-]?\d+/, Num::Integer + rule %r/[+-]?(?:0|[1-9]\d*)(?:e[+-]?\d+)?/i, Num::Integer + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/json_doc.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/json_doc.rb new file mode 100644 index 0000000..c243709 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/json_doc.rb @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'json.rb' + + class JSONDOC < JSON + desc "JavaScript Object Notation with extensions for documentation" + tag 'json-doc' + aliases 'jsonc' + + prepend :name do + rule %r/([$\w]+)(\s*)(:)/ do + groups Name::Attribute, Text, Punctuation + end + end + + prepend :value do + rule %r(/[*].*?[*]/), Comment + rule %r(//.*?$), Comment::Single + rule %r/(\.\.\.)/, Comment::Single + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsonnet.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsonnet.rb new file mode 100644 index 0000000..6544366 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsonnet.rb @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Jsonnet < RegexLexer + title 'Jsonnet' + desc 'An elegant, formally-specified config language for JSON' + tag 'jsonnet' + filenames '*.jsonnet', '*.libsonnet' + mimetypes 'text/x-jsonnet' + + def self.keywords + @keywords ||= Set.new %w( + self super local for in if then else import importstr error + tailstrict assert + ) + end + + def self.declarations + @declarations ||= Set.new %w( + function + ) + end + + def self.constants + @constants ||= Set.new %w( + null true false + ) + end + + def self.builtins + @builtins ||= Set.new %w( + acos + asin + atan + ceil + char + codepoint + cos + exp + exponent + filter + floor + force + length + log + makeArray + mantissa + objectFields + objectHas + pow + sin + sqrt + tan + thisFile + type + abs + assertEqual + escapeStringBash + escapeStringDollars + escapeStringJson + escapeStringPython + filterMap + flattenArrays + foldl + foldr + format + join + lines + manifestIni + manifestPython + manifestPythonVars + map + max + min + mod + range + set + setDiff + setInter + setMember + setUnion + sort + split + stringChars + substr + toString + uniq + ) + end + + identifier = /[a-zA-Z_][a-zA-Z0-9_]*/ + + state :root do + rule %r/\s+/, Text + rule %r(//.*?$), Comment::Single + rule %r(#.*?$), Comment::Single + rule %r(/\*.*?\*/)m, Comment::Multiline + + rule %r/-?(?:0|[1-9]\d*)\.\d+(?:e[+-]\d+)?/i, Num::Float + rule %r/-?(?:0|[1-9]\d*)(?:e[+-]\d+)?/i, Num::Integer + + rule %r/[{}:\.,;+\[\]=%\(\)]/, Punctuation + + rule %r/"/, Str, :string_double + rule %r/'/, Str, :string_single + rule %r/\|\|\|/, Str, :string_block + + rule %r/\$/, Keyword + + rule identifier do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.declarations.include? m[0] + token Keyword::Declaration + elsif self.class.constants.include? m[0] + token Keyword::Constant + elsif self.class.builtins.include? m[0] + token Name::Builtin + else + token Name::Other + end + end + end + + state :string do + rule %r/\\([\\\/bfnrt]|(u[0-9a-fA-F]{4}))/, Str::Escape + rule %r/\\./, Str::Escape + end + + state :string_double do + mixin :string + rule %r/\\"/, Str::Escape + rule %r/"/, Str, :pop! + rule %r/[^\\"]+/, Str + end + + state :string_single do + mixin :string + rule %r/'/, Str, :pop! + rule %r/[^\\']+/, Str + end + + state :string_block do + mixin :string + rule %r/[|][|][|]/, Str, :pop! + rule %r/[^|\\]+/, Str + rule %r/[|]/, Str + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsp.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsp.rb new file mode 100644 index 0000000..509885b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsp.rb @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- #
+# frozen_string_literal: true
+
+module Rouge
+ module Lexers
+ class JSP < TemplateLexer
+ desc 'JSP'
+ tag 'jsp'
+ filenames '*.jsp'
+ mimetypes 'text/x-jsp', 'application/x-jsp'
+
+ def initialize(*)
+ super
+ @java = Java.new
+ end
+
+ directives = %w(page include taglib)
+ actions = %w(scriptlet declaration expression)
+
+ state :root do
+
+ rule %r/<%--/, Comment, :jsp_comment
+
+ rule %r/<%@\s*(#{directives.join('|')})\s*/, Name::Tag, :jsp_directive
+
+ rule %r/<jsp:directive\.(#{directives.join('|')})/, Name::Tag, :jsp_directive2
+
+ rule %r/<jsp:(#{actions.join('|')})>/, Name::Tag, :jsp_expression
+
+ # start of tag, e.g. <c:if>
+ rule %r/<[a-zA-Z]*:[a-zA-Z]*\s*/, Name::Tag, :jsp_tag
+
+ # end of tag, e.g. </c:if>
+ rule %r(</[a-zA-Z]*:[a-zA-Z]*>), Name::Tag
+
+ rule %r/<%[!=]?/, Name::Tag, :jsp_expression2
+
+ # fallback to HTML
+ rule(/(.+?)(?=(<%|<\/?[a-zA-Z]*:))/m) { delegate parent }
+ rule(/.+/m) { delegate parent }
+ end
+
+ state :jsp_comment do
+ rule %r/(--%>)/, Comment, :pop!
+ rule %r/./m, Comment
+ end
+
+ state :jsp_directive do
+ rule %r/(%>)/, Name::Tag, :pop!
+ mixin :attributes
+ rule(/(.+?)(?=%>)/m) { delegate parent }
+ end
+
+ state :jsp_directive2 do
+ rule %r!(/>)!, Name::Tag, :pop!
+ mixin :attributes
+ rule(/(.+?)(?=\/>)/m) { delegate parent }
+ end
+
+ state :jsp_expression do
+ rule %r/<\/jsp:(#{actions.join('|')})>/, Name::Tag, :pop!
+ mixin :attributes
+ rule(/[^<\/]+/) { delegate @java }
+ end
+
+ state :jsp_expression2 do
+ rule %r/%>/, Name::Tag, :pop!
+ rule(/[^%>]+/) { delegate @java }
+ end
+
+ state :jsp_tag do
+ rule %r/\/?>/, Name::Tag, :pop!
+ mixin :attributes
+ rule(/(.+?)(?=\/?>)/m) { delegate parent }
+ end
+
+ state :attributes do
+ rule %r/\s*[a-zA-Z0-9_:-]+\s*=\s*/m, Name::Attribute, :attr
+ end
+
+ state :attr do
+ rule %r/"/ do
+ token Str
+ goto :double_quotes
+ end
+
+ rule %r/'/ do
+ token Str
+ goto :single_quotes
+ end
+
+ rule %r/[^\s>]+/, Str, :pop!
+ end
+
+ state :double_quotes do
+ rule %r/"/, Str, :pop!
+ rule %r/\$\{/, Str::Interpol, :jsp_interp
+ rule %r/[^"]+/, Str
+ end
+
+ state :single_quotes do
+ rule %r/'/, Str, :pop!
+ rule %r/\$\{/, Str::Interpol, :jsp_interp
+ rule %r/[^']+/, Str
+ end
+
+ state :jsp_interp do
+ rule %r/\}/, Str::Interpol, :pop!
+ rule %r/'/, Literal, :jsp_interp_literal_start
+ rule(/[^'\}]+/) { delegate @java }
+ end
+
+ state :jsp_interp_literal_start do
+ rule %r/'/, Literal, :pop!
+ rule %r/[^']+/, Literal
+ end
+ end
+ end
+end
diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsx.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsx.rb new file mode 100644 index 0000000..7b2ad33 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/jsx.rb @@ -0,0 +1,91 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'javascript.rb' + + class JSX < Javascript + title 'JSX' + desc 'An XML-like syntax extension to JavaScript (facebook.github.io/jsx/)' + tag 'jsx' + aliases 'jsx', 'react' + filenames '*.jsx' + + mimetypes 'text/x-jsx', 'application/x-jsx' + + start { @html = HTML.new(options); push :expr_start } + + prepend :expr_start do + mixin :tag + end + + state :tag do + rule %r/</ do + token Punctuation + push :tag_opening + push :element + push :element_name + end + end + + state :tag_opening do + rule %r/<\// do + token Punctuation + goto :element + push :element_name + end + mixin :tag + rule %r/{/ do + token Str::Interpol + push :interpol + push :expr_start + end + rule %r/[^<{]+/ do + delegate @html + end + end + + state :element do + mixin :comments_and_whitespace + rule %r/\/>/ do + token Punctuation + pop! 2 + end + rule %r/>/, Punctuation, :pop! + rule %r/{/ do + token Str::Interpol + push :interpol + push :expr_start + end + rule %r/\w[\w-]*/, Name::Attribute + rule %r/=/, Punctuation + rule %r/(["']).*?(\1)/, Str + end + + state :element_name do + rule %r/[A-Z]\w*/, Name::Class + rule %r/\w+/, Name::Tag + rule %r/\./, Punctuation + rule(//) { pop! } + end + + state :interpol do + rule %r/}/, Str::Interpol, :pop! + rule %r/{/ do + token Punctuation + push :interpol_inner + push :statement + end + mixin :root + end + + state :interpol_inner do + rule %r/}/ do + token Punctuation + goto :statement + end + mixin :root + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/julia.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/julia.rb new file mode 100644 index 0000000..9d5366c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/julia.rb @@ -0,0 +1,293 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Julia < RegexLexer + title "Julia" + desc "The Julia programming language" + tag 'julia' + aliases 'jl' + filenames '*.jl' + mimetypes 'text/x-julia', 'application/x-julia' + + # Documentation: https://docs.julialang.org/en/v1/manual/variables/#Allowed-Variable-Names-1 + + def self.detect?(text) + return true if text.shebang? 'julia' + end + + BUILTINS = /\b(?: + true | false | missing | nothing + | Inf | Inf16 | Inf32 | Inf64 + | NaN | NaN16 | NaN32 | NaN64 + | stdout | stderr | stdin | devnull + | pi | π | ℯ | im + | ARGS | C_NULL | ENV | ENDIAN_BOM + | VERSION | undef | (LOAD|DEPOT)_PATH + )\b/x + + KEYWORDS = /\b(?: + function | return | module | import | export + | if | else | elseif | end | for + | in | isa | while | try | catch + | const | local | global | using | struct + | mutable struct | abstract type | finally + | begin | do | quote | macro | for outer + | where + )\b/x + + # NOTE: The list of types was generated automatically using the following script: + # using Pkg, InteractiveUtils + # + # allnames = [names(Core); names(Base, imported=true)] + # + # for stdlib in readdir(Pkg.Types.stdlib_dir()) + # mod = Symbol(basename(stdlib)) + # @eval begin + # using $mod + # append!(allnames, names($mod)) + # end + # end + # + # sort!(unique!(allnames)) + # + # i = 1 + # for sym in allnames + # global i # needed at the top level, e.g. in the REPL + # isdefined(Main, sym) || continue + # getfield(which(Main, sym), sym) isa Type || continue + # sym === :(=>) && continue # Actually an alias for Pair + # print("| ", sym) + # i % 3 == 0 ? println() : print(" ") # print 3 to a line + # i += 1 + # end + TYPES = /\b(?: + ARPACKException | AbstractArray | AbstractChannel + | AbstractChar | AbstractDict | AbstractDisplay + | AbstractFloat | AbstractIrrational | AbstractLogger + | AbstractMatrix | AbstractREPL | AbstractRNG + | AbstractRange | AbstractSerializer | AbstractSet + | AbstractSparseArray | AbstractSparseMatrix | AbstractSparseVector + | AbstractString | AbstractUnitRange | AbstractVecOrMat + | AbstractVector | AbstractWorkerPool | Adjoint + | Any | ArgumentError | Array + | AssertionError | Base64DecodePipe | Base64EncodePipe + | BasicREPL | Bidiagonal | BigFloat + | BigInt | BitArray | BitMatrix + | BitSet | BitVector | Bool + | BoundsError | BunchKaufman | CachingPool + | CapturedException | CartesianIndex | CartesianIndices + | Cchar | Cdouble | Cfloat + | Channel | Char | Cholesky + | CholeskyPivoted | Cint | Cintmax_t + | Clong | Clonglong | ClusterManager + | Cmd | Colon | Complex + | ComplexF16 | ComplexF32 | ComplexF64 + | CompositeException | Condition | ConsoleLogger + | Cptrdiff_t | Cshort | Csize_t + | Cssize_t | Cstring | Cuchar + | Cuint | Cuintmax_t | Culong + | Culonglong | Cushort | Cvoid + | Cwchar_t | Cwstring | DataType + | Date | DateFormat | DatePeriod + | DateTime | Day | DenseArray + | DenseMatrix | DenseVecOrMat | DenseVector + | Diagonal | Dict | DimensionMismatch + | Dims | DivideError | DomainError + | EOFError | Eigen | Enum + | ErrorException | Exception | ExponentialBackOff + | Expr | FDWatcher | Factorization + | FileMonitor | Float16 | Float32 + | Float64 | FolderMonitor | Function + | GeneralizedEigen | GeneralizedSVD | GeneralizedSchur + | GenericArray | GenericDict | GenericSet + | GenericString | GitConfig | GitRepo + | GlobalRef | HMAC_CTX | HTML + | Hermitian | Hessenberg | Hour + | IO | IOBuffer | IOContext + | IOStream | IPAddr | IPv4 + | IPv6 | IdDict | IndexCartesian + | IndexLinear | IndexStyle | InexactError + | InitError | Int | Int128 + | Int16 | Int32 | Int64 + | Int8 | Integer | InterruptException + | InvalidStateException | Irrational | KeyError + | LAPACKException | LDLt | LQ + | LU | LinRange | LineEditREPL + | LineNumberNode | LinearIndices | LoadError + | LogLevel | LowerTriangular | MIME + | Matrix | MersenneTwister | Method + | MethodError | Microsecond | Millisecond + | Minute | Missing | MissingException + | Module | Month | NTuple + | NamedTuple | Nanosecond | Nothing + | NullLogger | Number | OrdinalRange + | OutOfMemoryError | OverflowError | PackageMode + | PackageSpec | Pair | PartialQuickSort + | Period | PermutedDimsArray | Pipe + | PollingFileWatcher | PosDefException | ProcessExitedException + | Ptr | QR | QRPivoted + | QuoteNode | RandomDevice | RankDeficientException + | Rational | RawFD | ReadOnlyMemoryError + | Real | ReentrantLock | Ref + | Regex | RegexMatch | RemoteChannel + | RemoteException | RoundingMode | SHA1_CTX + | SHA224_CTX | SHA256_CTX | SHA2_224_CTX + | SHA2_256_CTX | SHA2_384_CTX | SHA2_512_CTX + | SHA384_CTX | SHA3_224_CTX | SHA3_256_CTX + | SHA3_384_CTX | SHA3_512_CTX | SHA512_CTX + | SVD | Schur | Second + | SegmentationFault | Serializer | Set + | SharedArray | SharedMatrix | SharedVector + | Signed | SimpleLogger | SingularException + | Some | SparseMatrixCSC | SparseVector + | StackOverflowError | StepRange | StepRangeLen + | StreamREPL | StridedArray | StridedMatrix + | StridedVecOrMat | StridedVector | String + | StringIndexError | SubArray | SubString + | SubstitutionString | SymTridiagonal | Symbol + | Symmetric | SystemError | TCPSocket + | Task | TestSetException | Text + | TextDisplay | Time | TimePeriod + | TimeType | TimeZone | Timer + | Transpose | Tridiagonal | Tuple + | Type | TypeError | TypeVar + | UDPSocket | UInt | UInt128 + | UInt16 | UInt32 | UInt64 + | UInt8 | UTC | UUID + | UndefInitializer | UndefKeywordError | UndefRefError + | UndefVarError | UniformScaling | Union + | UnionAll | UnitLowerTriangular | UnitRange + | UnitUpperTriangular | Unsigned | UpgradeLevel + | UpperTriangular | Val | Vararg + | VecElement | VecOrMat | Vector + | VersionNumber | WeakKeyDict | WeakRef + | Week | WorkerConfig | WorkerPool + | Year + )\b/x + + OPERATORS = / \+ | = | - | \* | \/ + | \\ | & | \| | \$ | ~ + | \^ | % | ! | >>> | >> + | << | && | \|\| | \+= | -= + | \*= | \/= | \\= | ÷= | %= + | \^= | &= | \|= | \$= | >>>= + | >>= | <<= | == | != | ≠ + | <= | ≤ | >= | ≥ | \. + | :: | <: | -> | \? | \.\* + | \.\^ | \.\\ | \.\/ | \\ | < + | > | ÷ | >: | : | === + | !== | => + /x + + PUNCTUATION = /[\[\]{}\(\),;]/ + + + state :root do + rule %r/\n/, Text + rule %r/[^\S\n]+/, Text + rule %r/#=/, Comment::Multiline, :blockcomment + rule %r/#.*$/, Comment + rule OPERATORS, Operator + rule %r/\\\n/, Text + rule %r/\\/, Text + + + # functions and macros + rule %r/(function|macro)((?:\s|\\\s)+)/ do + groups Keyword, Name::Function + push :funcname + end + + # types + rule %r/((?:mutable )?struct|(?:abstract|primitive) type)((?:\s|\\\s)+)/ do + groups Keyword, Name::Class + push :typename + end + rule TYPES, Keyword::Type + + # keywords + rule %r/(local|global|const)\b/, Keyword::Declaration + rule KEYWORDS, Keyword + + # TODO: end is a builtin when inside of an indexing expression + rule BUILTINS, Name::Builtin + + # TODO: symbols + + # backticks + rule %r/`.*?`/, Literal::String::Backtick + + # chars + rule %r/'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,3}|\\u[a-fA-F0-9]{1,4}|\\U[a-fA-F0-9]{1,6}|[^\\\'\n])'/, Literal::String::Char + + # try to match trailing transpose + rule %r/(?<=[.\w)\]])\'+/, Operator + + # strings + # TODO: triple quoted string literals + # TODO: Detect string interpolation + rule %r/(?:[IL])"/, Literal::String, :string + rule %r/[E]?"/, Literal::String, :string + + # names + rule %r/@[\w.]+/, Name::Decorator + rule %r/(?:[a-zA-Z_\u00A1-\uffff]|[\u1000-\u10ff])(?:[a-zA-Z_0-9\u00A1-\uffff]|[\u1000-\u10ff])*!*/, Name + + rule PUNCTUATION, Other + + # numbers + rule %r/(\d+(_\d+)+\.\d*|\d*\.\d+(_\d+)+)([eEf][+-]?[0-9]+)?/, Literal::Number::Float + rule %r/(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?/, Literal::Number::Float + rule %r/\d+(_\d+)+[eEf][+-]?[0-9]+/, Literal::Number::Float + rule %r/\d+[eEf][+-]?[0-9]+/, Literal::Number::Float + rule %r/0b[01]+(_[01]+)+/, Literal::Number::Bin + rule %r/0b[01]+/, Literal::Number::Bin + rule %r/0o[0-7]+(_[0-7]+)+/, Literal::Number::Oct + rule %r/0o[0-7]+/, Literal::Number::Oct + rule %r/0x[a-fA-F0-9]+(_[a-fA-F0-9]+)+/, Literal::Number::Hex + rule %r/0x[a-fA-F0-9]+/, Literal::Number::Hex + rule %r/\d+(_\d+)+/, Literal::Number::Integer + rule %r/\d+/, Literal::Number::Integer + end + + NAME_RE = %r/[\p{L}\p{Nl}\p{S}_][\p{Word}\p{S}\p{Po}!]*/ + + state :funcname do + rule NAME_RE, Name::Function, :pop! + rule %r/\([^\s\w{]{1,2}\)/, Operator, :pop! + rule %r/[^\s\w{]{1,2}/, Operator, :pop! + end + + state :typename do + rule NAME_RE, Name::Class, :pop! + end + + state :stringescape do + rule %r/\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})/, + Literal::String::Escape + end + + state :blockcomment do + rule %r/[^=#]/, Comment::Multiline + rule %r/#=/, Comment::Multiline, :blockcomment + rule %r/\=#/, Comment::Multiline, :pop! + rule %r/[=#]/, Comment::Multiline + end + + state :string do + mixin :stringescape + + rule %r/"/, Literal::String, :pop! + rule %r/\\\\|\\"|\\\n/, Literal::String::Escape # included here for raw strings + rule %r/\$(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?/, Literal::String::Interpol + rule %r/[^\\"$]+/, Literal::String + # quotes, dollar signs, and backslashes must be parsed one at a time + rule %r/["\\]/, Literal::String + # unhandled string formatting sign + rule %r/\$/, Literal::String + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/kotlin.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/kotlin.rb new file mode 100644 index 0000000..53c5c00 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/kotlin.rb @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Kotlin < RegexLexer + # https://kotlinlang.org/docs/reference/grammar.html + + title "Kotlin" + desc "Kotlin Programming Language (http://kotlinlang.org)" + + tag 'kotlin' + filenames '*.kt', '*.kts' + mimetypes 'text/x-kotlin' + + keywords = %w( + abstract annotation as break by catch class companion const + constructor continue crossinline do dynamic else enum + external false final finally for fun get if import in infix + inline inner interface internal is lateinit noinline null + object open operator out override package private protected + public reified return sealed set super suspend tailrec this + throw true try typealias typeof val var vararg when where + while yield + ) + + name_chars = %r'[-\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Nl}\p{Nd}\p{Pc}\p{Cf}\p{Mn}\p{Mc}]*' + + class_name = %r'`?[\p{Lu}]#{name_chars}`?' + name = %r'`?[_\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Nl}]#{name_chars}`?' + + state :root do + rule %r'\b(companion)(\s+)(object)\b' do + groups Keyword, Text, Keyword + end + rule %r'\b(class|data\s+class|interface|object)(\s+)' do + groups Keyword::Declaration, Text + push :class + end + rule %r'\b(fun)(\s+)' do + groups Keyword, Text + push :function + end + rule %r'\b(package|import)(\s+)' do + groups Keyword, Text + push :package + end + rule %r'\b(val|var)(\s+)(\()' do + groups Keyword::Declaration, Text, Punctuation + push :destructure + end + rule %r'\b(val|var)(\s+)' do + groups Keyword::Declaration, Text + push :property + end + rule %r'(return|continue|break|this|super)(@#{name})?\b' do + groups Keyword, Name::Decorator + end + rule %r'\bfun\b', Keyword + rule %r'\b(?:#{keywords.join('|')})\b', Keyword + rule %r'^\s*\[.*?\]', Name::Attribute + rule %r'[^\S\n]+', Text + rule %r'\\\n', Text # line continuation + rule %r'//.*?$', Comment::Single + rule %r'/[*].*[*]/', Comment::Multiline # single line block comment + rule %r'/[*].*', Comment::Multiline, :comment # multiline block comment + rule %r'\n', Text + rule %r'(::)(class)' do + groups Operator, Keyword + end + rule %r'::|!!|\?[:.]', Operator + rule %r"(\.\.)", Operator + # Number literals + decDigits = %r"([0-9][0-9_]*[0-9])|[0-9]" + exponent = %r"[eE][+-]?(#{decDigits})" + double = %r"((#{decDigits})?\.#{decDigits}(#{exponent})?)|(#{decDigits}#{exponent})" + rule %r"(#{double}[fF]?)|(#{decDigits}[fF])", Num::Float + rule %r"0[bB]([01][01_]*[01]|[01])[uU]?L?", Num::Bin + rule %r"0[xX]([0-9a-fA-F][0-9a-fA-F_]*[0-9a-fA-F]|[0-9a-fA-F])[uU]?L?", Num::Hex + rule %r"(([1-9][0-9_]*[0-9])|[0-9])[uU]?L?", Num::Integer + rule %r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation + rule %r'[{}]', Punctuation + rule %r'@"(""|[^"])*"'m, Str + rule %r'""".*?"""'m, Str + rule %r'"(\\\\|\\"|[^"\n])*["\n]'m, Str + rule %r"'\\.'|'[^\\]'", Str::Char + rule %r'(@#{class_name})', Name::Decorator + rule %r'(#{class_name})(<)' do + groups Name::Class, Punctuation + push :generic_parameters + end + rule class_name, Name::Class + rule %r'(#{name})(?=\s*[({])', Name::Function + rule %r'(#{name})@', Name::Decorator # label + rule name, Name + end + + state :package do + rule %r'\S+', Name::Namespace, :pop! + end + + state :class do + rule class_name, Name::Class, :pop! + end + + state :function do + rule %r'(<)', Punctuation, :generic_parameters + rule %r'(\s+)', Text + rule %r'(#{class_name})(\.)' do + groups Name::Class, Punctuation + end + rule name, Name::Function, :pop! + end + + state :generic_parameters do + rule class_name, Name::Class + rule %r'(<)', Punctuation, :generic_parameters + rule %r'(reified|out|in)', Keyword + rule %r'([,:.?])', Punctuation + rule %r'(\s+)', Text + rule %r'(>)', Punctuation, :pop! + end + + state :property do + rule %r'(<)', Punctuation, :generic_parameters + rule %r'(\s+)', Text + rule name, Name::Property, :pop! + end + + state :destructure do + rule %r'(,)', Punctuation + rule %r'(\))', Punctuation, :pop! + rule %r'(\s+)', Text + rule name, Name::Property + end + + state :comment do + rule %r'/[*]', Comment::Multiline, :comment + rule %r'[*]/', Comment::Multiline, :pop! + rule %r'[^/*]+', Comment::Multiline + rule %r'[/*]', Comment::Multiline + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lasso.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lasso.rb new file mode 100644 index 0000000..cad38e9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lasso.rb @@ -0,0 +1,214 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +require 'yaml' + +module Rouge + module Lexers + class Lasso < TemplateLexer + title "Lasso" + desc "The Lasso programming language (lassosoft.com)" + tag 'lasso' + aliases 'lassoscript' + filenames '*.lasso', '*.lasso[89]' + mimetypes 'text/x-lasso', 'text/html+lasso', 'application/x-httpd-lasso' + + option :start_inline, 'Whether to start inline instead of requiring <?lasso or [' + + def self.detect?(text) + return true if text.shebang?('lasso9') + return true if text =~ /\A.*?<\?(lasso(script)?|=)/ + end + + def initialize(*) + super + + @start_inline = bool_option(:start_inline) + end + + def start_inline? + @start_inline + end + + start do + push :lasso if start_inline? + end + + # self-modifying method that loads the keywords file + def self.keywords + Kernel::load File.join(Lexers::BASE_DIR, 'lasso/keywords.rb') + keywords + end + + id = /[a-z_][\w.]*/i + + state :root do + rule %r/^#![ \S]+lasso9\b/, Comment::Preproc, :lasso + rule(/(?=\[|<)/) { push :delimiters } + rule %r/\s+/, Text::Whitespace + rule(//) { push :delimiters; push :lassofile } + end + + state :delimiters do + rule %r/\[no_square_brackets\]/, Comment::Preproc, :nosquarebrackets + rule %r/\[noprocess\]/, Comment::Preproc, :noprocess + rule %r/\[/, Comment::Preproc, :squarebrackets + rule %r/<\?(lasso(script)?|=)/i, Comment::Preproc, :anglebrackets + rule(/([^\[<]|<!--.*?-->|<(script|style).*?\2>|<(?!\?(lasso(script)?|=)))+/im) { delegate parent } + end + + state :nosquarebrackets do + rule %r/\[noprocess\]/, Comment::Preproc, :noprocess + rule %r/<\?(lasso(script)?|=)/i, Comment::Preproc, :anglebrackets + rule(/([^\[<]|<!--.*?-->|<(script|style).*?\2>|<(?!\?(lasso(script)?|=))|\[(?!noprocess))+/im) { delegate parent } + end + + state :noprocess do + rule %r(\[/noprocess\]), Comment::Preproc, :pop! + rule(%r(([^\[]|\[(?!/noprocess))+)i) { delegate parent } + end + + state :squarebrackets do + rule %r/\]/, Comment::Preproc, :pop! + mixin :lasso + end + + state :anglebrackets do + rule %r/\?>/, Comment::Preproc, :pop! + mixin :lasso + end + + state :lassofile do + rule %r/\]|\?>/, Comment::Preproc, :pop! + mixin :lasso + end + + state :whitespacecomments do + rule %r/\s+/, Text + rule %r(//.*?\n), Comment::Single + rule %r(/\*\*!.*?\*/)m, Comment::Doc + rule %r(/\*.*?\*/)m, Comment::Multiline + end + + state :lasso do + mixin :whitespacecomments + + # literals + rule %r/\d*\.\d+(e[+-]?\d+)?/i, Num::Float + rule %r/0x[\da-f]+/i, Num::Hex + rule %r/\d+/, Num::Integer + rule %r/(infinity|NaN)\b/i, Num + rule %r/'[^'\\]*(\\.[^'\\]*)*'/m, Str::Single + rule %r/"[^"\\]*(\\.[^"\\]*)*"/m, Str::Double + rule %r/`[^`]*`/m, Str::Backtick + + # names + rule %r/\$#{id}/, Name::Variable + rule %r/#(#{id}|\d+\b)/, Name::Variable::Instance + rule %r/(\.\s*)('#{id}')/ do + groups Name::Builtin::Pseudo, Name::Variable::Class + end + rule %r/(self)(\s*->\s*)('#{id}')/i do + groups Name::Builtin::Pseudo, Operator, Name::Variable::Class + end + rule %r/(\.\.?\s*)(#{id}(=(?!=))?)/ do + groups Name::Builtin::Pseudo, Name::Other + end + rule %r/(->\\?\s*|&\s*)(#{id}(=(?!=))?)/ do + groups Operator, Name::Other + end + rule %r/(?<!->)(self|inherited|currentcapture|givenblock)\b/i, Name::Builtin::Pseudo + rule %r/-(?!infinity)#{id}/i, Name::Attribute + rule %r/::\s*#{id}/, Name::Label + + # definitions + rule %r/(define)(\s+)(#{id})(\s*=>\s*)(type|trait|thread)\b/i do + groups Keyword::Declaration, Text, Name::Class, Operator, Keyword + end + rule %r((define)(\s+)(#{id})(\s*->\s*)(#{id}=?|[-+*/%]))i do + groups Keyword::Declaration, Text, Name::Class, Operator, Name::Function + push :signature + end + rule %r/(define)(\s+)(#{id})/i do + groups Keyword::Declaration, Text, Name::Function + push :signature + end + rule %r((public|protected|private|provide)(\s+)((#{id}=?|[-+*/%])(?=\s*\()))i do + groups Keyword, Text, Name::Function + push :signature + end + rule %r/(public|protected|private|provide)(\s+)(#{id})/i do + groups Keyword, Text, Name::Function + end + + # keywords + rule %r/(true|false|none|minimal|full|all|void)\b/i, Keyword::Constant + rule %r/(local|var|variable|global|data(?=\s))\b/i, Keyword::Declaration + rule %r/(#{id})(\s+)(in)\b/i do + groups Name, Text, Keyword + end + rule %r/(let|into)(\s+)(#{id})/i do + groups Keyword, Text, Name + end + + # other + rule %r/,/, Punctuation, :commamember + rule %r/(and|or|not)\b/i, Operator::Word + rule %r/(#{id})(\s*::\s*#{id})?(\s*=(?!=|>))/ do + groups Name, Name::Label, Operator + end + + rule %r((/?)([\w.]+)) do |m| + name = m[2].downcase + + if m[1] != '' + token Punctuation, m[1] + end + + if name == 'namespace_using' + token Keyword::Namespace, m[2] + elsif self.class.keywords[:exceptions].include? name + token Name::Exception, m[2] + elsif self.class.keywords[:types].include? name + token Keyword::Type, m[2] + elsif self.class.keywords[:traits].include? name + token Name::Decorator, m[2] + elsif self.class.keywords[:keywords].include? name + token Keyword, m[2] + elsif self.class.keywords[:builtins].include? name + token Name::Builtin, m[2] + else + token Name::Other, m[2] + end + end + + rule %r/(=)(n?bw|n?ew|n?cn|lte?|gte?|n?eq|n?rx|ft)\b/i do + groups Operator, Operator::Word + end + rule %r(:=|[-+*/%=<>&|!?\\]+), Operator + rule %r/[{}():;,@^]/, Punctuation + end + + state :signature do + rule %r/\=>/, Operator, :pop! + rule %r/\)/, Punctuation, :pop! + rule %r/[(,]/, Punctuation, :parameter + mixin :lasso + end + + state :parameter do + rule %r/\)/, Punctuation, :pop! + rule %r/-?#{id}/, Name::Attribute, :pop! + rule %r/\.\.\./, Name::Builtin::Pseudo + mixin :lasso + end + + state :commamember do + rule %r((#{id}=?|[-+*/%])(?=\s*(\(([^()]*\([^()]*\))*[^\)]*\)\s*)?(::[\w.\s]+)?=>)), Name::Function, :signature + mixin :whitespacecomments + rule %r//, Text, :pop! + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lasso/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lasso/keywords.rb new file mode 100644 index 0000000..f5c4eea --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lasso/keywords.rb @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# DO NOT EDIT +# This file is automatically generated by `rake builtins:lasso`. +# See tasks/builtins/lasso.rake for more info. + +module Rouge + module Lexers + def Lasso.keywords + @keywords ||= {}.tap do |h| + h[:types] = Set.new ["array", "date", "decimal", "duration", "integer", "map", "pair", "string", "tag", "xml", "null", "boolean", "bytes", "keyword", "list", "locale", "queue", "set", "stack", "staticarray", "atbegin", "bson_iter", "bson", "bytes_document_body", "cache_server_element", "cache_server", "capture", "client_address", "client_ip", "component_container", "component_render_state", "component", "curl", "curltoken", "currency", "custom", "data_document", "database_registry", "dateandtime", "dbgp_packet", "dbgp_server", "debugging_stack", "delve", "dir", "dirdesc", "dns_response", "document_base", "document_body", "document_header", "dsinfo", "eacher", "email_compose", "email_parse", "email_pop", "email_queue_impl_base", "email_queue_impl", "email_smtp", "email_stage_impl_base", "email_stage_impl", "fastcgi_each_fcgi_param", "fastcgi_server", "fcgi_record", "fcgi_request", "file", "filedesc", "filemaker_datasource", "generateforeachkeyed", "generateforeachunkeyed", "generateseries", "hash_map", "html_atomic_element", "html_attr", "html_base", "html_binary", "html_br", "html_cdata", "html_container_element", "html_div", "html_document_body", "html_document_head", "html_eol", "html_fieldset", "html_form", "html_h1", "html_h2", "html_h3", "html_h4", "html_h5", "html_h6", "html_hr", "html_img", "html_input", "html_json", "html_label", "html_legend", "html_link", "html_meta", "html_object", "html_option", "html_raw", "html_script", "html_select", "html_span", "html_style", "html_table", "html_td", "html_text", "html_th", "html_tr", "http_document_header", "http_document", "http_error", "http_header_field", "http_server_connection_handler_globals", "http_server_connection_handler", "http_server_request_logger_thread", "http_server_web_connection", "http_server", "image", "include_cache", "inline_type", "java_jnienv", "jbyte", "jbytearray", "jchar", "jchararray", "jfieldid", "jfloat", "jint", "jmethodid", "jobject", "jshort", "json_decode", "json_encode", "json_literal", "json_object", "lassoapp_compiledsrc_appsource", "lassoapp_compiledsrc_fileresource", "lassoapp_content_rep_halt", "lassoapp_dirsrc_appsource", "lassoapp_dirsrc_fileresource", "lassoapp_installer", "lassoapp_livesrc_appsource", "lassoapp_livesrc_fileresource", "lassoapp_long_expiring_bytes", "lassoapp_manualsrc_appsource", "lassoapp_zip_file_server", "lassoapp_zipsrc_appsource", "lassoapp_zipsrc_fileresource", "ldap", "library_thread_loader", "list_node", "log_impl_base", "log_impl", "magick_image", "map_node", "memberstream", "memory_session_driver_impl_entry", "memory_session_driver_impl", "memory_session_driver", "mime_reader", "mongo_client", "mongo_collection", "mongo_cursor", "mustache_ctx", "mysql_session_driver_impl", "mysql_session_driver", "net_named_pipe", "net_tcp_ssl", "net_tcp", "net_udp_packet", "net_udp", "odbc_session_driver_impl", "odbc_session_driver", "opaque", "os_process", "pair_compare", "pairup", "pdf_barcode", "pdf_chunk", "pdf_color", "pdf_doc", "pdf_font", "pdf_hyphenator", "pdf_image", "pdf_list", "pdf_paragraph", "pdf_phrase", "pdf_read", "pdf_table", "pdf_text", "pdf_typebase", "percent", "portal_impl", "queriable_groupby", "queriable_grouping", "queriable_groupjoin", "queriable_join", "queriable_orderby", "queriable_orderbydescending", "queriable_select", "queriable_selectmany", "queriable_skip", "queriable_take", "queriable_thenby", "queriable_thenbydescending", "queriable_where", "raw_document_body", "regexp", "repeat", "scientific", "security_registry", "serialization_element", "serialization_object_identity_compare", "serialization_reader", "serialization_writer_ref", "serialization_writer_standin", "serialization_writer", "session_delete_expired_thread", "signature", "sourcefile", "sqlite_column", "sqlite_currentrow", "sqlite_db", "sqlite_results", "sqlite_session_driver_impl_entry", "sqlite_session_driver_impl", "sqlite_session_driver", "sqlite_table", "sqlite3_stmt", "sqlite3", "sys_process", "text_document", "tie", "timeonly", "tree_base", "tree_node", "tree_nullnode", "ucal", "usgcpu", "usgvm", "web_error_atend", "web_node_base", "web_node_content_representation_css_specialized", "web_node_content_representation_html_specialized", "web_node_content_representation_js_specialized", "web_node_content_representation_xhr_container", "web_node_echo", "web_node_root", "web_request_impl", "web_request", "web_response_impl", "web_response", "web_router", "websocket_handler", "worker_pool", "xml_attr", "xml_cdatasection", "xml_characterdata", "xml_comment", "xml_document", "xml_documentfragment", "xml_documenttype", "xml_domimplementation", "xml_element", "xml_entity", "xml_entityreference", "xml_namednodemap_attr", "xml_namednodemap_ht", "xml_namednodemap", "xml_node", "xml_nodelist", "xml_notation", "xml_processinginstruction", "xml_text", "xmlstream", "zip_file_impl", "zip_file", "zip_impl", "zip"] + h[:traits] = Set.new ["any", "formattingbase", "html_attributed", "html_element_coreattrs", "html_element_eventsattrs", "html_element_i18nattrs", "lassoapp_capabilities", "lassoapp_resource", "lassoapp_source", "queriable_asstring", "session_driver", "trait_array", "trait_asstring", "trait_backcontractible", "trait_backended", "trait_backexpandable", "trait_close", "trait_contractible", "trait_decompose_assignment", "trait_doubleended", "trait_each_sub", "trait_encodeurl", "trait_endedfullymutable", "trait_expandable", "trait_file", "trait_finite", "trait_finiteforeach", "trait_foreach", "trait_foreachtextelement", "trait_frontcontractible", "trait_frontended", "trait_frontexpandable", "trait_fullymutable", "trait_generator", "trait_generatorcentric", "trait_hashable", "trait_json_serialize", "trait_keyed", "trait_keyedfinite", "trait_keyedforeach", "trait_keyedmutable", "trait_list", "trait_map", "trait_net", "trait_pathcomponents", "trait_positionallykeyed", "trait_positionallysearchable", "trait_queriable", "trait_queriablelambda", "trait_readbytes", "trait_readstring", "trait_scalar", "trait_searchable", "trait_serializable", "trait_setencoding", "trait_setoperations", "trait_stack", "trait_treenode", "trait_writebytes", "trait_writestring", "trait_xml_elementcompat", "trait_xml_nodecompat", "web_connection", "web_node_container", "web_node_content_css_specialized", "web_node_content_document", "web_node_content_html_specialized", "web_node_content_js_specialized", "web_node_content_json_specialized", "web_node_content_representation", "web_node_content", "web_node_postable", "web_node"] + h[:builtins] = Set.new ["__char", "__sync_timestamp__", "_admin_addgroup", "_admin_adduser", "_admin_defaultconnector", "_admin_defaultconnectornames", "_admin_defaultdatabase", "_admin_defaultfield", "_admin_defaultgroup", "_admin_defaulthost", "_admin_defaulttable", "_admin_defaultuser", "_admin_deleteconnector", "_admin_deletedatabase", "_admin_deletefield", "_admin_deletegroup", "_admin_deletehost", "_admin_deletetable", "_admin_deleteuser", "_admin_duplicategroup", "_admin_internaldatabase", "_admin_listconnectors", "_admin_listdatabases", "_admin_listfields", "_admin_listgroups", "_admin_listhosts", "_admin_listtables", "_admin_listusers", "_admin_refreshconnector", "_admin_refreshsecurity", "_admin_servicepath", "_admin_updateconnector", "_admin_updatedatabase", "_admin_updatefield", "_admin_updategroup", "_admin_updatehost", "_admin_updatetable", "_admin_updateuser", "_chartfx_activation_string", "_chartfx_getchallengestring", "_chop_args", "_chop_mimes", "_client_addr_old", "_client_address_old", "_client_ip_old", "_database_names", "_datasource_reload", "_date_current", "_date_format", "_date_msec", "_date_parse", "_execution_timelimit", "_file_chmod", "_initialize", "_jdbc_acceptsurl", "_jdbc_debug", "_jdbc_deletehost", "_jdbc_driverclasses", "_jdbc_driverinfo", "_jdbc_metainfo", "_jdbc_propertyinfo", "_jdbc_setdriver", "_lasso_param", "_log_helper", "_proc_noparam", "_proc_withparam", "_recursion_limit", "_request_param", "_security_binaryexpiration", "_security_flushcaches", "_security_isserialized", "_security_serialexpiration", "_srand", "_strict_literals", "_substring", "_xmlrpc_exconverter", "_xmlrpc_inconverter", "_xmlrpc_xmlinconverter", "action_addinfo", "action_addrecord", "action_setfoundcount", "action_setrecordid", "action_settotalcount", "admin_allowedfileroots", "admin_changeuser", "admin_createuser", "admin_groupassignuser", "admin_grouplistusers", "admin_groupremoveuser", "admin_listgroups", "admin_refreshlicensing", "admin_refreshsecurity", "admin_reloaddatasource", "admin_userlistgroups", "array_iterator", "auth_auth", "auth", "base64", "bean", "bigint", "cache_delete", "cache_empty", "cache_exists", "cache_fetch", "cache_internal", "cache_maintenance", "cache_object", "cache_preferences", "cache_store", "chartfx_records", "chartfx_serve", "chartfx", "choice_list", "choice_listitem", "choicelistitem", "click_text", "client_ipfrominteger", "compare_beginswith", "compare_contains", "compare_endswith", "compare_equalto", "compare_greaterthan", "compare_greaterthanorequals", "compare_greaterthanorequls", "compare_lessthan", "compare_lessthanorequals", "compare_notbeginswith", "compare_notcontains", "compare_notendswith", "compare_notequalto", "compare_notregexp", "compare_regexp", "compare_strictequalto", "compare_strictnotequalto", "compiler_removecacheddoc", "compiler_setdefaultparserflags", "curl_ftp_getfile", "curl_ftp_getlisting", "curl_ftp_putfile", "curl_include_url", "database_changecolumn", "database_changefield", "database_createcolumn", "database_createfield", "database_createtable", "database_fmcontainer", "database_hostinfo", "database_inline", "database_nameitem", "database_realname", "database_removecolumn", "database_removefield", "database_removetable", "database_repeating_valueitem", "database_repeating", "database_repeatingvalueitem", "database_schemanameitem", "database_tablecolumn", "database_tablenameitem", "datasource_name", "datasource_register", "date__date_current", "date__date_format", "date__date_msec", "date__date_parse", "date_add", "date_date", "date_difference", "date_duration", "date_format", "date_getcurrentdate", "date_getday", "date_getdayofweek", "date_gethour", "date_getlocaltimezone", "date_getminute", "date_getmonth", "date_getsecond", "date_gettime", "date_getyear", "date_gmttolocal", "date_localtogmt", "date_maximum", "date_minimum", "date_msec", "date_setformat", "date_subtract", "db_layoutnameitem", "db_layoutnames", "db_nameitem", "db_names", "db_tablenameitem", "db_tablenames", "dbi_column_names", "dbi_field_names", "decimal_setglobaldefaultprecision", "decode_base64", "decode_bheader", "decode_hex", "decode_html", "decode_json", "decode_qheader", "decode_quotedprintable", "decode_quotedprintablebytes", "decode_url", "decode_xml", "decrypt_blowfish2", "default", "define_constant", "define_prototype", "define_tagp", "define_typep", "deserialize", "directory_directorynameitem", "directory_lister", "directory_nameitem", "directorynameitem", "email_mxerror", "encode_base64", "encode_bheader", "encode_break", "encode_breaks", "encode_crc32", "encode_hex", "encode_html", "encode_htmltoxml", "encode_json", "encode_quotedprintable", "encode_quotedprintablebytes", "encode_smart", "encode_sql", "encode_sql92", "encode_stricturl", "encode_url", "encode_xml", "encrypt_blowfish2", "error_currenterror", "error_norecordsfound", "error_seterrorcode", "error_seterrormessage", "euro", "event_schedule", "file_autoresolvefullpaths", "file_chmod", "file_control", "file_copy", "file_create", "file_creationdate", "file_currenterror", "file_delete", "file_exists", "file_getlinecount", "file_getsize", "file_isdirectory", "file_listdirectory", "file_moddate", "file_move", "file_openread", "file_openreadwrite", "file_openwrite", "file_openwriteappend", "file_openwritetruncate", "file_probeeol", "file_processuploads", "file_read", "file_readline", "file_rename", "file_serve", "file_setsize", "file_stream", "file_streamcopy", "file_uploads", "file_waitread", "file_waittimeout", "file_waitwrite", "file_write", "find_soap_ops", "form_param", "global_defined", "global_remove", "global_reset", "globals", "http_getfile", "ical_alarm", "ical_attribute", "ical_calendar", "ical_daylight", "ical_event", "ical_freebusy", "ical_item", "ical_journal", "ical_parse", "ical_standard", "ical_timezone", "ical_todo", "image_url", "img", "include_cgi", "iterator", "java_bean", "java", "json_records", "lasso_comment", "lasso_datasourceis", "lasso_datasourceis4d", "lasso_datasourceisfilemaker", "lasso_datasourceisfilemaker7", "lasso_datasourceisfilemaker9", "lasso_datasourceisfilemakersa", "lasso_datasourceisjdbc", "lasso_datasourceislassomysql", "lasso_datasourceismysql", "lasso_datasourceisodbc", "lasso_datasourceisopenbase", "lasso_datasourceisoracle", "lasso_datasourceispostgresql", "lasso_datasourceisspotlight", "lasso_datasourceissqlite", "lasso_datasourceissqlserver", "lasso_datasourcemodulename", "lasso_datatype", "lasso_disableondemand", "lasso_parser", "lasso_process", "lasso_sessionid", "lasso_siteid", "lasso_siteisrunning", "lasso_sitename", "lasso_siterestart", "lasso_sitestart", "lasso_sitestop", "lasso_tagmodulename", "lasso_updatecheck", "lasso_uptime", "lassoapp_create", "lassoapp_dump", "lassoapp_flattendir", "lassoapp_getappdata", "lassoapp_list", "lassoapp_process", "lassoapp_unitize", "ldml_ldml", "ldml", "link_currentactionparams", "link_currentactionurl", "link_currentgroupparams", "link_currentgroupurl", "link_currentrecordparams", "link_currentrecordurl", "link_currentsearch", "link_currentsearchparams", "link_currentsearchurl", "link_detailparams", "link_detailurl", "link_firstgroupparams", "link_firstgroupurl", "link_firstrecordparams", "link_firstrecordurl", "link_lastgroupparams", "link_lastgroupurl", "link_lastrecordparams", "link_lastrecordurl", "link_nextgroupparams", "link_nextgroupurl", "link_nextrecordparams", "link_nextrecordurl", "link_params", "link_prevgroupparams", "link_prevgroupurl", "link_prevrecordparams", "link_prevrecordurl", "link_setformat", "link_url", "list_additem", "list_fromlist", "list_fromstring", "list_getitem", "list_itemcount", "list_iterator", "list_removeitem", "list_replaceitem", "list_reverseiterator", "list_tostring", "literal", "ljax_end", "ljax_hastarget", "ljax_include", "ljax_start", "local_defined", "local_remove", "local_reset", "locals", "logicalop_value", "logicaloperator_value", "map_iterator", "match_comparator", "match_notrange", "match_notregexp", "match_range", "match_regexp", "math_abs", "math_acos", "math_add", "math_asin", "math_atan", "math_atan2", "math_ceil", "math_converteuro", "math_cos", "math_div", "math_exp", "math_floor", "math_internal_rand", "math_internal_randmax", "math_internal_srand", "math_ln", "math_log", "math_log10", "math_max", "math_min", "math_mod", "math_mult", "math_pow", "math_random", "math_range", "math_rint", "math_roman", "math_round", "math_sin", "math_sqrt", "math_sub", "math_tan", "mime_type", "misc__srand", "misc_randomnumber", "misc_roman", "misc_valid_creditcard", "named_param", "namespace_current", "namespace_delimiter", "namespace_exists", "namespace_file_fullpathexists", "namespace_load", "namespace_page", "namespace_unload", "net", "no_default_output", "object", "once", "oneoff", "op_logicalvalue", "operator_logicalvalue", "option", "postcondition", "precondition", "prettyprintingnsmap", "prettyprintingtypemap", "priorityqueue", "proc_convert", "proc_convertbody", "proc_convertone", "proc_extract", "proc_extractone", "proc_find", "proc_first", "proc_foreach", "proc_get", "proc_join", "proc_lasso", "proc_last", "proc_map_entry", "proc_null", "proc_regexp", "proc_xml", "proc_xslt", "rand", "randomnumber", "raw", "recid_value", "record_count", "recordcount", "recordid_value", "reference", "repeating_valueitem", "repeatingvalueitem", "repetition", "req_column", "req_field", "required_column", "required_field", "response_fileexists", "reverseiterator", "roman", "row_count", "search_columnitem", "search_fielditem", "search_operatoritem", "search_opitem", "search_valueitem", "searchfielditem", "searchoperatoritem", "searchopitem", "searchvalueitem", "serialize", "server_date", "server_day", "server_siteisrunning", "server_sitestart", "server_sitestop", "server_time", "session_addoutputfilter", "session_addvariable", "session_removevariable", "session_setdriver", "set_iterator", "set_reverseiterator", "site_atbegin", "site_restart", "soap_convertpartstopairs", "soap_info", "soap_stub", "sort_columnitem", "sort_fielditem", "sort_orderitem", "sortcolumnitem", "sortfielditem", "sortorderitem", "srand", "stock_quote", "string_charfromname", "string_concatenate", "string_countfields", "string_endswith", "string_extract", "string_findposition", "string_findregexp", "string_fordigit", "string_getfield", "string_getunicodeversion", "string_insert", "string_isalpha", "string_isalphanumeric", "string_isdigit", "string_ishexdigit", "string_islower", "string_isnumeric", "string_ispunctuation", "string_isspace", "string_isupper", "string_length", "string_lowercase", "string_remove", "string_removeleading", "string_removetrailing", "string_replace", "string_replaceregexp", "string_todecimal", "string_tointeger", "string_uppercase", "table_realname", "tags_find", "tags_list", "tags", "tcp_close", "tcp_open", "tcp_send", "tcp_tcp_close", "tcp_tcp_open", "tcp_tcp_send", "thread_abort", "thread_event", "thread_exists", "thread_getcurrentid", "thread_getpriority", "thread_info", "thread_list", "thread_lock", "thread_pipe", "thread_priority_default", "thread_priority_high", "thread_priority_low", "thread_rwlock", "thread_semaphore", "thread_setpriority", "total_records", "treemap_iterator", "url_rewrite", "valid_creditcard", "valid_date", "valid_email", "valid_url", "var_defined", "var_remove", "var_reset", "var_set", "variable_defined", "variable_set", "variables", "variant_count", "vars", "wsdl_extract", "wsdl_getbinding", "wsdl_getbindingforoperation", "wsdl_getbindingoperations", "wsdl_getmessagenamed", "wsdl_getmessageparts", "wsdl_getmessagetriofromporttype", "wsdl_getopbodystyle", "wsdl_getopbodyuse", "wsdl_getoperation", "wsdl_getoplocation", "wsdl_getopmessagetypes", "wsdl_getopsoapaction", "wsdl_getportaddress", "wsdl_getportsforservice", "wsdl_getporttype", "wsdl_getporttypeoperation", "wsdl_getservicedocumentation", "wsdl_getservices", "wsdl_gettargetnamespace", "wsdl_issoapoperation", "wsdl_listoperations", "wsdl_maketest", "xml_extract", "xml_rpc", "xml_rpccall", "xml_rw", "xml_serve", "xml_xml", "xml_xmlstream", "xsd_attribute", "xsd_blankarraybase", "xsd_blankbase", "xsd_buildtype", "xsd_cache", "xsd_checkcardinality", "xsd_continueall", "xsd_continueannotation", "xsd_continueany", "xsd_continueanyattribute", "xsd_continueattribute", "xsd_continueattributegroup", "xsd_continuechoice", "xsd_continuecomplexcontent", "xsd_continuecomplextype", "xsd_continuedocumentation", "xsd_continueextension", "xsd_continuegroup", "xsd_continuekey", "xsd_continuelist", "xsd_continuerestriction", "xsd_continuesequence", "xsd_continuesimplecontent", "xsd_continuesimpletype", "xsd_continueunion", "xsd_deserialize", "xsd_fullyqualifyname", "xsd_generate", "xsd_generateblankfromtype", "xsd_generateblanksimpletype", "xsd_generatetype", "xsd_getschematype", "xsd_issimpletype", "xsd_loadschema", "xsd_lookupnamespaceuri", "xsd_lookuptype", "xsd_processany", "xsd_processattribute", "xsd_processattributegroup", "xsd_processcomplextype", "xsd_processelement", "xsd_processgroup", "xsd_processimport", "xsd_processinclude", "xsd_processschema", "xsd_processsimpletype", "xsd_ref", "xsd_type", "_ffi", "abort_clear", "abort_now", "action_param", "action_params", "action_statement", "admin_authorization", "admin_currentgroups", "admin_currentuserid", "admin_currentusername", "admin_getpref", "admin_initialize", "admin_lassoservicepath", "admin_removepref", "admin_setpref", "admin_userexists", "auth_admin", "auth_check", "auth_custom", "auth_group", "auth_prompt", "auth_user", "bom_utf16be", "bom_utf16le", "bom_utf32be", "bom_utf32le", "bom_utf8", "capture_nearestloopabort", "capture_nearestloopcontinue", "capture_nearestloopcount", "checked", "cipher_decrypt_private", "cipher_decrypt_public", "cipher_decrypt", "cipher_digest", "cipher_encrypt_private", "cipher_encrypt_public", "cipher_encrypt", "cipher_generate_key", "cipher_hmac", "cipher_keylength", "cipher_list", "cipher_open", "cipher_seal", "cipher_sign", "cipher_verify", "client_addr", "client_authorization", "client_browser", "client_contentlength", "client_contenttype", "client_cookielist", "client_cookies", "client_encoding", "client_formmethod", "client_getargs", "client_getparam", "client_getparams", "client_headers", "client_integertoip", "client_iptointeger", "client_password", "client_postargs", "client_postparam", "client_postparams", "client_type", "client_url", "client_username", "column_name", "column_names", "column_type", "column", "compress", "content_addheader", "content_body", "content_encoding", "content_header", "content_replaceheader", "content_type", "cookie_set", "cookie", "curl_easy_cleanup", "curl_easy_duphandle", "curl_easy_getinfo", "curl_easy_init", "curl_easy_reset", "curl_easy_setopt", "curl_easy_strerror", "curl_getdate", "curl_http_version_1_0", "curl_http_version_1_1", "curl_http_version_none", "curl_ipresolve_v4", "curl_ipresolve_v6", "curl_ipresolve_whatever", "curl_multi_perform", "curl_multi_result", "curl_netrc_ignored", "curl_netrc_optional", "curl_netrc_required", "curl_sslversion_default", "curl_sslversion_sslv2", "curl_sslversion_sslv3", "curl_sslversion_tlsv1", "curl_version_asynchdns", "curl_version_debug", "curl_version_gssnegotiate", "curl_version_idn", "curl_version_info", "curl_version_ipv6", "curl_version_kerberos4", "curl_version_largefile", "curl_version_libz", "curl_version_ntlm", "curl_version_spnego", "curl_version_ssl", "curl_version", "curlauth_any", "curlauth_anysafe", "curlauth_basic", "curlauth_digest", "curlauth_gssnegotiate", "curlauth_none", "curlauth_ntlm", "curle_aborted_by_callback", "curle_bad_calling_order", "curle_bad_content_encoding", "curle_bad_download_resume", "curle_bad_function_argument", "curle_bad_password_entered", "curle_couldnt_connect", "curle_couldnt_resolve_host", "curle_couldnt_resolve_proxy", "curle_failed_init", "curle_file_couldnt_read_file", "curle_filesize_exceeded", "curle_ftp_access_denied", "curle_ftp_cant_get_host", "curle_ftp_cant_reconnect", "curle_ftp_couldnt_get_size", "curle_ftp_couldnt_retr_file", "curle_ftp_couldnt_set_ascii", "curle_ftp_couldnt_set_binary", "curle_ftp_couldnt_use_rest", "curle_ftp_port_failed", "curle_ftp_quote_error", "curle_ftp_ssl_failed", "curle_ftp_user_password_incorrect", "curle_ftp_weird_227_format", "curle_ftp_weird_pass_reply", "curle_ftp_weird_pasv_reply", "curle_ftp_weird_server_reply", "curle_ftp_weird_user_reply", "curle_ftp_write_error", "curle_function_not_found", "curle_got_nothing", "curle_http_post_error", "curle_http_range_error", "curle_http_returned_error", "curle_interface_failed", "curle_ldap_cannot_bind", "curle_ldap_invalid_url", "curle_ldap_search_failed", "curle_library_not_found", "curle_login_denied", "curle_malformat_user", "curle_obsolete", "curle_ok", "curle_operation_timeouted", "curle_out_of_memory", "curle_partial_file", "curle_read_error", "curle_recv_error", "curle_send_error", "curle_send_fail_rewind", "curle_share_in_use", "curle_ssl_cacert", "curle_ssl_certproblem", "curle_ssl_cipher", "curle_ssl_connect_error", "curle_ssl_engine_initfailed", "curle_ssl_engine_notfound", "curle_ssl_engine_setfailed", "curle_ssl_peer_certificate", "curle_telnet_option_syntax", "curle_too_many_redirects", "curle_unknown_telnet_option", "curle_unsupported_protocol", "curle_url_malformat_user", "curle_url_malformat", "curle_write_error", "curlftpauth_default", "curlftpauth_ssl", "curlftpauth_tls", "curlftpssl_all", "curlftpssl_control", "curlftpssl_last", "curlftpssl_none", "curlftpssl_try", "curlinfo_connect_time", "curlinfo_content_length_download", "curlinfo_content_length_upload", "curlinfo_content_type", "curlinfo_effective_url", "curlinfo_filetime", "curlinfo_header_size", "curlinfo_http_connectcode", "curlinfo_httpauth_avail", "curlinfo_namelookup_time", "curlinfo_num_connects", "curlinfo_os_errno", "curlinfo_pretransfer_time", "curlinfo_proxyauth_avail", "curlinfo_redirect_count", "curlinfo_redirect_time", "curlinfo_request_size", "curlinfo_response_code", "curlinfo_size_download", "curlinfo_size_upload", "curlinfo_speed_download", "curlinfo_speed_upload", "curlinfo_ssl_engines", "curlinfo_ssl_verifyresult", "curlinfo_starttransfer_time", "curlinfo_total_time", "curlmsg_done", "curlopt_autoreferer", "curlopt_buffersize", "curlopt_cainfo", "curlopt_capath", "curlopt_connecttimeout", "curlopt_cookie", "curlopt_cookiefile", "curlopt_cookiejar", "curlopt_cookiesession", "curlopt_crlf", "curlopt_customrequest", "curlopt_dns_use_global_cache", "curlopt_egdsocket", "curlopt_encoding", "curlopt_failonerror", "curlopt_filetime", "curlopt_followlocation", "curlopt_forbid_reuse", "curlopt_fresh_connect", "curlopt_ftp_account", "curlopt_ftp_create_missing_dirs", "curlopt_ftp_response_timeout", "curlopt_ftp_ssl", "curlopt_ftp_use_eprt", "curlopt_ftp_use_epsv", "curlopt_ftpappend", "curlopt_ftplistonly", "curlopt_ftpport", "curlopt_ftpsslauth", "curlopt_header", "curlopt_http_version", "curlopt_http200aliases", "curlopt_httpauth", "curlopt_httpget", "curlopt_httpheader", "curlopt_httppost", "curlopt_httpproxytunnel", "curlopt_infilesize_large", "curlopt_infilesize", "curlopt_interface", "curlopt_ipresolve", "curlopt_krb4level", "curlopt_low_speed_limit", "curlopt_low_speed_time", "curlopt_mail_from", "curlopt_mail_rcpt", "curlopt_maxconnects", "curlopt_maxfilesize_large", "curlopt_maxfilesize", "curlopt_maxredirs", "curlopt_netrc_file", "curlopt_netrc", "curlopt_nobody", "curlopt_noprogress", "curlopt_port", "curlopt_post", "curlopt_postfields", "curlopt_postfieldsize_large", "curlopt_postfieldsize", "curlopt_postquote", "curlopt_prequote", "curlopt_proxy", "curlopt_proxyauth", "curlopt_proxyport", "curlopt_proxytype", "curlopt_proxyuserpwd", "curlopt_put", "curlopt_quote", "curlopt_random_file", "curlopt_range", "curlopt_readdata", "curlopt_referer", "curlopt_resume_from_large", "curlopt_resume_from", "curlopt_ssl_cipher_list", "curlopt_ssl_verifyhost", "curlopt_ssl_verifypeer", "curlopt_sslcert", "curlopt_sslcerttype", "curlopt_sslengine_default", "curlopt_sslengine", "curlopt_sslkey", "curlopt_sslkeypasswd", "curlopt_sslkeytype", "curlopt_sslversion", "curlopt_tcp_nodelay", "curlopt_timecondition", "curlopt_timeout", "curlopt_timevalue", "curlopt_transfertext", "curlopt_unrestricted_auth", "curlopt_upload", "curlopt_url", "curlopt_use_ssl", "curlopt_useragent", "curlopt_userpwd", "curlopt_verbose", "curlopt_writedata", "curlproxy_http", "curlproxy_socks4", "curlproxy_socks5", "database_adddefaultsqlitehost", "database_database", "database_initialize", "database_name", "database_qs", "database_table_database_tables", "database_table_datasource_databases", "database_table_datasource_hosts", "database_table_datasources", "database_table_table_fields", "database_util_cleanpath", "dbgp_stop_stack_name", "debugging_break", "debugging_breakpoint_get", "debugging_breakpoint_list", "debugging_breakpoint_remove", "debugging_breakpoint_set", "debugging_breakpoint_update", "debugging_context_locals", "debugging_context_self", "debugging_context_vars", "debugging_detach", "debugging_enabled", "debugging_get_context", "debugging_get_stack", "debugging_run", "debugging_step_in", "debugging_step_out", "debugging_step_over", "debugging_stop", "debugging_terminate", "decimal_random", "decompress", "decrypt_blowfish", "define_atbegin", "define_atend", "dns_default", "dns_lookup", "document", "email_attachment_mime_type", "email_digestchallenge", "email_digestresponse", "email_extract", "email_findemails", "email_fix_address_list", "email_fix_address", "email_fs_error_clean", "email_immediate", "email_initialize", "email_merge", "email_mxlookup", "email_pop_priv_extract", "email_pop_priv_quote", "email_pop_priv_substring", "email_queue", "email_result", "email_safeemail", "email_send", "email_status", "email_token", "email_translatebreakstocrlf", "encode_qheader", "encoding_iso88591", "encoding_utf8", "encrypt_blowfish", "encrypt_crammd5", "encrypt_hmac", "encrypt_md5", "eol", "error_code", "error_msg", "error_obj", "error_pop", "error_push", "error_reset", "error_stack", "escape_tag", "evdns_resolve_ipv4", "evdns_resolve_ipv6", "evdns_resolve_reverse_ipv6", "evdns_resolve_reverse", "fail_now", "failure_clear", "fastcgi_createfcgirequest", "fastcgi_handlecon", "fastcgi_handlereq", "fastcgi_initialize", "fastcgi_initiate_request", "fcgi_abort_request", "fcgi_authorize", "fcgi_begin_request", "fcgi_bodychunksize", "fcgi_cant_mpx_conn", "fcgi_data", "fcgi_end_request", "fcgi_filter", "fcgi_get_values_result", "fcgi_get_values", "fcgi_keep_conn", "fcgi_makeendrequestbody", "fcgi_makestdoutbody", "fcgi_max_conns", "fcgi_max_reqs", "fcgi_mpxs_conns", "fcgi_null_request_id", "fcgi_overloaded", "fcgi_params", "fcgi_read_timeout_seconds", "fcgi_readparam", "fcgi_request_complete", "fcgi_responder", "fcgi_stderr", "fcgi_stdin", "fcgi_stdout", "fcgi_unknown_role", "fcgi_unknown_type", "fcgi_version_1", "fcgi_x_stdin", "field_name", "field_names", "field", "file_copybuffersize", "file_defaultencoding", "file_forceroot", "file_modechar", "file_modeline", "file_stderr", "file_stdin", "file_stdout", "file_tempfile", "filemakerds_initialize", "filemakerds", "found_count", "ftp_deletefile", "ftp_getdata", "ftp_getfile", "ftp_getlisting", "ftp_putdata", "ftp_putfile", "generateforeach", "hash_primes", "http_char_colon", "http_char_cr", "http_char_htab", "http_char_lf", "http_char_question", "http_char_space", "http_default_files", "http_read_headers", "http_read_timeout_secs", "http_server_apps_path", "http_server_request_logger", "include_cache_compare", "include_currentpath", "include_filepath", "include_localpath", "include_once", "include_path", "include_raw", "include_url", "include", "includes", "inline_colinfo_name_pos", "inline_colinfo_type_pos", "inline_colinfo_valuelist_pos", "inline_columninfo_pos", "inline_foundcount_pos", "inline_namedget", "inline_namedput", "inline_resultrows_pos", "inline_scopeget", "inline_scopepop", "inline_scopepush", "integer_bitor", "integer_random", "io_dir_dt_blk", "io_dir_dt_chr", "io_dir_dt_dir", "io_dir_dt_fifo", "io_dir_dt_lnk", "io_dir_dt_reg", "io_dir_dt_sock", "io_dir_dt_unknown", "io_dir_dt_wht", "io_file_access", "io_file_chdir", "io_file_chmod", "io_file_chown", "io_file_dirname", "io_file_f_dupfd", "io_file_f_getfd", "io_file_f_getfl", "io_file_f_getlk", "io_file_f_rdlck", "io_file_f_setfd", "io_file_f_setfl", "io_file_f_setlk", "io_file_f_setlkw", "io_file_f_test", "io_file_f_tlock", "io_file_f_ulock", "io_file_f_unlck", "io_file_f_wrlck", "io_file_fd_cloexec", "io_file_fioasync", "io_file_fioclex", "io_file_fiodtype", "io_file_fiogetown", "io_file_fionbio", "io_file_fionclex", "io_file_fionread", "io_file_fiosetown", "io_file_getcwd", "io_file_lchown", "io_file_link", "io_file_lockf", "io_file_lstat_atime", "io_file_lstat_mode", "io_file_lstat_mtime", "io_file_lstat_size", "io_file_mkdir", "io_file_mkfifo", "io_file_mkstemp", "io_file_o_append", "io_file_o_async", "io_file_o_creat", "io_file_o_excl", "io_file_o_exlock", "io_file_o_fsync", "io_file_o_nofollow", "io_file_o_nonblock", "io_file_o_rdonly", "io_file_o_rdwr", "io_file_o_shlock", "io_file_o_sync", "io_file_o_trunc", "io_file_o_wronly", "io_file_pipe", "io_file_readlink", "io_file_realpath", "io_file_remove", "io_file_rename", "io_file_rmdir", "io_file_s_ifblk", "io_file_s_ifchr", "io_file_s_ifdir", "io_file_s_ififo", "io_file_s_iflnk", "io_file_s_ifmt", "io_file_s_ifreg", "io_file_s_ifsock", "io_file_s_irgrp", "io_file_s_iroth", "io_file_s_irusr", "io_file_s_irwxg", "io_file_s_irwxo", "io_file_s_irwxu", "io_file_s_isgid", "io_file_s_isuid", "io_file_s_isvtx", "io_file_s_iwgrp", "io_file_s_iwoth", "io_file_s_iwusr", "io_file_s_ixgrp", "io_file_s_ixoth", "io_file_s_ixusr", "io_file_seek_cur", "io_file_seek_end", "io_file_seek_set", "io_file_stat_atime", "io_file_stat_mode", "io_file_stat_mtime", "io_file_stat_size", "io_file_stderr", "io_file_stdin", "io_file_stdout", "io_file_symlink", "io_file_tempnam", "io_file_truncate", "io_file_umask", "io_file_unlink", "io_net_accept", "io_net_af_inet", "io_net_af_inet6", "io_net_af_unix", "io_net_bind", "io_net_connect", "io_net_getpeername", "io_net_getsockname", "io_net_ipproto_ip", "io_net_ipproto_udp", "io_net_listen", "io_net_msg_oob", "io_net_msg_peek", "io_net_msg_waitall", "io_net_recv", "io_net_recvfrom", "io_net_send", "io_net_sendto", "io_net_shut_rd", "io_net_shut_rdwr", "io_net_shut_wr", "io_net_shutdown", "io_net_so_acceptconn", "io_net_so_broadcast", "io_net_so_debug", "io_net_so_dontroute", "io_net_so_error", "io_net_so_keepalive", "io_net_so_linger", "io_net_so_oobinline", "io_net_so_rcvbuf", "io_net_so_rcvlowat", "io_net_so_rcvtimeo", "io_net_so_reuseaddr", "io_net_so_sndbuf", "io_net_so_sndlowat", "io_net_so_sndtimeo", "io_net_so_timestamp", "io_net_so_type", "io_net_so_useloopback", "io_net_sock_dgram", "io_net_sock_raw", "io_net_sock_rdm", "io_net_sock_seqpacket", "io_net_sock_stream", "io_net_socket", "io_net_sol_socket", "io_net_ssl_accept", "io_net_ssl_begin", "io_net_ssl_connect", "io_net_ssl_end", "io_net_ssl_error", "io_net_ssl_errorstring", "io_net_ssl_funcerrorstring", "io_net_ssl_liberrorstring", "io_net_ssl_read", "io_net_ssl_reasonerrorstring", "io_net_ssl_setacceptstate", "io_net_ssl_setconnectstate", "io_net_ssl_setverifylocations", "io_net_ssl_shutdown", "io_net_ssl_usecertificatechainfile", "io_net_ssl_useprivatekeyfile", "io_net_ssl_write", "java_jvm_create", "java_jvm_getenv", "jdbc_initialize", "json_back_slash", "json_back_space", "json_close_array", "json_close_object", "json_colon", "json_comma", "json_consume_array", "json_consume_object", "json_consume_string", "json_consume_token", "json_cr", "json_debug", "json_deserialize", "json_e_lower", "json_e_upper", "json_f_lower", "json_form_feed", "json_forward_slash", "json_lf", "json_n_lower", "json_negative", "json_open_array", "json_open_object", "json_period", "json_positive", "json_quote_double", "json_rpccall", "json_serialize", "json_t_lower", "json_tab", "json_white_space", "keycolumn_name", "keycolumn_value", "keyfield_name", "keyfield_value", "lasso_currentaction", "lasso_errorreporting", "lasso_executiontimelimit", "lasso_methodexists", "lasso_tagexists", "lasso_uniqueid", "lasso_version", "lassoapp_current_app", "lassoapp_current_include", "lassoapp_do_with_include", "lassoapp_exists", "lassoapp_find_missing_file", "lassoapp_format_mod_date", "lassoapp_get_capabilities_name", "lassoapp_include_current", "lassoapp_include", "lassoapp_initialize_db", "lassoapp_initialize", "lassoapp_invoke_resource", "lassoapp_issourcefileextension", "lassoapp_link", "lassoapp_load_module", "lassoapp_mime_get", "lassoapp_mime_type_appcache", "lassoapp_mime_type_css", "lassoapp_mime_type_csv", "lassoapp_mime_type_doc", "lassoapp_mime_type_docx", "lassoapp_mime_type_eof", "lassoapp_mime_type_eot", "lassoapp_mime_type_gif", "lassoapp_mime_type_html", "lassoapp_mime_type_ico", "lassoapp_mime_type_jpg", "lassoapp_mime_type_js", "lassoapp_mime_type_lasso", "lassoapp_mime_type_map", "lassoapp_mime_type_pdf", "lassoapp_mime_type_png", "lassoapp_mime_type_ppt", "lassoapp_mime_type_rss", "lassoapp_mime_type_svg", "lassoapp_mime_type_swf", "lassoapp_mime_type_tif", "lassoapp_mime_type_ttf", "lassoapp_mime_type_txt", "lassoapp_mime_type_woff", "lassoapp_mime_type_xaml", "lassoapp_mime_type_xap", "lassoapp_mime_type_xbap", "lassoapp_mime_type_xhr", "lassoapp_mime_type_xml", "lassoapp_mime_type_zip", "lassoapp_path_to_method_name", "lassoapp_settingsdb", "layout_name", "lcapi_datasourceadd", "lcapi_datasourcecloseconnection", "lcapi_datasourcedelete", "lcapi_datasourceduplicate", "lcapi_datasourceexecsql", "lcapi_datasourcefindall", "lcapi_datasourceimage", "lcapi_datasourceinfo", "lcapi_datasourceinit", "lcapi_datasourcematchesname", "lcapi_datasourcenames", "lcapi_datasourcenothing", "lcapi_datasourceopand", "lcapi_datasourceopany", "lcapi_datasourceopbw", "lcapi_datasourceopct", "lcapi_datasourceopeq", "lcapi_datasourceopew", "lcapi_datasourceopft", "lcapi_datasourceopgt", "lcapi_datasourceopgteq", "lcapi_datasourceopin", "lcapi_datasourceoplt", "lcapi_datasourceoplteq", "lcapi_datasourceopnbw", "lcapi_datasourceopnct", "lcapi_datasourceopneq", "lcapi_datasourceopnew", "lcapi_datasourceopnin", "lcapi_datasourceopno", "lcapi_datasourceopnot", "lcapi_datasourceopnrx", "lcapi_datasourceopor", "lcapi_datasourceoprx", "lcapi_datasourcepreparesql", "lcapi_datasourceprotectionnone", "lcapi_datasourceprotectionreadonly", "lcapi_datasourcerandom", "lcapi_datasourceschemanames", "lcapi_datasourcescripts", "lcapi_datasourcesearch", "lcapi_datasourcesortascending", "lcapi_datasourcesortcustom", "lcapi_datasourcesortdescending", "lcapi_datasourcetablenames", "lcapi_datasourceterm", "lcapi_datasourcetickle", "lcapi_datasourcetypeblob", "lcapi_datasourcetypeboolean", "lcapi_datasourcetypedate", "lcapi_datasourcetypedecimal", "lcapi_datasourcetypeinteger", "lcapi_datasourcetypestring", "lcapi_datasourceunpreparesql", "lcapi_datasourceupdate", "lcapi_fourchartointeger", "lcapi_listdatasources", "lcapi_loadmodule", "lcapi_loadmodules", "lcapi_updatedatasourceslist", "ldap_scope_base", "ldap_scope_children", "ldap_scope_onelevel", "ldap_scope_subtree", "library_once", "library", "ljapi_initialize", "locale_availablelocales", "locale_canada", "locale_canadafrench", "locale_china", "locale_chinese", "locale_default", "locale_english", "locale_format_style_date_time", "locale_format_style_default", "locale_format_style_full", "locale_format_style_long", "locale_format_style_medium", "locale_format_style_none", "locale_format_style_short", "locale_format", "locale_france", "locale_french", "locale_german", "locale_germany", "locale_isocountries", "locale_isolanguages", "locale_italian", "locale_italy", "locale_japan", "locale_japanese", "locale_korea", "locale_korean", "locale_prc", "locale_setdefault", "locale_simplifiedchinese", "locale_taiwan", "locale_traditionalchinese", "locale_uk", "locale_us", "log_always", "log_critical", "log_deprecated", "log_destination_console", "log_destination_database", "log_destination_file", "log_detail", "log_initialize", "log_level_critical", "log_level_deprecated", "log_level_detail", "log_level_sql", "log_level_warning", "log_max_file_size", "log_setdestination", "log_sql", "log_trim_file_size", "log_warning", "loop_key_pop", "loop_key_push", "loop_key", "loop_pop", "loop_push", "loop_value_pop", "loop_value_push", "loop_value", "main_thread_only", "maxrecords_value", "median", "method_name", "micros", "millis", "mongo_insert_continue_on_error", "mongo_insert_no_validate", "mongo_insert_none", "mongo_query_await_data", "mongo_query_exhaust", "mongo_query_no_cursor_timeout", "mongo_query_none", "mongo_query_oplog_replay", "mongo_query_partial", "mongo_query_slave_ok", "mongo_query_tailable_cursor", "mongo_remove_none", "mongo_remove_single_remove", "mongo_update_multi_update", "mongo_update_no_validate", "mongo_update_none", "mongo_update_upsert", "mustache_compile_file", "mustache_compile_string", "mustache_include", "mysqlds", "namespace_global", "namespace_import", "net_connectinprogress", "net_connectok", "net_typessl", "net_typessltcp", "net_typessludp", "net_typetcp", "net_typeudp", "net_waitread", "net_waittimeout", "net_waitwrite", "nslookup", "odbc_session_driver_mssql", "odbc", "output", "pdf_package", "pdf_rectangle", "pdf_serve", "pi", "postgresql", "process", "protect_now", "queriable_average", "queriable_defaultcompare", "queriable_do", "queriable_internal_combinebindings", "queriable_max", "queriable_min", "queriable_qsort", "queriable_reversecompare", "queriable_sum", "random_seed", "range", "records_array", "records_map", "redirect_url", "referer_url", "referrer_url", "register_thread", "register", "response_filepath", "response_localpath", "response_path", "response_realm", "response_root", "resultset_count", "resultsets", "rows_array", "rows_impl", "schema_name", "security_database", "security_default_realm", "security_initialize", "security_table_groups", "security_table_ug_map", "security_table_users", "selected", "series", "server_admin", "server_ip", "server_name", "server_port", "server_protocol", "server_push", "server_signature", "server_software", "session_abort", "session_addvar", "session_decorate", "session_deleteexpired", "session_end", "session_getdefaultdriver", "session_id", "session_initialize", "session_removevar", "session_result", "session_setdefaultdriver", "session_start", "shown_count", "shown_first", "shown_last", "site_id", "site_name", "skiprecords_value", "sleep", "sqlite_abort", "sqlite_auth", "sqlite_blob", "sqlite_busy", "sqlite_cantopen", "sqlite_constraint", "sqlite_corrupt", "sqlite_createdb", "sqlite_done", "sqlite_empty", "sqlite_error", "sqlite_float", "sqlite_format", "sqlite_full", "sqlite_integer", "sqlite_internal", "sqlite_interrupt", "sqlite_ioerr", "sqlite_locked", "sqlite_mismatch", "sqlite_misuse", "sqlite_nolfs", "sqlite_nomem", "sqlite_notadb", "sqlite_notfound", "sqlite_null", "sqlite_ok", "sqlite_perm", "sqlite_protocol", "sqlite_range", "sqlite_readonly", "sqlite_row", "sqlite_schema", "sqlite_setsleepmillis", "sqlite_setsleeptries", "sqlite_text", "sqlite_toobig", "sqliteconnector", "staticarray_join", "stdout", "stdoutnl", "string_validcharset", "suspend", "sys_appspath", "sys_chroot", "sys_clock", "sys_clockspersec", "sys_credits", "sys_daemon", "sys_databasespath", "sys_detach_exec", "sys_difftime", "sys_dll_ext", "sys_drand48", "sys_environ", "sys_eol", "sys_erand48", "sys_errno", "sys_exec_pid_to_os_pid", "sys_exec", "sys_exit", "sys_fork", "sys_garbagecollect", "sys_getbytessincegc", "sys_getchar", "sys_getegid", "sys_getenv", "sys_geteuid", "sys_getgid", "sys_getgrnam", "sys_getheapfreebytes", "sys_getheapsize", "sys_getlogin", "sys_getpid", "sys_getppid", "sys_getpwnam", "sys_getpwuid", "sys_getstartclock", "sys_getthreadcount", "sys_getuid", "sys_growheapby", "sys_homepath", "sys_is_full_path", "sys_is_windows", "sys_isfullpath", "sys_iswindows", "sys_iterate", "sys_jrand48", "sys_kill_exec", "sys_kill", "sys_lcong48", "sys_librariespath", "sys_library", "sys_listtraits", "sys_listtypes", "sys_listunboundmethods", "sys_load_dynamic_library", "sys_loadlibrary", "sys_lrand48", "sys_masterhomepath", "sys_mrand48", "sys_nrand48", "sys_pid_exec", "sys_pointersize", "sys_rand", "sys_random", "sys_seed48", "sys_setenv", "sys_setgid", "sys_setsid", "sys_setuid", "sys_sigabrt", "sys_sigalrm", "sys_sigbus", "sys_sigchld", "sys_sigcont", "sys_sigfpe", "sys_sighup", "sys_sigill", "sys_sigint", "sys_sigkill", "sys_sigpipe", "sys_sigprof", "sys_sigquit", "sys_sigsegv", "sys_sigstop", "sys_sigsys", "sys_sigterm", "sys_sigtrap", "sys_sigtstp", "sys_sigttin", "sys_sigttou", "sys_sigurg", "sys_sigusr1", "sys_sigusr2", "sys_sigvtalrm", "sys_sigxcpu", "sys_sigxfsz", "sys_srand", "sys_srand48", "sys_srandom", "sys_strerror", "sys_supportpath", "sys_test_exec", "sys_time", "sys_uname", "sys_unsetenv", "sys_usercapimodulepath", "sys_userstartuppath", "sys_version", "sys_wait_exec", "sys_waitpid", "sys_wcontinued", "sys_while", "sys_wnohang", "sys_wuntraced", "table_name", "tag_exists", "thread_var_get", "thread_var_pop", "thread_var_push", "threadvar_find", "threadvar_get", "threadvar_set_asrt", "threadvar_set", "timer", "token_value", "treemap", "u_lb_alphabetic", "u_lb_ambiguous", "u_lb_break_after", "u_lb_break_before", "u_lb_break_both", "u_lb_break_symbols", "u_lb_carriage_return", "u_lb_close_punctuation", "u_lb_combining_mark", "u_lb_complex_context", "u_lb_contingent_break", "u_lb_exclamation", "u_lb_glue", "u_lb_h2", "u_lb_h3", "u_lb_hyphen", "u_lb_ideographic", "u_lb_infix_numeric", "u_lb_inseparable", "u_lb_jl", "u_lb_jt", "u_lb_jv", "u_lb_line_feed", "u_lb_mandatory_break", "u_lb_next_line", "u_lb_nonstarter", "u_lb_numeric", "u_lb_open_punctuation", "u_lb_postfix_numeric", "u_lb_prefix_numeric", "u_lb_quotation", "u_lb_space", "u_lb_surrogate", "u_lb_unknown", "u_lb_word_joiner", "u_lb_zwspace", "u_nt_decimal", "u_nt_digit", "u_nt_none", "u_nt_numeric", "u_sb_aterm", "u_sb_close", "u_sb_format", "u_sb_lower", "u_sb_numeric", "u_sb_oletter", "u_sb_other", "u_sb_sep", "u_sb_sp", "u_sb_sterm", "u_sb_upper", "u_wb_aletter", "u_wb_extendnumlet", "u_wb_format", "u_wb_katakana", "u_wb_midletter", "u_wb_midnum", "u_wb_numeric", "u_wb_other", "ucal_ampm", "ucal_dayofmonth", "ucal_dayofweek", "ucal_dayofweekinmonth", "ucal_dayofyear", "ucal_daysinfirstweek", "ucal_dowlocal", "ucal_dstoffset", "ucal_era", "ucal_extendedyear", "ucal_firstdayofweek", "ucal_hour", "ucal_hourofday", "ucal_julianday", "ucal_lenient", "ucal_listtimezones", "ucal_millisecond", "ucal_millisecondsinday", "ucal_minute", "ucal_month", "ucal_second", "ucal_weekofmonth", "ucal_weekofyear", "ucal_year", "ucal_yearwoy", "ucal_zoneoffset", "uchar_age", "uchar_alphabetic", "uchar_ascii_hex_digit", "uchar_bidi_class", "uchar_bidi_control", "uchar_bidi_mirrored", "uchar_bidi_mirroring_glyph", "uchar_bidi_paired_bracket", "uchar_block", "uchar_canonical_combining_class", "uchar_case_folding", "uchar_case_sensitive", "uchar_dash", "uchar_decomposition_type", "uchar_default_ignorable_code_point", "uchar_deprecated", "uchar_diacritic", "uchar_east_asian_width", "uchar_extender", "uchar_full_composition_exclusion", "uchar_general_category_mask", "uchar_general_category", "uchar_grapheme_base", "uchar_grapheme_cluster_break", "uchar_grapheme_extend", "uchar_grapheme_link", "uchar_hangul_syllable_type", "uchar_hex_digit", "uchar_hyphen", "uchar_id_continue", "uchar_ideographic", "uchar_ids_binary_operator", "uchar_ids_trinary_operator", "uchar_iso_comment", "uchar_join_control", "uchar_joining_group", "uchar_joining_type", "uchar_lead_canonical_combining_class", "uchar_line_break", "uchar_logical_order_exception", "uchar_lowercase_mapping", "uchar_lowercase", "uchar_math", "uchar_name", "uchar_nfc_inert", "uchar_nfc_quick_check", "uchar_nfd_inert", "uchar_nfd_quick_check", "uchar_nfkc_inert", "uchar_nfkc_quick_check", "uchar_nfkd_inert", "uchar_nfkd_quick_check", "uchar_noncharacter_code_point", "uchar_numeric_type", "uchar_numeric_value", "uchar_pattern_syntax", "uchar_pattern_white_space", "uchar_posix_alnum", "uchar_posix_blank", "uchar_posix_graph", "uchar_posix_print", "uchar_posix_xdigit", "uchar_quotation_mark", "uchar_radical", "uchar_s_term", "uchar_script", "uchar_segment_starter", "uchar_sentence_break", "uchar_simple_case_folding", "uchar_simple_lowercase_mapping", "uchar_simple_titlecase_mapping", "uchar_simple_uppercase_mapping", "uchar_soft_dotted", "uchar_terminal_punctuation", "uchar_titlecase_mapping", "uchar_trail_canonical_combining_class", "uchar_unicode_1_name", "uchar_unified_ideograph", "uchar_uppercase_mapping", "uchar_uppercase", "uchar_variation_selector", "uchar_white_space", "uchar_word_break", "uchar_xid_continue", "uncompress", "usage", "uuid_compare", "uuid_copy", "uuid_generate_random", "uuid_generate_time", "uuid_generate", "uuid_is_null", "uuid_parse", "uuid_unparse_lower", "uuid_unparse_upper", "uuid_unparse", "value_listitem", "valuelistitem", "var_keys", "var_values", "wap_isenabled", "wap_maxbuttons", "wap_maxcolumns", "wap_maxhorzpixels", "wap_maxrows", "wap_maxvertpixels", "web_handlefcgirequest", "web_node_content_representation_css", "web_node_content_representation_html", "web_node_content_representation_js", "web_node_content_representation_xhr", "web_node_forpath", "web_nodes_initialize", "web_nodes_normalizeextension", "web_nodes_processcontentnode", "web_nodes_requesthandler", "web_response_nodesentry", "web_router_database", "web_router_initialize", "websocket_handler_timeout", "wexitstatus", "wifcontinued", "wifexited", "wifsignaled", "wifstopped", "wstopsig", "wtermsig", "xml_transform", "zip_add_dir", "zip_add", "zip_checkcons", "zip_close", "zip_cm_bzip2", "zip_cm_default", "zip_cm_deflate", "zip_cm_deflate64", "zip_cm_implode", "zip_cm_pkware_implode", "zip_cm_reduce_1", "zip_cm_reduce_2", "zip_cm_reduce_3", "zip_cm_reduce_4", "zip_cm_shrink", "zip_cm_store", "zip_create", "zip_delete", "zip_em_3des_112", "zip_em_3des_168", "zip_em_aes_128", "zip_em_aes_192", "zip_em_aes_256", "zip_em_des", "zip_em_none", "zip_em_rc2_old", "zip_em_rc2", "zip_em_rc4", "zip_em_trad_pkware", "zip_em_unknown", "zip_er_changed", "zip_er_close", "zip_er_compnotsupp", "zip_er_crc", "zip_er_deleted", "zip_er_eof", "zip_er_exists", "zip_er_incons", "zip_er_internal", "zip_er_inval", "zip_er_memory", "zip_er_multidisk", "zip_er_noent", "zip_er_nozip", "zip_er_ok", "zip_er_open", "zip_er_read", "zip_er_remove", "zip_er_rename", "zip_er_seek", "zip_er_tmpopen", "zip_er_write", "zip_er_zipclosed", "zip_er_zlib", "zip_error_get_sys_type", "zip_error_get", "zip_error_to_str", "zip_et_none", "zip_et_sys", "zip_et_zlib", "zip_excl", "zip_fclose", "zip_file_error_get", "zip_file_strerror", "zip_fl_compressed", "zip_fl_nocase", "zip_fl_nodir", "zip_fl_unchanged", "zip_fopen_index", "zip_fopen", "zip_fread", "zip_get_archive_comment", "zip_get_file_comment", "zip_get_name", "zip_get_num_files", "zip_name_locate", "zip_open", "zip_rename", "zip_replace", "zip_set_archive_comment", "zip_set_file_comment", "zip_stat_index", "zip_stat", "zip_strerror", "zip_unchange_all", "zip_unchange_archive", "zip_unchange", "zlib_version"] + h[:keywords] = Set.new ["cache", "database_names", "database_schemanames", "database_tablenames", "define_tag", "define_type", "email_batch", "encode_set", "html_comment", "handle", "handle_error", "header", "if", "inline", "iterate", "ljax_target", "link", "link_currentaction", "link_currentgroup", "link_currentrecord", "link_detail", "link_firstgroup", "link_firstrecord", "link_lastgroup", "link_lastrecord", "link_nextgroup", "link_nextrecord", "link_prevgroup", "link_prevrecord", "log", "loop", "namespace_using", "output_none", "portal", "private", "protect", "records", "referer", "referrer", "repeating", "resultset", "rows", "search_args", "search_arguments", "select", "sort_args", "sort_arguments", "thread_atomic", "value_list", "while", "abort", "case", "else", "fail_if", "fail_ifnot", "fail", "if_empty", "if_false", "if_null", "if_true", "loop_abort", "loop_continue", "loop_count", "params", "params_up", "return", "return_value", "run_children", "soap_definetag", "soap_lastrequest", "soap_lastresponse", "tag_name", "ascending", "average", "by", "define", "descending", "do", "equals", "frozen", "group", "handle_failure", "import", "in", "into", "join", "let", "match", "max", "min", "on", "order", "parent", "protected", "provide", "public", "require", "returnhome", "skip", "split_thread", "sum", "take", "thread", "to", "trait", "type", "where", "with", "yield", "yieldhome"] + h[:exceptions] = Set.new ["error_adderror", "error_columnrestriction", "error_databaseconnectionunavailable", "error_databasetimeout", "error_deleteerror", "error_fieldrestriction", "error_filenotfound", "error_invaliddatabase", "error_invalidpassword", "error_invalidusername", "error_modulenotfound", "error_noerror", "error_nopermission", "error_outofmemory", "error_reqcolumnmissing", "error_reqfieldmissing", "error_requiredcolumnmissing", "error_requiredfieldmissing", "error_updateerror"] + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lean.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lean.rb new file mode 100644 index 0000000..d19d7f8 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lean.rb @@ -0,0 +1,164 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# NOTE: This is for Lean 3 (community fork). +module Rouge + module Lexers + class Lean < RegexLexer + title 'Lean' + desc 'The Lean programming language (leanprover.github.io)' + tag 'lean' + aliases 'lean' + filenames '*.lean' + + def self.keywords + @keywords ||= Set.new %w( + abbreviation + add_rewrite + alias + assume + axiom + begin + by + calc + calc_refl + calc_subst + calc_trans + #check + coercion + conjecture + constant + constants + context + corollary + def + definition + end + #eval + example + export + expose + exposing + exit + extends + from + fun + have + help + hiding + hott + hypothesis + import + include + including + inductive + infix + infixl + infixr + inline + instance + irreducible + lemma + match + namespace + notation + opaque + opaque_hint + open + options + parameter + parameters + postfix + precedence + prefix + #print + private + protected + #reduce + reducible + renaming + repeat + section + set_option + show + tactic_hint + theorem + universe + universes + using + variable + variables + with + ) + end + + def self.types + @types ||= %w( + Sort + Prop + Type + ) + end + + def self.operators + @operators ||= %w( + != # & && \* \+ - / @ ! ` -\. -> + \. \.\. \.\.\. :: :> ; ;; < + <- = == > _ \| \|\| ~ => <= >= + /\ \/ ∀ Π λ ↔ ∧ ∨ ≠ ≤ ≥ ⊎ + ¬ ⁻¹ ⬝ ▸ → ∃ ℕ ℤ ≈ × ⌞ ⌟ ≡ ⟨ ⟩ + ) + end + + state :root do + # comments starting after some space + rule %r/\s*--+\s+.*?$/, Comment::Doc + + rule %r/"/, Str, :string + rule %r/\d+/, Num::Integer + + # special commands or keywords + rule(/#?\w+/) do |m| + match = m[0] + if self.class.keywords.include?(match) + token Keyword + elsif self.class.types.include?(match) + token Keyword::Type + else + token Name + end + end + + # special unicode keywords + rule %r/[λ]/, Keyword + + # ---------------- + # operators rules + # ---------------- + + rule %r/\:=?/, Text + rule %r/\.[0-9]*/, Operator + + rule %r(#{Lean.operators.join('|')}), Operator + + # unmatched symbols + rule %r/[\s\(\),\[\]αβ‹›]+/, Text + + # show missing matches + rule %r/./, Error + + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\/, Str::Escape, :escape + rule %r/[^\\"]+/, Str + end + + state :escape do + rule %r/[nrt"'\\]/, Str::Escape, :pop! + rule %r/x[\da-f]+/i, Str::Escape, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/liquid.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/liquid.rb new file mode 100644 index 0000000..c54d700 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/liquid.rb @@ -0,0 +1,285 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Liquid < RegexLexer + title "Liquid" + desc 'Liquid is a templating engine for Ruby (liquidmarkup.org)' + tag 'liquid' + filenames '*.liquid' + mimetypes 'text/html+liquid' + + state :root do + rule %r/[^\{]+/, Text + + rule %r/(\{%-?)(\s*)/ do + groups Comment::Preproc, Text::Whitespace + push :logic + end + + rule %r/(\{\{-?)(\s*)/ do + groups Comment::Preproc, Text::Whitespace + push :output + end + + rule %r/\{/, Text + end + + state :end_logic do + rule(/(\s*)(-?%\})/) do + groups Text::Whitespace, Comment::Preproc + reset_stack + end + + rule(/\n\s*/) do + token Text::Whitespace + if in_state? :liquid + pop! until state? :liquid + end + end + + mixin :whitespace + end + + state :end_output do + rule(/(\s*)(-?\}\})/) do + groups Text::Whitespace, Comment::Preproc + reset_stack + end + end + + state :liquid do + mixin :end_logic + mixin :logic + end + + state :logic do + rule %r/(liquid)\b/, Name::Tag, :liquid + + # builtin logic blocks + rule %r/(if|elsif|unless|case)\b/, Name::Tag, :condition + rule %r/(when)\b/, Name::Tag, :value + rule %r/(else|ifchanged|end\w+)\b/, Name::Tag, :end_logic + rule %r/(break|continue)\b/, Keyword::Reserved, :end_logic + + # builtin iteration blocks + rule %r/(for|tablerow)(\s+)(\S+)(\s+)(in)(\s+)/ do + groups Name::Tag, Text::Whitespace, Name::Variable, Text::Whitespace, + Name::Tag, Text::Whitespace + push :iteration_args + end + + # other builtin blocks + rule %r/(capture|(?:in|de)crement)(\s+)([a-zA-Z_](?:\w|-(?!%))*)/ do + groups Name::Tag, Text::Whitespace, Name::Variable + push :end_logic + end + + rule %r/(comment)(\s*)(-?%\})/ do + groups Name::Tag, Text::Whitespace, Comment::Preproc + push :comment + end + + rule %r/(raw)(\s*)(-?%\})/ do + groups Name::Tag, Text::Whitespace, Comment::Preproc + push :raw + end + + # builtin tags + rule %r/(assign|echo)\b/, Name::Tag, :assign + + rule %r/(include|render)(\s+)([\/\w-]+(?:\.[\w-]+)+\b)?/ do + groups Name::Tag, Text::Whitespace, Text + push :include + end + + rule %r/(cycle)(\s+)(?:([\w-]+|'[^']*'|"[^"]*")(\s*)(:))?(\s*)/ do |m| + token_class = case m[3] + when %r/'[^']*'/ then Str::Single + when %r/"[^"]*"/ then Str::Double + else + Name::Attribute + end + groups Name::Tag, Text::Whitespace, token_class, + Text::Whitespace, Punctuation, Text::Whitespace + push :tag_args + end + + # custom tags or blocks + rule %r/(\w+)\b/, Name::Tag, :block_args + + mixin :end_logic + end + + state :output do + rule %r/(\|)(\s*)/ do + groups Punctuation, Text::Whitespace + push :filters + push :filter + end + + mixin :end_output + mixin :static + mixin :variable + end + + state :condition do + rule %r/([=!]=|[<>]=?)/, Operator + rule %r/(and|or|contains)\b/, Operator::Word + + mixin :value + end + + state :value do + mixin :end_logic + mixin :static + mixin :variable + end + + state :iteration_args do + rule %r/(reversed|continue)\b/, Name::Attribute + rule %r/\(/, Punctuation, :range + + mixin :tag_args + end + + state :block_args do + rule %r/(\{\{-?)/, Comment::Preproc, :output_embed + + rule %r/(\|)(\s*)/ do + groups Punctuation, Text::Whitespace + push :filters + push :filter + end + + mixin :tag_args + end + + state :tag_args do + mixin :end_logic + mixin :args + end + + state :comment do + rule %r/[^\{]+/, Comment + + rule %r/(\{%-?)(\s*)(endcomment)(\s*)(-?%\})/ do + groups Comment::Preproc, Text::Whitespace, Name::Tag, Text::Whitespace, Comment::Preproc + reset_stack + end + + rule %r/\{/, Comment + end + + state :raw do + rule %r/[^\{]+/, Text + + rule %r/(\{%-?)(\s*)(endraw)(\s*)(-?%\})/ do + groups Comment::Preproc, Text::Whitespace, Name::Tag, Text::Whitespace, Comment::Preproc + reset_stack + end + + rule %r/\{/, Text + end + + state :assign do + rule %r/=/, Operator + rule %r/\(/, Punctuation, :range + + rule %r/(\|)(\s*)/ do + groups Punctuation, Text::Whitespace + push :filters + push :filter + end + + mixin :value + end + + state :include do + rule %r/(\{\{-?)/, Comment::Preproc, :output_embed + rule %r/(with|for|as)\b/, Keyword::Reserved + + mixin :tag_args + end + + state :output_embed do + rule %r/(\|)(\s*)([a-zA-Z_](?:\w|-(?!}))*)/ do + groups Punctuation, Text::Whitespace, Name::Function + end + + rule %r/-?\}\}/, Comment::Preproc, :pop! + + mixin :args + end + + state :range do + rule %r/\.\./, Punctuation + rule %r/\)/, Punctuation, :pop! + + mixin :whitespace + mixin :number + mixin :variable + end + + state :filters do + rule %r/(\|)(\s*)/ do + groups Punctuation, Text::Whitespace + push :filter + end + + mixin :end_logic + mixin :end_output + mixin :args + end + + state :filter do + rule %r/[a-zA-Z_](?:\w|-(?![%}]))*/, Name::Function, :pop! + + mixin :whitespace + end + + state :args do + mixin :static + + rule %r/([a-zA-Z_][\w-]*)(\s*)(=|:)/ do + groups Name::Attribute, Text::Whitespace, Operator + end + + mixin :variable + end + + state :static do + rule %r/(false|true|nil)\b/, Keyword::Constant + rule %r/'[^']*'/, Str::Single + rule %r/"[^"]*"/, Str::Double + rule %r/[,:]/, Punctuation + + mixin :whitespace + mixin :number + end + + state :whitespace do + rule %r/\s+/, Text::Whitespace + rule %r/#.*?(?=$|-?[}%]})/, Comment + end + + state :number do + rule %r/-/, Operator + rule %r/\d+\.\d+/, Num::Float + rule %r/\d+/, Num::Integer + end + + state :variable do + rule %r/(\.)(\s*)(first|last|size)\b(?![?!\/])/ do + groups Punctuation, Text::Whitespace, Name::Function + end + + rule %r/\.(?= *\w)|\[|\]/, Punctuation + rule %r/(empty|blank|(for|tablerow)loop\.(parentloop\.)*\w+)\b(?![?!\/])/, Name::Builtin + rule %r/[a-zA-Z_][\w-]*\b-?(?![?!\/])/, Name::Variable + rule %r/\S+/, Text + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/literate_coffeescript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/literate_coffeescript.rb new file mode 100644 index 0000000..b991fdf --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/literate_coffeescript.rb @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class LiterateCoffeescript < RegexLexer + tag 'literate_coffeescript' + title "Literate CoffeeScript" + desc 'Literate coffeescript' + aliases 'litcoffee' + filenames '*.litcoffee' + + def markdown + @markdown ||= Markdown.new(options) + end + + def coffee + @coffee ||= Coffeescript.new(options) + end + + start { markdown.reset!; coffee.reset! } + + state :root do + rule %r/^( .*?\n)+/m do + delegate coffee + end + + rule %r/^([ ]{0,3}(\S.*?|)\n)*/m do + delegate markdown + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/literate_haskell.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/literate_haskell.rb new file mode 100644 index 0000000..cf43e85 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/literate_haskell.rb @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class LiterateHaskell < RegexLexer + title "Literate Haskell" + desc 'Literate haskell' + tag 'literate_haskell' + aliases 'lithaskell', 'lhaskell', 'lhs' + filenames '*.lhs' + mimetypes 'text/x-literate-haskell' + + def haskell + @haskell ||= Haskell.new(options) + end + + start { haskell.reset! } + + # TODO: support TeX versions as well. + state :root do + rule %r/\s*?\n(?=>)/, Text, :code + rule %r/.*?\n/, Text + rule %r/.+\z/, Text + end + + state :code do + rule %r/(>)( .*?(\n|\z))/ do |m| + token Name::Label, m[1] + delegate haskell, m[2] + end + + rule %r/\s*\n(?=\s*[^>])/, Text, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/livescript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/livescript.rb new file mode 100644 index 0000000..0825e63 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/livescript.rb @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Livescript < RegexLexer + tag 'livescript' + aliases 'ls' + filenames '*.ls' + mimetypes 'text/livescript' + + title 'LiveScript' + desc 'LiveScript, a language which compiles to JavaScript (livescript.net)' + + def self.detect?(text) + return text.shebang? 'lsc' + end + + def self.declarations + @declarations ||= Set.new %w(const let var function class extends implements) + end + + def self.keywords + @keywords ||= Set.new %w( + loop until for in of while break return continue switch case + fallthrough default otherwise when then if unless else throw try + catch finally new delete typeof instanceof super by from to til + with require do debugger import export yield + ) + end + + def self.constants + @constants ||= Javascript.constants + %w(yes no on off void) + end + + def self.builtins + @builtins ||= Javascript.builtins + %w(this it that arguments) + end + + def self.loop_control_keywords + @loop_control_keywords ||= Set.new %w(break continue) + end + + id = /[$a-z_]((-(?=[a-z]))?[a-z0-9_])*/i + int_number = /\d[\d_]*/ + int = /#{int_number}(e[+-]?#{int_number})?[$\w]*/ # the last class matches units + + state :root do + rule(%r(^(?=\s|/))) { push :slash_starts_regex } + mixin :comments + mixin :whitespace + + # list of words + rule %r/(<\[)(.*?)(\]>)/m do + groups Punctuation, Str, Punctuation + end + + # function declarations + rule %r/!\s*function\b/, Keyword::Declaration + rule %r/!?[-~]>|<[-~]!?/, Keyword::Declaration + + # switch arrow + rule %r/(=>)/, Keyword + + # prototype attributes + rule %r/(::)(#{id})/ do + groups Punctuation, Name::Attribute + push :id + end + rule %r/(::)(#{int})/ do + groups Punctuation, Num::Integer + push :id + end + + # instance attributes + rule %r/(@)(#{id})/ do + groups Name::Variable::Instance, Name::Attribute + push :id + end + rule %r/([.])(#{id})/ do + groups Punctuation, Name::Attribute + push :id + end + rule %r/([.])(\d+)/ do + groups Punctuation, Num::Integer + push :id + end + rule %r/#{id}(?=\s*:[^:=])/, Name::Attribute + + # operators + rule %r( + [+][+]|--|&&|\b(and|x?or|is(nt)?|not)\b(?!-[a-zA-Z]|_)|[|][|]| + [.]([|&^]|<<|>>>?)[.]|\\(?=\n)|[.:]=|<<<<?|<[|]|[|]>| + (<<|>>|==?|!=?|[-<>+*%^/~?])=? + )x, Operator, :slash_starts_regex + + # arguments shorthand + rule %r/(&)(#{id})?/ do + groups Name::Builtin, Name::Attribute + end + + # switch case + rule %r/[|]|\bcase(?=\s)/, Keyword, :switch_underscore + + rule %r/@/, Name::Variable::Instance + rule %r/[.]{3}/, Punctuation + rule %r/:/, Punctuation + + # keywords + rule %r/#{id}/ do |m| + if self.class.loop_control_keywords.include? m[0] + token Keyword + push :loop_control + next + elsif self.class.keywords.include? m[0] + token Keyword + elsif self.class.constants.include? m[0] + token Name::Constant + elsif self.class.builtins.include? m[0] + token Name::Builtin + elsif self.class.declarations.include? m[0] + token Keyword::Declaration + elsif /^[A-Z]/.match(m[0]) && /[^-][a-z]/.match(m[0]) + token Name::Class + else + token Name::Variable + end + push :id + end + + # punctuation and brackets + rule %r/\](?=[!?.]|#{id})/, Punctuation, :id + rule %r/[{(\[;,]/, Punctuation, :slash_starts_regex + rule %r/[})\].]/, Punctuation + + # literals + rule %r/#{int_number}[.]#{int}/, Num::Float + rule %r/0x[0-9A-Fa-f]+/, Num::Hex + rule %r/#{int}/, Num::Integer + + # strings + rule %r/"""/ do + token Str + push do + rule %r/"""/, Str, :pop! + rule %r/"/, Str + mixin :double_strings + end + end + + rule %r/'''/ do + token Str + push do + rule %r/'''/, Str, :pop! + rule %r/'/, Str + mixin :single_strings + end + end + + rule %r/"/ do + token Str + push do + rule %r/"/, Str, :pop! + mixin :double_strings + end + end + + rule %r/'/ do + token Str + push do + rule %r/'/, Str, :pop! + mixin :single_strings + end + end + + # words + rule %r/\\\S[^\s,;\])}]*/, Str + end + + state :code_escape do + rule %r(\\( + c[A-Z]| + x[0-9a-fA-F]{2}| + u[0-9a-fA-F]{4}| + u\{[0-9a-fA-F]{4}\} + ))x, Str::Escape + end + + state :interpolated_expression do + rule %r/}/, Str::Interpol, :pop! + mixin :root + end + + state :interpolation do + # with curly braces + rule %r/[#][{]/, Str::Interpol, :interpolated_expression + # without curly braces + rule %r/(#)(#{id})/ do |m| + groups Str::Interpol, (self.class.builtins.include? m[2]) ? Name::Builtin : Name::Variable + end + end + + state :whitespace do + # white space and loop labels + rule %r/(\s+?)(?:^([^\S\n]*)(:#{id}))?/m do + groups Text, Text, Name::Label + end + end + + state :whitespace_single_line do + rule %r([^\S\n]+), Text + end + + state :slash_starts_regex do + mixin :comments + mixin :whitespace + mixin :multiline_regex_begin + + rule %r( + /(\\.|[^\[/\\\n]|\[(\\.|[^\]\\\n])*\])+/ # a regex + ([gimy]+\b|\B) + )x, Str::Regex, :pop! + + rule(//) { pop! } + end + + state :multiline_regex_begin do + rule %r(//) do + token Str::Regex + goto :multiline_regex + end + end + + state :multiline_regex_end do + rule %r(//([gimy]+\b|\B)), Str::Regex, :pop! + end + + state :multiline_regex do + mixin :multiline_regex_end + mixin :regex_comment + mixin :interpolation + mixin :code_escape + rule %r/\\\D/, Str::Escape + rule %r/\\\d+/, Name::Variable + rule %r/./m, Str::Regex + end + + state :regex_comment do + rule %r/^#(\s+.*)?$/, Comment::Single + rule %r/(\s+)(#)(\s+.*)?$/ do + groups Text, Comment::Single, Comment::Single + end + end + + state :comments do + rule %r(/\*.*?\*/)m, Comment::Multiline + rule %r/#.*$/, Comment::Single + end + + state :switch_underscore do + mixin :whitespace_single_line + rule %r/_(?=\s*=>|\s+then\b)/, Keyword + rule(//) { pop! } + end + + state :loop_control do + mixin :whitespace_single_line + rule %r/#{id}(?=[);\n])/, Name::Label + rule(//) { pop! } + end + + state :id do + rule %r/[!?]|[.](?!=)/, Punctuation + rule %r/[{]/ do + # destructuring + token Punctuation + push do + rule %r/[,;]/, Punctuation + rule %r/#{id}/, Name::Attribute + rule %r/#{int}/, Num::Integer + mixin :whitespace + rule %r/[}]/, Punctuation, :pop! + end + end + rule %r/#{id}/, Name::Attribute + rule %r/#{int}/, Num::Integer + rule(//) { goto :slash_starts_regex } + end + + state :strings do + # all strings are multi-line + rule %r/[^#\\'"]+/m, Str + mixin :code_escape + rule %r/\\./, Str::Escape + rule %r/#/, Str + end + + state :double_strings do + rule %r/'/, Str + mixin :interpolation + mixin :strings + end + + state :single_strings do + rule %r/"/, Str + mixin :strings + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/llvm.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/llvm.rb new file mode 100644 index 0000000..b5ffa44 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/llvm.rb @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class LLVM < RegexLexer + title "LLVM" + desc 'The LLVM Compiler Infrastructure (http://llvm.org/)' + tag 'llvm' + + filenames '*.ll' + mimetypes 'text/x-llvm' + + string = /"[^"]*?"/ + identifier = /([-a-zA-Z$._][-a-zA-Z$._0-9]*|#{string})/ + + def self.keywords + Kernel::load File.join(Lexers::BASE_DIR, "llvm/keywords.rb") + keywords + end + + def self.instructions + Kernel::load File.join(Lexers::BASE_DIR, "llvm/keywords.rb") + instructions + end + + def self.types + Kernel::load File.join(Lexers::BASE_DIR, "llvm/keywords.rb") + types + end + + state :basic do + rule %r/;.*?$/, Comment::Single + rule %r/\s+/, Text + + rule %r/#{identifier}\s*:/, Name::Label + + rule %r/@(#{identifier}|\d+)/, Name::Variable::Global + rule %r/#\d+/, Name::Variable::Global + rule %r/(%|!)#{identifier}/, Name::Variable + rule %r/(%|!)\d+/, Name::Variable + + rule %r/c?#{string}/, Str + + rule %r/0[xX][a-fA-F0-9]+/, Num + rule %r/-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/, Num + + rule %r/[=<>{}\[\]()*.,!]|x/, Punctuation + end + + state :root do + mixin :basic + + rule %r/i[1-9]\d*/, Keyword::Type + + rule %r/\w+/ do |m| + if self.class.types.include? m[0] + token Keyword::Type + elsif self.class.instructions.include? m[0] + token Keyword + elsif self.class.keywords.include? m[0] + token Keyword + else + token Error + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/llvm/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/llvm/keywords.rb new file mode 100644 index 0000000..405ee52 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/llvm/keywords.rb @@ -0,0 +1,25 @@ +# encoding: utf-8 +# frozen_string_literal: true + +# DO NOT EDIT +# This file is automatically generated by `rake builtins:llvm`. +# See tasks/builtins/llvm.rake for more info. + +module Rouge + module Lexers + class LLVM + def self.keywords + @keywords ||= Set.new ["aarch64_sve_vector_pcs", "aarch64_vector_pcs", "acq_rel", "acquire", "addrspace", "afn", "alias", "aliasee", "align", "alignLog2", "alignstack", "allOnes", "allocalign", "allocptr", "allocsize", "alwaysInline", "alwaysinline", "amdgpu_cs", "amdgpu_es", "amdgpu_gfx", "amdgpu_gs", "amdgpu_hs", "amdgpu_kernel", "amdgpu_ls", "amdgpu_ps", "amdgpu_vs", "any", "anyregcc", "appending", "arcp", "argmemonly", "args", "arm_aapcs_vfpcc", "arm_aapcscc", "arm_apcscc", "asm", "async", "atomic", "attributes", "available_externally", "avr_intrcc", "avr_signalcc", "bit", "bitMask", "blockaddress", "blockcount", "branchFunnel", "builtin", "byArg", "byref", "byte", "byteArray", "byval", "c", "callee", "caller", "calls", "canAutoHide", "catch", "cc", "ccc", "cfguard_checkcc", "cleanup", "cold", "coldcc", "comdat", "common", "constant", "contract", "convergent", "critical", "cxx_fast_tlscc", "datalayout", "declare", "default", "define", "dereferenceable", "dereferenceable_or_null", "disable_sanitizer_instrumentation", "distinct", "dllexport", "dllimport", "dsoLocal", "dso_local", "dso_local_equivalent", "dso_preemptable", "elementtype", "eq", "exact", "exactmatch", "extern_weak", "external", "externally_initialized", "false", "fast", "fastcc", "filter", "flags", "from", "funcFlags", "function", "gc", "ghccc", "global", "guid", "gv", "hasUnknownCall", "hash", "hhvm_ccc", "hhvmcc", "hidden", "hot", "hotness", "ifunc", "immarg", "inaccessiblemem_or_argmemonly", "inaccessiblememonly", "inalloca", "inbounds", "indir", "info", "initialexec", "inline", "inlineBits", "inlinehint", "inrange", "inreg", "insts", "intel_ocl_bicc", "inteldialect", "internal", "jumptable", "kind", "largest", "linkage", "linkonce", "linkonce_odr", "live", "local_unnamed_addr", "localdynamic", "localexec", "max", "mayThrow", "min", "minsize", "module", "monotonic", "msp430_intrcc", "mustBeUnreachable", "mustprogress", "musttail", "naked", "name", "nand", "ne", "nest", "ninf", "nnan", "noInline", "noRecurse", "noUnwind", "no_cfi", "noalias", "nobuiltin", "nocallback", "nocapture", "nocf_check", "nodeduplicate", "noduplicate", "nofree", "noimplicitfloat", "noinline", "nomerge", "none", "nonlazybind", "nonnull", "noprofile", "norecurse", "noredzone", "noreturn", "nosanitize_bounds", "nosanitize_coverage", "nosync", "notEligibleToImport", "notail", "noundef", "nounwind", "nsw", "nsz", "null", "null_pointer_is_valid", "nuw", "oeq", "offset", "oge", "ogt", "ole", "olt", "one", "opaque", "optforfuzzing", "optnone", "optsize", "ord", "param", "params", "partition", "path", "personality", "poison", "preallocated", "prefix", "preserve_allcc", "preserve_mostcc", "private", "prologue", "protected", "ptx_device", "ptx_kernel", "readNone", "readOnly", "readnone", "readonly", "reassoc", "refs", "relbf", "release", "resByArg", "returnDoesNotAlias", "returned", "returns_twice", "safestack", "samesize", "sanitize_address", "sanitize_hwaddress", "sanitize_memory", "sanitize_memtag", "sanitize_thread", "section", "seq_cst", "sge", "sgt", "shadowcallstack", "sideeffect", "signext", "single", "singleImpl", "singleImplName", "sizeM1", "sizeM1BitWidth", "sle", "slt", "source_filename", "speculatable", "speculative_load_hardening", "spir_func", "spir_kernel", "sret", "ssp", "sspreq", "sspstrong", "strictfp", "summaries", "summary", "swiftasync", "swiftcc", "swifterror", "swiftself", "swifttailcc", "sync", "syncscope", "tail", "tailcc", "target", "thread_local", "to", "triple", "true", "type", "typeCheckedLoadConstVCalls", "typeCheckedLoadVCalls", "typeIdInfo", "typeTestAssumeConstVCalls", "typeTestAssumeVCalls", "typeTestRes", "typeTests", "typeid", "typeidCompatibleVTable", "ueq", "uge", "ugt", "ule", "ult", "umax", "umin", "undef", "une", "uniformRetVal", "uniqueRetVal", "unknown", "unnamed_addr", "uno", "unordered", "unsat", "unwind", "uselistorder", "uselistorder_bb", "uwtable", "vFuncId", "vTableFuncs", "varFlags", "variable", "vcall_visibility", "virtFunc", "virtualConstProp", "visibility", "volatile", "vscale", "vscale_range", "weak", "weak_odr", "webkit_jscc", "willreturn", "win64cc", "within", "wpdRes", "wpdResolutions", "writeonly", "x", "x86_64_sysvcc", "x86_fastcallcc", "x86_intrcc", "x86_regcallcc", "x86_stdcallcc", "x86_thiscallcc", "x86_vectorcallcc", "xchg", "zeroext", "zeroinitializer"] + end + + def self.types + @types ||= Set.new ["bfloat", "double", "float", "fp128", "half", "label", "metadata", "ppc_fp128", "ptr", "token", "void", "x86_amx", "x86_fp80", "x86_mmx"] + end + + def self.instructions + @instructions ||= Set.new ["add", "addrspacecast", "alloca", "and", "ashr", "atomicrmw", "bitcast", "br", "call", "callbr", "catchpad", "catchret", "catchswitch", "cleanuppad", "cleanupret", "cmpxchg", "extractelement", "extractvalue", "fadd", "fcmp", "fdiv", "fence", "fmul", "fneg", "fpext", "fptosi", "fptoui", "fptrunc", "freeze", "frem", "fsub", "getelementptr", "icmp", "indirectbr", "insertelement", "insertvalue", "inttoptr", "invoke", "landingpad", "load", "lshr", "mul", "or", "phi", "ptrtoint", "resume", "ret", "sdiv", "select", "sext", "shl", "shufflevector", "sitofp", "srem", "store", "sub", "switch", "trunc", "udiv", "uitofp", "unreachable", "urem", "va_arg", "xor", "zext"] + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lua.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lua.rb new file mode 100644 index 0000000..6e1887b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lua.rb @@ -0,0 +1,164 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Lua < RegexLexer + title "Lua" + desc "Lua (http://www.lua.org)" + tag 'lua' + filenames '*.lua', '*.wlua' + + mimetypes 'text/x-lua', 'application/x-lua' + + option :function_highlighting, 'Whether to highlight builtin functions (default: true)' + option :disabled_modules, 'builtin modules to disable' + + def initialize(opts={}) + @function_highlighting = opts.delete(:function_highlighting) { true } + @disabled_modules = opts.delete(:disabled_modules) { [] } + super(opts) + end + + def self.detect?(text) + return true if text.shebang? 'lua' + end + + def self.builtins + Kernel::load File.join(Lexers::BASE_DIR, 'lua/keywords.rb') + builtins + end + + def builtins + return [] unless @function_highlighting + + @builtins ||= Set.new.tap do |builtins| + self.class.builtins.each do |mod, fns| + next if @disabled_modules.include? mod + builtins.merge(fns) + end + end + end + + state :root do + # lua allows a file to start with a shebang + rule %r(#!(.*?)$), Comment::Preproc + rule %r//, Text, :base + end + + state :base do + rule %r(--\[(=*)\[.*?\]\1\])m, Comment::Multiline + rule %r(--.*$), Comment::Single + + rule %r((?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?'), Num::Float + rule %r((?i)\d+e[+-]?\d+), Num::Float + rule %r((?i)0x[0-9a-f]*), Num::Hex + rule %r(\d+), Num::Integer + + rule %r(\n), Text + rule %r([^\S\n]), Text + # multiline strings + rule %r(\[(=*)\[.*?\]\1\])m, Str + + rule %r((==|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#])), Operator + rule %r([\[\]\{\}\(\)\.,:;]), Punctuation + rule %r((and|or|not)\b), Operator::Word + + rule %r((break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\b), Keyword + rule %r((local)\b), Keyword::Declaration + rule %r((true|false|nil)\b), Keyword::Constant + + rule %r((function)\b), Keyword, :function_name + + rule %r([A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)?) do |m| + name = m[0] + if name == "gsub" + token Name::Builtin + push :gsub + elsif self.builtins.include?(name) + token Name::Builtin + elsif name =~ /\./ + a, b = name.split('.', 2) + token Name, a + token Punctuation, '.' + token Name, b + else + token Name + end + end + + rule %r('), Str::Single, :escape_sqs + rule %r("), Str::Double, :escape_dqs + end + + state :function_name do + rule %r/\s+/, Text + rule %r((?:([A-Za-z_][A-Za-z0-9_]*)(\.))?([A-Za-z_][A-Za-z0-9_]*)) do + groups Name::Class, Punctuation, Name::Function + pop! + end + # inline function + rule %r(\(), Punctuation, :pop! + end + + state :gsub do + rule %r/\)/, Punctuation, :pop! + rule %r/[(,]/, Punctuation + rule %r/\s+/, Text + rule %r/"/, Str::Regex, :regex + end + + state :regex do + rule %r(") do + token Str::Regex + goto :regex_end + end + + rule %r/\[\^?/, Str::Escape, :regex_group + rule %r/\\./, Str::Escape + rule %r{[(][?][:=<!]}, Str::Escape + rule %r/[{][\d,]+[}]/, Str::Escape + rule %r/[()?]/, Str::Escape + rule %r/./, Str::Regex + end + + state :regex_end do + rule %r/[$]+/, Str::Regex, :pop! + rule(//) { pop! } + end + + state :regex_group do + rule %r(/), Str::Escape + rule %r/\]/, Str::Escape, :pop! + rule %r/(\\)(.)/ do |m| + groups Str::Escape, Str::Regex + end + rule %r/./, Str::Regex + end + + state :escape_sqs do + mixin :string_escape + mixin :sqs + end + + state :escape_dqs do + mixin :string_escape + mixin :dqs + end + + state :string_escape do + rule %r(\\([abfnrtv\\"']|\d{1,3})), Str::Escape + end + + state :sqs do + rule %r('), Str::Single, :pop! + rule %r([^']+), Str::Single + end + + state :dqs do + rule %r("), Str::Double, :pop! + rule %r([^"]+), Str::Double + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lua/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lua/keywords.rb new file mode 100644 index 0000000..ea1d794 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lua/keywords.rb @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# DO NOT EDIT + +# This file is automatically generated by `rake builtins:lua`. +# See tasks/builtins/lua.rake for more info. + +module Rouge + module Lexers + class Lua + def self.builtins + @builtins ||= {}.tap do |b| + b["basic"] = Set.new ["_g", "_version", "assert", "collectgarbage", "dofile", "error", "getmetatable", "ipairs", "load", "loadfile", "next", "pairs", "pcall", "print", "rawequal", "rawget", "rawlen", "rawset", "select", "setmetatable", "tonumber", "tostring", "type", "xpcall", "file:close", "file:flush", "file:lines", "file:read", "file:seek", "file:setvbuf", "file:write", "lua_cpath", "lua_cpath_5_3", "lua_init", "lua_init_5_3", "lua_path", "lua_path_5_3", "luaopen_base", "luaopen_coroutine", "luaopen_debug", "luaopen_io", "luaopen_math", "luaopen_os", "luaopen_package", "luaopen_string", "luaopen_table", "luaopen_utf8", "lua_errerr", "lua_errfile", "lua_errgcmm", "lua_errmem", "lua_errrun", "lua_errsyntax", "lua_hookcall", "lua_hookcount", "lua_hookline", "lua_hookret", "lua_hooktailcall", "lua_maskcall", "lua_maskcount", "lua_maskline", "lua_maskret", "lua_maxinteger", "lua_mininteger", "lua_minstack", "lua_multret", "lua_noref", "lua_ok", "lua_opadd", "lua_opband", "lua_opbnot", "lua_opbor", "lua_opbxor", "lua_opdiv", "lua_opeq", "lua_opidiv", "lua_ople", "lua_oplt", "lua_opmod", "lua_opmul", "lua_oppow", "lua_opshl", "lua_opshr", "lua_opsub", "lua_opunm", "lua_refnil", "lua_registryindex", "lua_ridx_globals", "lua_ridx_mainthread", "lua_tboolean", "lua_tfunction", "lua_tlightuserdata", "lua_tnil", "lua_tnone", "lua_tnumber", "lua_tstring", "lua_ttable", "lua_tthread", "lua_tuserdata", "lua_use_apicheck", "lua_yield", "lual_buffersize"] + b["modules"] = Set.new ["require", "package.config", "package.cpath", "package.loaded", "package.loadlib", "package.path", "package.preload", "package.searchers", "package.searchpath"] + b["coroutine"] = Set.new ["coroutine.create", "coroutine.isyieldable", "coroutine.resume", "coroutine.running", "coroutine.status", "coroutine.wrap", "coroutine.yield"] + b["debug"] = Set.new ["debug.debug", "debug.gethook", "debug.getinfo", "debug.getlocal", "debug.getmetatable", "debug.getregistry", "debug.getupvalue", "debug.getuservalue", "debug.sethook", "debug.setlocal", "debug.setmetatable", "debug.setupvalue", "debug.setuservalue", "debug.traceback", "debug.upvalueid", "debug.upvaluejoin"] + b["io"] = Set.new ["io.close", "io.flush", "io.input", "io.lines", "io.open", "io.output", "io.popen", "io.read", "io.stderr", "io.stdin", "io.stdout", "io.tmpfile", "io.type", "io.write"] + b["math"] = Set.new ["math.abs", "math.acos", "math.asin", "math.atan", "math.ceil", "math.cos", "math.deg", "math.exp", "math.floor", "math.fmod", "math.huge", "math.log", "math.max", "math.maxinteger", "math.min", "math.mininteger", "math.modf", "math.pi", "math.rad", "math.random", "math.randomseed", "math.sin", "math.sqrt", "math.tan", "math.tointeger", "math.type", "math.ult"] + b["os"] = Set.new ["os.clock", "os.date", "os.difftime", "os.execute", "os.exit", "os.getenv", "os.remove", "os.rename", "os.setlocale", "os.time", "os.tmpname"] + b["string"] = Set.new ["string.byte", "string.char", "string.dump", "string.find", "string.format", "string.gmatch", "string.gsub", "string.len", "string.lower", "string.match", "string.pack", "string.packsize", "string.rep", "string.reverse", "string.sub", "string.unpack", "string.upper"] + b["table"] = Set.new ["table.concat", "table.insert", "table.move", "table.pack", "table.remove", "table.sort", "table.unpack"] + b["utf8"] = Set.new ["utf8.char", "utf8.charpattern", "utf8.codepoint", "utf8.codes", "utf8.len", "utf8.offset"] + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lustre.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lustre.rb new file mode 100644 index 0000000..65cced8 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lustre.rb @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Lustre < RegexLexer + title "Lustre" + desc 'The Lustre programming language (Verimag)' + tag 'lustre' + filenames '*.lus' + mimetypes 'text/x-lustre' + + def self.keywords + @keywords ||= Set.new %w( + extern unsafe assert const current enum function let node operator + returns step struct tel type var model package needs provides uses is + body end include merge + ) + end + + def self.word_operators + @word_operators ||= Set.new %w( + div and xor mod or not nor if then else fby pre when with + ) + end + + def self.primitives + @primitives ||= Set.new %w(int real bool) + end + + operator = %r([,!$%&*+./:<=>?@^|~#-]+) + id = /[a-z_][\w']*/i + + state :root do + rule %r/\s+/m, Text + rule %r/false|true/, Keyword::Constant + rule %r(\-\-.*), Comment::Single + rule %r(/\*.*?\*/)m, Comment::Multiline + rule %r(\(\*.*?\*\))m, Comment::Multiline + rule id do |m| + match = m[0] + if self.class.keywords.include? match + token Keyword + elsif self.class.word_operators.include? match + token Operator::Word + elsif self.class.primitives.include? match + token Keyword::Type + else + token Name + end + end + + rule %r/[(){}\[\];]+/, Punctuation + rule operator, Operator + + rule %r/-?\d[\d_]*(.[\d_]*)?(e[+-]?\d[\d_]*)/i, Num::Float + rule %r/\d[\d_]*/, Num::Integer + + rule %r/'(?:(\\[\\"'ntbr ])|(\\[0-9]{3})|(\\x\h{2}))'/, Str::Char + rule %r/'[.]'/, Str::Char + rule %r/"/, Str::Double, :string + rule %r/[~?]#{id}/, Name::Variable + end + + state :string do + rule %r/[^\\"]+/, Str::Double + mixin :escape_sequence + rule %r/\\\n/, Str::Double + rule %r/"/, Str::Double, :pop! + end + + state :escape_sequence do + rule %r/\\[\\"'ntbr]/, Str::Escape + rule %r/\\\d{3}/, Str::Escape + rule %r/\\x\h{2}/, Str::Escape + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lutin.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lutin.rb new file mode 100644 index 0000000..cc1ac53 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/lutin.rb @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true +# +# adapted from lustre.rf (adapted from ocaml.rb), hence some ocaml-ism migth remains +module Rouge + module Lexers + load_lexer 'lustre.rb' + + class Lutin < Lustre + title "Lutin" + desc 'The Lutin programming language (Verimag)' + tag 'lutin' + filenames '*.lut' + mimetypes 'text/x-lutin' + + def self.keywords + @keywords ||= Set.new %w( + let in node extern system returns weak strong assert raise try catch + trap do exist erun run type ref exception include false true + ) + end + + def self.word_operators + @word_operators ||= Set.new %w( + div and xor mod or not nor if then else pre) + end + + def self.primitives + @primitives ||= Set.new %w(int real bool trace loop fby) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/m68k.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/m68k.rb new file mode 100644 index 0000000..cb610b7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/m68k.rb @@ -0,0 +1,143 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class M68k < RegexLexer + tag 'm68k' + + title "M68k" + desc "Motorola 68k Assembler" + + id = /[a-zA-Z_][a-zA-Z0-9_]*/ + + def self.keywords + @keywords ||= Set.new %w( + abcd add adda addi addq addx and andi asl asr + + bcc bcs beq bge bgt bhi ble bls blt bmi bne bpl bvc bvs bhs blo + bchg bclr bfchg bfclr bfests bfextu bfffo bfins bfset bftst bkpt bra bse bsr btst + + callm cas cas2 chk chk2 clr cmp cmpa cmpi cmpm cmp2 + + dbcc dbcs dbeq dbge dbgt dbhi dble dbls dblt dbmi dbne dbpl dbvc dbvs dbhs dblo + dbra dbf dbt divs divsl divu divul + + eor eori exg ext extb + + illegal jmp jsr lea link lsl lsr + + move movea move16 movem movep moveq muls mulu + + nbcd neg negx nop not or ori + + pack pea rol ror roxl roxr rtd rtm rtr rts + + sbcd + + seq sne spl smi svc svs st sf sge sgt sle slt scc shi sls scs shs slo + sub suba subi subq subx swap + + tas trap trapcc TODO trapv tst + + unlk unpk eori + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + dc ds dcb + ) + end + + def self.reserved + @reserved ||= Set.new %w( + include incdir incbin end endf endfunc endmain endproc fpu func machine main mmu opword proc set opt section + rept endr + ifeq ifne ifgt ifge iflt ifle iif ifd ifnd ifc ifnc elseif else endc + even cnop fail machine + output radix __G2 __LK + list nolist plen llen ttl subttl spc page listchar format + equ equenv equr set reg + rsreset rsset offset + cargs + fequ.s fequ.d fequ.x fequ.p fequ.w fequ.l fopt + macro endm mexit narg + ) + end + + def self.builtins + @builtins ||=Set.new %w( + d0 d1 d2 d3 d4 d5 d6 d7 + a0 a1 a2 a3 a4 a5 a6 a7 a7' + pc usp ssp ccr + ) + end + + start { push :expr_bol } + + state :expr_bol do + mixin :inline_whitespace + rule(//) { pop! } + end + + state :inline_whitespace do + rule %r/\s+/, Text + end + + state :whitespace do + rule %r/\n+/m, Text, :expr_bol + rule %r(^\*(\\.|.)*?$), Comment::Single, :expr_bol + rule %r(;(\\.|.)*?$), Comment::Single, :expr_bol + mixin :inline_whitespace + end + + state :root do + rule(//) { push :statements } + end + + state :statements do + mixin :whitespace + rule %r/"/, Str, :string + rule %r/#/, Name::Decorator + rule %r/^\.?[a-zA-Z0-9_]+:?/, Name::Label + rule %r/\.[bswl]\s/i, Name::Decorator + rule %r('(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char + rule %r/\$[0-9a-f]+/i, Num::Hex + rule %r/@[0-8]+/i, Num::Oct + rule %r/%[01]+/i, Num::Bin + rule %r/\d+/i, Num::Integer + rule %r([*~&+=\|?:<>/-]), Operator + rule %r/\\./, Comment::Preproc + rule %r/[(),.]/, Punctuation + rule %r/\[[a-zA-Z0-9]*\]/, Punctuation + + rule id do |m| + name = m[0] + + if self.class.keywords.include? name.downcase + token Keyword + elsif self.class.keywords_type.include? name.downcase + token Keyword::Type + elsif self.class.reserved.include? name.downcase + token Keyword::Reserved + elsif self.class.builtins.include? name.downcase + token Name::Builtin + elsif name =~ /[a-zA-Z0-9]+/ + token Name::Variable + else + token Name + end + end + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape + rule %r/[^\\"\n]+/, Str + rule %r/\\\n/, Str + rule %r/\\/, Str # stray backslash + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/magik.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/magik.rb new file mode 100644 index 0000000..0a3f47a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/magik.rb @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Magik < RegexLexer + title "Magik" + desc "Smallworld Magik" + tag 'magik' + filenames '*.magik' + mimetypes 'text/x-magik', 'application/x-magik' + + def self.keywords + @keywords ||= %w( + _package + _pragma + _block _endblock + _handling _default + _protect _protection _endprotect + _try _with _when _endtry + _catch _endcatch + _throw + _lock _endlock + _if _then _elif _else _endif + _for _over _while _loop _finally _endloop _loopbody _continue _leave + _return + _class + _local _constant _recursive _global _dynamic _import + _private _iter _abstract _method _endmethod + _proc _endproc + _gather _scatter _allresults _optional + _thisthread _self _clone _super + _primitive + _unset _true _false _maybe + _is _isnt _not _and _or _xor _cf _andif _orif + _div _mod + ) + end + + def self.string_double + @string_double ||= /"[^"\n]*?"/ + end + def self.string_single + @string_single ||= /'[^'\n]*?'/ + end + + def self.digits + @digits ||= /[0-9]+/ + end + def self.radix + @radix ||= /r[0-9a-z]/i + end + def self.exponent + @exponent ||= /(e|&)[+-]?#{Magik.digits}/i + end + def self.decimal + @decimal ||= /\.#{Magik.digits}/ + end + def self.number + @number = /#{Magik.digits}(#{Magik.radix}|#{Magik.exponent}|#{Magik.decimal})*/ + end + + def self.character + @character ||= /%u[0-9a-z]{4}|%[^\s]+/i + end + + def self.simple_identifier + @simple_identifier ||= /(?>(?:[a-z0-9_!?]|\\.)+)/i + end + def self.piped_identifier + @piped_identifier ||= /\|[^\|\n]*\|/ + end + def self.identifier + @identifier ||= /(?:#{Magik.simple_identifier}|#{Magik.piped_identifier})+/i + end + def self.package_identifier + @package_identifier ||= /#{Magik.identifier}:#{Magik.identifier}/ + end + def self.symbol + @symbol ||= /:#{Magik.identifier}/i + end + def self.global_ref + @global_ref ||= /@[\s]*#{Magik.identifier}:#{Magik.identifier}/ + end + def self.label + @label = /@[\s]*#{Magik.identifier}/ + end + + state :root do + rule %r/##(.*)?/, Comment::Doc + rule %r/#(.*)?/, Comment::Single + + rule %r/(_method)(\s+)/ do + groups Keyword, Text::Whitespace + push :method_name + end + + rule %r/(?:#{Magik.keywords.join('|')})\b/, Keyword + + rule Magik.string_double, Literal::String + rule Magik.string_single, Literal::String + rule Magik.symbol, Str::Symbol + rule Magik.global_ref, Name::Label + rule Magik.label, Name::Label + rule Magik.character, Literal::String::Char + rule Magik.number, Literal::Number + rule Magik.package_identifier, Name + rule Magik.identifier, Name + + rule %r/[\[\]{}()\.,;]/, Punctuation + rule %r/\$/, Punctuation + rule %r/(<<|^<<)/, Operator + rule %r/(>>)/, Operator + rule %r/[-~+\/*%=&^<>]|!=/, Operator + + rule %r/[\s]+/, Text::Whitespace + end + + state :method_name do + rule %r/(#{Magik.identifier})(\.)(#{Magik.identifier})/ do + groups Name::Class, Punctuation, Name::Function + pop! + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/make.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/make.rb new file mode 100644 index 0000000..3b73383 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/make.rb @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Make < RegexLexer + title "Make" + desc "Makefile syntax" + tag 'make' + aliases 'makefile', 'mf', 'gnumake', 'bsdmake' + filenames '*.make', '*.mak', '*.mk', 'Makefile', 'makefile', 'Makefile.*', 'GNUmakefile', '*,fe1' + mimetypes 'text/x-makefile' + + def self.functions + @functions ||= %w( + abspath addprefix addsuffix and basename call dir error eval file + filter filter-out findstring firstword flavor foreach if join lastword + notdir or origin patsubst realpath shell sort strip subst suffix value + warning wildcard word wordlist words + ) + end + + def initialize(opts={}) + super + @shell = Shell.new(opts) + end + + start { @shell.reset! } + + state :root do + rule %r/\s+/, Text + + rule %r/#.*?\n/, Comment + + rule %r/([-s]?include)((?:[\t ]+[^\t\n #]+)+)/ do + groups Keyword, Literal::String::Other + end + + rule %r/((?:ifn?def|ifn?eq|unexport)\b)([\t ]+)([^#\n]+)/ do + groups Keyword, Text, Name::Variable + end + + rule %r/(else\b)([\t ]+)((?:ifn?def|ifn?eq)\b)([\t ]+)([^#\n]+)/ do + groups Keyword, Text, Keyword, Text, Name::Variable + end + + rule %r/(?:else|endif|endef|endfor)[\t ]*(?=[#\n])/, Keyword + + rule %r/(export)([\t ]+)(?=[\w\${}()\t -]+\n)/ do + groups Keyword, Text + push :export + end + + rule %r/export[\t ]+/, Keyword + + # assignment + rule %r/(override\b)*([\t ]*)([\w${}().-]+)([\t ]*)([!?:+]?=)/m do |m| + groups Name::Builtin, Text, Name::Variable, Text, Operator + push :shell_line + end + + rule %r/"(\\\\|\\.|[^"\\])*"/, Str::Double + rule %r/'(\\\\|\\.|[^'\\])*'/, Str::Single + rule %r/([^\n:]+)(:+)([ \t]*)/ do + groups Name::Label, Operator, Text + push :block_header + end + + rule %r/(override\b)*([\t ])*(define)([\t ]+)([^#\n]+)/ do + groups Name::Builtin, Text, Keyword, Text, Name::Variable + end + + rule %r/(\$[({])([\t ]*)(#{Make.functions.join('|')})([\t ]+)/m do + groups Name::Function, Text, Name::Builtin, Text + push :shell_expr + end + end + + state :export do + rule %r/[\w\${}()-]/, Name::Variable + rule %r/\n/, Text, :pop! + rule %r/[\t ]+/, Text + end + + state :block_header do + rule %r/[^,\\\n#]+/, Name::Function + rule %r/,/, Punctuation + rule %r/#.*?/, Comment + rule %r/\\\n/, Text + rule %r/\\./, Text + rule %r/\n/ do + token Text + goto :block_body + end + end + + state :block_body do + rule %r/(ifn?def|ifn?eq)([\t ]+)([^#\n]+)(#.*)?(\n)/ do + groups Keyword, Text, Name::Variable, Comment, Text + end + + rule %r/(else|endif)([\t ]*)(#.*)?(\n)/ do + groups Keyword, Text, Comment, Text + end + + rule %r/(\t[\t ]*)([@-]?)/ do + groups Text, Punctuation + push :shell_line + end + + rule(//) { @shell.reset!; pop! } + end + + state :shell do + # macro interpolation + rule %r/[\$]{1,2}[({]/, Punctuation, :macro_expr + + # function invocation + rule %r/(\$[({])([\t ]*)(#{Make.functions.join('|')})([\t ]+)/m do + groups Punctuation, Text, Name::Builtin, Text + push :shell_expr + end + + rule(/\\./m) { delegate @shell } + stop = /[\$]{1,2}\(|[\$]{1,2}\{|\(|\)|\}|\\|$/ + rule(/.+?(?=#{stop})/m) { delegate @shell } + rule(stop) { delegate @shell } + end + + state :macro_expr do + rule %r/[)}]/, Punctuation, :pop! + rule %r/\n/, Text, :pop! + mixin :shell + end + + state :shell_expr do + rule(/[({]/) { delegate @shell; push } + rule %r/[)}]/, Punctuation, :pop! + mixin :shell + end + + state :shell_line do + rule %r/\n/, Text, :pop! + mixin :shell + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/markdown.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/markdown.rb new file mode 100644 index 0000000..7d0d2c4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/markdown.rb @@ -0,0 +1,183 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Markdown < RegexLexer + title "Markdown" + desc "Markdown, a light-weight markup language for authors" + + tag 'markdown' + aliases 'md', 'mkd' + filenames '*.markdown', '*.md', '*.mkd' + mimetypes 'text/x-markdown' + + def html + @html ||= HTML.new(options) + end + + start { html.reset! } + + edot = /\\.|[^\\\n]/ + + state :root do + # YAML frontmatter + rule(/\A(---\s*\n.*?\n?)^(---\s*$\n?)/m) { delegate YAML } + + rule %r/\\./, Str::Escape + + rule %r/^[\S ]+\n(?:---*)\n/, Generic::Heading + rule %r/^[\S ]+\n(?:===*)\n/, Generic::Subheading + + rule %r/^#(?=[^#]).*?$/, Generic::Heading + rule %r/^##*.*?$/, Generic::Subheading + + rule %r/^([ \t]*)(`{3,}|~{3,})([^\n]*\n)((.*?)(\n\1)(\2))?/m do |m| + name = m[3].strip + sublexer = + begin + Lexer.find_fancy(name.empty? ? "guess" : name, m[5], @options) + rescue Guesser::Ambiguous => e + e.alternatives.first.new(@options) + end + + sublexer ||= PlainText.new(@options.merge(:token => Str::Backtick)) + sublexer.reset! + + token Text, m[1] + token Punctuation, m[2] + token Name::Label, m[3] + if m[5] + delegate sublexer, m[5] + end + + token Text, m[6] + + if m[7] + token Punctuation, m[7] + else + push do + rule %r/^([ \t]*)(#{m[2]})/ do |mb| + pop! + token Text, mb[1] + token Punctuation, mb[2] + end + rule %r/^.*\n/ do |mb| + delegate sublexer, mb[1] + end + end + end + end + + rule %r/\n\n(( |\t).*?\n|\n)+/, Str::Backtick + + rule %r/(`+)(?:#{edot}|\n)+?\1/, Str::Backtick + + # various uses of * are in order of precedence + + # line breaks + rule %r/^(\s*[*]){3,}\s*$/, Punctuation + rule %r/^(\s*[-]){3,}\s*$/, Punctuation + + # bulleted lists + rule %r/^\s*[*+-](?=\s)/, Punctuation + + # numbered lists + rule %r/^\s*\d+\./, Punctuation + + # blockquotes + rule %r/^\s*>.*?$/, Generic::Traceback + + # link references + # [foo]: bar "baz" + rule %r(^ + (\s*) # leading whitespace + (\[) (#{edot}+?) (\]) # the reference + (\s*) (:) # colon + )x do + groups Text, Punctuation, Str::Symbol, Punctuation, Text, Punctuation + + push :title + push :url + end + + # links and images + rule %r/(!?\[)(#{edot}*?|[^\]]*?)(\])(?=[\[(])/ do + groups Punctuation, Name::Variable, Punctuation + push :link + end + + rule %r/[*]{2}[^* \n][^*\n]*[*]{2}/, Generic::Strong + rule %r/[*]{3}[^* \n][^*\n]*[*]{3}/, Generic::EmphStrong + rule %r/__#{edot}*?__/, Generic::Strong + + rule %r/[*]#{edot}*?[*]/, Generic::Emph + rule %r/_#{edot}*?_/, Generic::Emph + + # Automatic links + rule %r/<.*?@.+[.].+>/, Name::Variable + rule %r[<(https?|mailto|ftp)://#{edot}*?>], Name::Variable + + rule %r/[^\\`\[*\n&<]+/, Text + + # inline html + rule(/&\S*;/) { delegate html } + rule(/<#{edot}*?>/) { delegate html } + rule %r/[&<]/, Text + + # An opening square bracket that is not a link + rule %r/\[/, Text + + rule %r/\n/, Text + end + + state :link do + rule %r/(\[)(#{edot}*?)(\])/ do + groups Punctuation, Str::Symbol, Punctuation + pop! + end + + rule %r/[(]/ do + token Punctuation + push :inline_title + push :inline_url + end + + rule %r/[ \t]+/, Text + + rule(//) { pop! } + end + + state :url do + rule %r/[ \t]+/, Text + + # the url + rule %r/(<)(#{edot}*?)(>)/ do + groups Name::Tag, Str::Other, Name::Tag + pop! + end + + rule %r/\S+/, Str::Other, :pop! + end + + state :title do + rule %r/"#{edot}*?"/, Name::Namespace + rule %r/'#{edot}*?'/, Name::Namespace + rule %r/[(]#{edot}*?[)]/, Name::Namespace + rule %r/\s*(?=["'()])/, Text + rule(//) { pop! } + end + + state :inline_title do + rule %r/[)]/, Punctuation, :pop! + mixin :title + end + + state :inline_url do + rule %r/[^<\s)]+/, Str::Other, :pop! + rule %r/\s+/m, Text + mixin :url + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mason.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mason.rb new file mode 100644 index 0000000..06e9f9d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mason.rb @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- #
+# frozen_string_literal: true
+
+module Rouge
+ module Lexers
+ class Mason < TemplateLexer
+ title 'Mason'
+ desc 'The HTML::Mason framework (https://metacpan.org/pod/HTML::Mason)'
+ tag 'mason'
+ filenames '*.mi', '*.mc', '*.mas', '*.m', '*.mhtml', '*.mcomp', 'autohandler', 'dhandler'
+ mimetypes 'text/x-mason', 'application/x-mason'
+
+ def initialize(*)
+ super
+ @perl = Perl.new
+ end
+
+ # Note: If you add a tag in the lines below, you also need to modify "disambiguate '*.m'" in file disambiguation.rb
+ TEXT_BLOCKS = %w(text doc)
+ PERL_BLOCKS = %w(args flags attr init once shared perl cleanup filter)
+ COMPONENTS = %w(def method)
+
+ state :root do
+ mixin :mason_tags
+ end
+
+ state :mason_tags do
+ rule %r/\s+/, Text::Whitespace
+
+ rule %r/<%(#{TEXT_BLOCKS.join('|')})>/oi, Comment::Preproc, :text_block
+
+ rule %r/<%(#{PERL_BLOCKS.join('|')})>/oi, Comment::Preproc, :perl_block
+
+ rule %r/(<%(#{COMPONENTS.join('|')}))([^>]*)(>)/oi do |m|
+ token Comment::Preproc, m[1]
+ token Name, m[3]
+ token Comment::Preproc, m[4]
+ push :component_block
+ end
+
+ # perl line
+ rule %r/^(%)(.*)$/ do |m|
+ token Comment::Preproc, m[1]
+ delegate @perl, m[2]
+ end
+
+ # start of component call
+ rule %r/<%/, Comment::Preproc, :component_call
+
+ # start of component with content
+ rule %r/<&\|/ do
+ token Comment::Preproc
+ push :component_with_content
+ push :component_sub
+ end
+
+ # start of component substitution
+ rule %r/<&/, Comment::Preproc, :component_sub
+
+ # fallback to HTML until a mason tag is encountered
+ rule(/(.+?)(?=(<\/?&|<\/?%|^%|^#))/m) { delegate parent }
+
+ # if we get here, there's no more mason tags, so we parse the rest of the doc as HTML
+ rule(/.+/m) { delegate parent }
+ end
+
+ state :perl_block do
+ rule %r/<\/%(#{PERL_BLOCKS.join('|')})>/oi, Comment::Preproc, :pop!
+ rule %r/\s+/, Text::Whitespace
+ rule %r/^(#.*)$/, Comment
+ rule(/(.*?[^"])(?=<\/%)/m) { delegate @perl }
+ end
+
+ state :text_block do
+ rule %r/<\/%(#{TEXT_BLOCKS.join('|')})>/oi, Comment::Preproc, :pop!
+ rule %r/\s+/, Text::Whitespace
+ rule %r/^(#.*)$/, Comment
+ rule %r/(.*?[^"])(?=<\/%)/m, Comment
+ end
+
+ state :component_block do
+ rule %r/<\/%(#{COMPONENTS.join('|')})>/oi, Comment::Preproc, :pop!
+ rule %r/\s+/, Text::Whitespace
+ rule %r/^(#.*)$/, Comment
+ mixin :mason_tags
+ end
+
+ state :component_with_content do
+ rule %r/<\/&>/ do
+ token Comment::Preproc
+ pop!
+ end
+
+ mixin :mason_tags
+ end
+
+ state :component_sub do
+ rule %r/&>/, Comment::Preproc, :pop!
+
+ rule(/(.*?)(?=&>)/m) { delegate @perl }
+ end
+
+ state :component_call do
+ rule %r/%>/, Comment::Preproc, :pop!
+
+ rule(/(.*?)(?=%>)/m) { delegate @perl }
+ end
+ end
+ end
+end
diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mathematica.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mathematica.rb new file mode 100644 index 0000000..cb6d3b5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mathematica.rb @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Mathematica < RegexLexer + title "Mathematica" + desc "Wolfram Mathematica, the world's definitive system for modern technical computing." + tag 'mathematica' + aliases 'wl', 'wolfram' + filenames '*.m', '*.wl' + mimetypes 'application/vnd.wolfram.mathematica.package', 'application/vnd.wolfram.wl' + + # Mathematica has various input forms for numbers. We need to handle numbers in bases, precision, accuracy, + # and *^ scientific notation. All this works for integers and real numbers. Some examples + # 1 1234567 1.1 .3 0.2 1*^10 2*^+10 3*^-10 + # 1`1 1``1 1.2` 1.2``1.234*^-10 1.2``1.234*^+10 1.2``1.234*^10 + # 2^^01001 10^^1.2``20.1234*^-10 + base = /(?:\d+)/ + number = /(?:\.\d+|\d+\.\d*|\d+)/ + number_base = /(?:\.\w+|\w+\.\w*|\w+)/ + precision = /`(`?#{number})?/ + + operators = /[+\-*\/|,;.:@~=><&`'^?!_%]/ + braces = /[\[\](){}]/ + + string = /"(\\\\|\\"|[^"])*"/ + + # symbols and namespaced symbols. Note the special form \[Gamma] for named characters. These are also symbols. + # Module With Block Integrate Table Plot + # x32 $x x$ $Context` Context123`$x `Private`Context + # \[Gamma] \[Alpha]x32 Context`\[Xi] + identifier = /[a-zA-Z$][$a-zA-Z0-9]*/ + named_character = /\\\[#{identifier}\]/ + symbol = /(#{identifier}|#{named_character})+/ + context_symbol = /`?#{symbol}(`#{symbol})*`?/ + + # Slots for pure functions. + # Examples: # ## #1 ##3 #Test #"Test" #[Test] #["Test"] + association_slot = /#(#{identifier}|\"#{identifier}\")/ + slot = /#{association_slot}|#[0-9]*/ + + # Handling of message like symbol::usage or symbol::"argx" + message = /::(#{identifier}|#{string})/ + + # Highlighting of the special in and out markers that are prepended when you copy a cell + in_out = /(In|Out)\[[0-9]+\]:?=/ + + # Although Module, With and Block are normal built-in symbols, we give them a special treatment as they are + # the most important expressions for defining local variables + def self.keywords + @keywords = Set.new %w( + Module With Block + ) + end + + # The list of built-in symbols comes from a wolfram server and is created automatically by rake + def self.builtins + Kernel::load File.join(Lexers::BASE_DIR, 'mathematica/keywords.rb') + builtins + end + + state :root do + rule %r/\s+/, Text::Whitespace + rule %r/\(\*/, Comment, :comment + rule %r/#{base}\^\^#{number_base}#{precision}?(\*\^[+-]?\d+)?/, Num # a number with a base + rule %r/(?:#{number}#{precision}?(?:\*\^[+-]?\d+)?)/, Num # all other numbers + rule message, Name::Tag + rule in_out, Generic::Prompt + rule %r/#{context_symbol}/m do |m| + match = m[0] + if self.class.keywords.include? match + token Name::Builtin::Pseudo + elsif self.class.builtins.include? match + token Name::Builtin + else + token Name::Variable + end + end + rule slot, Name::Function + rule operators, Operator + rule braces, Punctuation + rule string, Str + end + + # Allow for nested comments and special treatment of ::Section:: or :Author: markup + state :comment do + rule %r/\(\*/, Comment, :comment + rule %r/\*\)/, Comment, :pop! + rule %r/::#{identifier}::/, Comment::Preproc + rule %r/[ ]:(#{identifier}|[^\S])+:[ ]/, Comment::Preproc + rule %r/./, Comment + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mathematica/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mathematica/keywords.rb new file mode 100644 index 0000000..95fdd61 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mathematica/keywords.rb @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# DO NOT EDIT + +# This file is automatically generated by `rake builtins:mathematica`. +# See tasks/builtins/mathematica.rake for more info. + +module Rouge + module Lexers + class Mathematica + def self.builtins + @builtins ||= Set.new ["AASTriangle", "AngleVector", "AsymptoticDSolveValue", "AbelianGroup", "AngularGauge", "AsymptoticEqual", "Abort", "Animate", "AsymptoticEquivalent", "AbortKernels", "AnimationDirection", "AsymptoticGreater", "AbortProtect", "AnimationRate", "AsymptoticGreaterEqual", "Above", "AnimationRepetitions", "AsymptoticIntegrate", "Abs", "AnimationRunning", "AsymptoticLess", "AbsArg", "AnimationRunTime", "AsymptoticLessEqual", "AbsArgPlot", "AnimationTimeIndex", "AsymptoticOutputTracker", "AbsoluteCorrelation", "Animator", "AsymptoticProduct", "AbsoluteCorrelationFunction", "Annotate", "AsymptoticRSolveValue", "AbsoluteCurrentValue", "Annotation", "AsymptoticSolve", "AbsoluteDashing", "AnnotationDelete", "AsymptoticSum", "AbsoluteFileName", "AnnotationKeys", "Asynchronous", "AbsoluteOptions", "AnnotationRules", "Atom", "AbsolutePointSize", "AnnotationValue", "AtomCoordinates", "AbsoluteThickness", "Annuity", "AtomCount", "AbsoluteTime", "AnnuityDue", "AtomDiagramCoordinates", "AbsoluteTiming", "Annulus", "AtomList", "AcceptanceThreshold", "AnomalyDetection", "AtomQ", "AccountingForm", "AnomalyDetector", "AttentionLayer", "Accumulate", "AnomalyDetectorFunction", "Attributes", "Accuracy", "Anonymous", "Audio", "AccuracyGoal", "Antialiasing", "AudioAmplify", "ActionMenu", "AntihermitianMatrixQ", "AudioAnnotate", "Activate", "Antisymmetric", "AudioAnnotationLookup", "ActiveClassification", "AntisymmetricMatrixQ", "AudioBlockMap", "ActiveClassificationObject", "Antonyms", "AudioCapture", "ActivePrediction", "AnyOrder", "AudioChannelAssignment", "ActivePredictionObject", "AnySubset", "AudioChannelCombine", "ActiveStyle", "AnyTrue", "AudioChannelMix", "AcyclicGraphQ", "Apart", "AudioChannels", "AddSides", "ApartSquareFree", "AudioChannelSeparate", "AddTo", "APIFunction", "AudioData", "AddToSearchIndex", "Appearance", "AudioDelay", "AddUsers", "AppearanceElements", "AudioDelete", "AdjacencyGraph", "AppearanceRules", "AudioDistance", "AdjacencyList", "AppellF1", "AudioEncoding", "AdjacencyMatrix", "Append", "AudioFade", "AdjacentMeshCells", "AppendLayer", "AudioFrequencyShift", "AdjustmentBox", "AppendTo", "AudioGenerator", "AdjustmentBoxOptions", "Apply", "AudioIdentify", "AdjustTimeSeriesForecast", "ApplySides", "AudioInputDevice", "AdministrativeDivisionData", "ArcCos", "AudioInsert", "AffineHalfSpace", "ArcCosh", "AudioInstanceQ", "AffineSpace", "ArcCot", "AudioIntervals", "AffineStateSpaceModel", "ArcCoth", "AudioJoin", "AffineTransform", "ArcCsc", "AudioLabel", "After", "ArcCsch", "AudioLength", "AggregatedEntityClass", "ArcCurvature", "AudioLocalMeasurements", "AggregationLayer", "ARCHProcess", "AudioLoudness", "AircraftData", "ArcLength", "AudioMeasurements", "AirportData", "ArcSec", "AudioNormalize", "AirPressureData", "ArcSech", "AudioOutputDevice", "AirTemperatureData", "ArcSin", "AudioOverlay", "AiryAi", "ArcSinDistribution", "AudioPad", "AiryAiPrime", "ArcSinh", "AudioPan", "AiryAiZero", "ArcTan", "AudioPartition", "AiryBi", "ArcTanh", "AudioPause", "AiryBiPrime", "Area", "AudioPitchShift", "AiryBiZero", "Arg", "AudioPlay", "AlgebraicIntegerQ", "ArgMax", "AudioPlot", "AlgebraicNumber", "ArgMin", "AudioQ", "AlgebraicNumberDenominator", "ARIMAProcess", "AudioRecord", "AlgebraicNumberNorm", "ArithmeticGeometricMean", "AudioReplace", "AlgebraicNumberPolynomial", "ARMAProcess", "AudioResample", "AlgebraicNumberTrace", "Around", "AudioReverb", "Algebraics", "AroundReplace", "AudioReverse", "AlgebraicUnitQ", "ARProcess", "AudioSampleRate", "Alignment", "Array", "AudioSpectralMap", "AlignmentPoint", "ArrayComponents", "AudioSpectralTransformation", "All", "ArrayDepth", "AudioSplit", "AllowedCloudExtraParameters", "ArrayFilter", "AudioStop", "AllowedCloudParameterExtensions", "ArrayFlatten", "AudioStream", "AllowedDimensions", "ArrayMesh", "AudioStreams", "AllowedFrequencyRange", "ArrayPad", "AudioTimeStretch", "AllowedHeads", "ArrayPlot", "AudioTracks", "AllowGroupClose", "ArrayQ", "AudioTrim", "AllowInlineCells", "ArrayResample", "AudioType", "AllowLooseGrammar", "ArrayReshape", "AugmentedPolyhedron", "AllowReverseGroupClose", "ArrayRules", "AugmentedSymmetricPolynomial", "AllowVersionUpdate", "Arrays", "Authentication", "AllTrue", "Arrow", "AuthenticationDialog", "Alphabet", "Arrowheads", "AutoAction", "AlphabeticOrder", "ASATriangle", "Autocomplete", "AlphabeticSort", "Ask", "AutocompletionFunction", "AlphaChannel", "AskAppend", "AutoCopy", "AlternatingFactorial", "AskConfirm", "AutocorrelationTest", "AlternatingGroup", "AskDisplay", "AutoDelete", "AlternativeHypothesis", "AskedQ", "AutoIndent", "Alternatives", "AskedValue", "AutoItalicWords", "AltitudeMethod", "AskFunction", "Automatic", "AmbiguityFunction", "AskState", "AutoMultiplicationSymbol", "AmbiguityList", "AskTemplateDisplay", "AutoRefreshed", "AnatomyData", "AspectRatio", "AutoRemove", "AnatomyPlot3D", "Assert", "AutorunSequencing", "AnatomySkinStyle", "AssociateTo", "AutoScroll", "AnatomyStyling", "Association", "AutoSpacing", "AnchoredSearch", "AssociationFormat", "AutoSubmitting", "And", "AssociationMap", "Axes", "AndersonDarlingTest", "AssociationQ", "AxesEdge", "AngerJ", "AssociationThread", "AxesLabel", "AngleBisector", "AssumeDeterministic", "AxesOrigin", "AngleBracket", "Assuming", "AxesStyle", "AnglePath", "Assumptions", "AxiomaticTheory", "AnglePath3D", "Asymptotic", "Axis", "BabyMonsterGroupB", "BezierFunction", "BooleanCountingFunction", "Back", "BilateralFilter", "BooleanFunction", "Background", "Binarize", "BooleanGraph", "Backslash", "BinaryDeserialize", "BooleanMaxterms", "Backward", "BinaryDistance", "BooleanMinimize", "Ball", "BinaryFormat", "BooleanMinterms", "Band", "BinaryImageQ", "BooleanQ", "BandpassFilter", "BinaryRead", "BooleanRegion", "BandstopFilter", "BinaryReadList", "Booleans", "BarabasiAlbertGraphDistribution", "BinarySerialize", "BooleanStrings", "BarChart", "BinaryWrite", "BooleanTable", "BarChart3D", "BinCounts", "BooleanVariables", "BarcodeImage", "BinLists", "BorderDimensions", "BarcodeRecognize", "Binomial", "BorelTannerDistribution", "BaringhausHenzeTest", "BinomialDistribution", "Bottom", "BarLegend", "BinomialProcess", "BottomHatTransform", "BarlowProschanImportance", "BinormalDistribution", "BoundaryDiscretizeGraphics", "BarnesG", "BiorthogonalSplineWavelet", "BoundaryDiscretizeRegion", "BarOrigin", "BipartiteGraphQ", "BoundaryMesh", "BarSpacing", "BiquadraticFilterModel", "BoundaryMeshRegion", "BartlettHannWindow", "BirnbaumImportance", "BoundaryMeshRegionQ", "BartlettWindow", "BirnbaumSaundersDistribution", "BoundaryStyle", "BaseDecode", "BitAnd", "BoundedRegionQ", "BaseEncode", "BitClear", "BoundingRegion", "BaseForm", "BitGet", "BoxData", "Baseline", "BitLength", "Boxed", "BaselinePosition", "BitNot", "Boxes", "BaseStyle", "BitOr", "BoxMatrix", "BasicRecurrentLayer", "BitSet", "BoxObject", "BatchNormalizationLayer", "BitShiftLeft", "BoxRatios", "BatchSize", "BitShiftRight", "BoxStyle", "BatesDistribution", "BitXor", "BoxWhiskerChart", "BattleLemarieWavelet", "BiweightLocation", "BracketingBar", "BayesianMaximization", "BiweightMidvariance", "BrayCurtisDistance", "BayesianMaximizationObject", "Black", "BreadthFirstScan", "BayesianMinimization", "BlackmanHarrisWindow", "Break", "BayesianMinimizationObject", "BlackmanNuttallWindow", "BridgeData", "Because", "BlackmanWindow", "BrightnessEqualize", "BeckmannDistribution", "Blank", "BroadcastStationData", "Beep", "BlankNullSequence", "Brown", "Before", "BlankSequence", "BrownForsytheTest", "Begin", "Blend", "BrownianBridgeProcess", "BeginDialogPacket", "Block", "BSplineBasis", "BeginPackage", "BlockchainAddressData", "BSplineCurve", "BellB", "BlockchainBase", "BSplineFunction", "BellY", "BlockchainBlockData", "BSplineSurface", "Below", "BlockchainContractValue", "BubbleChart", "BenfordDistribution", "BlockchainData", "BubbleChart3D", "BeniniDistribution", "BlockchainGet", "BubbleScale", "BenktanderGibratDistribution", "BlockchainKeyEncode", "BubbleSizes", "BenktanderWeibullDistribution", "BlockchainPut", "BuildingData", "BernoulliB", "BlockchainTokenData", "BulletGauge", "BernoulliDistribution", "BlockchainTransaction", "BusinessDayQ", "BernoulliGraphDistribution", "BlockchainTransactionData", "ButterflyGraph", "BernoulliProcess", "BlockchainTransactionSign", "ButterworthFilterModel", "BernsteinBasis", "BlockchainTransactionSubmit", "Button", "BesselFilterModel", "BlockMap", "ButtonBar", "BesselI", "BlockRandom", "ButtonBox", "BesselJ", "BlomqvistBeta", "ButtonBoxOptions", "BesselJZero", "BlomqvistBetaTest", "ButtonData", "BesselK", "Blue", "ButtonFunction", "BesselY", "Blur", "ButtonMinHeight", "BesselYZero", "BodePlot", "ButtonNotebook", "Beta", "BohmanWindow", "ButtonSource", "BetaBinomialDistribution", "Bold", "Byte", "BetaDistribution", "Bond", "ByteArray", "BetaNegativeBinomialDistribution", "BondCount", "ByteArrayFormat", "BetaPrimeDistribution", "BondList", "ByteArrayQ", "BetaRegularized", "BondQ", "ByteArrayToString", "Between", "Bookmarks", "ByteCount", "BetweennessCentrality", "Boole", "ByteOrdering", "BeveledPolyhedron", "BooleanConsecutiveFunction", "BezierCurve", "BooleanConvert", "C", "ClearSystemCache", "Construct", "CachePersistence", "ClebschGordan", "Containing", "CalendarConvert", "ClickPane", "ContainsAll", "CalendarData", "Clip", "ContainsAny", "CalendarType", "ClippingStyle", "ContainsExactly", "Callout", "ClipPlanes", "ContainsNone", "CalloutMarker", "ClipPlanesStyle", "ContainsOnly", "CalloutStyle", "ClipRange", "ContentFieldOptions", "CallPacket", "Clock", "ContentLocationFunction", "CanberraDistance", "ClockGauge", "ContentObject", "Cancel", "Close", "ContentPadding", "CancelButton", "CloseKernels", "ContentSelectable", "CandlestickChart", "ClosenessCentrality", "ContentSize", "CanonicalGraph", "Closing", "Context", "CanonicalizePolygon", "CloudAccountData", "Contexts", "CanonicalizePolyhedron", "CloudBase", "ContextToFileName", "CanonicalName", "CloudConnect", "Continue", "CanonicalWarpingCorrespondence", "CloudDeploy", "ContinuedFraction", "CanonicalWarpingDistance", "CloudDirectory", "ContinuedFractionK", "CantorMesh", "CloudDisconnect", "ContinuousAction", "CantorStaircase", "CloudEvaluate", "ContinuousMarkovProcess", "Cap", "CloudExport", "ContinuousTask", "CapForm", "CloudExpression", "ContinuousTimeModelQ", "CapitalDifferentialD", "CloudExpressions", "ContinuousWaveletData", "Capitalize", "CloudFunction", "ContinuousWaveletTransform", "CapsuleShape", "CloudGet", "ContourDetect", "CaptureRunning", "CloudImport", "ContourLabels", "CarlemanLinearize", "CloudLoggingData", "ContourPlot", "CarmichaelLambda", "CloudObject", "ContourPlot3D", "CaseOrdering", "CloudObjectNameFormat", "Contours", "Cases", "CloudObjects", "ContourShading", "CaseSensitive", "CloudObjectURLType", "ContourStyle", "Cashflow", "CloudPublish", "ContraharmonicMean", "Casoratian", "CloudPut", "ContrastiveLossLayer", "Catalan", "CloudRenderingMethod", "Control", "CatalanNumber", "CloudSave", "ControlActive", "Catch", "CloudShare", "ControllabilityGramian", "CategoricalDistribution", "CloudSubmit", "ControllabilityMatrix", "Catenate", "CloudSymbol", "ControllableDecomposition", "CatenateLayer", "CloudUnshare", "ControllableModelQ", "CauchyDistribution", "ClusterClassify", "ControllerInformation", "CauchyWindow", "ClusterDissimilarityFunction", "ControllerLinking", "CayleyGraph", "ClusteringComponents", "ControllerManipulate", "CDF", "ClusteringTree", "ControllerMethod", "CDFDeploy", "CMYKColor", "ControllerPath", "CDFWavelet", "CodeAssistOptions", "ControllerState", "Ceiling", "Coefficient", "ControlPlacement", "CelestialSystem", "CoefficientArrays", "ControlsRendering", "Cell", "CoefficientList", "ControlType", "CellAutoOverwrite", "CoefficientRules", "Convergents", "CellBaseline", "CoifletWavelet", "ConversionRules", "CellBracketOptions", "Collect", "ConvexHullMesh", "CellChangeTimes", "Colon", "ConvexPolygonQ", "CellContext", "ColorBalance", "ConvexPolyhedronQ", "CellDingbat", "ColorCombine", "ConvolutionLayer", "CellDynamicExpression", "ColorConvert", "Convolve", "CellEditDuplicate", "ColorCoverage", "ConwayGroupCo1", "CellEpilog", "ColorData", "ConwayGroupCo2", "CellEvaluationDuplicate", "ColorDataFunction", "ConwayGroupCo3", "CellEvaluationFunction", "ColorDetect", "CookieFunction", "CellEventActions", "ColorDistance", "CoordinateBoundingBox", "CellFrame", "ColorFunction", "CoordinateBoundingBoxArray", "CellFrameColor", "ColorFunctionScaling", "CoordinateBounds", "CellFrameLabelMargins", "Colorize", "CoordinateBoundsArray", "CellFrameLabels", "ColorNegate", "CoordinateChartData", "CellFrameMargins", "ColorProfileData", "CoordinatesToolOptions", "CellGroup", "ColorQ", "CoordinateTransform", "CellGroupData", "ColorQuantize", "CoordinateTransformData", "CellGrouping", "ColorReplace", "CoprimeQ", "CellID", "ColorRules", "Coproduct", "CellLabel", "ColorSeparate", "CopulaDistribution", "CellLabelAutoDelete", "ColorSetter", "Copyable", "CellLabelStyle", "ColorSlider", "CopyDatabin", "CellMargins", "ColorsNear", "CopyDirectory", "CellObject", "ColorSpace", "CopyFile", "CellOpen", "ColorToneMapping", "CopyToClipboard", "CellPrint", "Column", "CornerFilter", "CellProlog", "ColumnAlignments", "CornerNeighbors", "Cells", "ColumnLines", "Correlation", "CellStyle", "ColumnsEqual", "CorrelationDistance", "CellTags", "ColumnSpacings", "CorrelationFunction", "CellularAutomaton", "ColumnWidths", "CorrelationTest", "CensoredDistribution", "CombinedEntityClass", "Cos", "Censoring", "CombinerFunction", "Cosh", "Center", "CometData", "CoshIntegral", "CenterArray", "Commonest", "CosineDistance", "CenterDot", "CommonestFilter", "CosineWindow", "CentralFeature", "CommonName", "CosIntegral", "CentralMoment", "CommonUnits", "Cot", "CentralMomentGeneratingFunction", "CommunityBoundaryStyle", "Coth", "Cepstrogram", "CommunityGraphPlot", "Count", "CepstrogramArray", "CommunityLabels", "CountDistinct", "CepstrumArray", "CommunityRegionStyle", "CountDistinctBy", "CForm", "CompanyData", "CountRoots", "ChampernowneNumber", "CompatibleUnitQ", "CountryData", "ChannelBase", "CompilationOptions", "Counts", "ChannelBrokerAction", "CompilationTarget", "CountsBy", "ChannelHistoryLength", "Compile", "Covariance", "ChannelListen", "Compiled", "CovarianceEstimatorFunction", "ChannelListener", "CompiledCodeFunction", "CovarianceFunction", "ChannelListeners", "CompiledFunction", "CoxianDistribution", "ChannelObject", "CompilerOptions", "CoxIngersollRossProcess", "ChannelReceiverFunction", "Complement", "CoxModel", "ChannelSend", "ComplementedEntityClass", "CoxModelFit", "ChannelSubscribers", "CompleteGraph", "CramerVonMisesTest", "ChanVeseBinarize", "CompleteGraphQ", "CreateArchive", "Character", "CompleteKaryTree", "CreateCellID", "CharacterCounts", "Complex", "CreateChannel", "CharacterEncoding", "ComplexContourPlot", "CreateCloudExpression", "CharacteristicFunction", "Complexes", "CreateDatabin", "CharacteristicPolynomial", "ComplexExpand", "CreateDataStructure", "CharacterName", "ComplexInfinity", "CreateDataSystemModel", "CharacterNormalize", "ComplexityFunction", "CreateDialog", "CharacterRange", "ComplexListPlot", "CreateDirectory", "Characters", "ComplexPlot", "CreateDocument", "ChartBaseStyle", "ComplexPlot3D", "CreateFile", "ChartElementFunction", "ComplexRegionPlot", "CreateIntermediateDirectories", "ChartElements", "ComplexStreamPlot", "CreateManagedLibraryExpression", "ChartLabels", "ComplexVectorPlot", "CreateNotebook", "ChartLayout", "ComponentMeasurements", "CreatePacletArchive", "ChartLegends", "ComposeList", "CreatePalette", "ChartStyle", "ComposeSeries", "CreatePermissionsGroup", "Chebyshev1FilterModel", "CompositeQ", "CreateSearchIndex", "Chebyshev2FilterModel", "Composition", "CreateSystemModel", "ChebyshevT", "CompoundElement", "CreateUUID", "ChebyshevU", "CompoundExpression", "CreateWindow", "Check", "CompoundPoissonDistribution", "CriterionFunction", "CheckAbort", "CompoundPoissonProcess", "CriticalityFailureImportance", "Checkbox", "CompoundRenewalProcess", "CriticalitySuccessImportance", "CheckboxBar", "Compress", "CriticalSection", "ChemicalData", "CompressionLevel", "Cross", "ChessboardDistance", "ComputeUncertainty", "CrossEntropyLossLayer", "ChiDistribution", "Condition", "CrossingCount", "ChineseRemainder", "ConditionalExpression", "CrossingDetect", "ChiSquareDistribution", "Conditioned", "CrossingPolygon", "ChoiceButtons", "Cone", "CrossMatrix", "ChoiceDialog", "ConfidenceLevel", "Csc", "CholeskyDecomposition", "ConfidenceRange", "Csch", "Chop", "ConfidenceTransform", "CTCLossLayer", "ChromaticityPlot", "ConformAudio", "Cube", "ChromaticityPlot3D", "ConformImages", "CubeRoot", "ChromaticPolynomial", "Congruent", "Cubics", "Circle", "ConicHullRegion", "Cuboid", "CircleDot", "ConicOptimization", "Cumulant", "CircleMinus", "Conjugate", "CumulantGeneratingFunction", "CirclePlus", "ConjugateTranspose", "Cup", "CirclePoints", "Conjunction", "CupCap", "CircleThrough", "ConnectedComponents", "Curl", "CircleTimes", "ConnectedGraphComponents", "CurrencyConvert", "CirculantGraph", "ConnectedGraphQ", "CurrentDate", "CircularOrthogonalMatrixDistribution", "ConnectedMeshComponents", "CurrentImage", "CircularQuaternionMatrixDistribution", "ConnectedMoleculeComponents", "CurrentNotebookImage", "CircularRealMatrixDistribution", "ConnectedMoleculeQ", "CurrentScreenImage", "CircularSymplecticMatrixDistribution", "ConnectionSettings", "CurrentValue", "CircularUnitaryMatrixDistribution", "ConnectLibraryCallbackFunction", "CurryApplied", "Circumsphere", "ConnectSystemModelComponents", "CurvatureFlowFilter", "CityData", "ConnesWindow", "CurveClosed", "ClassifierFunction", "ConoverTest", "Cyan", "ClassifierMeasurements", "Constant", "CycleGraph", "ClassifierMeasurementsObject", "ConstantArray", "CycleIndexPolynomial", "Classify", "ConstantArrayLayer", "Cycles", "ClassPriors", "ConstantImage", "CyclicGroup", "Clear", "ConstantPlusLayer", "Cyclotomic", "ClearAll", "ConstantRegionQ", "Cylinder", "ClearAttributes", "Constants", "CylindricalDecomposition", "ClearCookies", "ConstantTimesLayer", "ClearPermissions", "ConstellationData", "D", "DeleteFile", "DiscreteLyapunovSolve", "DagumDistribution", "DeleteMissing", "DiscreteMarkovProcess", "DamData", "DeleteObject", "DiscreteMaxLimit", "DamerauLevenshteinDistance", "DeletePermissionsKey", "DiscreteMinLimit", "Darker", "DeleteSearchIndex", "DiscretePlot", "Dashed", "DeleteSmallComponents", "DiscretePlot3D", "Dashing", "DeleteStopwords", "DiscreteRatio", "DatabaseConnect", "DelimitedSequence", "DiscreteRiccatiSolve", "DatabaseDisconnect", "Delimiter", "DiscreteShift", "DatabaseReference", "DelimiterFlashTime", "DiscreteTimeModelQ", "Databin", "Delimiters", "DiscreteUniformDistribution", "DatabinAdd", "DeliveryFunction", "DiscreteVariables", "DatabinRemove", "Dendrogram", "DiscreteWaveletData", "Databins", "Denominator", "DiscreteWaveletPacketTransform", "DatabinUpload", "DensityHistogram", "DiscreteWaveletTransform", "DataDistribution", "DensityPlot", "DiscretizeGraphics", "DataRange", "DensityPlot3D", "DiscretizeRegion", "DataReversed", "DependentVariables", "Discriminant", "Dataset", "Deploy", "DisjointQ", "DataStructure", "Deployed", "Disjunction", "DataStructureQ", "Depth", "Disk", "DateBounds", "DepthFirstScan", "DiskMatrix", "Dated", "Derivative", "DiskSegment", "DateDifference", "DerivativeFilter", "Dispatch", "DatedUnit", "DerivedKey", "DispersionEstimatorFunction", "DateFormat", "DescriptorStateSpace", "DisplayAllSteps", "DateFunction", "DesignMatrix", "DisplayEndPacket", "DateHistogram", "Det", "DisplayForm", "DateInterval", "DeviceClose", "DisplayFunction", "DateList", "DeviceConfigure", "DisplayPacket", "DateListLogPlot", "DeviceExecute", "DistanceFunction", "DateListPlot", "DeviceExecuteAsynchronous", "DistanceMatrix", "DateListStepPlot", "DeviceObject", "DistanceTransform", "DateObject", "DeviceOpen", "Distribute", "DateObjectQ", "DeviceRead", "Distributed", "DateOverlapsQ", "DeviceReadBuffer", "DistributedContexts", "DatePattern", "DeviceReadLatest", "DistributeDefinitions", "DatePlus", "DeviceReadList", "DistributionChart", "DateRange", "DeviceReadTimeSeries", "DistributionFitTest", "DateReduction", "Devices", "DistributionParameterAssumptions", "DateString", "DeviceStreams", "DistributionParameterQ", "DateTicksFormat", "DeviceWrite", "Dithering", "DateValue", "DeviceWriteBuffer", "Div", "DateWithinQ", "DGaussianWavelet", "Divide", "DaubechiesWavelet", "Diagonal", "DivideBy", "DavisDistribution", "DiagonalizableMatrixQ", "Dividers", "DawsonF", "DiagonalMatrix", "DivideSides", "DayCount", "DiagonalMatrixQ", "Divisible", "DayCountConvention", "Dialog", "Divisors", "DayHemisphere", "DialogInput", "DivisorSigma", "DaylightQ", "DialogNotebook", "DivisorSum", "DayMatchQ", "DialogProlog", "DMSList", "DayName", "DialogReturn", "DMSString", "DayNightTerminator", "DialogSymbols", "Do", "DayPlus", "Diamond", "DockedCells", "DayRange", "DiamondMatrix", "DocumentGenerator", "DayRound", "DiceDissimilarity", "DocumentGeneratorInformation", "DeBruijnGraph", "DictionaryLookup", "DocumentGenerators", "DeBruijnSequence", "DictionaryWordQ", "DocumentNotebook", "Decapitalize", "DifferenceDelta", "DocumentWeightingRules", "DecimalForm", "DifferenceQuotient", "Dodecahedron", "DeclarePackage", "DifferenceRoot", "DominantColors", "Decompose", "DifferenceRootReduce", "Dot", "DeconvolutionLayer", "Differences", "DotDashed", "Decrement", "DifferentialD", "DotEqual", "Decrypt", "DifferentialRoot", "DotLayer", "DecryptFile", "DifferentialRootReduce", "Dotted", "DedekindEta", "DifferentiatorFilter", "DoubleBracketingBar", "DeepSpaceProbeData", "DigitalSignature", "DoubleDownArrow", "Default", "DigitBlock", "DoubleLeftArrow", "DefaultAxesStyle", "DigitCharacter", "DoubleLeftRightArrow", "DefaultBaseStyle", "DigitCount", "DoubleLeftTee", "DefaultBoxStyle", "DigitQ", "DoubleLongLeftArrow", "DefaultButton", "DihedralAngle", "DoubleLongLeftRightArrow", "DefaultDuplicateCellStyle", "DihedralGroup", "DoubleLongRightArrow", "DefaultDuration", "Dilation", "DoubleRightArrow", "DefaultElement", "DimensionalCombinations", "DoubleRightTee", "DefaultFaceGridsStyle", "DimensionalMeshComponents", "DoubleUpArrow", "DefaultFieldHintStyle", "DimensionReduce", "DoubleUpDownArrow", "DefaultFrameStyle", "DimensionReducerFunction", "DoubleVerticalBar", "DefaultFrameTicksStyle", "DimensionReduction", "DownArrow", "DefaultGridLinesStyle", "Dimensions", "DownArrowBar", "DefaultLabelStyle", "DiracComb", "DownArrowUpArrow", "DefaultMenuStyle", "DiracDelta", "DownLeftRightVector", "DefaultNaturalLanguage", "DirectedEdge", "DownLeftTeeVector", "DefaultNewCellStyle", "DirectedEdges", "DownLeftVector", "DefaultOptions", "DirectedGraph", "DownLeftVectorBar", "DefaultPrintPrecision", "DirectedGraphQ", "DownRightTeeVector", "DefaultTicksStyle", "DirectedInfinity", "DownRightVector", "DefaultTooltipStyle", "Direction", "DownRightVectorBar", "Defer", "Directive", "Downsample", "DefineInputStreamMethod", "Directory", "DownTee", "DefineOutputStreamMethod", "DirectoryName", "DownTeeArrow", "DefineResourceFunction", "DirectoryQ", "DownValues", "Definition", "DirectoryStack", "Drop", "Degree", "DirichletBeta", "DropoutLayer", "DegreeCentrality", "DirichletCharacter", "DSolve", "DegreeGraphDistribution", "DirichletCondition", "DSolveValue", "DEigensystem", "DirichletConvolve", "Dt", "DEigenvalues", "DirichletDistribution", "DualPolyhedron", "Deinitialization", "DirichletEta", "DualSystemsModel", "Del", "DirichletL", "DumpSave", "DelaunayMesh", "DirichletLambda", "DuplicateFreeQ", "Delayed", "DirichletTransform", "Duration", "Deletable", "DirichletWindow", "Dynamic", "Delete", "DisableFormatting", "DynamicEvaluationTimeout", "DeleteAnomalies", "DiscreteAsymptotic", "DynamicGeoGraphics", "DeleteBorderComponents", "DiscreteChirpZTransform", "DynamicImage", "DeleteCases", "DiscreteConvolve", "DynamicModule", "DeleteChannel", "DiscreteDelta", "DynamicModuleValues", "DeleteCloudExpression", "DiscreteHadamardTransform", "DynamicSetting", "DeleteContents", "DiscreteIndicator", "DynamicUpdating", "DeleteDirectory", "DiscreteLimit", "DynamicWrapper", "DeleteDuplicates", "DiscreteLQEstimatorGains", "DeleteDuplicatesBy", "DiscreteLQRegulatorGains", "E", "EndOfFile", "EventHandler", "EarthImpactData", "EndOfLine", "EventLabels", "EarthquakeData", "EndOfString", "EventSeries", "EccentricityCentrality", "EndPackage", "ExactBlackmanWindow", "Echo", "EngineeringForm", "ExactNumberQ", "EchoFunction", "EnterExpressionPacket", "ExampleData", "EclipseType", "EnterTextPacket", "Except", "EdgeAdd", "Entity", "ExcludedForms", "EdgeBetweennessCentrality", "EntityClass", "ExcludedLines", "EdgeCapacity", "EntityClassList", "ExcludedPhysicalQuantities", "EdgeConnectivity", "EntityCopies", "ExcludePods", "EdgeContract", "EntityFunction", "Exclusions", "EdgeCost", "EntityGroup", "ExclusionsStyle", "EdgeCount", "EntityInstance", "Exists", "EdgeCoverQ", "EntityList", "Exit", "EdgeCycleMatrix", "EntityPrefetch", "ExoplanetData", "EdgeDelete", "EntityProperties", "Exp", "EdgeDetect", "EntityProperty", "Expand", "EdgeForm", "EntityPropertyClass", "ExpandAll", "EdgeIndex", "EntityRegister", "ExpandDenominator", "EdgeLabels", "EntityStore", "ExpandFileName", "EdgeLabelStyle", "EntityStores", "ExpandNumerator", "EdgeList", "EntityTypeName", "Expectation", "EdgeQ", "EntityUnregister", "ExpGammaDistribution", "EdgeRules", "EntityValue", "ExpIntegralE", "EdgeShapeFunction", "Entropy", "ExpIntegralEi", "EdgeStyle", "EntropyFilter", "ExpirationDate", "EdgeTaggedGraph", "Environment", "Exponent", "EdgeTaggedGraphQ", "Epilog", "ExponentFunction", "EdgeTags", "EpilogFunction", "ExponentialDistribution", "EdgeWeight", "Equal", "ExponentialFamily", "EdgeWeightedGraphQ", "EqualTilde", "ExponentialGeneratingFunction", "Editable", "EqualTo", "ExponentialMovingAverage", "EditDistance", "Equilibrium", "ExponentialPowerDistribution", "EffectiveInterest", "EquirippleFilterKernel", "ExponentStep", "Eigensystem", "Equivalent", "Export", "Eigenvalues", "Erf", "ExportByteArray", "EigenvectorCentrality", "Erfc", "ExportForm", "Eigenvectors", "Erfi", "ExportString", "Element", "ErlangB", "Expression", "ElementData", "ErlangC", "ExpressionCell", "ElementwiseLayer", "ErlangDistribution", "ExpressionGraph", "ElidedForms", "Erosion", "ExpToTrig", "Eliminate", "ErrorBox", "ExtendedEntityClass", "Ellipsoid", "EscapeRadius", "ExtendedGCD", "EllipticE", "EstimatedBackground", "Extension", "EllipticExp", "EstimatedDistribution", "ExtentElementFunction", "EllipticExpPrime", "EstimatedProcess", "ExtentMarkers", "EllipticF", "EstimatorGains", "ExtentSize", "EllipticFilterModel", "EstimatorRegulator", "ExternalBundle", "EllipticK", "EuclideanDistance", "ExternalEvaluate", "EllipticLog", "EulerAngles", "ExternalFunction", "EllipticNomeQ", "EulerCharacteristic", "ExternalIdentifier", "EllipticPi", "EulerE", "ExternalObject", "EllipticTheta", "EulerGamma", "ExternalOptions", "EllipticThetaPrime", "EulerianGraphQ", "ExternalSessionObject", "EmbedCode", "EulerMatrix", "ExternalSessions", "EmbeddedHTML", "EulerPhi", "ExternalStorageBase", "EmbeddedService", "Evaluatable", "ExternalStorageDownload", "EmbeddingLayer", "Evaluate", "ExternalStorageGet", "EmitSound", "EvaluatePacket", "ExternalStorageObject", "EmpiricalDistribution", "EvaluationBox", "ExternalStoragePut", "EmptyGraphQ", "EvaluationCell", "ExternalStorageUpload", "EmptyRegion", "EvaluationData", "ExternalTypeSignature", "Enabled", "EvaluationElements", "ExternalValue", "Encode", "EvaluationEnvironment", "Extract", "Encrypt", "EvaluationMonitor", "ExtractArchive", "EncryptedObject", "EvaluationNotebook", "ExtractLayer", "EncryptFile", "EvaluationObject", "ExtractPacletArchive", "End", "Evaluator", "ExtremeValueDistribution", "EndDialogPacket", "EvenQ", "EndOfBuffer", "EventData", "FaceAlign", "FindFaces", "ForceVersionInstall", "FaceForm", "FindFile", "Format", "FaceGrids", "FindFit", "FormatType", "FaceGridsStyle", "FindFormula", "FormBox", "FacialFeatures", "FindFundamentalCycles", "FormBoxOptions", "Factor", "FindGeneratingFunction", "FormControl", "Factorial", "FindGeoLocation", "FormFunction", "Factorial2", "FindGeometricConjectures", "FormLayoutFunction", "FactorialMoment", "FindGeometricTransform", "FormObject", "FactorialMomentGeneratingFunction", "FindGraphCommunities", "FormPage", "FactorialPower", "FindGraphIsomorphism", "FormulaData", "FactorInteger", "FindGraphPartition", "FormulaLookup", "FactorList", "FindHamiltonianCycle", "FortranForm", "FactorSquareFree", "FindHamiltonianPath", "Forward", "FactorSquareFreeList", "FindHiddenMarkovStates", "ForwardBackward", "FactorTerms", "FindImageText", "Fourier", "FactorTermsList", "FindIndependentEdgeSet", "FourierCoefficient", "Failure", "FindIndependentVertexSet", "FourierCosCoefficient", "FailureAction", "FindInstance", "FourierCosSeries", "FailureDistribution", "FindIntegerNullVector", "FourierCosTransform", "FailureQ", "FindKClan", "FourierDCT", "False", "FindKClique", "FourierDCTFilter", "FareySequence", "FindKClub", "FourierDCTMatrix", "FARIMAProcess", "FindKPlex", "FourierDST", "FeatureDistance", "FindLibrary", "FourierDSTMatrix", "FeatureExtract", "FindLinearRecurrence", "FourierMatrix", "FeatureExtraction", "FindList", "FourierParameters", "FeatureExtractor", "FindMatchingColor", "FourierSequenceTransform", "FeatureExtractorFunction", "FindMaximum", "FourierSeries", "FeatureNames", "FindMaximumCut", "FourierSinCoefficient", "FeatureNearest", "FindMaximumFlow", "FourierSinSeries", "FeatureSpacePlot", "FindMaxValue", "FourierSinTransform", "FeatureSpacePlot3D", "FindMeshDefects", "FourierTransform", "FeatureTypes", "FindMinimum", "FourierTrigSeries", "FeedbackLinearize", "FindMinimumCostFlow", "FractionalBrownianMotionProcess", "FeedbackSector", "FindMinimumCut", "FractionalGaussianNoiseProcess", "FeedbackSectorStyle", "FindMinValue", "FractionalPart", "FeedbackType", "FindMoleculeSubstructure", "FractionBox", "FetalGrowthData", "FindPath", "FractionBoxOptions", "Fibonacci", "FindPeaks", "Frame", "Fibonorial", "FindPermutation", "FrameBox", "FieldCompletionFunction", "FindPostmanTour", "FrameBoxOptions", "FieldHint", "FindProcessParameters", "Framed", "FieldHintStyle", "FindRepeat", "FrameLabel", "FieldMasked", "FindRoot", "FrameMargins", "FieldSize", "FindSequenceFunction", "FrameRate", "File", "FindSettings", "FrameStyle", "FileBaseName", "FindShortestPath", "FrameTicks", "FileByteCount", "FindShortestTour", "FrameTicksStyle", "FileConvert", "FindSpanningTree", "FRatioDistribution", "FileDate", "FindSystemModelEquilibrium", "FrechetDistribution", "FileExistsQ", "FindTextualAnswer", "FreeQ", "FileExtension", "FindThreshold", "FrenetSerretSystem", "FileFormat", "FindTransientRepeat", "FrequencySamplingFilterKernel", "FileHash", "FindVertexCover", "FresnelC", "FileNameDepth", "FindVertexCut", "FresnelF", "FileNameDrop", "FindVertexIndependentPaths", "FresnelG", "FileNameForms", "FinishDynamic", "FresnelS", "FileNameJoin", "FiniteAbelianGroupCount", "Friday", "FileNames", "FiniteGroupCount", "FrobeniusNumber", "FileNameSetter", "FiniteGroupData", "FrobeniusSolve", "FileNameSplit", "First", "FromAbsoluteTime", "FileNameTake", "FirstCase", "FromCharacterCode", "FilePrint", "FirstPassageTimeDistribution", "FromCoefficientRules", "FileSize", "FirstPosition", "FromContinuedFraction", "FileSystemMap", "FischerGroupFi22", "FromDigits", "FileSystemScan", "FischerGroupFi23", "FromDMS", "FileTemplate", "FischerGroupFi24Prime", "FromEntity", "FileTemplateApply", "FisherHypergeometricDistribution", "FromJulianDate", "FileType", "FisherRatioTest", "FromLetterNumber", "FilledCurve", "FisherZDistribution", "FromPolarCoordinates", "Filling", "Fit", "FromRomanNumeral", "FillingStyle", "FitRegularization", "FromSphericalCoordinates", "FillingTransform", "FittedModel", "FromUnixTime", "FilteredEntityClass", "FixedOrder", "Front", "FilterRules", "FixedPoint", "FrontEndDynamicExpression", "FinancialBond", "FixedPointList", "FrontEndEventActions", "FinancialData", "Flat", "FrontEndExecute", "FinancialDerivative", "Flatten", "FrontEndToken", "FinancialIndicator", "FlattenAt", "FrontEndTokenExecute", "Find", "FlattenLayer", "Full", "FindAnomalies", "FlatTopWindow", "FullDefinition", "FindArgMax", "FlipView", "FullForm", "FindArgMin", "Floor", "FullGraphics", "FindChannels", "FlowPolynomial", "FullInformationOutputRegulator", "FindClique", "Fold", "FullRegion", "FindClusters", "FoldList", "FullSimplify", "FindCookies", "FoldPair", "Function", "FindCurvePath", "FoldPairList", "FunctionCompile", "FindCycle", "FollowRedirects", "FunctionCompileExport", "FindDevices", "FontColor", "FunctionCompileExportByteArray", "FindDistribution", "FontFamily", "FunctionCompileExportLibrary", "FindDistributionParameters", "FontSize", "FunctionCompileExportString", "FindDivisions", "FontSlant", "FunctionDomain", "FindEdgeCover", "FontSubstitutions", "FunctionExpand", "FindEdgeCut", "FontTracking", "FunctionInterpolation", "FindEdgeIndependentPaths", "FontVariations", "FunctionPeriod", "FindEquationalProof", "FontWeight", "FunctionRange", "FindEulerianCycle", "For", "FunctionSpace", "FindExternalEvaluators", "ForAll", "FussellVeselyImportance", "GaborFilter", "GeoGraphics", "Graph", "GaborMatrix", "GeogravityModelData", "Graph3D", "GaborWavelet", "GeoGridDirectionDifference", "GraphAssortativity", "GainMargins", "GeoGridLines", "GraphAutomorphismGroup", "GainPhaseMargins", "GeoGridLinesStyle", "GraphCenter", "GalaxyData", "GeoGridPosition", "GraphComplement", "GalleryView", "GeoGridRange", "GraphData", "Gamma", "GeoGridRangePadding", "GraphDensity", "GammaDistribution", "GeoGridUnitArea", "GraphDiameter", "GammaRegularized", "GeoGridUnitDistance", "GraphDifference", "GapPenalty", "GeoGridVector", "GraphDisjointUnion", "GARCHProcess", "GeoGroup", "GraphDistance", "GatedRecurrentLayer", "GeoHemisphere", "GraphDistanceMatrix", "Gather", "GeoHemisphereBoundary", "GraphEmbedding", "GatherBy", "GeoHistogram", "GraphHighlight", "GaugeFaceElementFunction", "GeoIdentify", "GraphHighlightStyle", "GaugeFaceStyle", "GeoImage", "GraphHub", "GaugeFrameElementFunction", "GeoLabels", "Graphics", "GaugeFrameSize", "GeoLength", "Graphics3D", "GaugeFrameStyle", "GeoListPlot", "GraphicsColumn", "GaugeLabels", "GeoLocation", "GraphicsComplex", "GaugeMarkers", "GeologicalPeriodData", "GraphicsGrid", "GaugeStyle", "GeomagneticModelData", "GraphicsGroup", "GaussianFilter", "GeoMarker", "GraphicsRow", "GaussianIntegers", "GeometricAssertion", "GraphIntersection", "GaussianMatrix", "GeometricBrownianMotionProcess", "GraphLayout", "GaussianOrthogonalMatrixDistribution", "GeometricDistribution", "GraphLinkEfficiency", "GaussianSymplecticMatrixDistribution", "GeometricMean", "GraphPeriphery", "GaussianUnitaryMatrixDistribution", "GeometricMeanFilter", "GraphPlot", "GaussianWindow", "GeometricOptimization", "GraphPlot3D", "GCD", "GeometricScene", "GraphPower", "GegenbauerC", "GeometricTransformation", "GraphPropertyDistribution", "General", "GeoModel", "GraphQ", "GeneralizedLinearModelFit", "GeoNearest", "GraphRadius", "GenerateAsymmetricKeyPair", "GeoPath", "GraphReciprocity", "GenerateConditions", "GeoPosition", "GraphUnion", "GeneratedCell", "GeoPositionENU", "Gray", "GeneratedDocumentBinding", "GeoPositionXYZ", "GrayLevel", "GenerateDerivedKey", "GeoProjection", "Greater", "GenerateDigitalSignature", "GeoProjectionData", "GreaterEqual", "GenerateDocument", "GeoRange", "GreaterEqualLess", "GeneratedParameters", "GeoRangePadding", "GreaterEqualThan", "GeneratedQuantityMagnitudes", "GeoRegionValuePlot", "GreaterFullEqual", "GenerateFileSignature", "GeoResolution", "GreaterGreater", "GenerateHTTPResponse", "GeoScaleBar", "GreaterLess", "GenerateSecuredAuthenticationKey", "GeoServer", "GreaterSlantEqual", "GenerateSymmetricKey", "GeoSmoothHistogram", "GreaterThan", "GeneratingFunction", "GeoStreamPlot", "GreaterTilde", "GeneratorDescription", "GeoStyling", "Green", "GeneratorHistoryLength", "GeoStylingImageFunction", "GreenFunction", "GeneratorOutputType", "GeoVariant", "Grid", "GenericCylindricalDecomposition", "GeoVector", "GridBox", "GenomeData", "GeoVectorENU", "GridDefaultElement", "GenomeLookup", "GeoVectorPlot", "GridGraph", "GeoAntipode", "GeoVectorXYZ", "GridLines", "GeoArea", "GeoVisibleRegion", "GridLinesStyle", "GeoArraySize", "GeoVisibleRegionBoundary", "GroebnerBasis", "GeoBackground", "GeoWithinQ", "GroupActionBase", "GeoBoundingBox", "GeoZoomLevel", "GroupBy", "GeoBounds", "GestureHandler", "GroupCentralizer", "GeoBoundsRegion", "Get", "GroupElementFromWord", "GeoBubbleChart", "GetEnvironment", "GroupElementPosition", "GeoCenter", "Glaisher", "GroupElementQ", "GeoCircle", "GlobalClusteringCoefficient", "GroupElements", "GeoContourPlot", "Glow", "GroupElementToWord", "GeoDensityPlot", "GoldenAngle", "GroupGenerators", "GeodesicClosing", "GoldenRatio", "Groupings", "GeodesicDilation", "GompertzMakehamDistribution", "GroupMultiplicationTable", "GeodesicErosion", "GoochShading", "GroupOrbits", "GeodesicOpening", "GoodmanKruskalGamma", "GroupOrder", "GeoDestination", "GoodmanKruskalGammaTest", "GroupPageBreakWithin", "GeodesyData", "Goto", "GroupSetwiseStabilizer", "GeoDirection", "Grad", "GroupStabilizer", "GeoDisk", "Gradient", "GroupStabilizerChain", "GeoDisplacement", "GradientFilter", "GrowCutComponents", "GeoDistance", "GradientOrientationFilter", "Gudermannian", "GeoDistanceList", "GrammarApply", "GuidedFilter", "GeoElevationData", "GrammarRules", "GumbelDistribution", "GeoEntities", "GrammarToken", "HaarWavelet", "HermiteH", "HoldComplete", "HadamardMatrix", "HermitianMatrixQ", "HoldFirst", "HalfLine", "HessenbergDecomposition", "HoldForm", "HalfNormalDistribution", "HeunB", "HoldPattern", "HalfPlane", "HeunBPrime", "HoldRest", "HalfSpace", "HeunC", "HolidayCalendar", "HalftoneShading", "HeunCPrime", "HorizontalGauge", "HamiltonianGraphQ", "HeunD", "HornerForm", "HammingDistance", "HeunDPrime", "HostLookup", "HammingWindow", "HeunG", "HotellingTSquareDistribution", "HandlerFunctions", "HeunGPrime", "HoytDistribution", "HandlerFunctionsKeys", "HeunT", "HTTPErrorResponse", "HankelH1", "HeunTPrime", "HTTPRedirect", "HankelH2", "HexadecimalCharacter", "HTTPRequest", "HankelMatrix", "Hexahedron", "HTTPRequestData", "HankelTransform", "HiddenItems", "HTTPResponse", "HannPoissonWindow", "HiddenMarkovProcess", "Hue", "HannWindow", "Highlighted", "HumanGrowthData", "HaradaNortonGroupHN", "HighlightGraph", "HumpDownHump", "HararyGraph", "HighlightImage", "HumpEqual", "HarmonicMean", "HighlightMesh", "HurwitzLerchPhi", "HarmonicMeanFilter", "HighpassFilter", "HurwitzZeta", "HarmonicNumber", "HigmanSimsGroupHS", "HyperbolicDistribution", "Hash", "HilbertCurve", "HypercubeGraph", "HatchFilling", "HilbertFilter", "HyperexponentialDistribution", "HatchShading", "HilbertMatrix", "Hyperfactorial", "Haversine", "Histogram", "Hypergeometric0F1", "HazardFunction", "Histogram3D", "Hypergeometric0F1Regularized", "Head", "HistogramDistribution", "Hypergeometric1F1", "HeaderAlignment", "HistogramList", "Hypergeometric1F1Regularized", "HeaderBackground", "HistogramTransform", "Hypergeometric2F1", "HeaderDisplayFunction", "HistogramTransformInterpolation", "Hypergeometric2F1Regularized", "HeaderLines", "HistoricalPeriodData", "HypergeometricDistribution", "HeaderSize", "HitMissTransform", "HypergeometricPFQ", "HeaderStyle", "HITSCentrality", "HypergeometricPFQRegularized", "Heads", "HjorthDistribution", "HypergeometricU", "HeavisideLambda", "HodgeDual", "Hyperlink", "HeavisidePi", "HoeffdingD", "HyperlinkAction", "HeavisideTheta", "HoeffdingDTest", "Hyperplane", "HeldGroupHe", "Hold", "Hyphenation", "Here", "HoldAll", "HypoexponentialDistribution", "HermiteDecomposition", "HoldAllComplete", "HypothesisTestData", "I", "ImageSizeMultipliers", "IntegerName", "IconData", "ImageSubtract", "IntegerPart", "Iconize", "ImageTake", "IntegerPartitions", "IconRules", "ImageTransformation", "IntegerQ", "Icosahedron", "ImageTrim", "IntegerReverse", "Identity", "ImageType", "Integers", "IdentityMatrix", "ImageValue", "IntegerString", "If", "ImageValuePositions", "Integrate", "IgnoreCase", "ImagingDevice", "Interactive", "IgnoreDiacritics", "ImplicitRegion", "InteractiveTradingChart", "IgnorePunctuation", "Implies", "Interleaving", "IgnoringInactive", "Import", "InternallyBalancedDecomposition", "Im", "ImportByteArray", "InterpolatingFunction", "Image", "ImportOptions", "InterpolatingPolynomial", "Image3D", "ImportString", "Interpolation", "Image3DProjection", "ImprovementImportance", "InterpolationOrder", "Image3DSlices", "In", "InterpolationPoints", "ImageAccumulate", "Inactivate", "Interpretation", "ImageAdd", "Inactive", "InterpretationBox", "ImageAdjust", "IncidenceGraph", "InterpretationBoxOptions", "ImageAlign", "IncidenceList", "Interpreter", "ImageApply", "IncidenceMatrix", "InterquartileRange", "ImageApplyIndexed", "IncludeAromaticBonds", "Interrupt", "ImageAspectRatio", "IncludeConstantBasis", "IntersectedEntityClass", "ImageAssemble", "IncludeDefinitions", "IntersectingQ", "ImageAugmentationLayer", "IncludeDirectories", "Intersection", "ImageBoundingBoxes", "IncludeGeneratorTasks", "Interval", "ImageCapture", "IncludeHydrogens", "IntervalIntersection", "ImageCaptureFunction", "IncludeInflections", "IntervalMarkers", "ImageCases", "IncludeMetaInformation", "IntervalMarkersStyle", "ImageChannels", "IncludePods", "IntervalMemberQ", "ImageClip", "IncludeQuantities", "IntervalSlider", "ImageCollage", "IncludeRelatedTables", "IntervalUnion", "ImageColorSpace", "IncludeWindowTimes", "Inverse", "ImageCompose", "Increment", "InverseBetaRegularized", "ImageContainsQ", "IndefiniteMatrixQ", "InverseCDF", "ImageContents", "IndependenceTest", "InverseChiSquareDistribution", "ImageConvolve", "IndependentEdgeSetQ", "InverseContinuousWaveletTransform", "ImageCooccurrence", "IndependentPhysicalQuantity", "InverseDistanceTransform", "ImageCorners", "IndependentUnit", "InverseEllipticNomeQ", "ImageCorrelate", "IndependentUnitDimension", "InverseErf", "ImageCorrespondingPoints", "IndependentVertexSetQ", "InverseErfc", "ImageCrop", "Indeterminate", "InverseFourier", "ImageData", "IndeterminateThreshold", "InverseFourierCosTransform", "ImageDeconvolve", "Indexed", "InverseFourierSequenceTransform", "ImageDemosaic", "IndexEdgeTaggedGraph", "InverseFourierSinTransform", "ImageDifference", "IndexGraph", "InverseFourierTransform", "ImageDimensions", "InexactNumberQ", "InverseFunction", "ImageDisplacements", "InfiniteFuture", "InverseFunctions", "ImageDistance", "InfiniteLine", "InverseGammaDistribution", "ImageEffect", "InfinitePast", "InverseGammaRegularized", "ImageExposureCombine", "InfinitePlane", "InverseGaussianDistribution", "ImageFeatureTrack", "Infinity", "InverseGudermannian", "ImageFileApply", "Infix", "InverseHankelTransform", "ImageFileFilter", "InflationAdjust", "InverseHaversine", "ImageFileScan", "InflationMethod", "InverseImagePyramid", "ImageFilter", "Information", "InverseJacobiCD", "ImageFocusCombine", "Inherited", "InverseJacobiCN", "ImageForestingComponents", "InheritScope", "InverseJacobiCS", "ImageFormattingWidth", "InhomogeneousPoissonProcess", "InverseJacobiDC", "ImageForwardTransformation", "InitialEvaluationHistory", "InverseJacobiDN", "ImageGraphics", "Initialization", "InverseJacobiDS", "ImageHistogram", "InitializationCell", "InverseJacobiNC", "ImageIdentify", "InitializationObjects", "InverseJacobiND", "ImageInstanceQ", "InitializationValue", "InverseJacobiNS", "ImageKeypoints", "Initialize", "InverseJacobiSC", "ImageLabels", "InitialSeeding", "InverseJacobiSD", "ImageLegends", "Inner", "InverseJacobiSN", "ImageLevels", "InnerPolygon", "InverseLaplaceTransform", "ImageLines", "InnerPolyhedron", "InverseMellinTransform", "ImageMargins", "Inpaint", "InversePermutation", "ImageMarker", "Input", "InverseRadon", "ImageMeasurements", "InputAliases", "InverseRadonTransform", "ImageMesh", "InputAssumptions", "InverseSeries", "ImageMultiply", "InputAutoReplacements", "InverseShortTimeFourier", "ImagePad", "InputField", "InverseSpectrogram", "ImagePadding", "InputForm", "InverseSurvivalFunction", "ImagePartition", "InputNamePacket", "InverseTransformedRegion", "ImagePeriodogram", "InputNotebook", "InverseWaveletTransform", "ImagePerspectiveTransformation", "InputPacket", "InverseWeierstrassP", "ImagePosition", "InputStream", "InverseWishartMatrixDistribution", "ImagePreviewFunction", "InputString", "InverseZTransform", "ImagePyramid", "InputStringPacket", "Invisible", "ImagePyramidApply", "Insert", "IPAddress", "ImageQ", "InsertionFunction", "IrreduciblePolynomialQ", "ImageRecolor", "InsertLinebreaks", "IslandData", "ImageReflect", "InsertResults", "IsolatingInterval", "ImageResize", "Inset", "IsomorphicGraphQ", "ImageResolution", "Insphere", "IsotopeData", "ImageRestyle", "Install", "Italic", "ImageRotate", "InstallService", "Item", "ImageSaliencyFilter", "InString", "ItemAspectRatio", "ImageScaled", "Integer", "ItemDisplayFunction", "ImageScan", "IntegerDigits", "ItemSize", "ImageSize", "IntegerExponent", "ItemStyle", "ImageSizeAction", "IntegerLength", "ItoProcess", "JaccardDissimilarity", "JacobiSC", "JoinAcross", "JacobiAmplitude", "JacobiSD", "Joined", "JacobiCD", "JacobiSN", "JoinedCurve", "JacobiCN", "JacobiSymbol", "JoinForm", "JacobiCS", "JacobiZeta", "JordanDecomposition", "JacobiDC", "JankoGroupJ1", "JordanModelDecomposition", "JacobiDN", "JankoGroupJ2", "JulianDate", "JacobiDS", "JankoGroupJ3", "JuliaSetBoettcher", "JacobiNC", "JankoGroupJ4", "JuliaSetIterationCount", "JacobiND", "JarqueBeraALMTest", "JuliaSetPlot", "JacobiNS", "JohnsonDistribution", "JuliaSetPoints", "JacobiP", "Join", "KagiChart", "KernelObject", "Khinchin", "KaiserBesselWindow", "Kernels", "KillProcess", "KaiserWindow", "Key", "KirchhoffGraph", "KalmanEstimator", "KeyCollisionFunction", "KirchhoffMatrix", "KalmanFilter", "KeyComplement", "KleinInvariantJ", "KarhunenLoeveDecomposition", "KeyDrop", "KnapsackSolve", "KaryTree", "KeyDropFrom", "KnightTourGraph", "KatzCentrality", "KeyExistsQ", "KnotData", "KCoreComponents", "KeyFreeQ", "KnownUnitQ", "KDistribution", "KeyIntersection", "KochCurve", "KEdgeConnectedComponents", "KeyMap", "KolmogorovSmirnovTest", "KEdgeConnectedGraphQ", "KeyMemberQ", "KroneckerDelta", "KeepExistingVersion", "KeypointStrength", "KroneckerModelDecomposition", "KelvinBei", "Keys", "KroneckerProduct", "KelvinBer", "KeySelect", "KroneckerSymbol", "KelvinKei", "KeySort", "KuiperTest", "KelvinKer", "KeySortBy", "KumaraswamyDistribution", "KendallTau", "KeyTake", "Kurtosis", "KendallTauTest", "KeyUnion", "KuwaharaFilter", "KernelFunction", "KeyValueMap", "KVertexConnectedComponents", "KernelMixtureDistribution", "KeyValuePattern", "KVertexConnectedGraphQ", "LABColor", "LetterQ", "ListPickerBox", "Label", "Level", "ListPickerBoxOptions", "Labeled", "LeveneTest", "ListPlay", "LabelingFunction", "LeviCivitaTensor", "ListPlot", "LabelingSize", "LevyDistribution", "ListPlot3D", "LabelStyle", "LibraryDataType", "ListPointPlot3D", "LabelVisibility", "LibraryFunction", "ListPolarPlot", "LaguerreL", "LibraryFunctionError", "ListQ", "LakeData", "LibraryFunctionInformation", "ListSliceContourPlot3D", "LambdaComponents", "LibraryFunctionLoad", "ListSliceDensityPlot3D", "LaminaData", "LibraryFunctionUnload", "ListSliceVectorPlot3D", "LanczosWindow", "LibraryLoad", "ListStepPlot", "LandauDistribution", "LibraryUnload", "ListStreamDensityPlot", "Language", "LiftingFilterData", "ListStreamPlot", "LanguageCategory", "LiftingWaveletTransform", "ListSurfacePlot3D", "LanguageData", "LightBlue", "ListVectorDensityPlot", "LanguageIdentify", "LightBrown", "ListVectorPlot", "LaplaceDistribution", "LightCyan", "ListVectorPlot3D", "LaplaceTransform", "Lighter", "ListZTransform", "Laplacian", "LightGray", "LocalAdaptiveBinarize", "LaplacianFilter", "LightGreen", "LocalCache", "LaplacianGaussianFilter", "Lighting", "LocalClusteringCoefficient", "Large", "LightingAngle", "LocalizeVariables", "Larger", "LightMagenta", "LocalObject", "Last", "LightOrange", "LocalObjects", "Latitude", "LightPink", "LocalResponseNormalizationLayer", "LatitudeLongitude", "LightPurple", "LocalSubmit", "LatticeData", "LightRed", "LocalSymbol", "LatticeReduce", "LightYellow", "LocalTime", "LaunchKernels", "Likelihood", "LocalTimeZone", "LayeredGraphPlot", "Limit", "LocationEquivalenceTest", "LayerSizeFunction", "LimitsPositioning", "LocationTest", "LCHColor", "LindleyDistribution", "Locator", "LCM", "Line", "LocatorAutoCreate", "LeaderSize", "LinearFractionalOptimization", "LocatorPane", "LeafCount", "LinearFractionalTransform", "LocatorRegion", "LeapYearQ", "LinearGradientImage", "Locked", "LearnDistribution", "LinearizingTransformationData", "Log", "LearnedDistribution", "LinearLayer", "Log10", "LearningRate", "LinearModelFit", "Log2", "LearningRateMultipliers", "LinearOffsetFunction", "LogBarnesG", "LeastSquares", "LinearOptimization", "LogGamma", "LeastSquaresFilterKernel", "LinearProgramming", "LogGammaDistribution", "Left", "LinearRecurrence", "LogicalExpand", "LeftArrow", "LinearSolve", "LogIntegral", "LeftArrowBar", "LinearSolveFunction", "LogisticDistribution", "LeftArrowRightArrow", "LineBreakChart", "LogisticSigmoid", "LeftDownTeeVector", "LineGraph", "LogitModelFit", "LeftDownVector", "LineIndent", "LogLikelihood", "LeftDownVectorBar", "LineIndentMaxFraction", "LogLinearPlot", "LeftRightArrow", "LineIntegralConvolutionPlot", "LogLogisticDistribution", "LeftRightVector", "LineIntegralConvolutionScale", "LogLogPlot", "LeftTee", "LineLegend", "LogMultinormalDistribution", "LeftTeeArrow", "LineSpacing", "LogNormalDistribution", "LeftTeeVector", "LinkActivate", "LogPlot", "LeftTriangle", "LinkClose", "LogRankTest", "LeftTriangleBar", "LinkConnect", "LogSeriesDistribution", "LeftTriangleEqual", "LinkCreate", "Longest", "LeftUpDownVector", "LinkFunction", "LongestCommonSequence", "LeftUpTeeVector", "LinkInterrupt", "LongestCommonSequencePositions", "LeftUpVector", "LinkLaunch", "LongestCommonSubsequence", "LeftUpVectorBar", "LinkObject", "LongestCommonSubsequencePositions", "LeftVector", "LinkPatterns", "LongestOrderedSequence", "LeftVectorBar", "LinkProtocol", "Longitude", "LegendAppearance", "LinkRankCentrality", "LongLeftArrow", "Legended", "LinkRead", "LongLeftRightArrow", "LegendFunction", "LinkReadyQ", "LongRightArrow", "LegendLabel", "Links", "LongShortTermMemoryLayer", "LegendLayout", "LinkWrite", "Lookup", "LegendMargins", "LiouvilleLambda", "LoopFreeGraphQ", "LegendMarkers", "List", "Looping", "LegendMarkerSize", "Listable", "LossFunction", "LegendreP", "ListAnimate", "LowerCaseQ", "LegendreQ", "ListContourPlot", "LowerLeftArrow", "Length", "ListContourPlot3D", "LowerRightArrow", "LengthWhile", "ListConvolve", "LowerTriangularize", "LerchPhi", "ListCorrelate", "LowerTriangularMatrixQ", "Less", "ListCurvePathPlot", "LowpassFilter", "LessEqual", "ListDeconvolve", "LQEstimatorGains", "LessEqualGreater", "ListDensityPlot", "LQGRegulator", "LessEqualThan", "ListDensityPlot3D", "LQOutputRegulatorGains", "LessFullEqual", "ListFormat", "LQRegulatorGains", "LessGreater", "ListFourierSequenceTransform", "LucasL", "LessLess", "ListInterpolation", "LuccioSamiComponents", "LessSlantEqual", "ListLineIntegralConvolutionPlot", "LUDecomposition", "LessThan", "ListLinePlot", "LunarEclipse", "LessTilde", "ListLogLinearPlot", "LUVColor", "LetterCharacter", "ListLogLogPlot", "LyapunovSolve", "LetterCounts", "ListLogPlot", "LyonsGroupLy", "LetterNumber", "ListPicker", "MachineNumberQ", "MaxMemoryUsed", "MinimalPolynomial", "MachinePrecision", "MaxMixtureKernels", "MinimalStateSpaceModel", "Magenta", "MaxOverlapFraction", "Minimize", "Magnification", "MaxPlotPoints", "MinimumTimeIncrement", "Magnify", "MaxRecursion", "MinIntervalSize", "MailAddressValidation", "MaxStableDistribution", "MinkowskiQuestionMark", "MailExecute", "MaxStepFraction", "MinLimit", "MailFolder", "MaxSteps", "MinMax", "MailItem", "MaxStepSize", "MinorPlanetData", "MailReceiverFunction", "MaxTrainingRounds", "Minors", "MailResponseFunction", "MaxValue", "MinStableDistribution", "MailSearch", "MaxwellDistribution", "Minus", "MailServerConnect", "MaxWordGap", "MinusPlus", "MailServerConnection", "McLaughlinGroupMcL", "MinValue", "MailSettings", "Mean", "Missing", "Majority", "MeanAbsoluteLossLayer", "MissingBehavior", "MakeBoxes", "MeanAround", "MissingDataMethod", "MakeExpression", "MeanClusteringCoefficient", "MissingDataRules", "ManagedLibraryExpressionID", "MeanDegreeConnectivity", "MissingQ", "ManagedLibraryExpressionQ", "MeanDeviation", "MissingString", "MandelbrotSetBoettcher", "MeanFilter", "MissingStyle", "MandelbrotSetDistance", "MeanGraphDistance", "MissingValuePattern", "MandelbrotSetIterationCount", "MeanNeighborDegree", "MittagLefflerE", "MandelbrotSetMemberQ", "MeanShift", "MixedFractionParts", "MandelbrotSetPlot", "MeanShiftFilter", "MixedGraphQ", "MangoldtLambda", "MeanSquaredLossLayer", "MixedMagnitude", "ManhattanDistance", "Median", "MixedRadix", "Manipulate", "MedianDeviation", "MixedRadixQuantity", "Manipulator", "MedianFilter", "MixedUnit", "MannedSpaceMissionData", "MedicalTestData", "MixtureDistribution", "MannWhitneyTest", "Medium", "Mod", "MantissaExponent", "MeijerG", "Modal", "Manual", "MeijerGReduce", "ModularInverse", "Map", "MeixnerDistribution", "ModularLambda", "MapAll", "MellinConvolve", "Module", "MapAt", "MellinTransform", "Modulus", "MapIndexed", "MemberQ", "MoebiusMu", "MAProcess", "MemoryAvailable", "Molecule", "MapThread", "MemoryConstrained", "MoleculeContainsQ", "MarchenkoPasturDistribution", "MemoryConstraint", "MoleculeEquivalentQ", "MarcumQ", "MemoryInUse", "MoleculeGraph", "MardiaCombinedTest", "MengerMesh", "MoleculeModify", "MardiaKurtosisTest", "MenuCommandKey", "MoleculePattern", "MardiaSkewnessTest", "MenuPacket", "MoleculePlot", "MarginalDistribution", "MenuSortingValue", "MoleculePlot3D", "MarkovProcessProperties", "MenuStyle", "MoleculeProperty", "Masking", "MenuView", "MoleculeQ", "MatchingDissimilarity", "Merge", "MoleculeRecognize", "MatchLocalNames", "MergingFunction", "MoleculeValue", "MatchQ", "MersennePrimeExponent", "Moment", "MathematicalFunctionData", "MersennePrimeExponentQ", "MomentConvert", "MathieuC", "Mesh", "MomentEvaluate", "MathieuCharacteristicA", "MeshCellCentroid", "MomentGeneratingFunction", "MathieuCharacteristicB", "MeshCellCount", "MomentOfInertia", "MathieuCharacteristicExponent", "MeshCellHighlight", "Monday", "MathieuCPrime", "MeshCellIndex", "Monitor", "MathieuGroupM11", "MeshCellLabel", "MonomialList", "MathieuGroupM12", "MeshCellMarker", "MonsterGroupM", "MathieuGroupM22", "MeshCellMeasure", "MoonPhase", "MathieuGroupM23", "MeshCellQuality", "MoonPosition", "MathieuGroupM24", "MeshCells", "MorletWavelet", "MathieuS", "MeshCellShapeFunction", "MorphologicalBinarize", "MathieuSPrime", "MeshCellStyle", "MorphologicalBranchPoints", "MathMLForm", "MeshConnectivityGraph", "MorphologicalComponents", "Matrices", "MeshCoordinates", "MorphologicalEulerNumber", "MatrixExp", "MeshFunctions", "MorphologicalGraph", "MatrixForm", "MeshPrimitives", "MorphologicalPerimeter", "MatrixFunction", "MeshQualityGoal", "MorphologicalTransform", "MatrixLog", "MeshRefinementFunction", "MortalityData", "MatrixNormalDistribution", "MeshRegion", "Most", "MatrixPlot", "MeshRegionQ", "MountainData", "MatrixPower", "MeshShading", "MouseAnnotation", "MatrixPropertyDistribution", "MeshStyle", "MouseAppearance", "MatrixQ", "Message", "Mouseover", "MatrixRank", "MessageDialog", "MousePosition", "MatrixTDistribution", "MessageList", "MovieData", "Max", "MessageName", "MovingAverage", "MaxCellMeasure", "MessagePacket", "MovingMap", "MaxColorDistance", "Messages", "MovingMedian", "MaxDate", "MetaInformation", "MoyalDistribution", "MaxDetect", "MeteorShowerData", "Multicolumn", "MaxDuration", "Method", "MultiedgeStyle", "MaxExtraBandwidths", "MexicanHatWavelet", "MultigraphQ", "MaxExtraConditions", "MeyerWavelet", "Multinomial", "MaxFeatureDisplacement", "Midpoint", "MultinomialDistribution", "MaxFeatures", "Min", "MultinormalDistribution", "MaxFilter", "MinColorDistance", "MultiplicativeOrder", "MaximalBy", "MinDate", "MultiplySides", "Maximize", "MinDetect", "Multiselection", "MaxItems", "MineralData", "MultivariateHypergeometricDistribution", "MaxIterations", "MinFilter", "MultivariatePoissonDistribution", "MaxLimit", "MinimalBy", "MultivariateTDistribution", "N", "NHoldFirst", "NotificationFunction", "NakagamiDistribution", "NHoldRest", "NotLeftTriangle", "NameQ", "NicholsGridLines", "NotLeftTriangleBar", "Names", "NicholsPlot", "NotLeftTriangleEqual", "Nand", "NightHemisphere", "NotLess", "NArgMax", "NIntegrate", "NotLessEqual", "NArgMin", "NMaximize", "NotLessFullEqual", "NBodySimulation", "NMaxValue", "NotLessGreater", "NBodySimulationData", "NMinimize", "NotLessLess", "NCache", "NMinValue", "NotLessSlantEqual", "NDEigensystem", "NominalVariables", "NotLessTilde", "NDEigenvalues", "NoncentralBetaDistribution", "NotNestedGreaterGreater", "NDSolve", "NoncentralChiSquareDistribution", "NotNestedLessLess", "NDSolveValue", "NoncentralFRatioDistribution", "NotPrecedes", "Nearest", "NoncentralStudentTDistribution", "NotPrecedesEqual", "NearestFunction", "NonCommutativeMultiply", "NotPrecedesSlantEqual", "NearestMeshCells", "NonConstants", "NotPrecedesTilde", "NearestNeighborGraph", "NondimensionalizationTransform", "NotReverseElement", "NearestTo", "None", "NotRightTriangle", "NebulaData", "NoneTrue", "NotRightTriangleBar", "NeedlemanWunschSimilarity", "NonlinearModelFit", "NotRightTriangleEqual", "Needs", "NonlinearStateSpaceModel", "NotSquareSubset", "Negative", "NonlocalMeansFilter", "NotSquareSubsetEqual", "NegativeBinomialDistribution", "NonNegative", "NotSquareSuperset", "NegativeDefiniteMatrixQ", "NonNegativeIntegers", "NotSquareSupersetEqual", "NegativeIntegers", "NonNegativeRationals", "NotSubset", "NegativeMultinomialDistribution", "NonNegativeReals", "NotSubsetEqual", "NegativeRationals", "NonPositive", "NotSucceeds", "NegativeReals", "NonPositiveIntegers", "NotSucceedsEqual", "NegativeSemidefiniteMatrixQ", "NonPositiveRationals", "NotSucceedsSlantEqual", "NeighborhoodData", "NonPositiveReals", "NotSucceedsTilde", "NeighborhoodGraph", "Nor", "NotSuperset", "Nest", "NorlundB", "NotSupersetEqual", "NestedGreaterGreater", "Norm", "NotTilde", "NestedLessLess", "Normal", "NotTildeEqual", "NestGraph", "NormalDistribution", "NotTildeFullEqual", "NestList", "NormalizationLayer", "NotTildeTilde", "NestWhile", "Normalize", "NotVerticalBar", "NestWhileList", "Normalized", "Now", "NetAppend", "NormalizedSquaredEuclideanDistance", "NoWhitespace", "NetBidirectionalOperator", "NormalMatrixQ", "NProbability", "NetChain", "NormalsFunction", "NProduct", "NetDecoder", "NormFunction", "NRoots", "NetDelete", "Not", "NSolve", "NetDrop", "NotCongruent", "NSum", "NetEncoder", "NotCupCap", "NuclearExplosionData", "NetEvaluationMode", "NotDoubleVerticalBar", "NuclearReactorData", "NetExtract", "Notebook", "Null", "NetFlatten", "NotebookApply", "NullRecords", "NetFoldOperator", "NotebookAutoSave", "NullSpace", "NetGANOperator", "NotebookClose", "NullWords", "NetGraph", "NotebookDelete", "Number", "NetInitialize", "NotebookDirectory", "NumberCompose", "NetInsert", "NotebookDynamicExpression", "NumberDecompose", "NetInsertSharedArrays", "NotebookEvaluate", "NumberExpand", "NetJoin", "NotebookEventActions", "NumberFieldClassNumber", "NetMapOperator", "NotebookFileName", "NumberFieldDiscriminant", "NetMapThreadOperator", "NotebookFind", "NumberFieldFundamentalUnits", "NetMeasurements", "NotebookGet", "NumberFieldIntegralBasis", "NetModel", "NotebookImport", "NumberFieldNormRepresentatives", "NetNestOperator", "NotebookInformation", "NumberFieldRegulator", "NetPairEmbeddingOperator", "NotebookLocate", "NumberFieldRootsOfUnity", "NetPort", "NotebookObject", "NumberFieldSignature", "NetPortGradient", "NotebookOpen", "NumberForm", "NetPrepend", "NotebookPrint", "NumberFormat", "NetRename", "NotebookPut", "NumberLinePlot", "NetReplace", "NotebookRead", "NumberMarks", "NetReplacePart", "Notebooks", "NumberMultiplier", "NetSharedArray", "NotebookSave", "NumberPadding", "NetStateObject", "NotebookSelection", "NumberPoint", "NetTake", "NotebooksMenu", "NumberQ", "NetTrain", "NotebookTemplate", "NumberSeparator", "NetTrainResultsObject", "NotebookWrite", "NumberSigns", "NetworkPacketCapture", "NotElement", "NumberString", "NetworkPacketRecording", "NotEqualTilde", "Numerator", "NetworkPacketTrace", "NotExists", "NumeratorDenominator", "NeumannValue", "NotGreater", "NumericalOrder", "NevilleThetaC", "NotGreaterEqual", "NumericalSort", "NevilleThetaD", "NotGreaterFullEqual", "NumericArray", "NevilleThetaN", "NotGreaterGreater", "NumericArrayQ", "NevilleThetaS", "NotGreaterLess", "NumericArrayType", "NExpectation", "NotGreaterSlantEqual", "NumericFunction", "NextCell", "NotGreaterTilde", "NumericQ", "NextDate", "Nothing", "NuttallWindow", "NextPrime", "NotHumpDownHump", "NyquistGridLines", "NHoldAll", "NotHumpEqual", "NyquistPlot", "O", "OperatingSystem", "OuterPolyhedron", "ObservabilityGramian", "OperatorApplied", "OutputControllabilityMatrix", "ObservabilityMatrix", "OptimumFlowData", "OutputControllableModelQ", "ObservableDecomposition", "Optional", "OutputForm", "ObservableModelQ", "OptionalElement", "OutputNamePacket", "OceanData", "Options", "OutputResponse", "Octahedron", "OptionsPattern", "OutputSizeLimit", "OddQ", "OptionValue", "OutputStream", "Off", "Or", "OverBar", "Offset", "Orange", "OverDot", "On", "Order", "Overflow", "ONanGroupON", "OrderDistribution", "OverHat", "Once", "OrderedQ", "Overlaps", "OneIdentity", "Ordering", "Overlay", "Opacity", "OrderingBy", "Overscript", "OpacityFunction", "OrderingLayer", "OverscriptBox", "OpacityFunctionScaling", "Orderless", "OverscriptBoxOptions", "OpenAppend", "OrderlessPatternSequence", "OverTilde", "Opener", "OrnsteinUhlenbeckProcess", "OverVector", "OpenerView", "Orthogonalize", "OverwriteTarget", "Opening", "OrthogonalMatrixQ", "OwenT", "OpenRead", "Out", "OwnValues", "OpenWrite", "Outer", "Operate", "OuterPolygon", "PacletDataRebuild", "PeriodicBoundaryCondition", "PolynomialLCM", "PacletDirectoryLoad", "Periodogram", "PolynomialMod", "PacletDirectoryUnload", "PeriodogramArray", "PolynomialQ", "PacletDisable", "Permanent", "PolynomialQuotient", "PacletEnable", "Permissions", "PolynomialQuotientRemainder", "PacletFind", "PermissionsGroup", "PolynomialReduce", "PacletFindRemote", "PermissionsGroups", "PolynomialRemainder", "PacletInstall", "PermissionsKey", "PoolingLayer", "PacletInstallSubmit", "PermissionsKeys", "PopupMenu", "PacletNewerQ", "PermutationCycles", "PopupView", "PacletObject", "PermutationCyclesQ", "PopupWindow", "PacletSite", "PermutationGroup", "Position", "PacletSiteObject", "PermutationLength", "PositionIndex", "PacletSiteRegister", "PermutationList", "Positive", "PacletSites", "PermutationListQ", "PositiveDefiniteMatrixQ", "PacletSiteUnregister", "PermutationMax", "PositiveIntegers", "PacletSiteUpdate", "PermutationMin", "PositiveRationals", "PacletUninstall", "PermutationOrder", "PositiveReals", "PaddedForm", "PermutationPower", "PositiveSemidefiniteMatrixQ", "Padding", "PermutationProduct", "PossibleZeroQ", "PaddingLayer", "PermutationReplace", "Postfix", "PaddingSize", "Permutations", "Power", "PadeApproximant", "PermutationSupport", "PowerDistribution", "PadLeft", "Permute", "PowerExpand", "PadRight", "PeronaMalikFilter", "PowerMod", "PageBreakAbove", "PerpendicularBisector", "PowerModList", "PageBreakBelow", "PersistenceLocation", "PowerRange", "PageBreakWithin", "PersistenceTime", "PowerSpectralDensity", "PageFooters", "PersistentObject", "PowersRepresentations", "PageHeaders", "PersistentObjects", "PowerSymmetricPolynomial", "PageRankCentrality", "PersistentValue", "PrecedenceForm", "PageTheme", "PersonData", "Precedes", "PageWidth", "PERTDistribution", "PrecedesEqual", "Pagination", "PetersenGraph", "PrecedesSlantEqual", "PairedBarChart", "PhaseMargins", "PrecedesTilde", "PairedHistogram", "PhaseRange", "Precision", "PairedSmoothHistogram", "PhysicalSystemData", "PrecisionGoal", "PairedTTest", "Pi", "PreDecrement", "PairedZTest", "Pick", "Predict", "PaletteNotebook", "PIDData", "PredictorFunction", "PalindromeQ", "PIDDerivativeFilter", "PredictorMeasurements", "Pane", "PIDFeedforward", "PredictorMeasurementsObject", "Panel", "PIDTune", "PreemptProtect", "Paneled", "Piecewise", "Prefix", "PaneSelector", "PiecewiseExpand", "PreIncrement", "ParabolicCylinderD", "PieChart", "Prepend", "ParagraphIndent", "PieChart3D", "PrependLayer", "ParagraphSpacing", "PillaiTrace", "PrependTo", "ParallelArray", "PillaiTraceTest", "PreprocessingRules", "ParallelCombine", "PingTime", "PreserveColor", "ParallelDo", "Pink", "PreserveImageOptions", "Parallelepiped", "PitchRecognize", "PreviousCell", "ParallelEvaluate", "PixelValue", "PreviousDate", "Parallelization", "PixelValuePositions", "PriceGraphDistribution", "Parallelize", "Placed", "Prime", "ParallelMap", "Placeholder", "PrimeNu", "ParallelNeeds", "PlaceholderReplace", "PrimeOmega", "Parallelogram", "Plain", "PrimePi", "ParallelProduct", "PlanarAngle", "PrimePowerQ", "ParallelSubmit", "PlanarGraph", "PrimeQ", "ParallelSum", "PlanarGraphQ", "Primes", "ParallelTable", "PlanckRadiationLaw", "PrimeZetaP", "ParallelTry", "PlaneCurveData", "PrimitivePolynomialQ", "ParameterEstimator", "PlanetaryMoonData", "PrimitiveRoot", "ParameterMixtureDistribution", "PlanetData", "PrimitiveRootList", "ParametricFunction", "PlantData", "PrincipalComponents", "ParametricNDSolve", "Play", "PrincipalValue", "ParametricNDSolveValue", "PlayRange", "Print", "ParametricPlot", "Plot", "PrintableASCIIQ", "ParametricPlot3D", "Plot3D", "PrintingStyleEnvironment", "ParametricRampLayer", "PlotLabel", "Printout3D", "ParametricRegion", "PlotLabels", "Printout3DPreviewer", "ParentBox", "PlotLayout", "PrintTemporary", "ParentCell", "PlotLegends", "Prism", "ParentDirectory", "PlotMarkers", "PrivateCellOptions", "ParentNotebook", "PlotPoints", "PrivateFontOptions", "ParetoDistribution", "PlotRange", "PrivateKey", "ParetoPickandsDistribution", "PlotRangeClipping", "PrivateNotebookOptions", "ParkData", "PlotRangePadding", "Probability", "Part", "PlotRegion", "ProbabilityDistribution", "PartBehavior", "PlotStyle", "ProbabilityPlot", "PartialCorrelationFunction", "PlotTheme", "ProbabilityScalePlot", "ParticleAcceleratorData", "Pluralize", "ProbitModelFit", "ParticleData", "Plus", "ProcessConnection", "Partition", "PlusMinus", "ProcessDirectory", "PartitionGranularity", "Pochhammer", "ProcessEnvironment", "PartitionsP", "PodStates", "Processes", "PartitionsQ", "PodWidth", "ProcessEstimator", "PartLayer", "Point", "ProcessInformation", "PartOfSpeech", "PointFigureChart", "ProcessObject", "PartProtection", "PointLegend", "ProcessParameterAssumptions", "ParzenWindow", "PointSize", "ProcessParameterQ", "PascalDistribution", "PoissonConsulDistribution", "ProcessStatus", "PassEventsDown", "PoissonDistribution", "Product", "PassEventsUp", "PoissonProcess", "ProductDistribution", "Paste", "PoissonWindow", "ProductLog", "PasteButton", "PolarAxes", "ProgressIndicator", "Path", "PolarAxesOrigin", "Projection", "PathGraph", "PolarGridLines", "Prolog", "PathGraphQ", "PolarPlot", "ProofObject", "Pattern", "PolarTicks", "Proportion", "PatternFilling", "PoleZeroMarkers", "Proportional", "PatternSequence", "PolyaAeppliDistribution", "Protect", "PatternTest", "PolyGamma", "Protected", "PauliMatrix", "Polygon", "ProteinData", "PaulWavelet", "PolygonalNumber", "Pruning", "Pause", "PolygonAngle", "PseudoInverse", "PDF", "PolygonCoordinates", "PsychrometricPropertyData", "PeakDetect", "PolygonDecomposition", "PublicKey", "PeanoCurve", "Polyhedron", "PublisherID", "PearsonChiSquareTest", "PolyhedronAngle", "PulsarData", "PearsonCorrelationTest", "PolyhedronCoordinates", "PunctuationCharacter", "PearsonDistribution", "PolyhedronData", "Purple", "PercentForm", "PolyhedronDecomposition", "Put", "PerfectNumber", "PolyhedronGenus", "PutAppend", "PerfectNumberQ", "PolyLog", "Pyramid", "PerformanceGoal", "PolynomialExtendedGCD", "Perimeter", "PolynomialGCD", "QBinomial", "Quantity", "Quartics", "QFactorial", "QuantityArray", "QuartileDeviation", "QGamma", "QuantityDistribution", "Quartiles", "QHypergeometricPFQ", "QuantityForm", "QuartileSkewness", "QnDispersion", "QuantityMagnitude", "Query", "QPochhammer", "QuantityQ", "QueueingNetworkProcess", "QPolyGamma", "QuantityUnit", "QueueingProcess", "QRDecomposition", "QuantityVariable", "QueueProperties", "QuadraticIrrationalQ", "QuantityVariableCanonicalUnit", "Quiet", "QuadraticOptimization", "QuantityVariableDimensions", "Quit", "Quantile", "QuantityVariableIdentifier", "Quotient", "QuantilePlot", "QuantityVariablePhysicalQuantity", "QuotientRemainder", "RadialGradientImage", "RegionEqual", "Restricted", "RadialityCentrality", "RegionFillingStyle", "Resultant", "RadicalBox", "RegionFunction", "Return", "RadicalBoxOptions", "RegionImage", "ReturnExpressionPacket", "RadioButton", "RegionIntersection", "ReturnPacket", "RadioButtonBar", "RegionMeasure", "ReturnReceiptFunction", "Radon", "RegionMember", "ReturnTextPacket", "RadonTransform", "RegionMemberFunction", "Reverse", "RamanujanTau", "RegionMoment", "ReverseApplied", "RamanujanTauL", "RegionNearest", "ReverseBiorthogonalSplineWavelet", "RamanujanTauTheta", "RegionNearestFunction", "ReverseElement", "RamanujanTauZ", "RegionPlot", "ReverseEquilibrium", "Ramp", "RegionPlot3D", "ReverseGraph", "RandomChoice", "RegionProduct", "ReverseSort", "RandomColor", "RegionQ", "ReverseSortBy", "RandomComplex", "RegionResize", "ReverseUpEquilibrium", "RandomEntity", "RegionSize", "RevolutionAxis", "RandomFunction", "RegionSymmetricDifference", "RevolutionPlot3D", "RandomGeoPosition", "RegionUnion", "RGBColor", "RandomGraph", "RegionWithin", "RiccatiSolve", "RandomImage", "RegisterExternalEvaluator", "RiceDistribution", "RandomInstance", "RegularExpression", "RidgeFilter", "RandomInteger", "Regularization", "RiemannR", "RandomPermutation", "RegularlySampledQ", "RiemannSiegelTheta", "RandomPoint", "RegularPolygon", "RiemannSiegelZ", "RandomPolygon", "ReIm", "RiemannXi", "RandomPolyhedron", "ReImLabels", "Riffle", "RandomPrime", "ReImPlot", "Right", "RandomReal", "ReImStyle", "RightArrow", "RandomSample", "RelationalDatabase", "RightArrowBar", "RandomSeeding", "RelationGraph", "RightArrowLeftArrow", "RandomVariate", "ReleaseHold", "RightComposition", "RandomWalkProcess", "ReliabilityDistribution", "RightCosetRepresentative", "RandomWord", "ReliefImage", "RightDownTeeVector", "Range", "ReliefPlot", "RightDownVector", "RangeFilter", "RemoteAuthorizationCaching", "RightDownVectorBar", "RankedMax", "RemoteConnect", "RightTee", "RankedMin", "RemoteConnectionObject", "RightTeeArrow", "RarerProbability", "RemoteFile", "RightTeeVector", "Raster", "RemoteRun", "RightTriangle", "Raster3D", "RemoteRunProcess", "RightTriangleBar", "Rasterize", "Remove", "RightTriangleEqual", "RasterSize", "RemoveAlphaChannel", "RightUpDownVector", "Rational", "RemoveAudioStream", "RightUpTeeVector", "Rationalize", "RemoveBackground", "RightUpVector", "Rationals", "RemoveChannelListener", "RightUpVectorBar", "Ratios", "RemoveChannelSubscribers", "RightVector", "RawBoxes", "RemoveDiacritics", "RightVectorBar", "RawData", "RemoveInputStreamMethod", "RiskAchievementImportance", "RayleighDistribution", "RemoveOutputStreamMethod", "RiskReductionImportance", "Re", "RemoveUsers", "RogersTanimotoDissimilarity", "Read", "RemoveVideoStream", "RollPitchYawAngles", "ReadByteArray", "RenameDirectory", "RollPitchYawMatrix", "ReadLine", "RenameFile", "RomanNumeral", "ReadList", "RenderingOptions", "Root", "ReadProtected", "RenewalProcess", "RootApproximant", "ReadString", "RenkoChart", "RootIntervals", "Real", "RepairMesh", "RootLocusPlot", "RealAbs", "Repeated", "RootMeanSquare", "RealBlockDiagonalForm", "RepeatedNull", "RootOfUnityQ", "RealDigits", "RepeatedTiming", "RootReduce", "RealExponent", "RepeatingElement", "Roots", "Reals", "Replace", "RootSum", "RealSign", "ReplaceAll", "Rotate", "Reap", "ReplaceImageValue", "RotateLabel", "RecognitionPrior", "ReplaceList", "RotateLeft", "Record", "ReplacePart", "RotateRight", "RecordLists", "ReplacePixelValue", "RotationAction", "RecordSeparators", "ReplaceRepeated", "RotationMatrix", "Rectangle", "ReplicateLayer", "RotationTransform", "RectangleChart", "RequiredPhysicalQuantities", "Round", "RectangleChart3D", "Resampling", "RoundingRadius", "RectangularRepeatingElement", "ResamplingAlgorithmData", "Row", "RecurrenceFilter", "ResamplingMethod", "RowAlignments", "RecurrenceTable", "Rescale", "RowBox", "Red", "RescalingTransform", "RowLines", "Reduce", "ResetDirectory", "RowMinHeight", "ReferenceLineStyle", "ReshapeLayer", "RowReduce", "Refine", "Residue", "RowsEqual", "ReflectionMatrix", "ResizeLayer", "RowSpacings", "ReflectionTransform", "Resolve", "RSolve", "Refresh", "ResourceData", "RSolveValue", "RefreshRate", "ResourceFunction", "RudinShapiro", "Region", "ResourceObject", "RudvalisGroupRu", "RegionBinarize", "ResourceRegister", "Rule", "RegionBoundary", "ResourceRemove", "RuleDelayed", "RegionBoundaryStyle", "ResourceSearch", "RulePlot", "RegionBounds", "ResourceSubmit", "RulerUnits", "RegionCentroid", "ResourceSystemBase", "Run", "RegionDifference", "ResourceSystemPath", "RunProcess", "RegionDimension", "ResourceUpdate", "RunThrough", "RegionDisjoint", "ResourceVersion", "RuntimeAttributes", "RegionDistance", "ResponseForm", "RuntimeOptions", "RegionDistanceFunction", "Rest", "RussellRaoDissimilarity", "RegionEmbeddingDimension", "RestartInterval", "SameQ", "SingularValueDecomposition", "StreamDensityPlot", "SameTest", "SingularValueList", "StreamMarkers", "SameTestProperties", "SingularValuePlot", "StreamPlot", "SampledEntityClass", "Sinh", "StreamPoints", "SampleDepth", "SinhIntegral", "StreamPosition", "SampledSoundFunction", "SinIntegral", "Streams", "SampledSoundList", "SixJSymbol", "StreamScale", "SampleRate", "Skeleton", "StreamStyle", "SamplingPeriod", "SkeletonTransform", "String", "SARIMAProcess", "SkellamDistribution", "StringCases", "SARMAProcess", "Skewness", "StringContainsQ", "SASTriangle", "SkewNormalDistribution", "StringCount", "SatelliteData", "Skip", "StringDelete", "SatisfiabilityCount", "SliceContourPlot3D", "StringDrop", "SatisfiabilityInstances", "SliceDensityPlot3D", "StringEndsQ", "SatisfiableQ", "SliceDistribution", "StringExpression", "Saturday", "SliceVectorPlot3D", "StringExtract", "Save", "Slider", "StringForm", "SaveConnection", "Slider2D", "StringFormat", "SaveDefinitions", "SlideView", "StringFreeQ", "SavitzkyGolayMatrix", "Slot", "StringInsert", "SawtoothWave", "SlotSequence", "StringJoin", "Scale", "Small", "StringLength", "Scaled", "SmallCircle", "StringMatchQ", "ScaleDivisions", "Smaller", "StringPadLeft", "ScaleOrigin", "SmithDecomposition", "StringPadRight", "ScalePadding", "SmithDelayCompensator", "StringPart", "ScaleRanges", "SmithWatermanSimilarity", "StringPartition", "ScaleRangeStyle", "SmoothDensityHistogram", "StringPosition", "ScalingFunctions", "SmoothHistogram", "StringQ", "ScalingMatrix", "SmoothHistogram3D", "StringRepeat", "ScalingTransform", "SmoothKernelDistribution", "StringReplace", "Scan", "SnDispersion", "StringReplaceList", "ScheduledTask", "Snippet", "StringReplacePart", "SchurDecomposition", "SnubPolyhedron", "StringReverse", "ScientificForm", "SocialMediaData", "StringRiffle", "ScientificNotationThreshold", "SocketConnect", "StringRotateLeft", "ScorerGi", "SocketListen", "StringRotateRight", "ScorerGiPrime", "SocketListener", "StringSkeleton", "ScorerHi", "SocketObject", "StringSplit", "ScorerHiPrime", "SocketOpen", "StringStartsQ", "ScreenStyleEnvironment", "SocketReadMessage", "StringTake", "ScriptBaselineShifts", "SocketReadyQ", "StringTemplate", "ScriptMinSize", "Sockets", "StringToByteArray", "ScriptSizeMultipliers", "SocketWaitAll", "StringToStream", "Scrollbars", "SocketWaitNext", "StringTrim", "ScrollingOptions", "SoftmaxLayer", "StripBoxes", "ScrollPosition", "SokalSneathDissimilarity", "StripOnInput", "SearchAdjustment", "SolarEclipse", "StripWrapperBoxes", "SearchIndexObject", "SolarSystemFeatureData", "StructuralImportance", "SearchIndices", "SolidAngle", "StructuredSelection", "SearchQueryString", "SolidData", "StruveH", "SearchResultObject", "SolidRegionQ", "StruveL", "Sec", "Solve", "Stub", "Sech", "SolveAlways", "StudentTDistribution", "SechDistribution", "Sort", "Style", "SecondOrderConeOptimization", "SortBy", "StyleBox", "SectorChart", "SortedBy", "StyleData", "SectorChart3D", "SortedEntityClass", "StyleDefinitions", "SectorOrigin", "Sound", "Subdivide", "SectorSpacing", "SoundNote", "Subfactorial", "SecuredAuthenticationKey", "SoundVolume", "Subgraph", "SecuredAuthenticationKeys", "SourceLink", "SubMinus", "SeedRandom", "Sow", "SubPlus", "Select", "SpaceCurveData", "SubresultantPolynomialRemainders", "Selectable", "Spacer", "SubresultantPolynomials", "SelectComponents", "Spacings", "Subresultants", "SelectedCells", "Span", "Subscript", "SelectedNotebook", "SpanFromAbove", "SubscriptBox", "SelectFirst", "SpanFromBoth", "SubscriptBoxOptions", "SelectionCreateCell", "SpanFromLeft", "Subsequences", "SelectionEvaluate", "SparseArray", "Subset", "SelectionEvaluateCreateCell", "SpatialGraphDistribution", "SubsetCases", "SelectionMove", "SpatialMedian", "SubsetCount", "SelfLoopStyle", "SpatialTransformationLayer", "SubsetEqual", "SemanticImport", "Speak", "SubsetMap", "SemanticImportString", "SpeakerMatchQ", "SubsetPosition", "SemanticInterpretation", "SpearmanRankTest", "SubsetQ", "SemialgebraicComponentInstances", "SpearmanRho", "SubsetReplace", "SemidefiniteOptimization", "SpeciesData", "Subsets", "SendMail", "SpecificityGoal", "SubStar", "SendMessage", "SpectralLineData", "SubstitutionSystem", "Sequence", "Spectrogram", "Subsuperscript", "SequenceAlignment", "SpectrogramArray", "SubsuperscriptBox", "SequenceCases", "Specularity", "SubsuperscriptBoxOptions", "SequenceCount", "SpeechCases", "SubtitleEncoding", "SequenceFold", "SpeechInterpreter", "SubtitleTracks", "SequenceFoldList", "SpeechRecognize", "Subtract", "SequenceHold", "SpeechSynthesize", "SubtractFrom", "SequenceLastLayer", "SpellingCorrection", "SubtractSides", "SequenceMostLayer", "SpellingCorrectionList", "Succeeds", "SequencePosition", "SpellingOptions", "SucceedsEqual", "SequencePredict", "Sphere", "SucceedsSlantEqual", "SequencePredictorFunction", "SpherePoints", "SucceedsTilde", "SequenceReplace", "SphericalBesselJ", "Success", "SequenceRestLayer", "SphericalBesselY", "SuchThat", "SequenceReverseLayer", "SphericalHankelH1", "Sum", "SequenceSplit", "SphericalHankelH2", "SumConvergence", "Series", "SphericalHarmonicY", "SummationLayer", "SeriesCoefficient", "SphericalPlot3D", "Sunday", "SeriesData", "SphericalRegion", "SunPosition", "SeriesTermGoal", "SphericalShell", "Sunrise", "ServiceConnect", "SpheroidalEigenvalue", "Sunset", "ServiceDisconnect", "SpheroidalJoiningFactor", "SuperDagger", "ServiceExecute", "SpheroidalPS", "SuperMinus", "ServiceObject", "SpheroidalPSPrime", "SupernovaData", "ServiceRequest", "SpheroidalQS", "SuperPlus", "ServiceSubmit", "SpheroidalQSPrime", "Superscript", "SessionSubmit", "SpheroidalRadialFactor", "SuperscriptBox", "SessionTime", "SpheroidalS1", "SuperscriptBoxOptions", "Set", "SpheroidalS1Prime", "Superset", "SetAccuracy", "SpheroidalS2", "SupersetEqual", "SetAlphaChannel", "SpheroidalS2Prime", "SuperStar", "SetAttributes", "Splice", "Surd", "SetCloudDirectory", "SplicedDistribution", "SurdForm", "SetCookies", "SplineClosed", "SurfaceArea", "SetDelayed", "SplineDegree", "SurfaceData", "SetDirectory", "SplineKnots", "SurvivalDistribution", "SetEnvironment", "SplineWeights", "SurvivalFunction", "SetFileDate", "Split", "SurvivalModel", "SetOptions", "SplitBy", "SurvivalModelFit", "SetPermissions", "SpokenString", "SuzukiDistribution", "SetPrecision", "Sqrt", "SuzukiGroupSuz", "SetSelectedNotebook", "SqrtBox", "SwatchLegend", "SetSharedFunction", "SqrtBoxOptions", "Switch", "SetSharedVariable", "Square", "Symbol", "SetStreamPosition", "SquaredEuclideanDistance", "SymbolName", "SetSystemModel", "SquareFreeQ", "SymletWavelet", "SetSystemOptions", "SquareIntersection", "Symmetric", "Setter", "SquareMatrixQ", "SymmetricGroup", "SetterBar", "SquareRepeatingElement", "SymmetricKey", "Setting", "SquaresR", "SymmetricMatrixQ", "SetUsers", "SquareSubset", "SymmetricPolynomial", "Shallow", "SquareSubsetEqual", "SymmetricReduction", "ShannonWavelet", "SquareSuperset", "Symmetrize", "ShapiroWilkTest", "SquareSupersetEqual", "SymmetrizedArray", "Share", "SquareUnion", "SymmetrizedArrayRules", "SharingList", "SquareWave", "SymmetrizedDependentComponents", "Sharpen", "SSSTriangle", "SymmetrizedIndependentComponents", "ShearingMatrix", "StabilityMargins", "SymmetrizedReplacePart", "ShearingTransform", "StabilityMarginsStyle", "SynchronousInitialization", "ShellRegion", "StableDistribution", "SynchronousUpdating", "ShenCastanMatrix", "Stack", "Synonyms", "ShiftedGompertzDistribution", "StackBegin", "SyntaxForm", "ShiftRegisterSequence", "StackComplete", "SyntaxInformation", "Short", "StackedDateListPlot", "SyntaxLength", "ShortDownArrow", "StackedListPlot", "SyntaxPacket", "Shortest", "StackInhibit", "SyntaxQ", "ShortestPathFunction", "StadiumShape", "SynthesizeMissingValues", "ShortLeftArrow", "StandardAtmosphereData", "SystemCredential", "ShortRightArrow", "StandardDeviation", "SystemCredentialData", "ShortTimeFourier", "StandardDeviationFilter", "SystemCredentialKey", "ShortTimeFourierData", "StandardForm", "SystemCredentialKeys", "ShortUpArrow", "Standardize", "SystemCredentialStoreObject", "Show", "Standardized", "SystemDialogInput", "ShowAutoSpellCheck", "StandardOceanData", "SystemInformation", "ShowAutoStyles", "StandbyDistribution", "SystemInstall", "ShowCellBracket", "Star", "SystemModel", "ShowCellLabel", "StarClusterData", "SystemModeler", "ShowCellTags", "StarData", "SystemModelExamples", "ShowCursorTracker", "StarGraph", "SystemModelLinearize", "ShowGroupOpener", "StartExternalSession", "SystemModelParametricSimulate", "ShowPageBreaks", "StartingStepSize", "SystemModelPlot", "ShowSelection", "StartOfLine", "SystemModelProgressReporting", "ShowSpecialCharacters", "StartOfString", "SystemModelReliability", "ShowStringCharacters", "StartProcess", "SystemModels", "ShrinkingDelay", "StartWebSession", "SystemModelSimulate", "SiderealTime", "StateFeedbackGains", "SystemModelSimulateSensitivity", "SiegelTheta", "StateOutputEstimator", "SystemModelSimulationData", "SiegelTukeyTest", "StateResponse", "SystemOpen", "SierpinskiCurve", "StateSpaceModel", "SystemOptions", "SierpinskiMesh", "StateSpaceRealization", "SystemProcessData", "Sign", "StateSpaceTransform", "SystemProcesses", "Signature", "StateTransformationLinearize", "SystemsConnectionsModel", "SignedRankTest", "StationaryDistribution", "SystemsModelDelay", "SignedRegionDistance", "StationaryWaveletPacketTransform", "SystemsModelDelayApproximate", "SignificanceLevel", "StationaryWaveletTransform", "SystemsModelDelete", "SignPadding", "StatusArea", "SystemsModelDimensions", "SignTest", "StatusCentrality", "SystemsModelExtract", "SimilarityRules", "StepMonitor", "SystemsModelFeedbackConnect", "SimpleGraph", "StereochemistryElements", "SystemsModelLabels", "SimpleGraphQ", "StieltjesGamma", "SystemsModelLinearity", "SimplePolygonQ", "StippleShading", "SystemsModelMerge", "SimplePolyhedronQ", "StirlingS1", "SystemsModelOrder", "Simplex", "StirlingS2", "SystemsModelParallelConnect", "Simplify", "StoppingPowerData", "SystemsModelSeriesConnect", "Sin", "StrataVariables", "SystemsModelStateFeedbackConnect", "Sinc", "StratonovichProcess", "SystemsModelVectorRelativeOrders", "SinghMaddalaDistribution", "StreamColorFunction", "SingleLetterItalics", "StreamColorFunctionScaling", "Table", "Thickness", "TraceDepth", "TableAlignments", "Thin", "TraceDialog", "TableDepth", "Thinning", "TraceForward", "TableDirections", "ThompsonGroupTh", "TraceOff", "TableForm", "Thread", "TraceOn", "TableHeadings", "ThreadingLayer", "TraceOriginal", "TableSpacing", "ThreeJSymbol", "TracePrint", "TableView", "Threshold", "TraceScan", "TabView", "Through", "TrackedSymbols", "TagBox", "Throw", "TrackingFunction", "TagBoxOptions", "ThueMorse", "TracyWidomDistribution", "TaggingRules", "Thumbnail", "TradingChart", "TagSet", "Thursday", "TraditionalForm", "TagSetDelayed", "Ticks", "TrainingProgressCheckpointing", "TagUnset", "TicksStyle", "TrainingProgressFunction", "Take", "TideData", "TrainingProgressMeasurements", "TakeDrop", "Tilde", "TrainingProgressReporting", "TakeLargest", "TildeEqual", "TrainingStoppingCriterion", "TakeLargestBy", "TildeFullEqual", "TrainingUpdateSchedule", "TakeList", "TildeTilde", "TransferFunctionCancel", "TakeSmallest", "TimeConstrained", "TransferFunctionExpand", "TakeSmallestBy", "TimeConstraint", "TransferFunctionFactor", "TakeWhile", "TimeDirection", "TransferFunctionModel", "Tally", "TimeFormat", "TransferFunctionPoles", "Tan", "TimeGoal", "TransferFunctionTransform", "Tanh", "TimelinePlot", "TransferFunctionZeros", "TargetDevice", "TimeObject", "TransformationClass", "TargetFunctions", "TimeObjectQ", "TransformationFunction", "TargetSystem", "TimeRemaining", "TransformationFunctions", "TargetUnits", "Times", "TransformationMatrix", "TaskAbort", "TimesBy", "TransformedDistribution", "TaskExecute", "TimeSeries", "TransformedField", "TaskObject", "TimeSeriesAggregate", "TransformedProcess", "TaskRemove", "TimeSeriesForecast", "TransformedRegion", "TaskResume", "TimeSeriesInsert", "TransitionDirection", "Tasks", "TimeSeriesInvertibility", "TransitionDuration", "TaskSuspend", "TimeSeriesMap", "TransitionEffect", "TaskWait", "TimeSeriesMapThread", "TransitiveClosureGraph", "TautologyQ", "TimeSeriesModel", "TransitiveReductionGraph", "TelegraphProcess", "TimeSeriesModelFit", "Translate", "TemplateApply", "TimeSeriesResample", "TranslationOptions", "TemplateBox", "TimeSeriesRescale", "TranslationTransform", "TemplateBoxOptions", "TimeSeriesShift", "Transliterate", "TemplateExpression", "TimeSeriesThread", "Transparent", "TemplateIf", "TimeSeriesWindow", "Transpose", "TemplateObject", "TimeUsed", "TransposeLayer", "TemplateSequence", "TimeValue", "TravelDirections", "TemplateSlot", "TimeZone", "TravelDirectionsData", "TemplateWith", "TimeZoneConvert", "TravelDistance", "TemporalData", "TimeZoneOffset", "TravelDistanceList", "TemporalRegularity", "Timing", "TravelMethod", "Temporary", "Tiny", "TravelTime", "TensorContract", "TitsGroupT", "TreeForm", "TensorDimensions", "ToBoxes", "TreeGraph", "TensorExpand", "ToCharacterCode", "TreeGraphQ", "TensorProduct", "ToContinuousTimeModel", "TreePlot", "TensorRank", "Today", "TrendStyle", "TensorReduce", "ToDiscreteTimeModel", "Triangle", "TensorSymmetry", "ToEntity", "TriangleCenter", "TensorTranspose", "ToeplitzMatrix", "TriangleConstruct", "TensorWedge", "ToExpression", "TriangleMeasurement", "TestID", "Together", "TriangleWave", "TestReport", "Toggler", "TriangularDistribution", "TestReportObject", "TogglerBar", "TriangulateMesh", "TestResultObject", "ToInvertibleTimeSeries", "Trig", "Tetrahedron", "TokenWords", "TrigExpand", "TeXForm", "Tolerance", "TrigFactor", "Text", "ToLowerCase", "TrigFactorList", "TextAlignment", "Tomorrow", "Trigger", "TextCases", "ToNumberField", "TrigReduce", "TextCell", "Tooltip", "TrigToExp", "TextClipboardType", "TooltipDelay", "TrimmedMean", "TextContents", "TooltipStyle", "TrimmedVariance", "TextData", "ToonShading", "TropicalStormData", "TextElement", "Top", "True", "TextGrid", "TopHatTransform", "TrueQ", "TextJustification", "ToPolarCoordinates", "TruncatedDistribution", "TextPacket", "TopologicalSort", "TruncatedPolyhedron", "TextPosition", "ToRadicals", "TsallisQExponentialDistribution", "TextRecognize", "ToRules", "TsallisQGaussianDistribution", "TextSearch", "ToSphericalCoordinates", "TTest", "TextSearchReport", "ToString", "Tube", "TextSentences", "Total", "Tuesday", "TextString", "TotalLayer", "TukeyLambdaDistribution", "TextStructure", "TotalVariationFilter", "TukeyWindow", "TextTranslation", "TotalWidth", "TunnelData", "Texture", "TouchPosition", "Tuples", "TextureCoordinateFunction", "TouchscreenAutoZoom", "TuranGraph", "TextureCoordinateScaling", "TouchscreenControlPlacement", "TuringMachine", "TextWords", "ToUpperCase", "TuttePolynomial", "Therefore", "Tr", "TwoWayRule", "ThermodynamicData", "Trace", "Typed", "ThermometerGauge", "TraceAbove", "TypeSpecifier", "Thick", "TraceBackward", "UnateQ", "UnitaryMatrixQ", "UpperCaseQ", "Uncompress", "UnitBox", "UpperLeftArrow", "UnconstrainedParameters", "UnitConvert", "UpperRightArrow", "Undefined", "UnitDimensions", "UpperTriangularize", "UnderBar", "Unitize", "UpperTriangularMatrixQ", "Underflow", "UnitRootTest", "Upsample", "Underlined", "UnitSimplify", "UpSet", "Underoverscript", "UnitStep", "UpSetDelayed", "UnderoverscriptBox", "UnitSystem", "UpTee", "UnderoverscriptBoxOptions", "UnitTriangle", "UpTeeArrow", "Underscript", "UnitVector", "UpTo", "UnderscriptBox", "UnitVectorLayer", "UpValues", "UnderscriptBoxOptions", "UnityDimensions", "URL", "UnderseaFeatureData", "UniverseModelData", "URLBuild", "UndirectedEdge", "UniversityData", "URLDecode", "UndirectedGraph", "UnixTime", "URLDispatcher", "UndirectedGraphQ", "Unprotect", "URLDownload", "UndoOptions", "UnregisterExternalEvaluator", "URLDownloadSubmit", "UndoTrackedVariables", "UnsameQ", "URLEncode", "Unequal", "UnsavedVariables", "URLExecute", "UnequalTo", "Unset", "URLExpand", "Unevaluated", "UnsetShared", "URLParse", "UniformDistribution", "UpArrow", "URLQueryDecode", "UniformGraphDistribution", "UpArrowBar", "URLQueryEncode", "UniformPolyhedron", "UpArrowDownArrow", "URLRead", "UniformSumDistribution", "Update", "URLResponseTime", "Uninstall", "UpdateInterval", "URLShorten", "Union", "UpdatePacletSites", "URLSubmit", "UnionedEntityClass", "UpdateSearchIndex", "UsingFrontEnd", "UnionPlus", "UpDownArrow", "UtilityFunction", "Unique", "UpEquilibrium", "ValenceErrorHandling", "VerifyDigitalSignature", "VertexStyle", "ValidationLength", "VerifyFileSignature", "VertexTextureCoordinates", "ValidationSet", "VerifyInterpretation", "VertexWeight", "ValueDimensions", "VerifySecurityCertificates", "VertexWeightedGraphQ", "ValuePreprocessingFunction", "VerifySolutions", "VerticalBar", "ValueQ", "VerifyTestAssumptions", "VerticalGauge", "Values", "VersionedPreferences", "VerticalSeparator", "Variables", "VertexAdd", "VerticalSlider", "Variance", "VertexCapacity", "VerticalTilde", "VarianceEquivalenceTest", "VertexColors", "Video", "VarianceEstimatorFunction", "VertexComponent", "VideoEncoding", "VarianceGammaDistribution", "VertexConnectivity", "VideoExtractFrames", "VarianceTest", "VertexContract", "VideoFrameList", "VectorAngle", "VertexCoordinates", "VideoFrameMap", "VectorAround", "VertexCorrelationSimilarity", "VideoPause", "VectorAspectRatio", "VertexCosineSimilarity", "VideoPlay", "VectorColorFunction", "VertexCount", "VideoQ", "VectorColorFunctionScaling", "VertexCoverQ", "VideoStop", "VectorDensityPlot", "VertexDataCoordinates", "VideoStream", "VectorGreater", "VertexDegree", "VideoStreams", "VectorGreaterEqual", "VertexDelete", "VideoTimeSeries", "VectorLess", "VertexDiceSimilarity", "VideoTracks", "VectorLessEqual", "VertexEccentricity", "VideoTrim", "VectorMarkers", "VertexInComponent", "ViewAngle", "VectorPlot", "VertexInDegree", "ViewCenter", "VectorPlot3D", "VertexIndex", "ViewMatrix", "VectorPoints", "VertexJaccardSimilarity", "ViewPoint", "VectorQ", "VertexLabels", "ViewProjection", "VectorRange", "VertexLabelStyle", "ViewRange", "Vectors", "VertexList", "ViewVector", "VectorScaling", "VertexNormals", "ViewVertical", "VectorSizes", "VertexOutComponent", "Visible", "VectorStyle", "VertexOutDegree", "VoiceStyleData", "Vee", "VertexQ", "VoigtDistribution", "Verbatim", "VertexReplace", "VolcanoData", "VerificationTest", "VertexShape", "Volume", "VerifyConvergence", "VertexShapeFunction", "VonMisesDistribution", "VerifyDerivedKey", "VertexSize", "VoronoiMesh", "WaitAll", "WeierstrassEta2", "WindowElements", "WaitNext", "WeierstrassEta3", "WindowFloating", "WakebyDistribution", "WeierstrassHalfPeriods", "WindowFrame", "WalleniusHypergeometricDistribution", "WeierstrassHalfPeriodW1", "WindowFrameElements", "WaringYuleDistribution", "WeierstrassHalfPeriodW2", "WindowMargins", "WarpingCorrespondence", "WeierstrassHalfPeriodW3", "WindowOpacity", "WarpingDistance", "WeierstrassInvariantG2", "WindowSize", "WatershedComponents", "WeierstrassInvariantG3", "WindowStatusArea", "WatsonUSquareTest", "WeierstrassInvariants", "WindowTitle", "WattsStrogatzGraphDistribution", "WeierstrassP", "WindowToolbars", "WaveletBestBasis", "WeierstrassPPrime", "WindSpeedData", "WaveletFilterCoefficients", "WeierstrassSigma", "WindVectorData", "WaveletImagePlot", "WeierstrassZeta", "WinsorizedMean", "WaveletListPlot", "WeightedAdjacencyGraph", "WinsorizedVariance", "WaveletMapIndexed", "WeightedAdjacencyMatrix", "WishartMatrixDistribution", "WaveletMatrixPlot", "WeightedData", "With", "WaveletPhi", "WeightedGraphQ", "WolframAlpha", "WaveletPsi", "Weights", "WolframLanguageData", "WaveletScale", "WelchWindow", "Word", "WaveletScalogram", "WheelGraph", "WordBoundary", "WaveletThreshold", "WhenEvent", "WordCharacter", "WeaklyConnectedComponents", "Which", "WordCloud", "WeaklyConnectedGraphComponents", "While", "WordCount", "WeaklyConnectedGraphQ", "White", "WordCounts", "WeakStationarity", "WhiteNoiseProcess", "WordData", "WeatherData", "WhitePoint", "WordDefinition", "WeatherForecastData", "Whitespace", "WordFrequency", "WebAudioSearch", "WhitespaceCharacter", "WordFrequencyData", "WebElementObject", "WhittakerM", "WordList", "WeberE", "WhittakerW", "WordOrientation", "WebExecute", "WienerFilter", "WordSearch", "WebImage", "WienerProcess", "WordSelectionFunction", "WebImageSearch", "WignerD", "WordSeparators", "WebSearch", "WignerSemicircleDistribution", "WordSpacings", "WebSessionObject", "WikidataData", "WordStem", "WebSessions", "WikidataSearch", "WordTranslation", "WebWindowObject", "WikipediaData", "WorkingPrecision", "Wedge", "WikipediaSearch", "WrapAround", "Wednesday", "WilksW", "Write", "WeibullDistribution", "WilksWTest", "WriteLine", "WeierstrassE1", "WindDirectionData", "WriteString", "WeierstrassE2", "WindingCount", "Wronskian", "WeierstrassE3", "WindingPolygon", "WeierstrassEta1", "WindowClickSelect", "XMLElement", "XMLTemplate", "Xor", "XMLObject", "Xnor", "XYZColor", "Yellow", "Yesterday", "YuleDissimilarity", "ZernikeR", "ZetaZero", "ZoomFactor", "ZeroSymmetric", "ZIPCodeData", "ZTest", "ZeroTest", "ZipfDistribution", "ZTransform", "Zeta", "ZoomCenter"] + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/matlab.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/matlab.rb new file mode 100644 index 0000000..d284401 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/matlab.rb @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Matlab < RegexLexer + title "MATLAB" + desc "Matlab" + tag 'matlab' + aliases 'm' + filenames '*.m' + mimetypes 'text/x-matlab', 'application/x-matlab' + + def self.keywords + @keywords = Set.new %w( + arguments break case catch classdef continue else elseif end for + function global if import methods otherwise parfor persistent + properties return spmd switch try while + ) + end + + # self-modifying method that loads the builtins file + def self.builtins + Kernel::load File.join(Lexers::BASE_DIR, 'matlab/keywords.rb') + builtins + end + + state :root do + rule %r/\s+/m, Text # Whitespace + rule %r([{]%.*?%[}])m, Comment::Multiline + rule %r/%.*$/, Comment::Single + rule %r/([.][.][.])(.*?)$/ do + groups(Keyword, Comment) + end + + rule %r/^(!)(.*?)(?=%|$)/ do |m| + token Keyword, m[1] + delegate Shell, m[2] + end + + + rule %r/[a-zA-Z][_a-zA-Z0-9]*/m do |m| + match = m[0] + if self.class.keywords.include? match + token Keyword + elsif self.class.builtins.include? match + token Name::Builtin + else + token Name + end + end + + rule %r{[(){};:,\/\\\]\[]}, Punctuation + + rule %r/~=|==|<<|>>|[-~+\/*%=<>&^|.@]/, Operator + + + rule %r/(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?/i, Num::Float + rule %r/\d+e[+-]?[0-9]+/i, Num::Float + rule %r/\d+L/, Num::Integer::Long + rule %r/\d+/, Num::Integer + + rule %r/'(?=(.*'))/, Str::Single, :chararray + rule %r/"(?=(.*"))/, Str::Double, :string + rule %r/'/, Operator + end + + state :chararray do + rule %r/[^']+/, Str::Single + rule %r/''/, Str::Escape + rule %r/'/, Str::Single, :pop! + end + + state :string do + rule %r/[^"]+/, Str::Double + rule %r/""/, Str::Escape + rule %r/"/, Str::Double, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/matlab/builtins.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/matlab/builtins.rb new file mode 100644 index 0000000..63d9bb5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/matlab/builtins.rb @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# automatically generated by `rake builtins:matlab` +module Rouge + module Lexers + def Matlab.builtins + @builtins ||= Set.new ["abs", "accumarray", "acos", "acosd", "acosh", "acot", "acotd", "acoth", "acsc", "acscd", "acsch", "actxcontrol", "actxcontrollist", "actxcontrolselect", "actxGetRunningServer", "actxserver", "add", "addboundary", "addcats", "addCause", "addClass", "addCondition", "addConditionsFrom", "addConstructor", "addCorrection", "addedge", "addevent", "addFields", "addFields", "addFile", "addFolderIncludingChildFiles", "addFunction", "addLabel", "addlistener", "addMethod", "addmulti", "addnode", "addOptional", "addParameter", "addParamValue", "addPath", "addpath", "addPlugin", "addpoints", "addpref", "addprop", "addprop", "addproperty", "addProperty", "addReference", "addRequired", "addsample", "addsampletocollection", "addShortcut", "addShutdownFile", "addStartupFile", "addTeardown", "addTeardown", "addtodate", "addToolbarExplorationButtons", "addts", "addvars", "adjacency", "airy", "align", "alim", "all", "allchild", "allowModelReferenceDiscreteSampleTimeInheritanceImpl", "alpha", "alphamap", "alphaShape", "alphaSpectrum", "alphaTriangulation", "amd", "analyzeCodeCompatibility", "ancestor", "and", "angle", "animatedline", "annotation", "ans", "any", "appdesigner", "append", "append", "applyFixture", "applyFixture", "area", "area", "area", "array2table", "array2timetable", "arrayfun", "ascii", "asec", "asecd", "asech", "asin", "asind", "asinh", "assert", "assertAccessed", "assertCalled", "assertClass", "assertEmpty", "assertEqual", "assertError", "assertFail", "assertFalse", "assertGreaterThan", "assertGreaterThanOrEqual", "assertInstanceOf", "assertLength", "assertLessThan", "assertLessThanOrEqual", "assertMatches", "assertNotAccessed", "assertNotCalled", "assertNotEmpty", "assertNotEqual", "assertNotSameHandle", "assertNotSet", "assertNumElements", "assertReturnsTrue", "assertSameHandle", "assertSet", "assertSize", "assertSubstring", "assertThat", "assertTrue", "assertUsing", "assertWarning", "assertWarningFree", "assignin", "assignOutputsWhen", "assumeAccessed", "assumeCalled", "assumeClass", "assumeEmpty", "assumeEqual", "assumeError", "assumeFail", "assumeFalse", "assumeGreaterThan", "assumeGreaterThanOrEqual", "assumeInstanceOf", "assumeLength", "assumeLessThan", "assumeLessThanOrEqual", "assumeMatches", "assumeNotAccessed", "assumeNotCalled", "assumeNotEmpty", "assumeNotEqual", "assumeNotSameHandle", "assumeNotSet", "assumeNumElements", "assumeReturnsTrue", "assumeSameHandle", "assumeSet", "assumeSize", "assumeSubstring", "assumeThat", "assumeTrue", "assumeUsing", "assumeWarning", "assumeWarningFree", "atan", "atan2", "atan2d", "atand", "atanh", "audiodevinfo", "audioinfo", "audioplayer", "audioread", "audiorecorder", "audiowrite", "autumn", "aviinfo", "axes", "axis", "axtoolbar", "axtoolbarbtn", "balance", "bandwidth", "bar", "bar3", "bar3h", "barh", "barycentricToCartesian", "baryToCart", "base2dec", "batchStartupOptionUsed", "bctree", "beep", "BeginInvoke", "bench", "besselh", "besseli", "besselj", "besselk", "bessely", "beta", "betainc", "betaincinv", "betaln", "between", "bfsearch", "bicg", "bicgstab", "bicgstabl", "biconncomp", "bin2dec", "binary", "binscatter", "bitand", "bitcmp", "bitget", "bitnot", "bitor", "bitset", "bitshift", "bitxor", "blanks", "blkdiag", "bone", "boundary", "boundary", "boundaryFacets", "boundaryshape", "boundingbox", "bounds", "box", "break", "brighten", "brush", "bsxfun", "build", "builddocsearchdb", "builtin", "bvp4c", "bvp5c", "bvpget", "bvpinit", "bvpset", "bvpxtend", "caldays", "caldiff", "calendar", "calendarDuration", "calllib", "callSoapService", "calmonths", "calquarters", "calweeks", "calyears", "camdolly", "cameratoolbar", "camlight", "camlookat", "camorbit", "campan", "campos", "camproj", "camroll", "camtarget", "camup", "camva", "camzoom", "cancel", "cancelled", "cart2pol", "cart2sph", "cartesianToBarycentric", "cartToBary", "cast", "cat", "cat", "categorical", "categories", "caxis", "cd", "cd", "cdf2rdf", "cdfepoch", "cdfinfo", "cdflib", "cdflib.close", "cdflib.closeVar", "cdflib.computeEpoch", "cdflib.computeEpoch16", "cdflib.create", "cdflib.createAttr", "cdflib.createVar", "cdflib.delete", "cdflib.deleteAttr", "cdflib.deleteAttrEntry", "cdflib.deleteAttrgEntry", "cdflib.deleteVar", "cdflib.deleteVarRecords", "cdflib.epoch16Breakdown", "cdflib.epochBreakdown", "cdflib.getAttrEntry", "cdflib.getAttrgEntry", "cdflib.getAttrMaxEntry", "cdflib.getAttrMaxgEntry", "cdflib.getAttrName", "cdflib.getAttrNum", "cdflib.getAttrScope", "cdflib.getCacheSize", "cdflib.getChecksum", "cdflib.getCompression", "cdflib.getCompressionCacheSize", "cdflib.getConstantNames", "cdflib.getConstantValue", "cdflib.getCopyright", "cdflib.getFileBackward", "cdflib.getFormat", "cdflib.getLibraryCopyright", "cdflib.getLibraryVersion", "cdflib.getMajority", "cdflib.getName", "cdflib.getNumAttrEntries", "cdflib.getNumAttrgEntries", "cdflib.getNumAttributes", "cdflib.getNumgAttributes", "cdflib.getReadOnlyMode", "cdflib.getStageCacheSize", "cdflib.getValidate", "cdflib.getVarAllocRecords", "cdflib.getVarBlockingFactor", "cdflib.getVarCacheSize", "cdflib.getVarCompression", "cdflib.getVarData", "cdflib.getVarMaxAllocRecNum", "cdflib.getVarMaxWrittenRecNum", "cdflib.getVarName", "cdflib.getVarNum", "cdflib.getVarNumRecsWritten", "cdflib.getVarPadValue", "cdflib.getVarRecordData", "cdflib.getVarReservePercent", "cdflib.getVarsMaxWrittenRecNum", "cdflib.getVarSparseRecords", "cdflib.getVersion", "cdflib.hyperGetVarData", "cdflib.hyperPutVarData", "cdflib.inquire", "cdflib.inquireAttr", "cdflib.inquireAttrEntry", "cdflib.inquireAttrgEntry", "cdflib.inquireVar", "cdflib.open", "cdflib.putAttrEntry", "cdflib.putAttrgEntry", "cdflib.putVarData", "cdflib.putVarRecordData", "cdflib.renameAttr", "cdflib.renameVar", "cdflib.setCacheSize", "cdflib.setChecksum", "cdflib.setCompression", "cdflib.setCompressionCacheSize", "cdflib.setFileBackward", "cdflib.setFormat", "cdflib.setMajority", "cdflib.setReadOnlyMode", "cdflib.setStageCacheSize", "cdflib.setValidate", "cdflib.setVarAllocBlockRecords", "cdflib.setVarBlockingFactor", "cdflib.setVarCacheSize", "cdflib.setVarCompression", "cdflib.setVarInitialRecs", "cdflib.setVarPadValue", "cdflib.SetVarReservePercent", "cdflib.setVarsCacheSize", "cdflib.setVarSparseRecords", "cdfread", "cdfwrite", "ceil", "cell", "cell2mat", "cell2struct", "cell2table", "celldisp", "cellfun", "cellplot", "cellstr", "centrality", "centroid", "cgs", "changeFields", "changeFields", "char", "char", "checkcode", "checkin", "checkout", "chol", "cholupdate", "choose", "circshift", "circumcenter", "circumcenters", "cla", "clabel", "class", "classdef", "classUnderlying", "clc", "clear", "clear", "clearAllMemoizedCaches", "clearCache", "clearMockHistory", "clearPersonalValue", "clearpoints", "clearTemporaryValue", "clearvars", "clf", "clibgen.buildInterface", "clibgen.ClassDefinition", "clibgen.ConstructorDefinition", "clibgen.EnumDefinition", "clibgen.FunctionDefinition", "clibgen.generateLibraryDefinition", "clibgen.LibraryDefinition", "clibgen.MethodDefinition", "clibgen.PropertyDefinition", "clibRelease", "clipboard", "clock", "clone", "close", "close", "close", "close", "close", "closeFile", "closereq", "cmopts", "cmpermute", "cmunique", "CodeCompatibilityAnalysis", "codeCompatibilityReport", "colamd", "collapse", "colon", "colorbar", "colorcube", "colordef", "colormap", "ColorSpec", "colperm", "COM", "com.mathworks.engine.MatlabEngine", "com.mathworks.matlab.types.CellStr", "com.mathworks.matlab.types.Complex", "com.mathworks.matlab.types.HandleObject", "com.mathworks.matlab.types.Struct", "combine", "Combine", "CombinedDatastore", "comet", "comet3", "compan", "compass", "complete", "complete", "complete", "complete", "complete", "complete", "complete", "complex", "compose", "computer", "cond", "condeig", "condensation", "condest", "coneplot", "conj", "conncomp", "containers.Map", "contains", "continue", "contour", "contour3", "contourc", "contourf", "contourslice", "contrast", "conv", "conv2", "convert", "convert", "convert", "convertCharsToStrings", "convertContainedStringsToChars", "convertLike", "convertStringsToChars", "convertvars", "convexHull", "convexHull", "convhull", "convhull", "convhulln", "convn", "cool", "copper", "copy", "copyElement", "copyfile", "copyHDU", "copyobj", "copyTo", "corrcoef", "cos", "cosd", "cosh", "cospi", "cot", "cotd", "coth", "count", "countcats", "countEachLabel", "cov", "cplxpair", "cputime", "createCategory", "createClassFromWsdl", "createFile", "createImg", "createLabel", "createMock", "createSampleTime", "createSharedTestFixture", "createSoapMessage", "createTbl", "createTestClassInstance", "createTestMethodInstance", "criticalAlpha", "cross", "csc", "cscd", "csch", "csvread", "csvwrite", "ctranspose", "cummax", "cummin", "cumprod", "cumsum", "cumtrapz", "curl", "currentProject", "customverctrl", "cylinder", "daqread", "daspect", "datacursormode", "datastore", "dataTipInteraction", "dataTipTextRow", "date", "datenum", "dateshift", "datestr", "datetick", "datetime", "datevec", "day", "days", "dbclear", "dbcont", "dbdown", "dblquad", "dbmex", "dbquit", "dbstack", "dbstatus", "dbstep", "dbstop", "dbtype", "dbup", "dde23", "ddeget", "ddensd", "ddesd", "ddeset", "deal", "deblank", "dec2base", "dec2bin", "dec2hex", "decic", "decomposition", "deconv", "defineArgument", "defineArgument", "defineArgument", "defineOutput", "defineOutput", "deg2rad", "degree", "del2", "delaunay", "delaunayn", "DelaunayTri", "DelaunayTri", "delaunayTriangulation", "delegateTo", "delegateTo", "delete", "delete", "delete", "delete", "delete", "deleteCol", "deleteFile", "deleteHDU", "deleteKey", "deleteproperty", "deleteRecord", "deleteRows", "delevent", "delimitedTextImportOptions", "delsample", "delsamplefromcollection", "demo", "det", "details", "detectImportOptions", "detrend", "detrend", "deval", "dfsearch", "diag", "diagnose", "dialog", "diary", "diff", "diffuse", "digraph", "dir", "dir", "disableDefaultInteractivity", "discretize", "disp", "disp", "disp", "display", "displayEmptyObject", "displayNonScalarObject", "displayScalarHandleToDeletedObject", "displayScalarObject", "dissect", "distances", "dither", "divergence", "dlmread", "dlmwrite", "dmperm", "doc", "docsearch", "done", "done", "dos", "dot", "double", "drag", "dragrect", "drawnow", "dsearchn", "duration", "dynamicprops", "echo", "echodemo", "edgeAttachments", "edgeAttachments", "edgecount", "edges", "edges", "edit", "eig", "eigs", "ellipj", "ellipke", "ellipsoid", "empty", "enableDefaultInteractivity", "enableNETfromNetworkDrive", "enableservice", "end", "EndInvoke", "endsWith", "enumeration", "eomday", "eps", "eq", "eq", "equilibrate", "erase", "eraseBetween", "erf", "erfc", "erfcinv", "erfcx", "erfinv", "error", "errorbar", "errordlg", "etime", "etree", "etreeplot", "eval", "evalc", "evalin", "event.DynamicPropertyEvent", "event.EventData", "event.hasListener", "event.listener", "event.PropertyEvent", "event.proplistener", "eventlisteners", "events", "events", "exceltime", "Execute", "exist", "exit", "exp", "expand", "expectedContentLength", "expectedContentLength", "expint", "expm", "expm1", "export", "export2wsdlg", "exportsetupdlg", "extractAfter", "extractBefore", "extractBetween", "eye", "ezcontour", "ezcontourf", "ezmesh", "ezmeshc", "ezplot", "ezplot3", "ezpolar", "ezsurf", "ezsurfc", "faceNormal", "faceNormals", "factor", "factorial", "false", "fatalAssertAccessed", "fatalAssertCalled", "fatalAssertClass", "fatalAssertEmpty", "fatalAssertEqual", "fatalAssertError", "fatalAssertFail", "fatalAssertFalse", "fatalAssertGreaterThan", "fatalAssertGreaterThanOrEqual", "fatalAssertInstanceOf", "fatalAssertLength", "fatalAssertLessThan", "fatalAssertLessThanOrEqual", "fatalAssertMatches", "fatalAssertNotAccessed", "fatalAssertNotCalled", "fatalAssertNotEmpty", "fatalAssertNotEqual", "fatalAssertNotSameHandle", "fatalAssertNotSet", "fatalAssertNumElements", "fatalAssertReturnsTrue", "fatalAssertSameHandle", "fatalAssertSet", "fatalAssertSize", "fatalAssertSubstring", "fatalAssertThat", "fatalAssertTrue", "fatalAssertUsing", "fatalAssertWarning", "fatalAssertWarningFree", "fclose", "fclose", "fcontour", "feather", "featureEdges", "featureEdges", "feof", "ferror", "feval", "Feval", "feval", "fewerbins", "fft", "fft2", "fftn", "fftshift", "fftw", "fgetl", "fgetl", "fgets", "fgets", "fieldnames", "figure", "figurepalette", "fileattrib", "fileDatastore", "filemarker", "fileMode", "fileName", "fileparts", "fileread", "filesep", "fill", "fill3", "fillmissing", "filloutliers", "filter", "filter", "filter2", "fimplicit", "fimplicit3", "find", "findall", "findCategory", "findedge", "findEvent", "findfigs", "findFile", "findgroups", "findLabel", "findnode", "findobj", "findobj", "findprop", "findstr", "finish", "fitsdisp", "fitsinfo", "fitsread", "fitswrite", "fix", "fixedWidthImportOptions", "flag", "flintmax", "flip", "flipdim", "flipedge", "fliplr", "flipud", "floor", "flow", "fmesh", "fminbnd", "fminsearch", "fopen", "fopen", "for", "format", "fplot", "fplot3", "fprintf", "fprintf", "frame2im", "fread", "fread", "freeBoundary", "freeBoundary", "freqspace", "frewind", "fscanf", "fscanf", "fseek", "fsurf", "ftell", "ftp", "full", "fullfile", "func2str", "function", "functions", "FunctionTestCase", "functiontests", "funm", "fwrite", "fwrite", "fzero", "gallery", "gamma", "gammainc", "gammaincinv", "gammaln", "gather", "gca", "gcbf", "gcbo", "gcd", "gcf", "gcmr", "gco", "ge", "genpath", "genvarname", "geoaxes", "geobasemap", "geobubble", "geodensityplot", "geolimits", "geoplot", "geoscatter", "geotickformat", "get", "get", "get", "get", "get", "get", "get", "get", "get", "get", "get", "getabstime", "getabstime", "getAColParms", "getappdata", "getaudiodata", "getBColParms", "GetCharArray", "getClass", "getColName", "getColType", "getConstantValue", "getCurrentTime", "getData", "getData", "getData", "getData", "getData", "getdatasamples", "getdatasamplesize", "getDiagnosticFor", "getDiagnosticFor", "getDiscreteStateImpl", "getDiscreteStateSpecificationImpl", "getdisp", "getenv", "getEqColType", "getfield", "getFields", "getFields", "getFileFormats", "getFooter", "getframe", "GetFullMatrix", "getGlobalNamesImpl", "getHdrSpace", "getHDUnum", "getHDUtype", "getHeader", "getHeaderImpl", "getIconImpl", "getImgSize", "getImgType", "getImpulseResponseLengthImpl", "getInputDimensionConstraintImpl", "getinterpmethod", "getLocation", "getLocation", "getMockHistory", "getNegativeDiagnosticFor", "getnext", "getNumCols", "getNumHDUs", "getNumInputs", "getNumInputsImpl", "getNumOutputs", "getNumOutputsImpl", "getNumRows", "getOpenFiles", "getOutputDataTypeImpl", "getOutputDimensionConstraintImpl", "getOutputSizeImpl", "getParameter", "getParameter", "getParameter", "getpixelposition", "getplayer", "getpoints", "getPostActValString", "getPostConditionString", "getPostDescriptionString", "getPostExpValString", "getPreDescriptionString", "getpref", "getProfiles", "getPropertyGroups", "getPropertyGroupsImpl", "getqualitydesc", "getReasonPhrase", "getReasonPhrase", "getReport", "getsamples", "getSampleTime", "getSampleTimeImpl", "getsampleusingtime", "getsampleusingtime", "getSharedTestFixtures", "getSimulateUsingImpl", "getSimulinkFunctionNamesImpl", "gettimeseriesnames", "getTimeStr", "gettsafteratevent", "gettsafterevent", "gettsatevent", "gettsbeforeatevent", "gettsbeforeevent", "gettsbetweenevents", "GetVariable", "getvaropts", "getVersion", "GetWorkspaceData", "ginput", "global", "gmres", "gobjects", "gplot", "grabcode", "gradient", "graph", "GraphPlot", "gray", "graymon", "grid", "griddata", "griddatan", "griddedInterpolant", "groot", "groupcounts", "groupsummary", "grouptransform", "gsvd", "gt", "gtext", "guidata", "guide", "guihandles", "gunzip", "gzip", "H5.close", "H5.garbage_collect", "H5.get_libversion", "H5.open", "H5.set_free_list_limits", "H5A.close", "H5A.create", "H5A.delete", "H5A.get_info", "H5A.get_name", "H5A.get_space", "H5A.get_type", "H5A.iterate", "H5A.open", "H5A.open_by_idx", "H5A.open_by_name", "H5A.read", "H5A.write", "h5create", "H5D.close", "H5D.create", "H5D.get_access_plist", "H5D.get_create_plist", "H5D.get_offset", "H5D.get_space", "H5D.get_space_status", "H5D.get_storage_size", "H5D.get_type", "H5D.open", "H5D.read", "H5D.set_extent", "H5D.vlen_get_buf_size", "H5D.write", "h5disp", "H5DS.attach_scale", "H5DS.detach_scale", "H5DS.get_label", "H5DS.get_num_scales", "H5DS.get_scale_name", "H5DS.is_scale", "H5DS.iterate_scales", "H5DS.set_label", "H5DS.set_scale", "H5E.clear", "H5E.get_major", "H5E.get_minor", "H5E.walk", "H5F.close", "H5F.create", "H5F.flush", "H5F.get_access_plist", "H5F.get_create_plist", "H5F.get_filesize", "H5F.get_freespace", "H5F.get_info", "H5F.get_mdc_config", "H5F.get_mdc_hit_rate", "H5F.get_mdc_size", "H5F.get_name", "H5F.get_obj_count", "H5F.get_obj_ids", "H5F.is_hdf5", "H5F.mount", "H5F.open", "H5F.reopen", "H5F.set_mdc_config", "H5F.unmount", "H5G.close", "H5G.create", "H5G.get_info", "H5G.open", "H5I.dec_ref", "H5I.get_file_id", "H5I.get_name", "H5I.get_ref", "H5I.get_type", "H5I.inc_ref", "H5I.is_valid", "h5info", "H5L.copy", "H5L.create_external", "H5L.create_hard", "H5L.create_soft", "H5L.delete", "H5L.exists", "H5L.get_info", "H5L.get_name_by_idx", "H5L.get_val", "H5L.iterate", "H5L.iterate_by_name", "H5L.move", "H5L.visit", "H5L.visit_by_name", "H5ML.compare_values", "H5ML.get_constant_names", "H5ML.get_constant_value", "H5ML.get_function_names", "H5ML.get_mem_datatype", "H5ML.hoffset", "H5ML.sizeof", "H5O.close", "H5O.copy", "H5O.get_comment", "H5O.get_comment_by_name", "H5O.get_info", "H5O.link", "H5O.open", "H5O.open_by_idx", "H5O.set_comment", "H5O.set_comment_by_name", "H5O.visit", "H5O.visit_by_name", "H5P.all_filters_avail", "H5P.close", "H5P.close_class", "H5P.copy", "H5P.create", "H5P.equal", "H5P.exist", "H5P.fill_value_defined", "H5P.get", "H5P.get_alignment", "H5P.get_alloc_time", "H5P.get_attr_creation_order", "H5P.get_attr_phase_change", "H5P.get_btree_ratios", "H5P.get_char_encoding", "H5P.get_chunk", "H5P.get_chunk_cache", "H5P.get_class", "H5P.get_class_name", "H5P.get_class_parent", "H5P.get_copy_object", "H5P.get_create_intermediate_group", "H5P.get_driver", "H5P.get_edc_check", "H5P.get_external", "H5P.get_external_count", "H5P.get_family_offset", "H5P.get_fapl_core", "H5P.get_fapl_family", "H5P.get_fapl_multi", "H5P.get_fclose_degree", "H5P.get_fill_time", "H5P.get_fill_value", "H5P.get_filter", "H5P.get_filter_by_id", "H5P.get_gc_references", "H5P.get_hyper_vector_size", "H5P.get_istore_k", "H5P.get_layout", "H5P.get_libver_bounds", "H5P.get_link_creation_order", "H5P.get_link_phase_change", "H5P.get_mdc_config", "H5P.get_meta_block_size", "H5P.get_multi_type", "H5P.get_nfilters", "H5P.get_nprops", "H5P.get_sieve_buf_size", "H5P.get_size", "H5P.get_sizes", "H5P.get_small_data_block_size", "H5P.get_sym_k", "H5P.get_userblock", "H5P.get_version", "H5P.isa_class", "H5P.iterate", "H5P.modify_filter", "H5P.remove_filter", "H5P.set", "H5P.set_alignment", "H5P.set_alloc_time", "H5P.set_attr_creation_order", "H5P.set_attr_phase_change", "H5P.set_btree_ratios", "H5P.set_char_encoding", "H5P.set_chunk", "H5P.set_chunk_cache", "H5P.set_copy_object", "H5P.set_create_intermediate_group", "H5P.set_deflate", "H5P.set_edc_check", "H5P.set_external", "H5P.set_family_offset", "H5P.set_fapl_core", "H5P.set_fapl_family", "H5P.set_fapl_log", "H5P.set_fapl_multi", "H5P.set_fapl_sec2", "H5P.set_fapl_split", "H5P.set_fapl_stdio", "H5P.set_fclose_degree", "H5P.set_fill_time", "H5P.set_fill_value", "H5P.set_filter", "H5P.set_fletcher32", "H5P.set_gc_references", "H5P.set_hyper_vector_size", "H5P.set_istore_k", "H5P.set_layout", "H5P.set_libver_bounds", "H5P.set_link_creation_order", "H5P.set_link_phase_change", "H5P.set_mdc_config", "H5P.set_meta_block_size", "H5P.set_multi_type", "H5P.set_nbit", "H5P.set_scaleoffset", "H5P.set_shuffle", "H5P.set_sieve_buf_size", "H5P.set_sizes", "H5P.set_small_data_block_size", "H5P.set_sym_k", "H5P.set_userblock", "H5R.create", "H5R.dereference", "H5R.get_name", "H5R.get_obj_type", "H5R.get_region", "h5read", "h5readatt", "H5S.close", "H5S.copy", "H5S.create", "H5S.create_simple", "H5S.extent_copy", "H5S.get_select_bounds", "H5S.get_select_elem_npoints", "H5S.get_select_elem_pointlist", "H5S.get_select_hyper_blocklist", "H5S.get_select_hyper_nblocks", "H5S.get_select_npoints", "H5S.get_select_type", "H5S.get_simple_extent_dims", "H5S.get_simple_extent_ndims", "H5S.get_simple_extent_npoints", "H5S.get_simple_extent_type", "H5S.is_simple", "H5S.offset_simple", "H5S.select_all", "H5S.select_elements", "H5S.select_hyperslab", "H5S.select_none", "H5S.select_valid", "H5S.set_extent_none", "H5S.set_extent_simple", "H5T.array_create", "H5T.close", "H5T.commit", "H5T.committed", "H5T.copy", "H5T.create", "H5T.detect_class", "H5T.enum_create", "H5T.enum_insert", "H5T.enum_nameof", "H5T.enum_valueof", "H5T.equal", "H5T.get_array_dims", "H5T.get_array_ndims", "H5T.get_class", "H5T.get_create_plist", "H5T.get_cset", "H5T.get_ebias", "H5T.get_fields", "H5T.get_inpad", "H5T.get_member_class", "H5T.get_member_index", "H5T.get_member_name", "H5T.get_member_offset", "H5T.get_member_type", "H5T.get_member_value", "H5T.get_native_type", "H5T.get_nmembers", "H5T.get_norm", "H5T.get_offset", "H5T.get_order", "H5T.get_pad", "H5T.get_precision", "H5T.get_sign", "H5T.get_size", "H5T.get_strpad", "H5T.get_super", "H5T.get_tag", "H5T.insert", "H5T.is_variable_str", "H5T.lock", "H5T.open", "H5T.pack", "H5T.set_cset", "H5T.set_ebias", "H5T.set_fields", "H5T.set_inpad", "H5T.set_norm", "H5T.set_offset", "H5T.set_order", "H5T.set_pad", "H5T.set_precision", "H5T.set_sign", "H5T.set_size", "H5T.set_strpad", "H5T.set_tag", "H5T.vlen_create", "h5write", "h5writeatt", "H5Z.filter_avail", "H5Z.get_filter_info", "hadamard", "handle", "hankel", "hasdata", "hasdata", "hasFactoryValue", "hasfile", "hasFrame", "hasnext", "hasPersonalValue", "hasTemporaryValue", "hdf5info", "hdf5read", "hdf5write", "hdfan", "hdfdf24", "hdfdfr8", "hdfh", "hdfhd", "hdfhe", "hdfhx", "hdfinfo", "hdfml", "hdfpt", "hdfread", "hdftool", "hdfv", "hdfvf", "hdfvh", "hdfvs", "head", "heatmap", "height", "help", "helpbrowser", "helpdesk", "helpdlg", "helpwin", "hess", "hex2dec", "hex2num", "hgexport", "hggroup", "hgload", "hgsave", "hgtransform", "hidden", "highlight", "hilb", "hist", "histc", "histcounts", "histcounts2", "histogram", "histogram2", "hms", "hold", "holes", "home", "horzcat", "horzcat", "horzcat", "hot", "hour", "hours", "hover", "hsv", "hsv2rgb", "hypot", "ichol", "idealfilter", "idivide", "ifft", "ifft2", "ifftn", "ifftshift", "ilu", "im2double", "im2frame", "im2java", "imag", "image", "imageDatastore", "imagesc", "imapprox", "imfinfo", "imformats", "imgCompress", "import", "importdata", "imread", "imresize", "imshow", "imtile", "imwrite", "incenter", "incenters", "incidence", "ind2rgb", "ind2sub", "indegree", "inedges", "Inf", "info", "infoImpl", "initialize", "initialize", "initialize", "initialize", "initialize", "initializeDatastore", "initializeDatastore", "inline", "inmem", "inner2outer", "innerjoin", "inOutStatus", "inpolygon", "input", "inputdlg", "inputname", "inputParser", "insertAfter", "insertATbl", "insertBefore", "insertBTbl", "insertCol", "insertImg", "insertRows", "inShape", "inspect", "instrcallback", "instrfind", "instrfindall", "int16", "int2str", "int32", "int64", "int8", "integral", "integral2", "integral3", "interp1", "interp1q", "interp2", "interp3", "interpft", "interpn", "interpstreamspeed", "intersect", "intersect", "intmax", "intmin", "inv", "invhilb", "invoke", "ipermute", "iqr", "is*", "isa", "isappdata", "isaUnderlying", "isbanded", "isbetween", "iscalendarduration", "iscategorical", "iscategory", "iscell", "iscellstr", "ischange", "ischar", "iscolumn", "iscom", "isCompatible", "isCompressedImg", "isConnected", "isdag", "isdatetime", "isdiag", "isdir", "isDiscreteStateSpecificationMutableImpl", "isDone", "isDoneImpl", "isdst", "isduration", "isEdge", "isempty", "isempty", "isenum", "isequal", "isequaln", "isequalwithequalnans", "isevent", "isfield", "isfile", "isfinite", "isfloat", "isfolder", "isfullfile", "isfullfile", "isgraphics", "ishandle", "ishermitian", "ishghandle", "ishold", "ishole", "isIllConditioned", "isInactivePropertyImpl", "isinf", "isInputComplexityMutableImpl", "isInputDataTypeMutableImpl", "isInputDirectFeedthroughImpl", "isInputSizeLockedImpl", "isInputSizeMutableImpl", "isinteger", "isinterface", "isInterior", "isinterior", "isisomorphic", "isjava", "isKey", "iskeyword", "isletter", "isLoaded", "islocalmax", "islocalmin", "isLocked", "islogical", "ismac", "ismatrix", "ismember", "ismembertol", "ismethod", "ismissing", "ismultigraph", "isnan", "isnat", "isNull", "isnumeric", "isobject", "isocaps", "isocolors", "isomorphism", "isonormals", "isordinal", "isosurface", "isoutlier", "isOutputComplexImpl", "isOutputFixedSizeImpl", "ispc", "isplaying", "ispref", "isprime", "isprop", "isprotected", "isreal", "isrecording", "isregular", "isrow", "isscalar", "issimplified", "issorted", "issortedrows", "isspace", "issparse", "isstr", "isstring", "isStringScalar", "isstrprop", "isstruct", "isstudent", "issymmetric", "istable", "istall", "istimetable", "istril", "istriu", "isTunablePropertyDataTypeMutableImpl", "isundefined", "isunix", "isvalid", "isvalid", "isvalid", "isvarname", "isvector", "isweekend", "javaaddpath", "javaArray", "javachk", "javaclasspath", "javaMethod", "javaMethodEDT", "javaObject", "javaObjectEDT", "javarmpath", "jet", "join", "join", "join", "jsondecode", "jsonencode", "juliandate", "keepMeasuring", "keyboard", "keys", "KeyValueDatastore", "KeyValueStore", "kron", "labeledge", "labelnode", "lag", "laplacian", "lasterr", "lasterror", "lastwarn", "layout", "lcm", "ldivide", "ldl", "le", "legend", "legendre", "length", "length", "length", "length", "lib.pointer", "libfunctions", "libfunctionsview", "libisloaded", "libpointer", "libstruct", "license", "light", "lightangle", "lighting", "lin2mu", "line", "lines", "LineSpec", "linkaxes", "linkdata", "linkprop", "linsolve", "linspace", "listdlg", "listener", "listfonts", "listModifiedFiles", "listRequiredFiles", "load", "load", "load", "loadlibrary", "loadobj", "loadObjectImpl", "localfunctions", "log", "log", "log", "log10", "log1p", "log2", "logical", "Logical", "loglog", "logm", "logspace", "lookfor", "lower", "ls", "lscov", "lsqminnorm", "lsqnonneg", "lsqr", "lt", "lu", "magic", "makehgtform", "mapreduce", "mapreducer", "mat2cell", "mat2str", "matchpairs", "material", "matfile", "matlab", "matlab", "matlab", "matlab.addons.disableAddon", "matlab.addons.enableAddon", "matlab.addons.install", "matlab.addons.installedAddons", "matlab.addons.isAddonEnabled", "matlab.addons.toolbox.installedToolboxes", "matlab.addons.toolbox.installToolbox", "matlab.addons.toolbox.packageToolbox", "matlab.addons.toolbox.toolboxVersion", "matlab.addons.toolbox.uninstallToolbox", "matlab.addons.uninstall", "matlab.apputil.create", "matlab.apputil.getInstalledAppInfo", "matlab.apputil.install", "matlab.apputil.package", "matlab.apputil.run", "matlab.apputil.uninstall", "matlab.codetools.requiredFilesAndProducts", "matlab.engine.connect_matlab", "matlab.engine.engineName", "matlab.engine.find_matlab", "matlab.engine.FutureResult", "matlab.engine.isEngineShared", "matlab.engine.MatlabEngine", "matlab.engine.shareEngine", "matlab.engine.start_matlab", "matlab.exception.JavaException", "matlab.exception.PyException", "matlab.graphics.Graphics", "matlab.graphics.GraphicsPlaceholder", "matlab.io.Datastore", "matlab.io.datastore.DsFileReader", "matlab.io.datastore.DsFileSet", "matlab.io.datastore.HadoopFileBased", "matlab.io.datastore.HadoopLocationBased", "matlab.io.datastore.Partitionable", "matlab.io.datastore.Shuffleable", "matlab.io.hdf4.sd", "matlab.io.hdf4.sd.attrInfo", "matlab.io.hdf4.sd.close", "matlab.io.hdf4.sd.create", "matlab.io.hdf4.sd.dimInfo", "matlab.io.hdf4.sd.endAccess", "matlab.io.hdf4.sd.fileInfo", "matlab.io.hdf4.sd.findAttr", "matlab.io.hdf4.sd.getCal", "matlab.io.hdf4.sd.getChunkInfo", "matlab.io.hdf4.sd.getCompInfo", "matlab.io.hdf4.sd.getDataStrs", "matlab.io.hdf4.sd.getDimID", "matlab.io.hdf4.sd.getDimScale", "matlab.io.hdf4.sd.getDimStrs", "matlab.io.hdf4.sd.getFilename", "matlab.io.hdf4.sd.getFillValue", "matlab.io.hdf4.sd.getInfo", "matlab.io.hdf4.sd.getRange", "matlab.io.hdf4.sd.idToRef", "matlab.io.hdf4.sd.idType", "matlab.io.hdf4.sd.isCoordVar", "matlab.io.hdf4.sd.isRecord", "matlab.io.hdf4.sd.nameToIndex", "matlab.io.hdf4.sd.nameToIndices", "matlab.io.hdf4.sd.readAttr", "matlab.io.hdf4.sd.readChunk", "matlab.io.hdf4.sd.readData", "matlab.io.hdf4.sd.refToIndex", "matlab.io.hdf4.sd.select", "matlab.io.hdf4.sd.setAttr", "matlab.io.hdf4.sd.setCal", "matlab.io.hdf4.sd.setChunk", "matlab.io.hdf4.sd.setCompress", "matlab.io.hdf4.sd.setDataStrs", "matlab.io.hdf4.sd.setDimName", "matlab.io.hdf4.sd.setDimScale", "matlab.io.hdf4.sd.setDimStrs", "matlab.io.hdf4.sd.setExternalFile", "matlab.io.hdf4.sd.setFillMode", "matlab.io.hdf4.sd.setFillValue", "matlab.io.hdf4.sd.setNBitDataSet", "matlab.io.hdf4.sd.setRange", "matlab.io.hdf4.sd.start", "matlab.io.hdf4.sd.writeChunk", "matlab.io.hdf4.sd.writeData", "matlab.io.hdfeos.gd", "matlab.io.hdfeos.gd.attach", "matlab.io.hdfeos.gd.close", "matlab.io.hdfeos.gd.compInfo", "matlab.io.hdfeos.gd.create", "matlab.io.hdfeos.gd.defBoxRegion", "matlab.io.hdfeos.gd.defComp", "matlab.io.hdfeos.gd.defDim", "matlab.io.hdfeos.gd.defField", "matlab.io.hdfeos.gd.defOrigin", "matlab.io.hdfeos.gd.defPixReg", "matlab.io.hdfeos.gd.defProj", "matlab.io.hdfeos.gd.defTile", "matlab.io.hdfeos.gd.defVrtRegion", "matlab.io.hdfeos.gd.detach", "matlab.io.hdfeos.gd.dimInfo", "matlab.io.hdfeos.gd.extractRegion", "matlab.io.hdfeos.gd.fieldInfo", "matlab.io.hdfeos.gd.getFillValue", "matlab.io.hdfeos.gd.getPixels", "matlab.io.hdfeos.gd.getPixValues", "matlab.io.hdfeos.gd.gridInfo", "matlab.io.hdfeos.gd.ij2ll", "matlab.io.hdfeos.gd.inqAttrs", "matlab.io.hdfeos.gd.inqDims", "matlab.io.hdfeos.gd.inqFields", "matlab.io.hdfeos.gd.inqGrid", "matlab.io.hdfeos.gd.interpolate", "matlab.io.hdfeos.gd.ll2ij", "matlab.io.hdfeos.gd.nEntries", "matlab.io.hdfeos.gd.open", "matlab.io.hdfeos.gd.originInfo", "matlab.io.hdfeos.gd.pixRegInfo", "matlab.io.hdfeos.gd.projInfo", "matlab.io.hdfeos.gd.readAttr", "matlab.io.hdfeos.gd.readBlkSomOffset", "matlab.io.hdfeos.gd.readField", "matlab.io.hdfeos.gd.readTile", "matlab.io.hdfeos.gd.regionInfo", "matlab.io.hdfeos.gd.setFillValue", "matlab.io.hdfeos.gd.setTileComp", "matlab.io.hdfeos.gd.sphereCodeToName", "matlab.io.hdfeos.gd.sphereNameToCode", "matlab.io.hdfeos.gd.tileInfo", "matlab.io.hdfeos.gd.writeAttr", "matlab.io.hdfeos.gd.writeBlkSomOffset", "matlab.io.hdfeos.gd.writeField", "matlab.io.hdfeos.gd.writeTile", "matlab.io.hdfeos.sw", "matlab.io.hdfeos.sw.attach", "matlab.io.hdfeos.sw.close", "matlab.io.hdfeos.sw.compInfo", "matlab.io.hdfeos.sw.create", "matlab.io.hdfeos.sw.defBoxRegion", "matlab.io.hdfeos.sw.defComp", "matlab.io.hdfeos.sw.defDataField", "matlab.io.hdfeos.sw.defDim", "matlab.io.hdfeos.sw.defDimMap", "matlab.io.hdfeos.sw.defGeoField", "matlab.io.hdfeos.sw.defTimePeriod", "matlab.io.hdfeos.sw.defVrtRegion", "matlab.io.hdfeos.sw.detach", "matlab.io.hdfeos.sw.dimInfo", "matlab.io.hdfeos.sw.extractPeriod", "matlab.io.hdfeos.sw.extractRegion", "matlab.io.hdfeos.sw.fieldInfo", "matlab.io.hdfeos.sw.geoMapInfo", "matlab.io.hdfeos.sw.getFillValue", "matlab.io.hdfeos.sw.idxMapInfo", "matlab.io.hdfeos.sw.inqAttrs", "matlab.io.hdfeos.sw.inqDataFields", "matlab.io.hdfeos.sw.inqDims", "matlab.io.hdfeos.sw.inqGeoFields", "matlab.io.hdfeos.sw.inqIdxMaps", "matlab.io.hdfeos.sw.inqMaps", "matlab.io.hdfeos.sw.inqSwath", "matlab.io.hdfeos.sw.mapInfo", "matlab.io.hdfeos.sw.nEntries", "matlab.io.hdfeos.sw.open", "matlab.io.hdfeos.sw.periodInfo", "matlab.io.hdfeos.sw.readAttr", "matlab.io.hdfeos.sw.readField", "matlab.io.hdfeos.sw.regionInfo", "matlab.io.hdfeos.sw.setFillValue", "matlab.io.hdfeos.sw.writeAttr", "matlab.io.hdfeos.sw.writeField", "matlab.io.MatFile", "matlab.io.saveVariablesToScript", "matlab.lang.correction.AppendArgumentsCorrection", "matlab.lang.makeUniqueStrings", "matlab.lang.makeValidName", "matlab.lang.OnOffSwitchState", "matlab.mex.MexHost", "matlab.mixin.Copyable", "matlab.mixin.CustomDisplay", "matlab.mixin.CustomDisplay.convertDimensionsToString", "matlab.mixin.CustomDisplay.displayPropertyGroups", "matlab.mixin.CustomDisplay.getClassNameForHeader", "matlab.mixin.CustomDisplay.getDeletedHandleText", "matlab.mixin.CustomDisplay.getDetailedFooter", "matlab.mixin.CustomDisplay.getDetailedHeader", "matlab.mixin.CustomDisplay.getHandleText", "matlab.mixin.CustomDisplay.getSimpleHeader", "matlab.mixin.Heterogeneous", "matlab.mixin.Heterogeneous.getDefaultScalarElement", "matlab.mixin.SetGet", "matlab.mixin.SetGetExactNames", "matlab.mixin.util.PropertyGroup", "matlab.mock.actions.AssignOutputs", "matlab.mock.actions.Invoke", "matlab.mock.actions.ReturnStoredValue", "matlab.mock.actions.StoreValue", "matlab.mock.actions.ThrowException", "matlab.mock.AnyArguments", "matlab.mock.constraints.Occurred", "matlab.mock.constraints.WasAccessed", "matlab.mock.constraints.WasCalled", "matlab.mock.constraints.WasSet", "matlab.mock.history.MethodCall", "matlab.mock.history.PropertyAccess", "matlab.mock.history.PropertyModification", "matlab.mock.history.SuccessfulMethodCall", "matlab.mock.history.SuccessfulPropertyAccess", "matlab.mock.history.SuccessfulPropertyModification", "matlab.mock.history.UnsuccessfulMethodCall", "matlab.mock.history.UnsuccessfulPropertyAccess", "matlab.mock.history.UnsuccessfulPropertyModification", "matlab.mock.InteractionHistory", "matlab.mock.InteractionHistory.forMock", "matlab.mock.MethodCallBehavior", "matlab.mock.PropertyBehavior", "matlab.mock.PropertyGetBehavior", "matlab.mock.PropertySetBehavior", "matlab.mock.TestCase", "matlab.mock.TestCase.forInteractiveUse", "matlab.net.ArrayFormat", "matlab.net.base64decode", "matlab.net.base64encode", "matlab.net.http.AuthenticationScheme", "matlab.net.http.AuthInfo", "matlab.net.http.Cookie", "matlab.net.http.CookieInfo", "matlab.net.http.CookieInfo.collectFromLog", "matlab.net.http.Credentials", "matlab.net.http.Disposition", "matlab.net.http.field.AcceptField", "matlab.net.http.field.AuthenticateField", "matlab.net.http.field.AuthenticationInfoField", "matlab.net.http.field.AuthorizationField", "matlab.net.http.field.ContentDispositionField", "matlab.net.http.field.ContentLengthField", "matlab.net.http.field.ContentLocationField", "matlab.net.http.field.ContentTypeField", "matlab.net.http.field.CookieField", "matlab.net.http.field.DateField", "matlab.net.http.field.GenericField", "matlab.net.http.field.GenericParameterizedField", "matlab.net.http.field.HTTPDateField", "matlab.net.http.field.IntegerField", "matlab.net.http.field.LocationField", "matlab.net.http.field.MediaRangeField", "matlab.net.http.field.SetCookieField", "matlab.net.http.field.URIReferenceField", "matlab.net.http.HeaderField", "matlab.net.http.HeaderField.displaySubclasses", "matlab.net.http.HTTPException", "matlab.net.http.HTTPOptions", "matlab.net.http.io.BinaryConsumer", "matlab.net.http.io.ContentConsumer", "matlab.net.http.io.ContentProvider", "matlab.net.http.io.FileConsumer", "matlab.net.http.io.FileProvider", "matlab.net.http.io.FormProvider", "matlab.net.http.io.GenericConsumer", "matlab.net.http.io.GenericProvider", "matlab.net.http.io.ImageConsumer", "matlab.net.http.io.ImageProvider", "matlab.net.http.io.JSONConsumer", "matlab.net.http.io.JSONProvider", "matlab.net.http.io.MultipartConsumer", "matlab.net.http.io.MultipartFormProvider", "matlab.net.http.io.MultipartProvider", "matlab.net.http.io.StringConsumer", "matlab.net.http.io.StringProvider", "matlab.net.http.LogRecord", "matlab.net.http.MediaType", "matlab.net.http.Message", "matlab.net.http.MessageBody", "matlab.net.http.MessageType", "matlab.net.http.ProgressMonitor", "matlab.net.http.ProtocolVersion", "matlab.net.http.RequestLine", "matlab.net.http.RequestMessage", "matlab.net.http.RequestMethod", "matlab.net.http.ResponseMessage", "matlab.net.http.StartLine", "matlab.net.http.StatusClass", "matlab.net.http.StatusCode", "matlab.net.http.StatusCode.fromValue", "matlab.net.http.StatusLine", "matlab.net.QueryParameter", "matlab.net.URI", "matlab.perftest.FixedTimeExperiment", "matlab.perftest.FrequentistTimeExperiment", "matlab.perftest.TestCase", "matlab.perftest.TimeExperiment", "matlab.perftest.TimeExperiment.limitingSamplingError", "matlab.perftest.TimeExperiment.withFixedSampleSize", "matlab.perftest.TimeResult", "matlab.project.createProject", "matlab.project.loadProject", "matlab.project.Project", "matlab.project.rootProject", "matlab.System", "matlab.system.display.Action", "matlab.system.display.Header", "matlab.system.display.Icon", "matlab.system.display.Section", "matlab.system.display.SectionGroup", "matlab.system.mixin.CustomIcon", "matlab.system.mixin.FiniteSource", "matlab.system.mixin.Nondirect", "matlab.system.mixin.Propagates", "matlab.system.mixin.SampleTime", "matlab.system.StringSet", "matlab.tall.blockMovingWindow", "matlab.tall.movingWindow", "matlab.tall.reduce", "matlab.tall.transform", "matlab.test.behavior.Missing", "matlab.uitest.TestCase", "matlab.uitest.TestCase.forInteractiveUse", "matlab.uitest.unlock", "matlab.unittest.constraints.AbsoluteTolerance", "matlab.unittest.constraints.AnyCellOf", "matlab.unittest.constraints.AnyElementOf", "matlab.unittest.constraints.BooleanConstraint", "matlab.unittest.constraints.CellComparator", "matlab.unittest.constraints.Constraint", "matlab.unittest.constraints.ContainsSubstring", "matlab.unittest.constraints.EndsWithSubstring", "matlab.unittest.constraints.Eventually", "matlab.unittest.constraints.EveryCellOf", "matlab.unittest.constraints.EveryElementOf", "matlab.unittest.constraints.HasElementCount", "matlab.unittest.constraints.HasField", "matlab.unittest.constraints.HasInf", "matlab.unittest.constraints.HasLength", "matlab.unittest.constraints.HasNaN", "matlab.unittest.constraints.HasSize", "matlab.unittest.constraints.HasUniqueElements", "matlab.unittest.constraints.IsAnything", "matlab.unittest.constraints.IsEmpty", "matlab.unittest.constraints.IsEqualTo", "matlab.unittest.constraints.IsFalse", "matlab.unittest.constraints.IsFile", "matlab.unittest.constraints.IsFinite", "matlab.unittest.constraints.IsFolder", "matlab.unittest.constraints.IsGreaterThan", "matlab.unittest.constraints.IsGreaterThanOrEqualTo", "matlab.unittest.constraints.IsInstanceOf", "matlab.unittest.constraints.IsLessThan", "matlab.unittest.constraints.IsLessThanOrEqualTo", "matlab.unittest.constraints.IsOfClass", "matlab.unittest.constraints.IsReal", "matlab.unittest.constraints.IsSameHandleAs", "matlab.unittest.constraints.IsSameSetAs", "matlab.unittest.constraints.IsScalar", "matlab.unittest.constraints.IsSparse", "matlab.unittest.constraints.IsSubsetOf", "matlab.unittest.constraints.IsSubstringOf", "matlab.unittest.constraints.IssuesNoWarnings", "matlab.unittest.constraints.IssuesWarnings", "matlab.unittest.constraints.IsSupersetOf", "matlab.unittest.constraints.IsTrue", "matlab.unittest.constraints.LogicalComparator", "matlab.unittest.constraints.Matches", "matlab.unittest.constraints.NumericComparator", "matlab.unittest.constraints.ObjectComparator", "matlab.unittest.constraints.PublicPropertyComparator", "matlab.unittest.constraints.PublicPropertyComparator.supportingAllValues", "matlab.unittest.constraints.RelativeTolerance", "matlab.unittest.constraints.ReturnsTrue", "matlab.unittest.constraints.StartsWithSubstring", "matlab.unittest.constraints.StringComparator", "matlab.unittest.constraints.StructComparator", "matlab.unittest.constraints.TableComparator", "matlab.unittest.constraints.Throws", "matlab.unittest.constraints.Tolerance", "matlab.unittest.diagnostics.ConstraintDiagnostic", "matlab.unittest.diagnostics.ConstraintDiagnostic.getDisplayableString", "matlab.unittest.diagnostics.Diagnostic", "matlab.unittest.diagnostics.DiagnosticResult", "matlab.unittest.diagnostics.DisplayDiagnostic", "matlab.unittest.diagnostics.FigureDiagnostic", "matlab.unittest.diagnostics.FileArtifact", "matlab.unittest.diagnostics.FrameworkDiagnostic", "matlab.unittest.diagnostics.FunctionHandleDiagnostic", "matlab.unittest.diagnostics.LoggedDiagnosticEventData", "matlab.unittest.diagnostics.ScreenshotDiagnostic", "matlab.unittest.diagnostics.StringDiagnostic", "matlab.unittest.fixtures.CurrentFolderFixture", "matlab.unittest.fixtures.Fixture", "matlab.unittest.fixtures.PathFixture", "matlab.unittest.fixtures.ProjectFixture", "matlab.unittest.fixtures.SuppressedWarningsFixture", "matlab.unittest.fixtures.TemporaryFolderFixture", "matlab.unittest.fixtures.WorkingFolderFixture", "matlab.unittest.measurement.DefaultMeasurementResult", "matlab.unittest.measurement.MeasurementResult", "matlab.unittest.parameters.ClassSetupParameter", "matlab.unittest.parameters.EmptyParameter", "matlab.unittest.parameters.MethodSetupParameter", "matlab.unittest.parameters.Parameter", "matlab.unittest.parameters.Parameter.fromData", "matlab.unittest.parameters.TestParameter", "matlab.unittest.plugins.codecoverage.CoberturaFormat", "matlab.unittest.plugins.codecoverage.CoverageReport", "matlab.unittest.plugins.codecoverage.ProfileReport", "matlab.unittest.plugins.CodeCoveragePlugin", "matlab.unittest.plugins.CodeCoveragePlugin.forFile", "matlab.unittest.plugins.CodeCoveragePlugin.forFolder", "matlab.unittest.plugins.CodeCoveragePlugin.forPackage", "matlab.unittest.plugins.diagnosticrecord.DiagnosticRecord", "matlab.unittest.plugins.diagnosticrecord.ExceptionDiagnosticRecord", "matlab.unittest.plugins.diagnosticrecord.LoggedDiagnosticRecord", "matlab.unittest.plugins.diagnosticrecord.QualificationDiagnosticRecord", "matlab.unittest.plugins.DiagnosticsOutputPlugin", "matlab.unittest.plugins.DiagnosticsRecordingPlugin", "matlab.unittest.plugins.DiagnosticsValidationPlugin", "matlab.unittest.plugins.FailOnWarningsPlugin", "matlab.unittest.plugins.LoggingPlugin", "matlab.unittest.plugins.LoggingPlugin.withVerbosity", "matlab.unittest.plugins.OutputStream", "matlab.unittest.plugins.plugindata.FinalizedResultPluginData", "matlab.unittest.plugins.plugindata.ImplicitFixturePluginData", "matlab.unittest.plugins.plugindata.PluginData", "matlab.unittest.plugins.plugindata.QualificationContext", "matlab.unittest.plugins.plugindata.SharedTestFixturePluginData", "matlab.unittest.plugins.plugindata.TestContentCreationPluginData", "matlab.unittest.plugins.plugindata.TestSuiteRunPluginData", "matlab.unittest.plugins.QualifyingPlugin", "matlab.unittest.plugins.StopOnFailuresPlugin", "matlab.unittest.plugins.TAPPlugin", "matlab.unittest.plugins.TAPPlugin.producingOriginalFormat", "matlab.unittest.plugins.TAPPlugin.producingVersion13", "matlab.unittest.plugins.testreport.DOCXTestReportPlugin", "matlab.unittest.plugins.testreport.HTMLTestReportPlugin", "matlab.unittest.plugins.testreport.PDFTestReportPlugin", "matlab.unittest.plugins.TestReportPlugin", "matlab.unittest.plugins.TestReportPlugin.producingDOCX", "matlab.unittest.plugins.TestReportPlugin.producingHTML", "matlab.unittest.plugins.TestReportPlugin.producingPDF", "matlab.unittest.plugins.TestRunnerPlugin", "matlab.unittest.plugins.TestRunProgressPlugin", "matlab.unittest.plugins.ToFile", "matlab.unittest.plugins.ToStandardOutput", "matlab.unittest.plugins.ToUniqueFile", "matlab.unittest.plugins.XMLPlugin", "matlab.unittest.plugins.XMLPlugin.producingJUnitFormat", "matlab.unittest.qualifications.Assertable", "matlab.unittest.qualifications.AssertionFailedException", "matlab.unittest.qualifications.Assumable", "matlab.unittest.qualifications.AssumptionFailedException", "matlab.unittest.qualifications.ExceptionEventData", "matlab.unittest.qualifications.FatalAssertable", "matlab.unittest.qualifications.FatalAssertionFailedException", "matlab.unittest.qualifications.QualificationEventData", "matlab.unittest.qualifications.Verifiable", "matlab.unittest.Scope", "matlab.unittest.selectors.AndSelector", "matlab.unittest.selectors.HasBaseFolder", "matlab.unittest.selectors.HasName", "matlab.unittest.selectors.HasParameter", "matlab.unittest.selectors.HasProcedureName", "matlab.unittest.selectors.HasSharedTestFixture", "matlab.unittest.selectors.HasSuperclass", "matlab.unittest.selectors.HasTag", "matlab.unittest.selectors.NotSelector", "matlab.unittest.selectors.OrSelector", "matlab.unittest.Test", "matlab.unittest.TestCase", "matlab.unittest.TestCase.forInteractiveUse", "matlab.unittest.TestResult", "matlab.unittest.TestRunner", "matlab.unittest.TestRunner.withNoPlugins", "matlab.unittest.TestRunner.withTextOutput", "matlab.unittest.TestSuite", "matlab.unittest.TestSuite.fromClass", "matlab.unittest.TestSuite.fromFile", "matlab.unittest.TestSuite.fromFolder", "matlab.unittest.TestSuite.fromMethod", "matlab.unittest.TestSuite.fromName", "matlab.unittest.TestSuite.fromPackage", "matlab.unittest.TestSuite.fromProject", "matlab.unittest.Verbosity", "matlab.wsdl.createWSDLClient", "matlab.wsdl.setWSDLToolPath", "matlabrc", "matlabroot", "matlabshared.supportpkg.checkForUpdate", "matlabshared.supportpkg.getInstalled", "matlabshared.supportpkg.getSupportPackageRoot", "matlabshared.supportpkg.setSupportPackageRoot", "max", "max", "maxflow", "MaximizeCommandWindow", "maxk", "maxNumCompThreads", "maxpartitions", "maxpartitions", "mean", "mean", "median", "median", "memmapfile", "memoize", "MemoizedFunction", "memory", "menu", "mergecats", "mergevars", "mesh", "meshc", "meshgrid", "meshz", "meta.abstractDetails", "meta.ArrayDimension", "meta.class", "meta.class.fromName", "meta.DynamicProperty", "meta.EnumeratedValue", "meta.event", "meta.FixedDimension", "meta.MetaData", "meta.method", "meta.package", "meta.package.fromName", "meta.package.getAllPackages", "meta.property", "meta.UnrestrictedDimension", "meta.Validation", "metaclass", "methods", "methodsview", "mex", "mex.getCompilerConfigurations", "MException", "MException.last", "mexext", "mexhost", "mfilename", "mget", "milliseconds", "min", "min", "MinimizeCommandWindow", "mink", "minres", "minspantree", "minus", "minute", "minutes", "mislocked", "missing", "mkdir", "mkdir", "mkpp", "mldivide", "mlint", "mlintrpt", "mlock", "mmfileinfo", "mod", "mode", "month", "more", "morebins", "movAbsHDU", "move", "move", "movefile", "movegui", "movevars", "movie", "movmad", "movmax", "movmean", "movmedian", "movmin", "movNamHDU", "movprod", "movRelHDU", "movstd", "movsum", "movvar", "mpower", "mput", "mrdivide", "msgbox", "mtimes", "mu2lin", "multibandread", "multibandwrite", "munlock", "mustBeFinite", "mustBeGreaterThan", "mustBeGreaterThanOrEqual", "mustBeInteger", "mustBeLessThan", "mustBeLessThanOrEqual", "mustBeMember", "mustBeNegative", "mustBeNonempty", "mustBeNonNan", "mustBeNonnegative", "mustBeNonpositive", "mustBeNonsparse", "mustBeNonzero", "mustBeNumeric", "mustBeNumericOrLogical", "mustBePositive", "mustBeReal", "namelengthmax", "NaN", "nargchk", "nargin", "nargin", "narginchk", "nargout", "nargout", "nargoutchk", "NaT", "native2unicode", "nccreate", "ncdisp", "nchoosek", "ncinfo", "ncread", "ncreadatt", "ncwrite", "ncwriteatt", "ncwriteschema", "ndgrid", "ndims", "ne", "nearest", "nearestNeighbor", "nearestNeighbor", "nearestNeighbor", "nearestvertex", "neighbors", "neighbors", "neighbors", "NET", "NET.addAssembly", "NET.Assembly", "NET.convertArray", "NET.createArray", "NET.createGeneric", "NET.disableAutoRelease", "NET.enableAutoRelease", "NET.GenericClass", "NET.invokeGenericMethod", "NET.isNETSupported", "NET.NetException", "NET.setStaticProperty", "netcdf.abort", "netcdf.close", "netcdf.copyAtt", "netcdf.create", "netcdf.defDim", "netcdf.defGrp", "netcdf.defVar", "netcdf.defVarChunking", "netcdf.defVarDeflate", "netcdf.defVarFill", "netcdf.defVarFletcher32", "netcdf.delAtt", "netcdf.endDef", "netcdf.getAtt", "netcdf.getChunkCache", "netcdf.getConstant", "netcdf.getConstantNames", "netcdf.getVar", "netcdf.inq", "netcdf.inqAtt", "netcdf.inqAttID", "netcdf.inqAttName", "netcdf.inqDim", "netcdf.inqDimID", "netcdf.inqDimIDs", "netcdf.inqFormat", "netcdf.inqGrpName", "netcdf.inqGrpNameFull", "netcdf.inqGrpParent", "netcdf.inqGrps", "netcdf.inqLibVers", "netcdf.inqNcid", "netcdf.inqUnlimDims", "netcdf.inqVar", "netcdf.inqVarChunking", "netcdf.inqVarDeflate", "netcdf.inqVarFill", "netcdf.inqVarFletcher32", "netcdf.inqVarID", "netcdf.inqVarIDs", "netcdf.open", "netcdf.putAtt", "netcdf.putVar", "netcdf.reDef", "netcdf.renameAtt", "netcdf.renameDim", "netcdf.renameVar", "netcdf.setChunkCache", "netcdf.setDefaultFormat", "netcdf.setFill", "netcdf.sync", "newline", "newplot", "nextfile", "nextpow2", "nnz", "nonzeros", "norm", "normalize", "normest", "not", "notebook", "notify", "now", "nsidedpoly", "nthroot", "null", "num2cell", "num2hex", "num2ruler", "num2str", "numArgumentsFromSubscript", "numboundaries", "numedges", "numel", "numnodes", "numpartitions", "numpartitions", "numRegions", "numsides", "nzmax", "ode113", "ode15i", "ode15s", "ode23", "ode23s", "ode23t", "ode23tb", "ode45", "odeget", "odeset", "odextend", "onCleanup", "ones", "onFailure", "onFailure", "open", "open", "openDiskFile", "openfig", "openFile", "opengl", "openProject", "openvar", "optimget", "optimset", "or", "ordeig", "orderfields", "ordqz", "ordschur", "orient", "orth", "outdegree", "outedges", "outerjoin", "outputImpl", "overlaps", "pack", "pad", "padecoef", "pagesetupdlg", "pan", "panInteraction", "parallelplot", "pareto", "parfor", "parquetDatastore", "parquetinfo", "parquetread", "parquetwrite", "parse", "parse", "parseSoapResponse", "partition", "partition", "partition", "parula", "pascal", "patch", "path", "path2rc", "pathsep", "pathtool", "pause", "pause", "pbaspect", "pcg", "pchip", "pcode", "pcolor", "pdepe", "pdeval", "peaks", "perimeter", "perimeter", "perl", "perms", "permute", "persistent", "pi", "pie", "pie3", "pink", "pinv", "planerot", "play", "play", "playblocking", "plot", "plot", "plot", "plot", "plot", "plot3", "plotbrowser", "plotedit", "plotmatrix", "plottools", "plotyy", "plus", "plus", "pointLocation", "pointLocation", "pol2cart", "polar", "polaraxes", "polarhistogram", "polarplot", "polarscatter", "poly", "polyarea", "polybuffer", "polyder", "polyeig", "polyfit", "polyint", "polyshape", "polyval", "polyvalm", "posixtime", "pow2", "power", "ppval", "predecessors", "prefdir", "preferences", "preferredBufferSize", "preferredBufferSize", "press", "preview", "preview", "primes", "print", "print", "printdlg", "printopt", "printpreview", "prism", "processInputSpecificationChangeImpl", "processTunedPropertiesImpl", "prod", "profile", "profsave", "progress", "propagatedInputComplexity", "propagatedInputDataType", "propagatedInputFixedSize", "propagatedInputSize", "propedit", "propedit", "properties", "propertyeditor", "psi", "publish", "PutCharArray", "putData", "putData", "putData", "putData", "putData", "putData", "putData", "putData", "PutFullMatrix", "PutWorkspaceData", "pwd", "pyargs", "pyversion", "qmr", "qr", "qrdelete", "qrinsert", "qrupdate", "quad", "quad2d", "quadgk", "quadl", "quadv", "quarter", "questdlg", "Quit", "quit", "quiver", "quiver3", "qz", "rad2deg", "rand", "rand", "randi", "randi", "randn", "randn", "randperm", "randperm", "RandStream", "RandStream", "RandStream.create", "RandStream.getGlobalStream", "RandStream.list", "RandStream.setGlobalStream", "rank", "rat", "rats", "rbbox", "rcond", "rdivide", "read", "read", "read", "read", "read", "readall", "readasync", "readATblHdr", "readBTblHdr", "readCard", "readcell", "readCol", "readFrame", "readimage", "readImg", "readKey", "readKeyCmplx", "readKeyDbl", "readKeyLongLong", "readKeyLongStr", "readKeyUnit", "readmatrix", "readRecord", "readtable", "readtimetable", "readvars", "real", "reallog", "realmax", "realmin", "realpow", "realsqrt", "record", "record", "recordblocking", "rectangle", "rectint", "recycle", "reducepatch", "reducevolume", "refresh", "refreshdata", "refreshSourceControl", "regexp", "regexpi", "regexprep", "regexptranslate", "regions", "regionZoomInteraction", "registerevent", "regmatlabserver", "rehash", "relationaloperators", "release", "release", "releaseImpl", "reload", "rem", "Remove", "remove", "RemoveAll", "removeCategory", "removecats", "removeFields", "removeFields", "removeFile", "removeLabel", "removeParameter", "removeParameter", "removePath", "removeReference", "removeShortcut", "removeShutdownFile", "removeStartupFile", "removeToolbarExplorationButtons", "removets", "removevars", "rename", "renamecats", "rendererinfo", "reordercats", "reordernodes", "repeat", "repeat", "repeat", "repeat", "repeat", "repelem", "replace", "replaceBetween", "replaceFields", "replaceFields", "repmat", "reportFinalizedResult", "resample", "resample", "rescale", "reset", "reset", "reset", "reset", "reset", "resetImpl", "reshape", "reshape", "residue", "resolve", "restartable", "restartable", "restartable", "restoredefaultpath", "result", "resume", "rethrow", "rethrow", "retime", "return", "returnStoredValueWhen", "reusable", "reusable", "reusable", "reverse", "rgb2gray", "rgb2hsv", "rgb2ind", "rgbplot", "ribbon", "rlim", "rmappdata", "rmboundary", "rmdir", "rmdir", "rmedge", "rmfield", "rmholes", "rmmissing", "rmnode", "rmoutliers", "rmpath", "rmpref", "rmprop", "rmslivers", "rng", "roots", "rose", "rosser", "rot90", "rotate", "rotate", "rotate3d", "rotateInteraction", "round", "rowfun", "rows2vars", "rref", "rsf2csf", "rtickangle", "rtickformat", "rticklabels", "rticks", "ruler2num", "rulerPanInteraction", "run", "run", "run", "run", "run", "runInParallel", "runperf", "runTest", "runTestClass", "runTestMethod", "runtests", "runTestSuite", "samplefun", "sampleSummary", "satisfiedBy", "satisfiedBy", "save", "save", "save", "saveas", "savefig", "saveobj", "saveObjectImpl", "savepath", "scale", "scatter", "scatter3", "scatteredInterpolant", "scatterhistogram", "schur", "scroll", "sec", "secd", "sech", "second", "seconds", "seek", "selectFailed", "selectIf", "selectIncomplete", "selectLogged", "selectmoveresize", "selectPassed", "semilogx", "semilogy", "send", "sendmail", "serial", "serialbreak", "seriallist", "set", "set", "set", "set", "set", "set", "set", "set", "set", "set", "set", "setabstime", "setabstime", "setappdata", "setBscale", "setcats", "setCompressionType", "setdatatype", "setdiff", "setdisp", "setenv", "setfield", "setHCompScale", "setHCompSmooth", "setinterpmethod", "setParameter", "setParameter", "setParameter", "setpixelposition", "setpref", "setProperties", "setstr", "setTileDim", "settimeseriesnames", "Setting", "settings", "SettingsGroup", "setToValue", "setTscale", "setuniformtime", "setup", "setupImpl", "setupSharedTestFixture", "setupTestClass", "setupTestMethod", "setvaropts", "setvartype", "setxor", "sgtitle", "shading", "sheetnames", "shg", "shiftdim", "shortestpath", "shortestpathtree", "show", "show", "show", "show", "showFiSettingsImpl", "showplottool", "showSimulateUsingImpl", "shrinkfaces", "shuffle", "shuffle", "sign", "simplify", "simplify", "sin", "sind", "single", "sinh", "sinpi", "size", "size", "size", "size", "size", "size", "size", "slice", "smooth3", "smoothdata", "snapnow", "sort", "sortboundaries", "sortByFixtures", "sortregions", "sortrows", "sortx", "sorty", "sound", "soundsc", "spalloc", "sparse", "spaugment", "spconvert", "spdiags", "specular", "speye", "spfun", "sph2cart", "sphere", "spinmap", "spline", "split", "split", "splitapply", "splitEachLabel", "splitlines", "splitvars", "spones", "spparms", "sprand", "sprandn", "sprandsym", "sprank", "spreadsheetDatastore", "spreadsheetImportOptions", "spring", "sprintf", "spy", "sqrt", "sqrtm", "squeeze", "ss2tf", "sscanf", "stack", "stackedplot", "stairs", "standardizeMissing", "start", "start", "start", "start", "start", "start", "start", "start", "start", "start", "start", "start", "startat", "startMeasuring", "startsWith", "startup", "stats", "std", "std", "stem", "stem3", "step", "stepImpl", "stlread", "stlwrite", "stop", "stop", "stopasync", "stopMeasuring", "storeValueWhen", "str2double", "str2func", "str2mat", "str2num", "strcat", "strcmp", "strcmpi", "stream2", "stream3", "streamline", "streamparticles", "streamribbon", "streamslice", "streamtube", "strfind", "string", "string", "string", "string", "string", "string", "strings", "strip", "strjoin", "strjust", "strlength", "strmatch", "strncmp", "strncmpi", "strread", "strrep", "strsplit", "strtok", "strtrim", "struct", "struct2cell", "struct2table", "structfun", "strvcat", "sub2ind", "subgraph", "subplot", "subsasgn", "subset", "subsindex", "subspace", "subsref", "substruct", "subtract", "subvolume", "successors", "sum", "sum", "summary", "summary", "summer", "superclasses", "support", "supportPackageInstaller", "supports", "supportsMultipleInstanceImpl", "surf", "surf2patch", "surface", "surfaceArea", "surfc", "surfl", "surfnorm", "svd", "svds", "swapbytes", "sylvester", "symamd", "symbfact", "symmlq", "symrcm", "symvar", "synchronize", "synchronize", "syntax", "system", "table", "table2array", "table2cell", "table2struct", "table2timetable", "tabularTextDatastore", "tail", "tall", "TallDatastore", "tallrng", "tan", "tand", "tanh", "tar", "tcpclient", "teardown", "teardownSharedTestFixture", "teardownTestClass", "teardownTestMethod", "tempdir", "tempname", "testsuite", "tetramesh", "texlabel", "text", "textread", "textscan", "textwrap", "tfqmr", "then", "then", "then", "then", "then", "thetalim", "thetatickformat", "thetaticklabels", "thetaticks", "thingSpeakRead", "thingSpeakWrite", "throw", "throwAsCaller", "throwExceptionWhen", "tic", "Tiff", "Tiff.computeStrip", "Tiff.computeTile", "Tiff.currentDirectory", "Tiff.getTag", "Tiff.getTagNames", "Tiff.getVersion", "Tiff.isTiled", "Tiff.lastDirectory", "Tiff.nextDirectory", "Tiff.numberOfStrips", "Tiff.numberOfTiles", "Tiff.readEncodedStrip", "Tiff.readEncodedTile", "Tiff.readRGBAImage", "Tiff.readRGBAStrip", "Tiff.readRGBATile", "Tiff.rewriteDirectory", "Tiff.setDirectory", "Tiff.setSubDirectory", "Tiff.setTag", "Tiff.writeDirectory", "Tiff.writeEncodedStrip", "Tiff.writeEncodedTile", "time", "timeit", "timeofday", "timer", "timerange", "timerfind", "timerfindall", "times", "timeseries", "timetable", "timetable2table", "timezones", "title", "toc", "todatenum", "toeplitz", "toolboxdir", "topkrows", "toposort", "trace", "transclosure", "transform", "TransformedDatastore", "translate", "transpose", "transreduction", "trapz", "treelayout", "treeplot", "triangulation", "triangulation", "tril", "trimesh", "triplequad", "triplot", "TriRep", "TriRep", "TriScatteredInterp", "TriScatteredInterp", "trisurf", "triu", "true", "tscollection", "tsdata.event", "tsearchn", "turningdist", "type", "type", "typecast", "tzoffset", "uialert", "uiaxes", "uibutton", "uibuttongroup", "uicheckbox", "uiconfirm", "uicontextmenu", "uicontrol", "uidatepicker", "uidropdown", "uieditfield", "uifigure", "uigauge", "uigetdir", "uigetfile", "uigetpref", "uigridlayout", "uiimage", "uiimport", "uiknob", "uilabel", "uilamp", "uilistbox", "uimenu", "uint16", "uint32", "uint64", "uint8", "uiopen", "uipanel", "uiprogressdlg", "uipushtool", "uiputfile", "uiradiobutton", "uiresume", "uisave", "uisetcolor", "uisetfont", "uisetpref", "uislider", "uispinner", "uistack", "uiswitch", "uitab", "uitabgroup", "uitable", "uitextarea", "uitogglebutton", "uitoggletool", "uitoolbar", "uitree", "uitreenode", "uiwait", "uminus", "underlyingValue", "undocheckout", "unicode2native", "union", "union", "unique", "uniquetol", "unix", "unloadlibrary", "unmesh", "unmkpp", "unregisterallevents", "unregisterevent", "unstack", "untar", "unwrap", "unzip", "updateDependencies", "updateImpl", "upgradePreviouslyInstalledSupportPackages", "uplus", "upper", "urlread", "urlwrite", "usejava", "userpath", "validate", "validate", "validate", "validate", "validateattributes", "validateFunctionSignaturesJSON", "validateInputsImpl", "validatePropertiesImpl", "validatestring", "ValueIterator", "values", "vander", "var", "var", "varargin", "varargout", "varfun", "vartype", "vecnorm", "vectorize", "ver", "verctrl", "verifyAccessed", "verifyCalled", "verifyClass", "verifyEmpty", "verifyEqual", "verifyError", "verifyFail", "verifyFalse", "verifyGreaterThan", "verifyGreaterThanOrEqual", "verifyInstanceOf", "verifyLength", "verifyLessThan", "verifyLessThanOrEqual", "verifyMatches", "verifyNotAccessed", "verifyNotCalled", "verifyNotEmpty", "verifyNotEqual", "verifyNotSameHandle", "verifyNotSet", "verifyNumElements", "verifyReturnsTrue", "verifySameHandle", "verifySet", "verifySize", "verifySubstring", "verifyThat", "verifyTrue", "verifyUsing", "verifyWarning", "verifyWarningFree", "verLessThan", "version", "vertcat", "vertcat", "vertcat", "vertexAttachments", "vertexAttachments", "vertexNormal", "VideoReader", "VideoWriter", "view", "viewmtx", "visdiff", "volume", "volumebounds", "voronoi", "voronoiDiagram", "voronoiDiagram", "voronoin", "wait", "waitbar", "waitfor", "waitforbuttonpress", "warndlg", "warning", "waterfall", "web", "weboptions", "webread", "websave", "webwrite", "week", "weekday", "what", "whatsnew", "when", "when", "when", "which", "while", "whitebg", "who", "who", "whos", "whos", "width", "wilkinson", "winopen", "winqueryreg", "winter", "withAnyInputs", "withExactInputs", "withNargout", "withtol", "wordcloud", "write", "write", "write", "writecell", "writeChecksum", "writeCol", "writeComment", "writeDate", "writeHistory", "writeImg", "writeKey", "writeKeyUnit", "writematrix", "writetable", "writetimetable", "writeVideo", "xcorr", "xcov", "xlabel", "xlim", "xline", "xlsfinfo", "xlsread", "xlswrite", "xmlread", "xmlwrite", "xor", "xor", "xslt", "xtickangle", "xtickformat", "xticklabels", "xticks", "year", "years", "ylabel", "ylim", "yline", "ymd", "ytickangle", "ytickformat", "yticklabels", "yticks", "yyaxis", "yyyymmdd", "zeros", "zip", "zlabel", "zlim", "zoom", "zoomInteraction", "ztickangle", "ztickformat", "zticklabels", "zticks"] + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/matlab/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/matlab/keywords.rb new file mode 100644 index 0000000..2324705 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/matlab/keywords.rb @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# DO NOT EDIT + +# This file is automatically generated by `rake builtins:matlab`. +# See tasks/builtins/matlab.rake for more info. + +module Rouge + module Lexers + def Matlab.builtins + @builtins ||= Set.new ["abs", "accumarray", "acos", "acosd", "acosh", "acot", "acotd", "acoth", "acsc", "acscd", "acsch", "actxcontrol", "actxcontrollist", "actxcontrolselect", "actxGetRunningServer", "actxserver", "add", "addboundary", "addcats", "addCause", "addClass", "addCondition", "addConditionsFrom", "addConstructor", "addCorrection", "addedge", "addevent", "addFields", "addFields", "addFile", "addFolderIncludingChildFiles", "addFunction", "addLabel", "addlistener", "addMethod", "addmulti", "addnode", "addOptional", "addParameter", "addParamValue", "addPath", "addpath", "addPlugin", "addpoints", "addpref", "addprop", "addprop", "addproperty", "addProperty", "addReference", "addRequired", "addsample", "addsampletocollection", "addShortcut", "addShutdownFile", "addStartupFile", "addTeardown", "addTeardown", "addtodate", "addToolbarExplorationButtons", "addts", "addvars", "adjacency", "airy", "align", "alim", "all", "allchild", "allowModelReferenceDiscreteSampleTimeInheritanceImpl", "alpha", "alphamap", "alphaShape", "alphaSpectrum", "alphaTriangulation", "amd", "analyzeCodeCompatibility", "ancestor", "and", "angle", "animatedline", "annotation", "ans", "any", "appdesigner", "append", "append", "applyFixture", "applyFixture", "area", "area", "area", "array2table", "array2timetable", "arrayfun", "ascii", "asec", "asecd", "asech", "asin", "asind", "asinh", "assert", "assertAccessed", "assertCalled", "assertClass", "assertEmpty", "assertEqual", "assertError", "assertFail", "assertFalse", "assertGreaterThan", "assertGreaterThanOrEqual", "assertInstanceOf", "assertLength", "assertLessThan", "assertLessThanOrEqual", "assertMatches", "assertNotAccessed", "assertNotCalled", "assertNotEmpty", "assertNotEqual", "assertNotSameHandle", "assertNotSet", "assertNumElements", "assertReturnsTrue", "assertSameHandle", "assertSet", "assertSize", "assertSubstring", "assertThat", "assertTrue", "assertUsing", "assertWarning", "assertWarningFree", "assignin", "assignOutputsWhen", "assumeAccessed", "assumeCalled", "assumeClass", "assumeEmpty", "assumeEqual", "assumeError", "assumeFail", "assumeFalse", "assumeGreaterThan", "assumeGreaterThanOrEqual", "assumeInstanceOf", "assumeLength", "assumeLessThan", "assumeLessThanOrEqual", "assumeMatches", "assumeNotAccessed", "assumeNotCalled", "assumeNotEmpty", "assumeNotEqual", "assumeNotSameHandle", "assumeNotSet", "assumeNumElements", "assumeReturnsTrue", "assumeSameHandle", "assumeSet", "assumeSize", "assumeSubstring", "assumeThat", "assumeTrue", "assumeUsing", "assumeWarning", "assumeWarningFree", "atan", "atan2", "atan2d", "atand", "atanh", "audiodevinfo", "audioinfo", "audioplayer", "audioread", "audiorecorder", "audiowrite", "autumn", "aviinfo", "axes", "axis", "axtoolbar", "axtoolbarbtn", "balance", "bandwidth", "bar", "bar3", "bar3h", "barh", "barycentricToCartesian", "baryToCart", "base2dec", "batchStartupOptionUsed", "bctree", "beep", "BeginInvoke", "bench", "besselh", "besseli", "besselj", "besselk", "bessely", "beta", "betainc", "betaincinv", "betaln", "between", "bfsearch", "bicg", "bicgstab", "bicgstabl", "biconncomp", "bin2dec", "binary", "binscatter", "bitand", "bitcmp", "bitget", "bitnot", "bitor", "bitset", "bitshift", "bitxor", "blanks", "blkdiag", "bone", "boundary", "boundary", "boundaryFacets", "boundaryshape", "boundingbox", "bounds", "box", "break", "brighten", "brush", "bsxfun", "build", "builddocsearchdb", "builtin", "bvp4c", "bvp5c", "bvpget", "bvpinit", "bvpset", "bvpxtend", "caldays", "caldiff", "calendar", "calendarDuration", "calllib", "callSoapService", "calmonths", "calquarters", "calweeks", "calyears", "camdolly", "cameratoolbar", "camlight", "camlookat", "camorbit", "campan", "campos", "camproj", "camroll", "camtarget", "camup", "camva", "camzoom", "cancel", "cancelled", "cart2pol", "cart2sph", "cartesianToBarycentric", "cartToBary", "cast", "cat", "cat", "categorical", "categories", "caxis", "cd", "cd", "cdf2rdf", "cdfepoch", "cdfinfo", "cdflib", "cdflib.close", "cdflib.closeVar", "cdflib.computeEpoch", "cdflib.computeEpoch16", "cdflib.create", "cdflib.createAttr", "cdflib.createVar", "cdflib.delete", "cdflib.deleteAttr", "cdflib.deleteAttrEntry", "cdflib.deleteAttrgEntry", "cdflib.deleteVar", "cdflib.deleteVarRecords", "cdflib.epoch16Breakdown", "cdflib.epochBreakdown", "cdflib.getAttrEntry", "cdflib.getAttrgEntry", "cdflib.getAttrMaxEntry", "cdflib.getAttrMaxgEntry", "cdflib.getAttrName", "cdflib.getAttrNum", "cdflib.getAttrScope", "cdflib.getCacheSize", "cdflib.getChecksum", "cdflib.getCompression", "cdflib.getCompressionCacheSize", "cdflib.getConstantNames", "cdflib.getConstantValue", "cdflib.getCopyright", "cdflib.getFileBackward", "cdflib.getFormat", "cdflib.getLibraryCopyright", "cdflib.getLibraryVersion", "cdflib.getMajority", "cdflib.getName", "cdflib.getNumAttrEntries", "cdflib.getNumAttrgEntries", "cdflib.getNumAttributes", "cdflib.getNumgAttributes", "cdflib.getReadOnlyMode", "cdflib.getStageCacheSize", "cdflib.getValidate", "cdflib.getVarAllocRecords", "cdflib.getVarBlockingFactor", "cdflib.getVarCacheSize", "cdflib.getVarCompression", "cdflib.getVarData", "cdflib.getVarMaxAllocRecNum", "cdflib.getVarMaxWrittenRecNum", "cdflib.getVarName", "cdflib.getVarNum", "cdflib.getVarNumRecsWritten", "cdflib.getVarPadValue", "cdflib.getVarRecordData", "cdflib.getVarReservePercent", "cdflib.getVarsMaxWrittenRecNum", "cdflib.getVarSparseRecords", "cdflib.getVersion", "cdflib.hyperGetVarData", "cdflib.hyperPutVarData", "cdflib.inquire", "cdflib.inquireAttr", "cdflib.inquireAttrEntry", "cdflib.inquireAttrgEntry", "cdflib.inquireVar", "cdflib.open", "cdflib.putAttrEntry", "cdflib.putAttrgEntry", "cdflib.putVarData", "cdflib.putVarRecordData", "cdflib.renameAttr", "cdflib.renameVar", "cdflib.setCacheSize", "cdflib.setChecksum", "cdflib.setCompression", "cdflib.setCompressionCacheSize", "cdflib.setFileBackward", "cdflib.setFormat", "cdflib.setMajority", "cdflib.setReadOnlyMode", "cdflib.setStageCacheSize", "cdflib.setValidate", "cdflib.setVarAllocBlockRecords", "cdflib.setVarBlockingFactor", "cdflib.setVarCacheSize", "cdflib.setVarCompression", "cdflib.setVarInitialRecs", "cdflib.setVarPadValue", "cdflib.SetVarReservePercent", "cdflib.setVarsCacheSize", "cdflib.setVarSparseRecords", "cdfread", "cdfwrite", "ceil", "cell", "cell2mat", "cell2struct", "cell2table", "celldisp", "cellfun", "cellplot", "cellstr", "centrality", "centroid", "cgs", "changeFields", "changeFields", "char", "char", "checkcode", "checkin", "checkout", "chol", "cholupdate", "choose", "circshift", "circumcenter", "circumcenters", "cla", "clabel", "class", "classdef", "classUnderlying", "clc", "clear", "clear", "clearAllMemoizedCaches", "clearCache", "clearMockHistory", "clearPersonalValue", "clearpoints", "clearTemporaryValue", "clearvars", "clf", "clibgen.buildInterface", "clibgen.ClassDefinition", "clibgen.ConstructorDefinition", "clibgen.EnumDefinition", "clibgen.FunctionDefinition", "clibgen.generateLibraryDefinition", "clibgen.LibraryDefinition", "clibgen.MethodDefinition", "clibgen.PropertyDefinition", "clibRelease", "clipboard", "clock", "clone", "close", "close", "close", "close", "close", "closeFile", "closereq", "cmopts", "cmpermute", "cmunique", "CodeCompatibilityAnalysis", "codeCompatibilityReport", "colamd", "collapse", "colon", "colorbar", "colorcube", "colordef", "colormap", "ColorSpec", "colperm", "COM", "com.mathworks.engine.MatlabEngine", "com.mathworks.matlab.types.CellStr", "com.mathworks.matlab.types.Complex", "com.mathworks.matlab.types.HandleObject", "com.mathworks.matlab.types.Struct", "combine", "Combine", "CombinedDatastore", "comet", "comet3", "compan", "compass", "complete", "complete", "complete", "complete", "complete", "complete", "complete", "complex", "compose", "computer", "cond", "condeig", "condensation", "condest", "coneplot", "conj", "conncomp", "containers.Map", "contains", "continue", "contour", "contour3", "contourc", "contourf", "contourslice", "contrast", "conv", "conv2", "convert", "convert", "convert", "convertCharsToStrings", "convertContainedStringsToChars", "convertLike", "convertStringsToChars", "convertvars", "convexHull", "convexHull", "convhull", "convhull", "convhulln", "convn", "cool", "copper", "copy", "copyElement", "copyfile", "copyHDU", "copyobj", "copyTo", "corrcoef", "cos", "cosd", "cosh", "cospi", "cot", "cotd", "coth", "count", "countcats", "countEachLabel", "cov", "cplxpair", "cputime", "createCategory", "createClassFromWsdl", "createFile", "createImg", "createLabel", "createMock", "createSampleTime", "createSharedTestFixture", "createSoapMessage", "createTbl", "createTestClassInstance", "createTestMethodInstance", "criticalAlpha", "cross", "csc", "cscd", "csch", "csvread", "csvwrite", "ctranspose", "cummax", "cummin", "cumprod", "cumsum", "cumtrapz", "curl", "currentProject", "customverctrl", "cylinder", "daqread", "daspect", "datacursormode", "datastore", "dataTipInteraction", "dataTipTextRow", "date", "datenum", "dateshift", "datestr", "datetick", "datetime", "datevec", "day", "days", "dbclear", "dbcont", "dbdown", "dblquad", "dbmex", "dbquit", "dbstack", "dbstatus", "dbstep", "dbstop", "dbtype", "dbup", "dde23", "ddeget", "ddensd", "ddesd", "ddeset", "deal", "deblank", "dec2base", "dec2bin", "dec2hex", "decic", "decomposition", "deconv", "defineArgument", "defineArgument", "defineArgument", "defineOutput", "defineOutput", "deg2rad", "degree", "del2", "delaunay", "delaunayn", "DelaunayTri", "DelaunayTri", "delaunayTriangulation", "delegateTo", "delegateTo", "delete", "delete", "delete", "delete", "delete", "deleteCol", "deleteFile", "deleteHDU", "deleteKey", "deleteproperty", "deleteRecord", "deleteRows", "delevent", "delimitedTextImportOptions", "delsample", "delsamplefromcollection", "demo", "det", "details", "detectImportOptions", "detrend", "detrend", "deval", "dfsearch", "diag", "diagnose", "dialog", "diary", "diff", "diffuse", "digraph", "dir", "dir", "disableDefaultInteractivity", "discretize", "disp", "disp", "disp", "display", "displayEmptyObject", "displayNonScalarObject", "displayScalarHandleToDeletedObject", "displayScalarObject", "dissect", "distances", "dither", "divergence", "dlmread", "dlmwrite", "dmperm", "doc", "docsearch", "done", "done", "dos", "dot", "double", "drag", "dragrect", "drawnow", "dsearchn", "duration", "dynamicprops", "echo", "echodemo", "edgeAttachments", "edgeAttachments", "edgecount", "edges", "edges", "edit", "eig", "eigs", "ellipj", "ellipke", "ellipsoid", "empty", "enableDefaultInteractivity", "enableNETfromNetworkDrive", "enableservice", "end", "EndInvoke", "endsWith", "enumeration", "eomday", "eps", "eq", "eq", "equilibrate", "erase", "eraseBetween", "erf", "erfc", "erfcinv", "erfcx", "erfinv", "error", "errorbar", "errordlg", "etime", "etree", "etreeplot", "eval", "evalc", "evalin", "event.DynamicPropertyEvent", "event.EventData", "event.hasListener", "event.listener", "event.PropertyEvent", "event.proplistener", "eventlisteners", "events", "events", "exceltime", "Execute", "exist", "exit", "exp", "expand", "expectedContentLength", "expectedContentLength", "expint", "expm", "expm1", "export", "export2wsdlg", "exportsetupdlg", "extractAfter", "extractBefore", "extractBetween", "eye", "ezcontour", "ezcontourf", "ezmesh", "ezmeshc", "ezplot", "ezplot3", "ezpolar", "ezsurf", "ezsurfc", "faceNormal", "faceNormals", "factor", "factorial", "false", "fatalAssertAccessed", "fatalAssertCalled", "fatalAssertClass", "fatalAssertEmpty", "fatalAssertEqual", "fatalAssertError", "fatalAssertFail", "fatalAssertFalse", "fatalAssertGreaterThan", "fatalAssertGreaterThanOrEqual", "fatalAssertInstanceOf", "fatalAssertLength", "fatalAssertLessThan", "fatalAssertLessThanOrEqual", "fatalAssertMatches", "fatalAssertNotAccessed", "fatalAssertNotCalled", "fatalAssertNotEmpty", "fatalAssertNotEqual", "fatalAssertNotSameHandle", "fatalAssertNotSet", "fatalAssertNumElements", "fatalAssertReturnsTrue", "fatalAssertSameHandle", "fatalAssertSet", "fatalAssertSize", "fatalAssertSubstring", "fatalAssertThat", "fatalAssertTrue", "fatalAssertUsing", "fatalAssertWarning", "fatalAssertWarningFree", "fclose", "fclose", "fcontour", "feather", "featureEdges", "featureEdges", "feof", "ferror", "feval", "Feval", "feval", "fewerbins", "fft", "fft2", "fftn", "fftshift", "fftw", "fgetl", "fgetl", "fgets", "fgets", "fieldnames", "figure", "figurepalette", "fileattrib", "fileDatastore", "filemarker", "fileMode", "fileName", "fileparts", "fileread", "filesep", "fill", "fill3", "fillmissing", "filloutliers", "filter", "filter", "filter2", "fimplicit", "fimplicit3", "find", "findall", "findCategory", "findedge", "findEvent", "findfigs", "findFile", "findgroups", "findLabel", "findnode", "findobj", "findobj", "findprop", "findstr", "finish", "fitsdisp", "fitsinfo", "fitsread", "fitswrite", "fix", "fixedWidthImportOptions", "flag", "flintmax", "flip", "flipdim", "flipedge", "fliplr", "flipud", "floor", "flow", "fmesh", "fminbnd", "fminsearch", "fopen", "fopen", "for", "format", "fplot", "fplot3", "fprintf", "fprintf", "frame2im", "fread", "fread", "freeBoundary", "freeBoundary", "freqspace", "frewind", "fscanf", "fscanf", "fseek", "fsurf", "ftell", "ftp", "full", "fullfile", "func2str", "function", "functions", "FunctionTestCase", "functiontests", "funm", "fwrite", "fwrite", "fzero", "gallery", "gamma", "gammainc", "gammaincinv", "gammaln", "gather", "gca", "gcbf", "gcbo", "gcd", "gcf", "gcmr", "gco", "ge", "genpath", "genvarname", "geoaxes", "geobasemap", "geobubble", "geodensityplot", "geolimits", "geoplot", "geoscatter", "geotickformat", "get", "get", "get", "get", "get", "get", "get", "get", "get", "get", "get", "getabstime", "getabstime", "getAColParms", "getappdata", "getaudiodata", "getBColParms", "GetCharArray", "getClass", "getColName", "getColType", "getConstantValue", "getCurrentTime", "getData", "getData", "getData", "getData", "getData", "getdatasamples", "getdatasamplesize", "getDiagnosticFor", "getDiagnosticFor", "getDiscreteStateImpl", "getDiscreteStateSpecificationImpl", "getdisp", "getenv", "getEqColType", "getfield", "getFields", "getFields", "getFileFormats", "getFooter", "getframe", "GetFullMatrix", "getGlobalNamesImpl", "getHdrSpace", "getHDUnum", "getHDUtype", "getHeader", "getHeaderImpl", "getIconImpl", "getImgSize", "getImgType", "getImpulseResponseLengthImpl", "getInputDimensionConstraintImpl", "getinterpmethod", "getLocation", "getLocation", "getMockHistory", "getNegativeDiagnosticFor", "getnext", "getNumCols", "getNumHDUs", "getNumInputs", "getNumInputsImpl", "getNumOutputs", "getNumOutputsImpl", "getNumRows", "getOpenFiles", "getOutputDataTypeImpl", "getOutputDimensionConstraintImpl", "getOutputSizeImpl", "getParameter", "getParameter", "getParameter", "getpixelposition", "getplayer", "getpoints", "getPostActValString", "getPostConditionString", "getPostDescriptionString", "getPostExpValString", "getPreDescriptionString", "getpref", "getProfiles", "getPropertyGroups", "getPropertyGroupsImpl", "getqualitydesc", "getReasonPhrase", "getReasonPhrase", "getReport", "getsamples", "getSampleTime", "getSampleTimeImpl", "getsampleusingtime", "getsampleusingtime", "getSharedTestFixtures", "getSimulateUsingImpl", "getSimulinkFunctionNamesImpl", "gettimeseriesnames", "getTimeStr", "gettsafteratevent", "gettsafterevent", "gettsatevent", "gettsbeforeatevent", "gettsbeforeevent", "gettsbetweenevents", "GetVariable", "getvaropts", "getVersion", "GetWorkspaceData", "ginput", "global", "gmres", "gobjects", "gplot", "grabcode", "gradient", "graph", "GraphPlot", "gray", "graymon", "grid", "griddata", "griddatan", "griddedInterpolant", "groot", "groupcounts", "groupsummary", "grouptransform", "gsvd", "gt", "gtext", "guidata", "guide", "guihandles", "gunzip", "gzip", "H5.close", "H5.garbage_collect", "H5.get_libversion", "H5.open", "H5.set_free_list_limits", "H5A.close", "H5A.create", "H5A.delete", "H5A.get_info", "H5A.get_name", "H5A.get_space", "H5A.get_type", "H5A.iterate", "H5A.open", "H5A.open_by_idx", "H5A.open_by_name", "H5A.read", "H5A.write", "h5create", "H5D.close", "H5D.create", "H5D.get_access_plist", "H5D.get_create_plist", "H5D.get_offset", "H5D.get_space", "H5D.get_space_status", "H5D.get_storage_size", "H5D.get_type", "H5D.open", "H5D.read", "H5D.set_extent", "H5D.vlen_get_buf_size", "H5D.write", "h5disp", "H5DS.attach_scale", "H5DS.detach_scale", "H5DS.get_label", "H5DS.get_num_scales", "H5DS.get_scale_name", "H5DS.is_scale", "H5DS.iterate_scales", "H5DS.set_label", "H5DS.set_scale", "H5E.clear", "H5E.get_major", "H5E.get_minor", "H5E.walk", "H5F.close", "H5F.create", "H5F.flush", "H5F.get_access_plist", "H5F.get_create_plist", "H5F.get_filesize", "H5F.get_freespace", "H5F.get_info", "H5F.get_mdc_config", "H5F.get_mdc_hit_rate", "H5F.get_mdc_size", "H5F.get_name", "H5F.get_obj_count", "H5F.get_obj_ids", "H5F.is_hdf5", "H5F.mount", "H5F.open", "H5F.reopen", "H5F.set_mdc_config", "H5F.unmount", "H5G.close", "H5G.create", "H5G.get_info", "H5G.open", "H5I.dec_ref", "H5I.get_file_id", "H5I.get_name", "H5I.get_ref", "H5I.get_type", "H5I.inc_ref", "H5I.is_valid", "h5info", "H5L.copy", "H5L.create_external", "H5L.create_hard", "H5L.create_soft", "H5L.delete", "H5L.exists", "H5L.get_info", "H5L.get_name_by_idx", "H5L.get_val", "H5L.iterate", "H5L.iterate_by_name", "H5L.move", "H5L.visit", "H5L.visit_by_name", "H5ML.compare_values", "H5ML.get_constant_names", "H5ML.get_constant_value", "H5ML.get_function_names", "H5ML.get_mem_datatype", "H5ML.hoffset", "H5ML.sizeof", "H5O.close", "H5O.copy", "H5O.get_comment", "H5O.get_comment_by_name", "H5O.get_info", "H5O.link", "H5O.open", "H5O.open_by_idx", "H5O.set_comment", "H5O.set_comment_by_name", "H5O.visit", "H5O.visit_by_name", "H5P.all_filters_avail", "H5P.close", "H5P.close_class", "H5P.copy", "H5P.create", "H5P.equal", "H5P.exist", "H5P.fill_value_defined", "H5P.get", "H5P.get_alignment", "H5P.get_alloc_time", "H5P.get_attr_creation_order", "H5P.get_attr_phase_change", "H5P.get_btree_ratios", "H5P.get_char_encoding", "H5P.get_chunk", "H5P.get_chunk_cache", "H5P.get_class", "H5P.get_class_name", "H5P.get_class_parent", "H5P.get_copy_object", "H5P.get_create_intermediate_group", "H5P.get_driver", "H5P.get_edc_check", "H5P.get_external", "H5P.get_external_count", "H5P.get_family_offset", "H5P.get_fapl_core", "H5P.get_fapl_family", "H5P.get_fapl_multi", "H5P.get_fclose_degree", "H5P.get_fill_time", "H5P.get_fill_value", "H5P.get_filter", "H5P.get_filter_by_id", "H5P.get_gc_references", "H5P.get_hyper_vector_size", "H5P.get_istore_k", "H5P.get_layout", "H5P.get_libver_bounds", "H5P.get_link_creation_order", "H5P.get_link_phase_change", "H5P.get_mdc_config", "H5P.get_meta_block_size", "H5P.get_multi_type", "H5P.get_nfilters", "H5P.get_nprops", "H5P.get_sieve_buf_size", "H5P.get_size", "H5P.get_sizes", "H5P.get_small_data_block_size", "H5P.get_sym_k", "H5P.get_userblock", "H5P.get_version", "H5P.isa_class", "H5P.iterate", "H5P.modify_filter", "H5P.remove_filter", "H5P.set", "H5P.set_alignment", "H5P.set_alloc_time", "H5P.set_attr_creation_order", "H5P.set_attr_phase_change", "H5P.set_btree_ratios", "H5P.set_char_encoding", "H5P.set_chunk", "H5P.set_chunk_cache", "H5P.set_copy_object", "H5P.set_create_intermediate_group", "H5P.set_deflate", "H5P.set_edc_check", "H5P.set_external", "H5P.set_family_offset", "H5P.set_fapl_core", "H5P.set_fapl_family", "H5P.set_fapl_log", "H5P.set_fapl_multi", "H5P.set_fapl_sec2", "H5P.set_fapl_split", "H5P.set_fapl_stdio", "H5P.set_fclose_degree", "H5P.set_fill_time", "H5P.set_fill_value", "H5P.set_filter", "H5P.set_fletcher32", "H5P.set_gc_references", "H5P.set_hyper_vector_size", "H5P.set_istore_k", "H5P.set_layout", "H5P.set_libver_bounds", "H5P.set_link_creation_order", "H5P.set_link_phase_change", "H5P.set_mdc_config", "H5P.set_meta_block_size", "H5P.set_multi_type", "H5P.set_nbit", "H5P.set_scaleoffset", "H5P.set_shuffle", "H5P.set_sieve_buf_size", "H5P.set_sizes", "H5P.set_small_data_block_size", "H5P.set_sym_k", "H5P.set_userblock", "H5R.create", "H5R.dereference", "H5R.get_name", "H5R.get_obj_type", "H5R.get_region", "h5read", "h5readatt", "H5S.close", "H5S.copy", "H5S.create", "H5S.create_simple", "H5S.extent_copy", "H5S.get_select_bounds", "H5S.get_select_elem_npoints", "H5S.get_select_elem_pointlist", "H5S.get_select_hyper_blocklist", "H5S.get_select_hyper_nblocks", "H5S.get_select_npoints", "H5S.get_select_type", "H5S.get_simple_extent_dims", "H5S.get_simple_extent_ndims", "H5S.get_simple_extent_npoints", "H5S.get_simple_extent_type", "H5S.is_simple", "H5S.offset_simple", "H5S.select_all", "H5S.select_elements", "H5S.select_hyperslab", "H5S.select_none", "H5S.select_valid", "H5S.set_extent_none", "H5S.set_extent_simple", "H5T.array_create", "H5T.close", "H5T.commit", "H5T.committed", "H5T.copy", "H5T.create", "H5T.detect_class", "H5T.enum_create", "H5T.enum_insert", "H5T.enum_nameof", "H5T.enum_valueof", "H5T.equal", "H5T.get_array_dims", "H5T.get_array_ndims", "H5T.get_class", "H5T.get_create_plist", "H5T.get_cset", "H5T.get_ebias", "H5T.get_fields", "H5T.get_inpad", "H5T.get_member_class", "H5T.get_member_index", "H5T.get_member_name", "H5T.get_member_offset", "H5T.get_member_type", "H5T.get_member_value", "H5T.get_native_type", "H5T.get_nmembers", "H5T.get_norm", "H5T.get_offset", "H5T.get_order", "H5T.get_pad", "H5T.get_precision", "H5T.get_sign", "H5T.get_size", "H5T.get_strpad", "H5T.get_super", "H5T.get_tag", "H5T.insert", "H5T.is_variable_str", "H5T.lock", "H5T.open", "H5T.pack", "H5T.set_cset", "H5T.set_ebias", "H5T.set_fields", "H5T.set_inpad", "H5T.set_norm", "H5T.set_offset", "H5T.set_order", "H5T.set_pad", "H5T.set_precision", "H5T.set_sign", "H5T.set_size", "H5T.set_strpad", "H5T.set_tag", "H5T.vlen_create", "h5write", "h5writeatt", "H5Z.filter_avail", "H5Z.get_filter_info", "hadamard", "handle", "hankel", "hasdata", "hasdata", "hasFactoryValue", "hasfile", "hasFrame", "hasnext", "hasPersonalValue", "hasTemporaryValue", "hdf5info", "hdf5read", "hdf5write", "hdfan", "hdfdf24", "hdfdfr8", "hdfh", "hdfhd", "hdfhe", "hdfhx", "hdfinfo", "hdfml", "hdfpt", "hdfread", "hdftool", "hdfv", "hdfvf", "hdfvh", "hdfvs", "head", "heatmap", "height", "help", "helpbrowser", "helpdesk", "helpdlg", "helpwin", "hess", "hex2dec", "hex2num", "hgexport", "hggroup", "hgload", "hgsave", "hgtransform", "hidden", "highlight", "hilb", "hist", "histc", "histcounts", "histcounts2", "histogram", "histogram2", "hms", "hold", "holes", "home", "horzcat", "horzcat", "horzcat", "hot", "hour", "hours", "hover", "hsv", "hsv2rgb", "hypot", "ichol", "idealfilter", "idivide", "ifft", "ifft2", "ifftn", "ifftshift", "ilu", "im2double", "im2frame", "im2java", "imag", "image", "imageDatastore", "imagesc", "imapprox", "imfinfo", "imformats", "imgCompress", "import", "importdata", "imread", "imresize", "imshow", "imtile", "imwrite", "incenter", "incenters", "incidence", "ind2rgb", "ind2sub", "indegree", "inedges", "Inf", "info", "infoImpl", "initialize", "initialize", "initialize", "initialize", "initialize", "initializeDatastore", "initializeDatastore", "inline", "inmem", "inner2outer", "innerjoin", "inOutStatus", "inpolygon", "input", "inputdlg", "inputname", "inputParser", "insertAfter", "insertATbl", "insertBefore", "insertBTbl", "insertCol", "insertImg", "insertRows", "inShape", "inspect", "instrcallback", "instrfind", "instrfindall", "int16", "int2str", "int32", "int64", "int8", "integral", "integral2", "integral3", "interp1", "interp1q", "interp2", "interp3", "interpft", "interpn", "interpstreamspeed", "intersect", "intersect", "intmax", "intmin", "inv", "invhilb", "invoke", "ipermute", "iqr", "is*", "isa", "isappdata", "isaUnderlying", "isbanded", "isbetween", "iscalendarduration", "iscategorical", "iscategory", "iscell", "iscellstr", "ischange", "ischar", "iscolumn", "iscom", "isCompatible", "isCompressedImg", "isConnected", "isdag", "isdatetime", "isdiag", "isdir", "isDiscreteStateSpecificationMutableImpl", "isDone", "isDoneImpl", "isdst", "isduration", "isEdge", "isempty", "isempty", "isenum", "isequal", "isequaln", "isequalwithequalnans", "isevent", "isfield", "isfile", "isfinite", "isfloat", "isfolder", "isfullfile", "isfullfile", "isgraphics", "ishandle", "ishermitian", "ishghandle", "ishold", "ishole", "isIllConditioned", "isInactivePropertyImpl", "isinf", "isInputComplexityMutableImpl", "isInputDataTypeMutableImpl", "isInputDirectFeedthroughImpl", "isInputSizeLockedImpl", "isInputSizeMutableImpl", "isinteger", "isinterface", "isInterior", "isinterior", "isisomorphic", "isjava", "isKey", "iskeyword", "isletter", "isLoaded", "islocalmax", "islocalmin", "isLocked", "islogical", "ismac", "ismatrix", "ismember", "ismembertol", "ismethod", "ismissing", "ismultigraph", "isnan", "isnat", "isNull", "isnumeric", "isobject", "isocaps", "isocolors", "isomorphism", "isonormals", "isordinal", "isosurface", "isoutlier", "isOutputComplexImpl", "isOutputFixedSizeImpl", "ispc", "isplaying", "ispref", "isprime", "isprop", "isprotected", "isreal", "isrecording", "isregular", "isrow", "isscalar", "issimplified", "issorted", "issortedrows", "isspace", "issparse", "isstr", "isstring", "isStringScalar", "isstrprop", "isstruct", "isstudent", "issymmetric", "istable", "istall", "istimetable", "istril", "istriu", "isTunablePropertyDataTypeMutableImpl", "isundefined", "isunix", "isvalid", "isvalid", "isvalid", "isvarname", "isvector", "isweekend", "javaaddpath", "javaArray", "javachk", "javaclasspath", "javaMethod", "javaMethodEDT", "javaObject", "javaObjectEDT", "javarmpath", "jet", "join", "join", "join", "jsondecode", "jsonencode", "juliandate", "keepMeasuring", "keyboard", "keys", "KeyValueDatastore", "KeyValueStore", "kron", "labeledge", "labelnode", "lag", "laplacian", "lasterr", "lasterror", "lastwarn", "layout", "lcm", "ldivide", "ldl", "le", "legend", "legendre", "length", "length", "length", "length", "lib.pointer", "libfunctions", "libfunctionsview", "libisloaded", "libpointer", "libstruct", "license", "light", "lightangle", "lighting", "lin2mu", "line", "lines", "LineSpec", "linkaxes", "linkdata", "linkprop", "linsolve", "linspace", "listdlg", "listener", "listfonts", "listModifiedFiles", "listRequiredFiles", "load", "load", "load", "loadlibrary", "loadobj", "loadObjectImpl", "localfunctions", "log", "log", "log", "log10", "log1p", "log2", "logical", "Logical", "loglog", "logm", "logspace", "lookfor", "lower", "ls", "lscov", "lsqminnorm", "lsqnonneg", "lsqr", "lt", "lu", "magic", "makehgtform", "mapreduce", "mapreducer", "mat2cell", "mat2str", "matchpairs", "material", "matfile", "matlab", "matlab", "matlab", "matlab.addons.disableAddon", "matlab.addons.enableAddon", "matlab.addons.install", "matlab.addons.installedAddons", "matlab.addons.isAddonEnabled", "matlab.addons.toolbox.installedToolboxes", "matlab.addons.toolbox.installToolbox", "matlab.addons.toolbox.packageToolbox", "matlab.addons.toolbox.toolboxVersion", "matlab.addons.toolbox.uninstallToolbox", "matlab.addons.uninstall", "matlab.apputil.create", "matlab.apputil.getInstalledAppInfo", "matlab.apputil.install", "matlab.apputil.package", "matlab.apputil.run", "matlab.apputil.uninstall", "matlab.codetools.requiredFilesAndProducts", "matlab.engine.connect_matlab", "matlab.engine.engineName", "matlab.engine.find_matlab", "matlab.engine.FutureResult", "matlab.engine.isEngineShared", "matlab.engine.MatlabEngine", "matlab.engine.shareEngine", "matlab.engine.start_matlab", "matlab.exception.JavaException", "matlab.exception.PyException", "matlab.graphics.Graphics", "matlab.graphics.GraphicsPlaceholder", "matlab.io.Datastore", "matlab.io.datastore.DsFileReader", "matlab.io.datastore.DsFileSet", "matlab.io.datastore.HadoopFileBased", "matlab.io.datastore.HadoopLocationBased", "matlab.io.datastore.Partitionable", "matlab.io.datastore.Shuffleable", "matlab.io.hdf4.sd", "matlab.io.hdf4.sd.attrInfo", "matlab.io.hdf4.sd.close", "matlab.io.hdf4.sd.create", "matlab.io.hdf4.sd.dimInfo", "matlab.io.hdf4.sd.endAccess", "matlab.io.hdf4.sd.fileInfo", "matlab.io.hdf4.sd.findAttr", "matlab.io.hdf4.sd.getCal", "matlab.io.hdf4.sd.getChunkInfo", "matlab.io.hdf4.sd.getCompInfo", "matlab.io.hdf4.sd.getDataStrs", "matlab.io.hdf4.sd.getDimID", "matlab.io.hdf4.sd.getDimScale", "matlab.io.hdf4.sd.getDimStrs", "matlab.io.hdf4.sd.getFilename", "matlab.io.hdf4.sd.getFillValue", "matlab.io.hdf4.sd.getInfo", "matlab.io.hdf4.sd.getRange", "matlab.io.hdf4.sd.idToRef", "matlab.io.hdf4.sd.idType", "matlab.io.hdf4.sd.isCoordVar", "matlab.io.hdf4.sd.isRecord", "matlab.io.hdf4.sd.nameToIndex", "matlab.io.hdf4.sd.nameToIndices", "matlab.io.hdf4.sd.readAttr", "matlab.io.hdf4.sd.readChunk", "matlab.io.hdf4.sd.readData", "matlab.io.hdf4.sd.refToIndex", "matlab.io.hdf4.sd.select", "matlab.io.hdf4.sd.setAttr", "matlab.io.hdf4.sd.setCal", "matlab.io.hdf4.sd.setChunk", "matlab.io.hdf4.sd.setCompress", "matlab.io.hdf4.sd.setDataStrs", "matlab.io.hdf4.sd.setDimName", "matlab.io.hdf4.sd.setDimScale", "matlab.io.hdf4.sd.setDimStrs", "matlab.io.hdf4.sd.setExternalFile", "matlab.io.hdf4.sd.setFillMode", "matlab.io.hdf4.sd.setFillValue", "matlab.io.hdf4.sd.setNBitDataSet", "matlab.io.hdf4.sd.setRange", "matlab.io.hdf4.sd.start", "matlab.io.hdf4.sd.writeChunk", "matlab.io.hdf4.sd.writeData", "matlab.io.hdfeos.gd", "matlab.io.hdfeos.gd.attach", "matlab.io.hdfeos.gd.close", "matlab.io.hdfeos.gd.compInfo", "matlab.io.hdfeos.gd.create", "matlab.io.hdfeos.gd.defBoxRegion", "matlab.io.hdfeos.gd.defComp", "matlab.io.hdfeos.gd.defDim", "matlab.io.hdfeos.gd.defField", "matlab.io.hdfeos.gd.defOrigin", "matlab.io.hdfeos.gd.defPixReg", "matlab.io.hdfeos.gd.defProj", "matlab.io.hdfeos.gd.defTile", "matlab.io.hdfeos.gd.defVrtRegion", "matlab.io.hdfeos.gd.detach", "matlab.io.hdfeos.gd.dimInfo", "matlab.io.hdfeos.gd.extractRegion", "matlab.io.hdfeos.gd.fieldInfo", "matlab.io.hdfeos.gd.getFillValue", "matlab.io.hdfeos.gd.getPixels", "matlab.io.hdfeos.gd.getPixValues", "matlab.io.hdfeos.gd.gridInfo", "matlab.io.hdfeos.gd.ij2ll", "matlab.io.hdfeos.gd.inqAttrs", "matlab.io.hdfeos.gd.inqDims", "matlab.io.hdfeos.gd.inqFields", "matlab.io.hdfeos.gd.inqGrid", "matlab.io.hdfeos.gd.interpolate", "matlab.io.hdfeos.gd.ll2ij", "matlab.io.hdfeos.gd.nEntries", "matlab.io.hdfeos.gd.open", "matlab.io.hdfeos.gd.originInfo", "matlab.io.hdfeos.gd.pixRegInfo", "matlab.io.hdfeos.gd.projInfo", "matlab.io.hdfeos.gd.readAttr", "matlab.io.hdfeos.gd.readBlkSomOffset", "matlab.io.hdfeos.gd.readField", "matlab.io.hdfeos.gd.readTile", "matlab.io.hdfeos.gd.regionInfo", "matlab.io.hdfeos.gd.setFillValue", "matlab.io.hdfeos.gd.setTileComp", "matlab.io.hdfeos.gd.sphereCodeToName", "matlab.io.hdfeos.gd.sphereNameToCode", "matlab.io.hdfeos.gd.tileInfo", "matlab.io.hdfeos.gd.writeAttr", "matlab.io.hdfeos.gd.writeBlkSomOffset", "matlab.io.hdfeos.gd.writeField", "matlab.io.hdfeos.gd.writeTile", "matlab.io.hdfeos.sw", "matlab.io.hdfeos.sw.attach", "matlab.io.hdfeos.sw.close", "matlab.io.hdfeos.sw.compInfo", "matlab.io.hdfeos.sw.create", "matlab.io.hdfeos.sw.defBoxRegion", "matlab.io.hdfeos.sw.defComp", "matlab.io.hdfeos.sw.defDataField", "matlab.io.hdfeos.sw.defDim", "matlab.io.hdfeos.sw.defDimMap", "matlab.io.hdfeos.sw.defGeoField", "matlab.io.hdfeos.sw.defTimePeriod", "matlab.io.hdfeos.sw.defVrtRegion", "matlab.io.hdfeos.sw.detach", "matlab.io.hdfeos.sw.dimInfo", "matlab.io.hdfeos.sw.extractPeriod", "matlab.io.hdfeos.sw.extractRegion", "matlab.io.hdfeos.sw.fieldInfo", "matlab.io.hdfeos.sw.geoMapInfo", "matlab.io.hdfeos.sw.getFillValue", "matlab.io.hdfeos.sw.idxMapInfo", "matlab.io.hdfeos.sw.inqAttrs", "matlab.io.hdfeos.sw.inqDataFields", "matlab.io.hdfeos.sw.inqDims", "matlab.io.hdfeos.sw.inqGeoFields", "matlab.io.hdfeos.sw.inqIdxMaps", "matlab.io.hdfeos.sw.inqMaps", "matlab.io.hdfeos.sw.inqSwath", "matlab.io.hdfeos.sw.mapInfo", "matlab.io.hdfeos.sw.nEntries", "matlab.io.hdfeos.sw.open", "matlab.io.hdfeos.sw.periodInfo", "matlab.io.hdfeos.sw.readAttr", "matlab.io.hdfeos.sw.readField", "matlab.io.hdfeos.sw.regionInfo", "matlab.io.hdfeos.sw.setFillValue", "matlab.io.hdfeos.sw.writeAttr", "matlab.io.hdfeos.sw.writeField", "matlab.io.MatFile", "matlab.io.saveVariablesToScript", "matlab.lang.correction.AppendArgumentsCorrection", "matlab.lang.makeUniqueStrings", "matlab.lang.makeValidName", "matlab.lang.OnOffSwitchState", "matlab.mex.MexHost", "matlab.mixin.Copyable", "matlab.mixin.CustomDisplay", "matlab.mixin.CustomDisplay.convertDimensionsToString", "matlab.mixin.CustomDisplay.displayPropertyGroups", "matlab.mixin.CustomDisplay.getClassNameForHeader", "matlab.mixin.CustomDisplay.getDeletedHandleText", "matlab.mixin.CustomDisplay.getDetailedFooter", "matlab.mixin.CustomDisplay.getDetailedHeader", "matlab.mixin.CustomDisplay.getHandleText", "matlab.mixin.CustomDisplay.getSimpleHeader", "matlab.mixin.Heterogeneous", "matlab.mixin.Heterogeneous.getDefaultScalarElement", "matlab.mixin.SetGet", "matlab.mixin.SetGetExactNames", "matlab.mixin.util.PropertyGroup", "matlab.mock.actions.AssignOutputs", "matlab.mock.actions.Invoke", "matlab.mock.actions.ReturnStoredValue", "matlab.mock.actions.StoreValue", "matlab.mock.actions.ThrowException", "matlab.mock.AnyArguments", "matlab.mock.constraints.Occurred", "matlab.mock.constraints.WasAccessed", "matlab.mock.constraints.WasCalled", "matlab.mock.constraints.WasSet", "matlab.mock.history.MethodCall", "matlab.mock.history.PropertyAccess", "matlab.mock.history.PropertyModification", "matlab.mock.history.SuccessfulMethodCall", "matlab.mock.history.SuccessfulPropertyAccess", "matlab.mock.history.SuccessfulPropertyModification", "matlab.mock.history.UnsuccessfulMethodCall", "matlab.mock.history.UnsuccessfulPropertyAccess", "matlab.mock.history.UnsuccessfulPropertyModification", "matlab.mock.InteractionHistory", "matlab.mock.InteractionHistory.forMock", "matlab.mock.MethodCallBehavior", "matlab.mock.PropertyBehavior", "matlab.mock.PropertyGetBehavior", "matlab.mock.PropertySetBehavior", "matlab.mock.TestCase", "matlab.mock.TestCase.forInteractiveUse", "matlab.net.ArrayFormat", "matlab.net.base64decode", "matlab.net.base64encode", "matlab.net.http.AuthenticationScheme", "matlab.net.http.AuthInfo", "matlab.net.http.Cookie", "matlab.net.http.CookieInfo", "matlab.net.http.CookieInfo.collectFromLog", "matlab.net.http.Credentials", "matlab.net.http.Disposition", "matlab.net.http.field.AcceptField", "matlab.net.http.field.AuthenticateField", "matlab.net.http.field.AuthenticationInfoField", "matlab.net.http.field.AuthorizationField", "matlab.net.http.field.ContentDispositionField", "matlab.net.http.field.ContentLengthField", "matlab.net.http.field.ContentLocationField", "matlab.net.http.field.ContentTypeField", "matlab.net.http.field.CookieField", "matlab.net.http.field.DateField", "matlab.net.http.field.GenericField", "matlab.net.http.field.GenericParameterizedField", "matlab.net.http.field.HTTPDateField", "matlab.net.http.field.IntegerField", "matlab.net.http.field.LocationField", "matlab.net.http.field.MediaRangeField", "matlab.net.http.field.SetCookieField", "matlab.net.http.field.URIReferenceField", "matlab.net.http.HeaderField", "matlab.net.http.HeaderField.displaySubclasses", "matlab.net.http.HTTPException", "matlab.net.http.HTTPOptions", "matlab.net.http.io.BinaryConsumer", "matlab.net.http.io.ContentConsumer", "matlab.net.http.io.ContentProvider", "matlab.net.http.io.FileConsumer", "matlab.net.http.io.FileProvider", "matlab.net.http.io.FormProvider", "matlab.net.http.io.GenericConsumer", "matlab.net.http.io.GenericProvider", "matlab.net.http.io.ImageConsumer", "matlab.net.http.io.ImageProvider", "matlab.net.http.io.JSONConsumer", "matlab.net.http.io.JSONProvider", "matlab.net.http.io.MultipartConsumer", "matlab.net.http.io.MultipartFormProvider", "matlab.net.http.io.MultipartProvider", "matlab.net.http.io.StringConsumer", "matlab.net.http.io.StringProvider", "matlab.net.http.LogRecord", "matlab.net.http.MediaType", "matlab.net.http.Message", "matlab.net.http.MessageBody", "matlab.net.http.MessageType", "matlab.net.http.ProgressMonitor", "matlab.net.http.ProtocolVersion", "matlab.net.http.RequestLine", "matlab.net.http.RequestMessage", "matlab.net.http.RequestMethod", "matlab.net.http.ResponseMessage", "matlab.net.http.StartLine", "matlab.net.http.StatusClass", "matlab.net.http.StatusCode", "matlab.net.http.StatusCode.fromValue", "matlab.net.http.StatusLine", "matlab.net.QueryParameter", "matlab.net.URI", "matlab.perftest.FixedTimeExperiment", "matlab.perftest.FrequentistTimeExperiment", "matlab.perftest.TestCase", "matlab.perftest.TimeExperiment", "matlab.perftest.TimeExperiment.limitingSamplingError", "matlab.perftest.TimeExperiment.withFixedSampleSize", "matlab.perftest.TimeResult", "matlab.project.createProject", "matlab.project.loadProject", "matlab.project.Project", "matlab.project.rootProject", "matlab.System", "matlab.system.display.Action", "matlab.system.display.Header", "matlab.system.display.Icon", "matlab.system.display.Section", "matlab.system.display.SectionGroup", "matlab.system.mixin.CustomIcon", "matlab.system.mixin.FiniteSource", "matlab.system.mixin.Nondirect", "matlab.system.mixin.Propagates", "matlab.system.mixin.SampleTime", "matlab.system.StringSet", "matlab.tall.blockMovingWindow", "matlab.tall.movingWindow", "matlab.tall.reduce", "matlab.tall.transform", "matlab.test.behavior.Missing", "matlab.uitest.TestCase", "matlab.uitest.TestCase.forInteractiveUse", "matlab.uitest.unlock", "matlab.unittest.constraints.AbsoluteTolerance", "matlab.unittest.constraints.AnyCellOf", "matlab.unittest.constraints.AnyElementOf", "matlab.unittest.constraints.BooleanConstraint", "matlab.unittest.constraints.CellComparator", "matlab.unittest.constraints.Constraint", "matlab.unittest.constraints.ContainsSubstring", "matlab.unittest.constraints.EndsWithSubstring", "matlab.unittest.constraints.Eventually", "matlab.unittest.constraints.EveryCellOf", "matlab.unittest.constraints.EveryElementOf", "matlab.unittest.constraints.HasElementCount", "matlab.unittest.constraints.HasField", "matlab.unittest.constraints.HasInf", "matlab.unittest.constraints.HasLength", "matlab.unittest.constraints.HasNaN", "matlab.unittest.constraints.HasSize", "matlab.unittest.constraints.HasUniqueElements", "matlab.unittest.constraints.IsAnything", "matlab.unittest.constraints.IsEmpty", "matlab.unittest.constraints.IsEqualTo", "matlab.unittest.constraints.IsFalse", "matlab.unittest.constraints.IsFile", "matlab.unittest.constraints.IsFinite", "matlab.unittest.constraints.IsFolder", "matlab.unittest.constraints.IsGreaterThan", "matlab.unittest.constraints.IsGreaterThanOrEqualTo", "matlab.unittest.constraints.IsInstanceOf", "matlab.unittest.constraints.IsLessThan", "matlab.unittest.constraints.IsLessThanOrEqualTo", "matlab.unittest.constraints.IsOfClass", "matlab.unittest.constraints.IsReal", "matlab.unittest.constraints.IsSameHandleAs", "matlab.unittest.constraints.IsSameSetAs", "matlab.unittest.constraints.IsScalar", "matlab.unittest.constraints.IsSparse", "matlab.unittest.constraints.IsSubsetOf", "matlab.unittest.constraints.IsSubstringOf", "matlab.unittest.constraints.IssuesNoWarnings", "matlab.unittest.constraints.IssuesWarnings", "matlab.unittest.constraints.IsSupersetOf", "matlab.unittest.constraints.IsTrue", "matlab.unittest.constraints.LogicalComparator", "matlab.unittest.constraints.Matches", "matlab.unittest.constraints.NumericComparator", "matlab.unittest.constraints.ObjectComparator", "matlab.unittest.constraints.PublicPropertyComparator", "matlab.unittest.constraints.PublicPropertyComparator.supportingAllValues", "matlab.unittest.constraints.RelativeTolerance", "matlab.unittest.constraints.ReturnsTrue", "matlab.unittest.constraints.StartsWithSubstring", "matlab.unittest.constraints.StringComparator", "matlab.unittest.constraints.StructComparator", "matlab.unittest.constraints.TableComparator", "matlab.unittest.constraints.Throws", "matlab.unittest.constraints.Tolerance", "matlab.unittest.diagnostics.ConstraintDiagnostic", "matlab.unittest.diagnostics.ConstraintDiagnostic.getDisplayableString", "matlab.unittest.diagnostics.Diagnostic", "matlab.unittest.diagnostics.DiagnosticResult", "matlab.unittest.diagnostics.DisplayDiagnostic", "matlab.unittest.diagnostics.FigureDiagnostic", "matlab.unittest.diagnostics.FileArtifact", "matlab.unittest.diagnostics.FrameworkDiagnostic", "matlab.unittest.diagnostics.FunctionHandleDiagnostic", "matlab.unittest.diagnostics.LoggedDiagnosticEventData", "matlab.unittest.diagnostics.ScreenshotDiagnostic", "matlab.unittest.diagnostics.StringDiagnostic", "matlab.unittest.fixtures.CurrentFolderFixture", "matlab.unittest.fixtures.Fixture", "matlab.unittest.fixtures.PathFixture", "matlab.unittest.fixtures.ProjectFixture", "matlab.unittest.fixtures.SuppressedWarningsFixture", "matlab.unittest.fixtures.TemporaryFolderFixture", "matlab.unittest.fixtures.WorkingFolderFixture", "matlab.unittest.measurement.DefaultMeasurementResult", "matlab.unittest.measurement.MeasurementResult", "matlab.unittest.parameters.ClassSetupParameter", "matlab.unittest.parameters.EmptyParameter", "matlab.unittest.parameters.MethodSetupParameter", "matlab.unittest.parameters.Parameter", "matlab.unittest.parameters.Parameter.fromData", "matlab.unittest.parameters.TestParameter", "matlab.unittest.plugins.codecoverage.CoberturaFormat", "matlab.unittest.plugins.codecoverage.CoverageReport", "matlab.unittest.plugins.codecoverage.ProfileReport", "matlab.unittest.plugins.CodeCoveragePlugin", "matlab.unittest.plugins.CodeCoveragePlugin.forFile", "matlab.unittest.plugins.CodeCoveragePlugin.forFolder", "matlab.unittest.plugins.CodeCoveragePlugin.forPackage", "matlab.unittest.plugins.diagnosticrecord.DiagnosticRecord", "matlab.unittest.plugins.diagnosticrecord.ExceptionDiagnosticRecord", "matlab.unittest.plugins.diagnosticrecord.LoggedDiagnosticRecord", "matlab.unittest.plugins.diagnosticrecord.QualificationDiagnosticRecord", "matlab.unittest.plugins.DiagnosticsOutputPlugin", "matlab.unittest.plugins.DiagnosticsRecordingPlugin", "matlab.unittest.plugins.DiagnosticsValidationPlugin", "matlab.unittest.plugins.FailOnWarningsPlugin", "matlab.unittest.plugins.LoggingPlugin", "matlab.unittest.plugins.LoggingPlugin.withVerbosity", "matlab.unittest.plugins.OutputStream", "matlab.unittest.plugins.plugindata.FinalizedResultPluginData", "matlab.unittest.plugins.plugindata.ImplicitFixturePluginData", "matlab.unittest.plugins.plugindata.PluginData", "matlab.unittest.plugins.plugindata.QualificationContext", "matlab.unittest.plugins.plugindata.SharedTestFixturePluginData", "matlab.unittest.plugins.plugindata.TestContentCreationPluginData", "matlab.unittest.plugins.plugindata.TestSuiteRunPluginData", "matlab.unittest.plugins.QualifyingPlugin", "matlab.unittest.plugins.StopOnFailuresPlugin", "matlab.unittest.plugins.TAPPlugin", "matlab.unittest.plugins.TAPPlugin.producingOriginalFormat", "matlab.unittest.plugins.TAPPlugin.producingVersion13", "matlab.unittest.plugins.testreport.DOCXTestReportPlugin", "matlab.unittest.plugins.testreport.HTMLTestReportPlugin", "matlab.unittest.plugins.testreport.PDFTestReportPlugin", "matlab.unittest.plugins.TestReportPlugin", "matlab.unittest.plugins.TestReportPlugin.producingDOCX", "matlab.unittest.plugins.TestReportPlugin.producingHTML", "matlab.unittest.plugins.TestReportPlugin.producingPDF", "matlab.unittest.plugins.TestRunnerPlugin", "matlab.unittest.plugins.TestRunProgressPlugin", "matlab.unittest.plugins.ToFile", "matlab.unittest.plugins.ToStandardOutput", "matlab.unittest.plugins.ToUniqueFile", "matlab.unittest.plugins.XMLPlugin", "matlab.unittest.plugins.XMLPlugin.producingJUnitFormat", "matlab.unittest.qualifications.Assertable", "matlab.unittest.qualifications.AssertionFailedException", "matlab.unittest.qualifications.Assumable", "matlab.unittest.qualifications.AssumptionFailedException", "matlab.unittest.qualifications.ExceptionEventData", "matlab.unittest.qualifications.FatalAssertable", "matlab.unittest.qualifications.FatalAssertionFailedException", "matlab.unittest.qualifications.QualificationEventData", "matlab.unittest.qualifications.Verifiable", "matlab.unittest.Scope", "matlab.unittest.selectors.AndSelector", "matlab.unittest.selectors.HasBaseFolder", "matlab.unittest.selectors.HasName", "matlab.unittest.selectors.HasParameter", "matlab.unittest.selectors.HasProcedureName", "matlab.unittest.selectors.HasSharedTestFixture", "matlab.unittest.selectors.HasSuperclass", "matlab.unittest.selectors.HasTag", "matlab.unittest.selectors.NotSelector", "matlab.unittest.selectors.OrSelector", "matlab.unittest.Test", "matlab.unittest.TestCase", "matlab.unittest.TestCase.forInteractiveUse", "matlab.unittest.TestResult", "matlab.unittest.TestRunner", "matlab.unittest.TestRunner.withNoPlugins", "matlab.unittest.TestRunner.withTextOutput", "matlab.unittest.TestSuite", "matlab.unittest.TestSuite.fromClass", "matlab.unittest.TestSuite.fromFile", "matlab.unittest.TestSuite.fromFolder", "matlab.unittest.TestSuite.fromMethod", "matlab.unittest.TestSuite.fromName", "matlab.unittest.TestSuite.fromPackage", "matlab.unittest.TestSuite.fromProject", "matlab.unittest.Verbosity", "matlab.wsdl.createWSDLClient", "matlab.wsdl.setWSDLToolPath", "matlabrc", "matlabroot", "matlabshared.supportpkg.checkForUpdate", "matlabshared.supportpkg.getInstalled", "matlabshared.supportpkg.getSupportPackageRoot", "matlabshared.supportpkg.setSupportPackageRoot", "max", "max", "maxflow", "MaximizeCommandWindow", "maxk", "maxNumCompThreads", "maxpartitions", "maxpartitions", "mean", "mean", "median", "median", "memmapfile", "memoize", "MemoizedFunction", "memory", "menu", "mergecats", "mergevars", "mesh", "meshc", "meshgrid", "meshz", "meta.abstractDetails", "meta.ArrayDimension", "meta.class", "meta.class.fromName", "meta.DynamicProperty", "meta.EnumeratedValue", "meta.event", "meta.FixedDimension", "meta.MetaData", "meta.method", "meta.package", "meta.package.fromName", "meta.package.getAllPackages", "meta.property", "meta.UnrestrictedDimension", "meta.Validation", "metaclass", "methods", "methodsview", "mex", "mex.getCompilerConfigurations", "MException", "MException.last", "mexext", "mexhost", "mfilename", "mget", "milliseconds", "min", "min", "MinimizeCommandWindow", "mink", "minres", "minspantree", "minus", "minute", "minutes", "mislocked", "missing", "mkdir", "mkdir", "mkpp", "mldivide", "mlint", "mlintrpt", "mlock", "mmfileinfo", "mod", "mode", "month", "more", "morebins", "movAbsHDU", "move", "move", "movefile", "movegui", "movevars", "movie", "movmad", "movmax", "movmean", "movmedian", "movmin", "movNamHDU", "movprod", "movRelHDU", "movstd", "movsum", "movvar", "mpower", "mput", "mrdivide", "msgbox", "mtimes", "mu2lin", "multibandread", "multibandwrite", "munlock", "mustBeFinite", "mustBeGreaterThan", "mustBeGreaterThanOrEqual", "mustBeInteger", "mustBeLessThan", "mustBeLessThanOrEqual", "mustBeMember", "mustBeNegative", "mustBeNonempty", "mustBeNonNan", "mustBeNonnegative", "mustBeNonpositive", "mustBeNonsparse", "mustBeNonzero", "mustBeNumeric", "mustBeNumericOrLogical", "mustBePositive", "mustBeReal", "namelengthmax", "NaN", "nargchk", "nargin", "nargin", "narginchk", "nargout", "nargout", "nargoutchk", "NaT", "native2unicode", "nccreate", "ncdisp", "nchoosek", "ncinfo", "ncread", "ncreadatt", "ncwrite", "ncwriteatt", "ncwriteschema", "ndgrid", "ndims", "ne", "nearest", "nearestNeighbor", "nearestNeighbor", "nearestNeighbor", "nearestvertex", "neighbors", "neighbors", "neighbors", "NET", "NET.addAssembly", "NET.Assembly", "NET.convertArray", "NET.createArray", "NET.createGeneric", "NET.disableAutoRelease", "NET.enableAutoRelease", "NET.GenericClass", "NET.invokeGenericMethod", "NET.isNETSupported", "NET.NetException", "NET.setStaticProperty", "netcdf.abort", "netcdf.close", "netcdf.copyAtt", "netcdf.create", "netcdf.defDim", "netcdf.defGrp", "netcdf.defVar", "netcdf.defVarChunking", "netcdf.defVarDeflate", "netcdf.defVarFill", "netcdf.defVarFletcher32", "netcdf.delAtt", "netcdf.endDef", "netcdf.getAtt", "netcdf.getChunkCache", "netcdf.getConstant", "netcdf.getConstantNames", "netcdf.getVar", "netcdf.inq", "netcdf.inqAtt", "netcdf.inqAttID", "netcdf.inqAttName", "netcdf.inqDim", "netcdf.inqDimID", "netcdf.inqDimIDs", "netcdf.inqFormat", "netcdf.inqGrpName", "netcdf.inqGrpNameFull", "netcdf.inqGrpParent", "netcdf.inqGrps", "netcdf.inqLibVers", "netcdf.inqNcid", "netcdf.inqUnlimDims", "netcdf.inqVar", "netcdf.inqVarChunking", "netcdf.inqVarDeflate", "netcdf.inqVarFill", "netcdf.inqVarFletcher32", "netcdf.inqVarID", "netcdf.inqVarIDs", "netcdf.open", "netcdf.putAtt", "netcdf.putVar", "netcdf.reDef", "netcdf.renameAtt", "netcdf.renameDim", "netcdf.renameVar", "netcdf.setChunkCache", "netcdf.setDefaultFormat", "netcdf.setFill", "netcdf.sync", "newline", "newplot", "nextfile", "nextpow2", "nnz", "nonzeros", "norm", "normalize", "normest", "not", "notebook", "notify", "now", "nsidedpoly", "nthroot", "null", "num2cell", "num2hex", "num2ruler", "num2str", "numArgumentsFromSubscript", "numboundaries", "numedges", "numel", "numnodes", "numpartitions", "numpartitions", "numRegions", "numsides", "nzmax", "ode113", "ode15i", "ode15s", "ode23", "ode23s", "ode23t", "ode23tb", "ode45", "odeget", "odeset", "odextend", "onCleanup", "ones", "onFailure", "onFailure", "open", "open", "openDiskFile", "openfig", "openFile", "opengl", "openProject", "openvar", "optimget", "optimset", "or", "ordeig", "orderfields", "ordqz", "ordschur", "orient", "orth", "outdegree", "outedges", "outerjoin", "outputImpl", "overlaps", "pack", "pad", "padecoef", "pagesetupdlg", "pan", "panInteraction", "parallelplot", "pareto", "parfor", "parquetDatastore", "parquetinfo", "parquetread", "parquetwrite", "parse", "parse", "parseSoapResponse", "partition", "partition", "partition", "parula", "pascal", "patch", "path", "path2rc", "pathsep", "pathtool", "pause", "pause", "pbaspect", "pcg", "pchip", "pcode", "pcolor", "pdepe", "pdeval", "peaks", "perimeter", "perimeter", "perl", "perms", "permute", "persistent", "pi", "pie", "pie3", "pink", "pinv", "planerot", "play", "play", "playblocking", "plot", "plot", "plot", "plot", "plot", "plot3", "plotbrowser", "plotedit", "plotmatrix", "plottools", "plotyy", "plus", "plus", "pointLocation", "pointLocation", "pol2cart", "polar", "polaraxes", "polarhistogram", "polarplot", "polarscatter", "poly", "polyarea", "polybuffer", "polyder", "polyeig", "polyfit", "polyint", "polyshape", "polyval", "polyvalm", "posixtime", "pow2", "power", "ppval", "predecessors", "prefdir", "preferences", "preferredBufferSize", "preferredBufferSize", "press", "preview", "preview", "primes", "print", "print", "printdlg", "printopt", "printpreview", "prism", "processInputSpecificationChangeImpl", "processTunedPropertiesImpl", "prod", "profile", "profsave", "progress", "propagatedInputComplexity", "propagatedInputDataType", "propagatedInputFixedSize", "propagatedInputSize", "propedit", "propedit", "properties", "propertyeditor", "psi", "publish", "PutCharArray", "putData", "putData", "putData", "putData", "putData", "putData", "putData", "putData", "PutFullMatrix", "PutWorkspaceData", "pwd", "pyargs", "pyversion", "qmr", "qr", "qrdelete", "qrinsert", "qrupdate", "quad", "quad2d", "quadgk", "quadl", "quadv", "quarter", "questdlg", "Quit", "quit", "quiver", "quiver3", "qz", "rad2deg", "rand", "rand", "randi", "randi", "randn", "randn", "randperm", "randperm", "RandStream", "RandStream", "RandStream.create", "RandStream.getGlobalStream", "RandStream.list", "RandStream.setGlobalStream", "rank", "rat", "rats", "rbbox", "rcond", "rdivide", "read", "read", "read", "read", "read", "readall", "readasync", "readATblHdr", "readBTblHdr", "readCard", "readcell", "readCol", "readFrame", "readimage", "readImg", "readKey", "readKeyCmplx", "readKeyDbl", "readKeyLongLong", "readKeyLongStr", "readKeyUnit", "readmatrix", "readRecord", "readtable", "readtimetable", "readvars", "real", "reallog", "realmax", "realmin", "realpow", "realsqrt", "record", "record", "recordblocking", "rectangle", "rectint", "recycle", "reducepatch", "reducevolume", "refresh", "refreshdata", "refreshSourceControl", "regexp", "regexpi", "regexprep", "regexptranslate", "regions", "regionZoomInteraction", "registerevent", "regmatlabserver", "rehash", "relationaloperators", "release", "release", "releaseImpl", "reload", "rem", "Remove", "remove", "RemoveAll", "removeCategory", "removecats", "removeFields", "removeFields", "removeFile", "removeLabel", "removeParameter", "removeParameter", "removePath", "removeReference", "removeShortcut", "removeShutdownFile", "removeStartupFile", "removeToolbarExplorationButtons", "removets", "removevars", "rename", "renamecats", "rendererinfo", "reordercats", "reordernodes", "repeat", "repeat", "repeat", "repeat", "repeat", "repelem", "replace", "replaceBetween", "replaceFields", "replaceFields", "repmat", "reportFinalizedResult", "resample", "resample", "rescale", "reset", "reset", "reset", "reset", "reset", "resetImpl", "reshape", "reshape", "residue", "resolve", "restartable", "restartable", "restartable", "restoredefaultpath", "result", "resume", "rethrow", "rethrow", "retime", "return", "returnStoredValueWhen", "reusable", "reusable", "reusable", "reverse", "rgb2gray", "rgb2hsv", "rgb2ind", "rgbplot", "ribbon", "rlim", "rmappdata", "rmboundary", "rmdir", "rmdir", "rmedge", "rmfield", "rmholes", "rmmissing", "rmnode", "rmoutliers", "rmpath", "rmpref", "rmprop", "rmslivers", "rng", "roots", "rose", "rosser", "rot90", "rotate", "rotate", "rotate3d", "rotateInteraction", "round", "rowfun", "rows2vars", "rref", "rsf2csf", "rtickangle", "rtickformat", "rticklabels", "rticks", "ruler2num", "rulerPanInteraction", "run", "run", "run", "run", "run", "runInParallel", "runperf", "runTest", "runTestClass", "runTestMethod", "runtests", "runTestSuite", "samplefun", "sampleSummary", "satisfiedBy", "satisfiedBy", "save", "save", "save", "saveas", "savefig", "saveobj", "saveObjectImpl", "savepath", "scale", "scatter", "scatter3", "scatteredInterpolant", "scatterhistogram", "schur", "scroll", "sec", "secd", "sech", "second", "seconds", "seek", "selectFailed", "selectIf", "selectIncomplete", "selectLogged", "selectmoveresize", "selectPassed", "semilogx", "semilogy", "send", "sendmail", "serial", "serialbreak", "seriallist", "set", "set", "set", "set", "set", "set", "set", "set", "set", "set", "set", "setabstime", "setabstime", "setappdata", "setBscale", "setcats", "setCompressionType", "setdatatype", "setdiff", "setdisp", "setenv", "setfield", "setHCompScale", "setHCompSmooth", "setinterpmethod", "setParameter", "setParameter", "setParameter", "setpixelposition", "setpref", "setProperties", "setstr", "setTileDim", "settimeseriesnames", "Setting", "settings", "SettingsGroup", "setToValue", "setTscale", "setuniformtime", "setup", "setupImpl", "setupSharedTestFixture", "setupTestClass", "setupTestMethod", "setvaropts", "setvartype", "setxor", "sgtitle", "shading", "sheetnames", "shg", "shiftdim", "shortestpath", "shortestpathtree", "show", "show", "show", "show", "showFiSettingsImpl", "showplottool", "showSimulateUsingImpl", "shrinkfaces", "shuffle", "shuffle", "sign", "simplify", "simplify", "sin", "sind", "single", "sinh", "sinpi", "size", "size", "size", "size", "size", "size", "size", "slice", "smooth3", "smoothdata", "snapnow", "sort", "sortboundaries", "sortByFixtures", "sortregions", "sortrows", "sortx", "sorty", "sound", "soundsc", "spalloc", "sparse", "spaugment", "spconvert", "spdiags", "specular", "speye", "spfun", "sph2cart", "sphere", "spinmap", "spline", "split", "split", "splitapply", "splitEachLabel", "splitlines", "splitvars", "spones", "spparms", "sprand", "sprandn", "sprandsym", "sprank", "spreadsheetDatastore", "spreadsheetImportOptions", "spring", "sprintf", "spy", "sqrt", "sqrtm", "squeeze", "ss2tf", "sscanf", "stack", "stackedplot", "stairs", "standardizeMissing", "start", "start", "start", "start", "start", "start", "start", "start", "start", "start", "start", "start", "startat", "startMeasuring", "startsWith", "startup", "stats", "std", "std", "stem", "stem3", "step", "stepImpl", "stlread", "stlwrite", "stop", "stop", "stopasync", "stopMeasuring", "storeValueWhen", "str2double", "str2func", "str2mat", "str2num", "strcat", "strcmp", "strcmpi", "stream2", "stream3", "streamline", "streamparticles", "streamribbon", "streamslice", "streamtube", "strfind", "string", "string", "string", "string", "string", "string", "strings", "strip", "strjoin", "strjust", "strlength", "strmatch", "strncmp", "strncmpi", "strread", "strrep", "strsplit", "strtok", "strtrim", "struct", "struct2cell", "struct2table", "structfun", "strvcat", "sub2ind", "subgraph", "subplot", "subsasgn", "subset", "subsindex", "subspace", "subsref", "substruct", "subtract", "subvolume", "successors", "sum", "sum", "summary", "summary", "summer", "superclasses", "support", "supportPackageInstaller", "supports", "supportsMultipleInstanceImpl", "surf", "surf2patch", "surface", "surfaceArea", "surfc", "surfl", "surfnorm", "svd", "svds", "swapbytes", "sylvester", "symamd", "symbfact", "symmlq", "symrcm", "symvar", "synchronize", "synchronize", "syntax", "system", "table", "table2array", "table2cell", "table2struct", "table2timetable", "tabularTextDatastore", "tail", "tall", "TallDatastore", "tallrng", "tan", "tand", "tanh", "tar", "tcpclient", "teardown", "teardownSharedTestFixture", "teardownTestClass", "teardownTestMethod", "tempdir", "tempname", "testsuite", "tetramesh", "texlabel", "text", "textread", "textscan", "textwrap", "tfqmr", "then", "then", "then", "then", "then", "thetalim", "thetatickformat", "thetaticklabels", "thetaticks", "thingSpeakRead", "thingSpeakWrite", "throw", "throwAsCaller", "throwExceptionWhen", "tic", "Tiff", "Tiff.computeStrip", "Tiff.computeTile", "Tiff.currentDirectory", "Tiff.getTag", "Tiff.getTagNames", "Tiff.getVersion", "Tiff.isTiled", "Tiff.lastDirectory", "Tiff.nextDirectory", "Tiff.numberOfStrips", "Tiff.numberOfTiles", "Tiff.readEncodedStrip", "Tiff.readEncodedTile", "Tiff.readRGBAImage", "Tiff.readRGBAStrip", "Tiff.readRGBATile", "Tiff.rewriteDirectory", "Tiff.setDirectory", "Tiff.setSubDirectory", "Tiff.setTag", "Tiff.writeDirectory", "Tiff.writeEncodedStrip", "Tiff.writeEncodedTile", "time", "timeit", "timeofday", "timer", "timerange", "timerfind", "timerfindall", "times", "timeseries", "timetable", "timetable2table", "timezones", "title", "toc", "todatenum", "toeplitz", "toolboxdir", "topkrows", "toposort", "trace", "transclosure", "transform", "TransformedDatastore", "translate", "transpose", "transreduction", "trapz", "treelayout", "treeplot", "triangulation", "triangulation", "tril", "trimesh", "triplequad", "triplot", "TriRep", "TriRep", "TriScatteredInterp", "TriScatteredInterp", "trisurf", "triu", "true", "tscollection", "tsdata.event", "tsearchn", "turningdist", "type", "type", "typecast", "tzoffset", "uialert", "uiaxes", "uibutton", "uibuttongroup", "uicheckbox", "uiconfirm", "uicontextmenu", "uicontrol", "uidatepicker", "uidropdown", "uieditfield", "uifigure", "uigauge", "uigetdir", "uigetfile", "uigetpref", "uigridlayout", "uiimage", "uiimport", "uiknob", "uilabel", "uilamp", "uilistbox", "uimenu", "uint16", "uint32", "uint64", "uint8", "uiopen", "uipanel", "uiprogressdlg", "uipushtool", "uiputfile", "uiradiobutton", "uiresume", "uisave", "uisetcolor", "uisetfont", "uisetpref", "uislider", "uispinner", "uistack", "uiswitch", "uitab", "uitabgroup", "uitable", "uitextarea", "uitogglebutton", "uitoggletool", "uitoolbar", "uitree", "uitreenode", "uiwait", "uminus", "underlyingValue", "undocheckout", "unicode2native", "union", "union", "unique", "uniquetol", "unix", "unloadlibrary", "unmesh", "unmkpp", "unregisterallevents", "unregisterevent", "unstack", "untar", "unwrap", "unzip", "updateDependencies", "updateImpl", "upgradePreviouslyInstalledSupportPackages", "uplus", "upper", "urlread", "urlwrite", "usejava", "userpath", "validate", "validate", "validate", "validate", "validateattributes", "validateFunctionSignaturesJSON", "validateInputsImpl", "validatePropertiesImpl", "validatestring", "ValueIterator", "values", "vander", "var", "var", "varargin", "varargout", "varfun", "vartype", "vecnorm", "vectorize", "ver", "verctrl", "verifyAccessed", "verifyCalled", "verifyClass", "verifyEmpty", "verifyEqual", "verifyError", "verifyFail", "verifyFalse", "verifyGreaterThan", "verifyGreaterThanOrEqual", "verifyInstanceOf", "verifyLength", "verifyLessThan", "verifyLessThanOrEqual", "verifyMatches", "verifyNotAccessed", "verifyNotCalled", "verifyNotEmpty", "verifyNotEqual", "verifyNotSameHandle", "verifyNotSet", "verifyNumElements", "verifyReturnsTrue", "verifySameHandle", "verifySet", "verifySize", "verifySubstring", "verifyThat", "verifyTrue", "verifyUsing", "verifyWarning", "verifyWarningFree", "verLessThan", "version", "vertcat", "vertcat", "vertcat", "vertexAttachments", "vertexAttachments", "vertexNormal", "VideoReader", "VideoWriter", "view", "viewmtx", "visdiff", "volume", "volumebounds", "voronoi", "voronoiDiagram", "voronoiDiagram", "voronoin", "wait", "waitbar", "waitfor", "waitforbuttonpress", "warndlg", "warning", "waterfall", "web", "weboptions", "webread", "websave", "webwrite", "week", "weekday", "what", "whatsnew", "when", "when", "when", "which", "while", "whitebg", "who", "who", "whos", "whos", "width", "wilkinson", "winopen", "winqueryreg", "winter", "withAnyInputs", "withExactInputs", "withNargout", "withtol", "wordcloud", "write", "write", "write", "writecell", "writeChecksum", "writeCol", "writeComment", "writeDate", "writeHistory", "writeImg", "writeKey", "writeKeyUnit", "writematrix", "writetable", "writetimetable", "writeVideo", "xcorr", "xcov", "xlabel", "xlim", "xline", "xlsfinfo", "xlsread", "xlswrite", "xmlread", "xmlwrite", "xor", "xor", "xslt", "xtickangle", "xtickformat", "xticklabels", "xticks", "year", "years", "ylabel", "ylim", "yline", "ymd", "ytickangle", "ytickformat", "yticklabels", "yticks", "yyaxis", "yyyymmdd", "zeros", "zip", "zlabel", "zlim", "zoom", "zoomInteraction", "ztickangle", "ztickformat", "zticklabels", "zticks"] + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/meson.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/meson.rb new file mode 100644 index 0000000..ab0bd64 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/meson.rb @@ -0,0 +1,158 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Meson < RegexLexer + title "Meson" + desc "Meson's specification language (mesonbuild.com)" + tag 'meson' + filenames 'meson.build', 'meson_options.txt' + mimetypes 'text/x-meson' + + def self.keywords + @keywords ||= %w( + continue break elif else endif + if true false foreach endforeach + ) + end + + def self.builtin_variables + @builtin_variables ||= %w( + meson host_machine build_machine target_machine + ) + end + + def self.builtin_functions + @builtin_functions ||= %w( + add_global_arguments add_project_arguments + add_global_link_arguments add_project_link_arguments add_test_setup add_languages + alias_target assert benchmark both_libraries build_target configuration_data configure_file + custom_target declare_dependency dependency disabler environment error executable + generator gettext get_option get_variable files find_library find_program + include_directories import install_data install_headers install_man install_subdir + is_disabler is_variable jar join_paths library message option project + run_target run_command set_variable subdir subdir_done + subproject summary shared_library shared_module static_library test vcs_tag warning + ) + end + + identifier = /[[:alpha:]_][[:alnum:]_]*/ + + def current_string + @current_string ||= StringRegister.new + end + + state :root do + rule %r/\n+/m, Text + + rule %r/[^\S\n]+/, Text + rule %r(#(.*)?\n?), Comment::Single + rule %r/[\[\]{}:(),;.]/, Punctuation + rule %r/\\\n/, Text + rule %r/\\/, Text + + rule %r/(in|and|or|not)\b/, Operator::Word + rule %r/[-+\/*%=<>]=?|!=/, Operator + + rule %r/([f]?)('''|['])/i do |m| + groups Str::Affix, Str + current_string.register type: m[1].downcase, delim: m[2] + push :generic_string + end + + rule %r/(?<!\.)#{identifier}\b\s*(?=\()/ do |m| + if self.class.builtin_functions.include? m[0] + token Name::Builtin + else + token Name + end + end + + rule %r/(?<!\.)#{identifier}(?!\s*?:)/ do |m| + if self.class.builtin_variables.include? m[0] + token Name::Builtin + elsif self.class.keywords.include? m[0] + token Keyword + else + token Name + end + end + + rule identifier, Name + + rule %r/0b(_?[0-1])+/i, Num::Bin + rule %r/0o(_?[0-7])+/i, Num::Oct + rule %r/0x(_?[a-f0-9])+/i, Num::Hex + rule %r/([1-9](_?[0-9])*|0(_?0)*)/, Num::Integer + end + + state :generic_string do + rule %r/[^'\\\@]+/, Str + + rule %r/'''|[']/ do |m| + token Str + if current_string.delim? m[0] + current_string.remove + pop! + end + end + + rule %r/(?=\\)/, Str, :generic_escape + + rule %r/\@/ do |m| + if current_string.type? "f" + token Str::Interpol + push :generic_interpol + else + token Str + end + end + end + + state :generic_escape do + rule %r(\\ + ( [\\abfnrtv'] + | N{[a-zA-Z][a-zA-Z ]+[a-zA-Z]} + | u[a-fA-F0-9]{4} + | U[a-fA-F0-9]{8} + | x[a-fA-F0-9]{2} + | [0-7]{1,3} + ) + )x do + token(Str::Escape) + pop! + end + + rule %r/\\./, Str, :pop! + end + + state :generic_interpol do + rule %r/[^\@]+/ do |m| + recurse m[0] + end + rule %r/\@/, Str::Interpol, :pop! + end + + class StringRegister < Array + def delim?(delim) + self.last[1] == delim + end + + def register(type: "u", delim: "'") + self.push [type, delim] + end + + def remove + self.pop + end + + def type?(type) + self.last[0].include? type + end + end + + private_constant :StringRegister + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/minizinc.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/minizinc.rb new file mode 100644 index 0000000..937a140 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/minizinc.rb @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# Based on Chroma's MiniZinc lexer: +# https://github.com/alecthomas/chroma/blob/5152194c717b394686d3d7a7e1946a360ec0728f/lexers/m/minizinc.go + +module Rouge + module Lexers + class MiniZinc < RegexLexer + title "MiniZinc" + desc "MiniZinc is a free and open-source constraint modeling language (minizinc.org)" + tag 'minizinc' + filenames '*.mzn', '*.fzn', '*.dzn' + mimetypes 'text/minizinc' + + def self.builtins + @builtins = Set.new %w[ + abort abs acosh array_intersect array_union array1d array2d array3d + array4d array5d array6d asin assert atan bool2int card ceil concat + cos cosh dom dom_array dom_size fix exp floor index_set + index_set_1of2 index_set_2of2 index_set_1of3 index_set_2of3 + index_set_3of3 int2float is_fixed join lb lb_array length ln log log2 + log10 min max pow product round set2array show show_int show_float + sin sinh sqrt sum tan tanh trace ub ub_array + ] + end + + def self.keywords + @keywords = Set.new %w[ + ann annotation any constraint else endif function for forall if + include list of op output minimize maximize par predicate record + satisfy solve test then type var where + ] + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + array set bool enum float int string tuple + ) + end + + def self.operators + @operators ||= Set.new %w( + in subset superset union diff symdiff intersect + ) + end + + id = /[$a-zA-Z_]\w*/ + + state :root do + rule %r(\s+)m, Text::Whitespace + rule %r(\\\n)m, Text::Whitespace + rule %r(%.*), Comment::Single + rule %r(/(\\\n)?[*](.|\n)*?[*](\\\n)?/)m, Comment::Multiline + rule %r/"(\\\\|\\"|[^"])*"/, Literal::String + + rule %r(not|<->|->|<-|\\/|xor|/\\), Operator + rule %r(<|>|<=|>=|==|=|!=), Operator + rule %r(\+|-|\*|/|div|mod), Operator + rule %r(\\|\.\.|\+\+), Operator + rule %r([|()\[\]{},:;]), Punctuation + rule %r((true|false)\b), Keyword::Constant + rule %r(([+-]?)\d+(\.(?!\.)\d*)?([eE][-+]?\d+)?), Literal::Number + + rule id do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.keywords_type.include? m[0] + token Keyword::Type + elsif self.class.builtins.include? m[0] + token Name::Builtin + elsif self.class.operators.include? m[0] + token Operator + else + token Name::Other + end + end + + rule %r(::\s*([^\W\d]\w*)(\s*\([^\)]*\))?), Name::Decorator + rule %r(\b([^\W\d]\w*)\b(\()) do + groups Name::Function, Punctuation + end + rule %r([^\W\d]\w*), Name::Other + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mojo.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mojo.rb new file mode 100644 index 0000000..f371120 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mojo.rb @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'python.rb' + + class Mojo < Python + title "Mojo" + desc "The Mojo programming language (modular.com)" + tag 'mojo' + aliases 'mojo' + filenames '*.mojo', '*.🔥' + mimetypes 'text/x-mojo', 'application/x-mojo' + + def self.detect?(text) + return true if text.shebang?(/mojow?(?:[23](?:\.\d+)?)?/) + end + + def self.keywords + @keywords ||= super + %w( + fn self alias out read mut owned ref var + struct trait raises with in match case + ) + end + + def self.builtins + @builtins ||= super + %w( + __mlir_attr __mlir_type __mlir_op parameter alwaysinline + register_passable + ) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/moonscript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/moonscript.rb new file mode 100644 index 0000000..055422b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/moonscript.rb @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'lua.rb' + + class Moonscript < RegexLexer + title "MoonScript" + desc "Moonscript (http://www.moonscript.org)" + tag 'moonscript' + aliases 'moon' + filenames '*.moon' + mimetypes 'text/x-moonscript', 'application/x-moonscript' + + option :function_highlighting, 'Whether to highlight builtin functions (default: true)' + option :disabled_modules, 'builtin modules to disable' + + def initialize(*) + super + + @function_highlighting = bool_option(:function_highlighting) { true } + @disabled_modules = list_option(:disabled_modules) + end + + def self.detect?(text) + return true if text.shebang? 'moon' + end + + def builtins + return [] unless @function_highlighting + + @builtins ||= Set.new.tap do |builtins| + Rouge::Lexers::Lua.builtins.each do |mod, fns| + next if @disabled_modules.include? mod + builtins.merge(fns) + end + end + end + + state :root do + rule %r(#!(.*?)$), Comment::Preproc # shebang + rule %r//, Text, :main + end + + state :base do + ident = '(?:\w\w*)' + + rule %r((?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?'), Num::Float + rule %r((?i)\d+e[+-]?\d+), Num::Float + rule %r((?i)0x[0-9a-f]*), Num::Hex + rule %r(\d+), Num::Integer + rule %r(@#{ident}*), Name::Variable::Instance + rule %r([A-Z]\w*), Name::Class + rule %r("?[^"]+":), Literal::String::Symbol + rule %r(#{ident}:), Literal::String::Symbol + rule %r(:#{ident}), Literal::String::Symbol + + rule %r(\s+), Text::Whitespace + rule %r((==|~=|!=|<=|>=|\.\.\.|\.\.|->|=>|[=+\-*/%^<>#!\\])), Operator + rule %r([\[\]\{\}\(\)\.,:;]), Punctuation + rule %r((and|or|not)\b), Operator::Word + + keywords = %w{ + break class continue do else elseif end extends for if import in + repeat return switch super then unless until using when with while + } + rule %r((#{keywords.join('|')})\b), Keyword + rule %r((local|export)\b), Keyword::Declaration + rule %r((true|false|nil)\b), Keyword::Constant + + rule %r([A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)?) do |m| + name = m[0] + if self.builtins.include?(name) + token Name::Builtin + elsif name =~ /\./ + a, b = name.split('.', 2) + token Name, a + token Punctuation, '.' + token Name, b + else + token Name + end + end + end + + state :main do + rule %r(--.*$), Comment::Single + rule %r(\[(=*)\[.*?\]\1\])m, Str::Heredoc + + mixin :base + + rule %r('), Str::Single, :sqs + rule %r("), Str::Double, :dqs + end + + state :sqs do + rule %r('), Str::Single, :pop! + rule %r([^']+), Str::Single + end + + state :interpolation do + rule %r(\}), Str::Interpol, :pop! + mixin :base + end + + state :dqs do + rule %r(#\{), Str::Interpol, :interpolation + rule %r("), Str::Double, :pop! + rule %r(#[^{]), Str::Double + rule %r([^"#]+), Str::Double + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mosel.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mosel.rb new file mode 100644 index 0000000..bad56d0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mosel.rb @@ -0,0 +1,228 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Mosel < RegexLexer + tag 'mosel' + filenames '*.mos' + title "Mosel" + desc "An optimization language used by Fico's Xpress." + # http://www.fico.com/en/products/fico-xpress-optimization-suite + filenames '*.mos' + + mimetypes 'text/x-mosel' + + id = /[a-zA-Z_][a-zA-Z0-9_]*/ + + ############################################################################################################################ + # General language lements + ############################################################################################################################ + + core_keywords = %w( + and array as + boolean break + case count counter + declarations div do dynamic + elif else end evaluation exit + false forall forward from function + if imports in include initialisations initializations integer inter is_binary is_continuous is_free is_integer is_partint is_semcont is_semint is_sos1 is_sos2 + linctr list + max min mod model mpvar + next not of options or + package parameters procedure + public prod range real record repeat requirements + set string sum + then to true + union until uses + version + while with + ) + + core_functions = %w( + abs arctan assert + bitflip bitneg bitset bitshift bittest bitval + ceil cos create currentdate currenttime cuthead cuttail + delcell exists exit exp exportprob + fclose fflush finalize findfirst findlast floor fopen fselect fskipline + getact getcoeff getcoeffs getdual getfid getfirst gethead getfname getlast getobjval getparam getrcost getreadcnt getreverse getsize getslack getsol gettail gettype getvars + iseof ishidden isodd ln log + makesos1 makesos2 maxlist minlist + publish + random read readln reset reverse round + setcoeff sethidden setioerr setname setparam setrandseed settype sin splithead splittail sqrt strfmt substr + timestamp + unpublish + write writeln + ) + + ############################################################################################################################ + # mmxprs module elements + ############################################################################################################################ + + mmxprs_functions = %w( + addmipsol + basisstability + calcsolinfo clearmipdir clearmodcut command copysoltoinit + defdelayedrows defsecurevecs + estimatemarginals + fixglobal + getbstat getdualray getiis getiissense getiistype getinfcause getinfeas getlb getloadedlinctrs getloadedmpvars getname getprimalray getprobstat getrange getsensrng getsize getsol getub getvars + implies indicator isiisvalid isintegral loadbasis + loadmipsol loadprob + maximize minimize + postsolve + readbasis readdirs readsol refinemipsol rejectintsol repairinfeas resetbasis resetiis resetsol + savebasis savemipsol savesol savestate selectsol setbstat setcallback setcbcutoff setgndata setlb setmipdir setmodcut setsol setub setucbdata stopoptimize + unloadprob + writebasis writedirs writeprob writesol + xor + ) + + mmxpres_constants = %w(XPRS_OPT XPRS_UNF XPRS_INF XPRS_UNB XPRS_OTH) + + mmxprs_parameters = %w(XPRS_colorder XPRS_enumduplpol XPRS_enummaxsol XPRS_enumsols XPRS_fullversion XPRS_loadnames XPRS_problem XPRS_probname XPRS_verbose) + + + ############################################################################################################################ + # mmsystem module elements + ############################################################################################################################ + + mmsystem_functions = %w( + addmonths + copytext cuttext + deltext + endswith expandpath + fcopy fdelete findfiles findtext fmove + getasnumber getchar getcwd getdate getday getdaynum getdays getdirsep + getendparse setendparse + getenv getfsize getfstat getftime gethour getminute getmonth getmsec getpathsep + getqtype setqtype + getsecond + getsepchar setsepchar + getsize + getstart setstart + getsucc setsucc + getsysinfo getsysstat gettime + gettmpdir + gettrim settrim + getweekday getyear + inserttext isvalid + makedir makepath newtar + newzip nextfield + openpipe + parseextn parseint parsereal parsetext pastetext pathmatch pathsplit + qsort quote + readtextline regmatch regreplace removedir removefiles + setchar setdate setday setenv sethour + setminute setmonth setmsec setsecond settime setyear sleep startswith system + tarlist textfmt tolower toupper trim + untar unzip + ziplist + ) + + mmsystem_parameters = %w(datefmt datetimefmt monthnames sys_endparse sys_fillchar sys_pid sys_qtype sys_regcache sys_sepchar) + + ############################################################################################################################ + # mmjobs module elements + ############################################################################################################################ + + mmjobs_instance_mgmt_functions = %w( + clearaliases connect + disconnect + findxsrvs + getaliases getbanner gethostalias + sethostalias + ) + + mmjobs_model_mgmt_functions = %w( + compile + detach + getannidents getannotations getexitcode getgid getid getnode getrmtid getstatus getuid + load + reset resetmodpar run + setcontrol setdefstream setmodpar setworkdir stop + unload + ) + + mmjobs_synchornization_functions = %w( + dropnextevent + getclass getfromgid getfromid getfromuid getnextevent getvalue + isqueueempty + nullevent + peeknextevent + send setgid setuid + wait waitfor + ) + + mmjobs_functions = mmjobs_instance_mgmt_functions + mmjobs_model_mgmt_functions + mmjobs_synchornization_functions + + mmjobs_parameters = %w(conntmpl defaultnode fsrvdelay fsrvnbiter fsrvport jobid keepalive nodenumber parentnumber) + + + state :whitespace do + # Spaces + rule %r/\s+/m, Text + # ! Comments + rule %r((!).*$\n?), Comment::Single + # (! Comments !) + rule %r(\(!.*?!\))m, Comment::Multiline + + end + + + # From Mosel documentation: + # Constant strings of characters must be quoted with single (') or double quote (") and may extend over several lines. Strings enclosed in double quotes may contain C-like escape sequences introduced by the 'backslash' + # character (\a \b \f \n \r \t \v \xxx with xxx being the character code as an octal number). + # Each sequence is replaced by the corresponding control character (e.g. \n is the `new line' command) or, if no control character exists, by the second character of the sequence itself (e.g. \\ is replaced by '\'). + # The escape sequences are not interpreted if they are contained in strings that are enclosed in single quotes. + + state :single_quotes do + rule %r/'/, Str::Single, :pop! + rule %r/[^']+/, Str::Single + end + + state :double_quotes do + rule %r/"/, Str::Double, :pop! + rule %r/(\\"|\\[0-7]{1,3}\D|\\[abfnrtv]|\\\\)/, Str::Escape + rule %r/[^"]/, Str::Double + end + + state :base do + + rule %r{"}, Str::Double, :double_quotes + rule %r{'}, Str::Single, :single_quotes + + rule %r{((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?}, Num + rule %r{[~!@#\$%\^&\*\(\)\+`\-={}\[\]:;<>\?,\.\/\|\\]}, Punctuation +# rule %r{'([^']|'')*'}, Str +# rule %r/"(\\\\|\\"|[^"])*"/, Str + + + + rule %r/(true|false)\b/i, Name::Builtin + rule %r/\b(#{core_keywords.join('|')})\b/i, Keyword + rule %r/\b(#{core_functions.join('|')})\b/, Name::Builtin + + + + rule %r/\b(#{mmxprs_functions.join('|')})\b/, Name::Function + rule %r/\b(#{mmxpres_constants.join('|')})\b/, Name::Constant + rule %r/\b(#{mmxprs_parameters.join('|')})\b/i, Name::Property + + rule %r/\b(#{mmsystem_functions.join('|')})\b/i, Name::Function + rule %r/\b(#{mmsystem_parameters.join('|')})\b/, Name::Property + + rule %r/\b(#{mmjobs_functions.join('|')})\b/i, Name::Function + rule %r/\b(#{mmjobs_parameters.join('|')})\b/, Name::Property + + rule id, Name + end + + state :root do + mixin :whitespace + mixin :base + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/msgtrans.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/msgtrans.rb new file mode 100644 index 0000000..4f21ca1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/msgtrans.rb @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class MsgTrans < RegexLexer + title "MessageTrans" + desc "RISC OS message translator messages file" + tag 'msgtrans' + filenames 'Messages', 'Message[0-9]', 'Message[1-9][0-9]', 'Message[1-9][0-9][0-9]' + + state :root do + rule %r/^#[^\n]*/, Comment + rule %r/[^\t\n\r ,):?\/]+/, Name::Variable + rule %r/[\n\/?]/, Operator + rule %r/:/, Operator, :value + end + + state :value do + rule %r/\n/, Text, :pop! + rule %r/%[0-3%]/, Operator + rule %r/[^\n%]/, Literal::String + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mxml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mxml.rb new file mode 100644 index 0000000..4a9145a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/mxml.rb @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class MXML < RegexLexer + title "MXML" + desc "MXML" + tag 'mxml' + filenames '*.mxml' + mimetypes 'application/xv+xml' + + state :root do + rule %r/[^<&]+/, Text + rule %r/&\S*?;/, Name::Entity + + rule %r/<!\[CDATA\[/m do + token Comment::Preproc + push :actionscript_content + end + + rule %r/<!--/, Comment, :comment + rule %r/<\?.*?\?>/, Comment::Preproc + rule %r/<![^>]*>/, Comment::Preproc + + rule %r(<\s*[\w:.-]+)m, Name::Tag, :tag # opening tags + rule %r(<\s*/\s*[\w:.-]+\s*>)m, Name::Tag # closing tags + end + + state :comment do + rule %r/[^-]+/m, Comment + rule %r/-->/, Comment, :pop! + rule %r/-/, Comment + end + + state :tag do + rule %r/\s+/m, Text + rule %r/[\w.:-]+\s*=/m, Name::Attribute, :attribute + rule %r(/?\s*>), Name::Tag, :root + end + + state :attribute do + rule %r/\s+/m, Text + rule %r/(")({|@{)/m do + groups Str, Punctuation + push :actionscript_attribute + end + rule %r/".*?"|'.*?'|[^\s>]+/, Str, :tag + end + + state :actionscript_content do + rule %r/\]\]\>/m, Comment::Preproc, :pop! + rule %r/.*?(?=\]\]\>)/m do + delegate Actionscript + end + end + + state :actionscript_attribute do + rule %r/(})(")/m do + groups Punctuation, Str + push :tag + end + rule %r/.*?(?=}")/m do + delegate Actionscript + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nasm.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nasm.rb new file mode 100644 index 0000000..2e2df7f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nasm.rb @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# Based on Chroma's NASM lexer implementation +# https://github.com/alecthomas/chroma/blob/498eaa690f5ac6ab0e3d6f46237e547a8935cdc7/lexers/n/nasm.go +module Rouge + module Lexers + class Nasm < RegexLexer + title "Nasm" + desc "Netwide Assembler" + + tag 'nasm' + filenames '*.asm' + mimetypes 'text/x-nasm' + + state :root do + rule %r/^\s*%/, Comment::Preproc, :preproc + + mixin :whitespace + mixin :punctuation + + rule %r/[a-z$._?][\w$.?#@~]*:/i, Name::Label + + rule %r/([a-z$._?][\w$.?#@~]*)(\s+)(equ)/i do + groups Name::Constant, Keyword::Declaration, Keyword::Declaration + push :instruction_args + end + rule %r/BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|EXPORT|LIBRARY|MODULE/, Keyword, :instruction_args + rule %r/(?:res|d)[bwdqt]|times/i, Keyword::Declaration, :instruction_args + rule %r/[a-z$._?][\w$.?#@~]*/i, Name::Function, :instruction_args + + rule %r/[\r\n]+/, Text + end + + state :instruction_args do + rule %r/"(\\\\"|[^"\\n])*"|'(\\\\'|[^'\\n])*'|`(\\\\`|[^`\\n])*`/, Str + rule %r/(?:0x[\da-f]+|$0[\da-f]*|\d+[\da-f]*h)/i, Num::Hex + rule %r/[0-7]+q/i, Num::Oct + rule %r/[01]+b/i, Num::Bin + rule %r/\d+\.e?\d+/i, Num::Float + rule %r/\d+/, Num::Integer + + mixin :punctuation + + rule %r/r\d[0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]/i, Name::Builtin + rule %r/[a-z$._?][\w$.?#@~]*/i, Name::Variable + rule %r/[\r\n]+/, Text, :pop! + + mixin :whitespace + end + + state :preproc do + rule %r/[^;\n]+/, Comment::Preproc + rule %r/;.*?\n/, Comment::Single, :pop! + rule %r/\n/, Comment::Preproc, :pop! + end + + state :whitespace do + rule %r/\n/, Text + rule %r/[ \t]+/, Text + rule %r/;.*/, Comment::Single + end + + state :punctuation do + rule %r/[,():\[\]]+/, Punctuation + rule %r/[&|^<>+*\/%~-]+/, Operator + rule %r/\$+/, Keyword::Constant + rule %r/seg|wrt|strict/i, Operator::Word + rule %r/byte|[dq]?word/i, Keyword::Type + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nesasm.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nesasm.rb new file mode 100644 index 0000000..a296414 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nesasm.rb @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class NesAsm < RegexLexer + title "NesAsm" + desc "Nesasm3 assembly (6502 asm)" + tag 'nesasm' + aliases 'nes' + filenames '*.nesasm' + + def self.keywords + @keywords ||= %w( + ADC AND ASL BIT BRK CMP CPX CPY DEC EOR INC JMP JSR LDA LDX LDY LSR + NOP ORA ROL ROR RTI RTS SBC STA STX STY TAX TXA DEX INX TAY TYA DEY + INY BPL BMI BVC BVS BCC BCS BNE BEQ CLC SEC CLI SEI CLV CLD SED TXS + TSX PHA PLA PHP PLP + ) + end + + def self.keywords_type + @keywords_type ||= %w( + DB DW BYTE WORD + ) + end + + def self.keywords_reserved + @keywords_reserved ||= %w( + INCBIN INCLUDE ORG BANK RSSET RS MACRO ENDM DS PROC ENDP PROCGROUP + ENDPROCGROUP INCCHR DEFCHR ZP BSS CODE DATA IF IFDEF IFNDEF ELSE + ENDIF FAIL INESPRG INESCHR INESMAP INESMIR FUNC + ) + end + + state :root do + rule %r/\s+/m, Text + rule %r(;.*), Comment::Single + + rule %r/[\(\)\,\.\[\]]/, Punctuation + rule %r/\#?\%[0-1]+/, Num::Bin # #%00110011 %00110011 + rule %r/\#?\$\h+/, Num::Hex # $1f #$1f + rule %r/\#?\d+/, Num # 10 #10 + rule %r([~&*+=\|?:<>/-]), Operator + + rule %r/\#?\w+:?/i do |m| + name = m[0].upcase + + if self.class.keywords.include? name + token Keyword + elsif self.class.keywords_type.include? name + token Keyword::Type + elsif self.class.keywords_reserved.include? name + token Keyword::Reserved + else + token Name::Function + end + end + + rule %r/\#?(?:LOW|HIGH)\(.*\)/i, Keyword::Reserved # LOW() #HIGH() + + rule %r/\#\(/, Punctuation # #() + + rule %r/"/, Str, :string + + rule %r/'\w'/, Str::Char # 'A' for example + + rule %r/\\\??[\d@#]/, Name::Builtin # builtin parameters for use inside macros and functions: \1-\9 , \?1-\?9 , \# , \@ + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\"?/, Str::Escape + rule %r/[^"\\]+/m, Str + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nginx.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nginx.rb new file mode 100644 index 0000000..f2661cc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nginx.rb @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Nginx < RegexLexer + title "nginx" + desc 'configuration files for the nginx web server (nginx.org)' + tag 'nginx' + mimetypes 'text/x-nginx-conf' + filenames 'nginx.conf' + + id = /[^\s$;{}()#]+/ + + state :root do + rule %r/(include)(\s+)([^\s;]+)/ do + groups Keyword, Text, Name + end + + rule id, Keyword, :statement + + mixin :base + end + + state :block do + rule %r/}/, Punctuation, :pop! + rule id, Keyword::Namespace, :statement + mixin :base + end + + state :statement do + rule %r/{/ do + token Punctuation; pop!; push :block + end + + rule %r/;/, Punctuation, :pop! + + mixin :base + end + + state :base do + rule %r/\s+/, Text + + rule %r/#.*/, Comment::Single + rule %r/(?:on|off)\b/, Name::Constant + rule %r/[$][\w-]+/, Name::Variable + + # host/port + rule %r/([a-z0-9.-]+)(:)([0-9]+)/i do + groups Name::Function, Punctuation, Num::Integer + end + + # mimetype + rule %r([a-z-]+/[a-z-]+)i, Name::Class + + rule %r/\d+\.\d+/, Num::Float + rule %r/[0-9]+[kmg]?\b/i, Num::Integer + rule %r/(~)(\s*)([^\s{]+)/ do + groups Punctuation, Text, Str::Regex + end + + rule %r/[:=~]/, Punctuation + + # pathname + rule %r(/#{id}?), Name + + rule %r/[^#\s;{}$\\]+/, Str # catchall + + rule %r/[$;]/, Text + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nial.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nial.rb new file mode 100644 index 0000000..42b2260 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nial.rb @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Nial < RegexLexer + title 'Nial' + desc 'The Nial programming language (nial-array-language.org)' + tag 'nial' + filenames '*.ndf', '*.nlg' + + def self.keywords + @keywords ||= Set.new ["is", "gets", "op", "tr", ";", + "if", "then", "elseif", "else", + "endif", "case", "from", "endcase", + "begin", "end", "for", "with", + "endfor", "while", "do", "endwhile", + "repeat", "until", "endrepeat"] + end + + def self.operators + @operators||= Set.new [".", "!", "#", "+", "*", "-", "<<", + "/", "<", ">>", "<=", ">", "=", ">=", "@", "|", "~="] + end + + def self.punctuations + @punctuations ||= Set.new [ "{", "}", "[", "]", ",", "(", ")", ":=", ":", ";"] + end + + def self.transformers + @transformers ||= Set.new ["accumulate", "across", + "bycols", "bykey", "byrows", + "converse", "down", + "eachboth", "eachall", "each", + "eachleft", "eachright", + "filter", "fold", "fork", + "grade", "inner", "iterate", + "leaf", "no_tr", "outer", + "partition", "rank", "recur", + "reduce", "reducecols", "reducerows", + "sort", "team", "timeit", "twig"] + end + + def self.funcs + @funcs ||= Set.new ["operation", "expression", "and", "abs", + "allbools", "allints", "allchars", "allin", + "allreals", "allnumeric", "append", + "arcsin", "arccos", "appendfile", "apply", + "arctan", "atomic", "assign", "atversion", + "axes", "cart", "break", "blend", "breaklist", + "breakin", "bye", "callstack", "choose", "char", + "ceiling", "catenate", "charrep", "check_socket", + "cos", "content", "close", "clearws", + "clearprofile", "cols", "continue", "copyright", + "cosh", "cull", "count", "diverse", "deepplace", + "cutall", "cut", "display", "deparse", + "deepupdate", "descan", "depth", "diagram", + "div", "divide", "drop", "dropright", "edit", + "empty", "expression", "exit", "except", "erase", + "equal", "eval", "eraserecord", "execute", "exp", + "external", "exprs", "findall", "find", + "fault", "falsehood", "filestatus", "filelength", + "filepath", "filetally", "floor", "first", + "flip", "fuse", "fromraw", "front", + "gage", "getfile", "getdef", "getcommandline", + "getenv", "getname", "hitch", "grid", "getsyms", + "gradeup", "gt", "gte", "host", "in", "inverse", + "innerproduct", "inv", "ip", "ln", "link", "isboolean", + "isinteger", "ischar", "isfault", "isreal", "isphrase", + "isstring", "istruthvalue", "last", "laminate", + "like", "libpath", "library", "list", "load", + "loaddefs", "nonlocal", "max", "match", "log", + "lt", "lower", "lte", "mate", "min", "maxlength", + "mod", "mix", "minus", "nialroot", "mold", "not", + "numeric", "no_op", "no_expr", "notin", + "operation", "open", "or", "opposite", "opp", + "operators", "plus", "pick", "pack", "pass", "pair", "parse", + "paste", "phrase", "place", "picture", "placeall", + "power", "positions", "post", "quotient", "putfile", + "profile", "prod", "product", "profiletree", + "profiletable", "quiet_fault", "raise", "reach", + "random", "reciprocal", "read", "readfile", + "readchar", "readarray", "readfield", + "readscreen", "readrecord", "recip", "reshape", + "seek", "second", "rest", "reverse", "restart", + "return_status", "scan", "save", "rows", "rotate", + "seed", "see", "sublist", "sin", "simple", "shape", + "setformat", "setdeftrace", "set", "seeusercalls", + "seeprimcalls", "separator", "setwidth", "settrigger", + "setmessages", "setlogname", "setinterrupts", + "setprompt", "setprofile", "sinh", "single", + "sqrt", "solitary", "sketch", "sleep", + "socket_listen", "socket_accept", "socket_close", + "socket_bind", "socket_connect", "socket_getline", + "socket_receive", "socket_peek", "socket_read", + "socket_send", "socket_write", "solve", "split", + "sortup", "string", "status", "take", "symbols", + "sum", "system", "tan", "tally", "takeright", + "tanh", "tell", "tr", "times", "third", "time", + "toupper", "tolower", "timestamp", "tonumber", + "toraw", "toplevel", "transformer", "type", + "transpose", "trs", "truth", "unequal", + "variable", "valence", "up", "updateall", + "update", "vacate", "value", "version", "vars", + "void", "watch", "watchlist", "write", "writechars", + "writearray", "writefile", "writefield", + "writescreen", "writerecord"] + end + + def self.consts + @consts ||= Set.new %w(false null pi true) + end + + state :root do + rule %r/'/, Str::Single, :str + rule %r/\b[lo]+\b/, Num::Bin + rule %r/-?\d+((\.\d*)?[eE][+-]?\d|\.)\d*/, Num::Float + rule %r/\-?\d+/, Num::Integer + rule %r/`./, Str::Char + rule %r/"[^\s()\[\]{}#,;]*/, Str::Symbol + rule %r/\?[^\s()\[\]{}#,;]*/, Generic::Error + rule %r/%[^;]+;/, Comment::Multiline + rule %r/^#(.+\n)+\n/, Comment::Multiline + rule %r/:=|[\{\}\[\]\(\),:;]/ do |m| + if self.class.punctuations.include?(m[0]) + token Punctuation + else + token Text + end + end + # [".", "!", "#", "+", "*", "-", "<<", + # "/", "<", ">>", "<=", ">", "=", ">=", "@", "|", "~="] + rule %r'>>|>=|<=|~=|[\.!#+*\-=></|@]' do |m| + if self.class.operators.include?(m[0]) + token Operator + else + token Text + end + end + + rule %r/\b[_A-Za-z]\w*\b/ do |m| + lower = m[0].downcase + if self.class.keywords.include?(lower) + token Keyword + elsif self.class.funcs.include?(lower) + token Keyword::Pseudo + elsif self.class.transformers.include?(lower) + token Name::Builtin + elsif self.class.consts.include?(lower) + token Keyword::Constant + else + token Name::Variable + end + end + + rule %r/\s+/, Text + end + + state :str do + rule %r/''/, Str::Escape + rule %r/[^']+/, Str::Single + rule %r/'|$/, Str::Single, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nim.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nim.rb new file mode 100644 index 0000000..958b5f0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nim.rb @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Nim < RegexLexer + # This is pretty much a 1-1 port of the pygments NimrodLexer class + title "Nim" + desc "The Nim programming language (http://nim-lang.org/)" + + tag 'nim' + aliases 'nimrod' + filenames '*.nim' + + KEYWORDS = %w( + addr as asm atomic bind block break case cast const continue + converter defer discard distinct do elif else end enum except export + func finally for from generic if import include interface iterator let + macro method mixin nil object of out proc ptr raise ref return static + template try tuple type using var when while with without yield + ) + + OPWORDS = %w( + and or not xor shl shr div mod in notin is isnot + ) + + PSEUDOKEYWORDS = %w( + nil true false + ) + + TYPES = %w( + int int8 int16 int32 int64 float float32 float64 bool char range array + seq set string + ) + + NAMESPACE = %w( + from import include + ) + + def self.underscorize(words) + words.map do |w| + w.gsub(/./) { |x| "#{Regexp.escape(x)}_?" } + end.join('|') + end + + state :chars do + rule(/\\([\\abcefnrtvl"\']|x[a-fA-F0-9]{2}|[0-9]{1,3})/, Str::Escape) + rule(/'/, Str::Char, :pop!) + rule(/./, Str::Char) + end + + state :strings do + rule(/(?<!\$)\$(\d+|#|\w+)+/, Str::Interpol) + rule(/[^\\\'"\$\n]+/, Str) + rule(/[\'"\\]/, Str) + rule(/\$/, Str) + end + + state :dqs do + rule(/\\([\\abcefnrtvl"\']|\n|x[a-fA-F0-9]{2}|[0-9]{1,3})/, + Str::Escape) + rule(/"/, Str, :pop!) + mixin :strings + end + + state :rdqs do + rule(/"(?!")/, Str, :pop!) + rule(/"/, Str::Escape, :pop!) + mixin :strings + end + + state :tdqs do + rule(/"""(?!")/, Str, :pop!) + mixin :strings + mixin :nl + end + + state :funcname do + rule(/((?![\d_])\w)(((?!_)\w)|(_(?!_)\w))*/, Name::Function, :pop!) + rule(/`.+`/, Name::Function, :pop!) + end + + state :nl do + rule(/\n/, Str) + end + + state :floatnumber do + rule(/\.(?!\.)[0-9_]*/, Num::Float) + rule(/[eE][+-]?[0-9][0-9_]*/, Num::Float) + rule(//, Text, :pop!) + end + + # Making apostrophes optional, as only hexadecimal with type suffix + # possibly ambiguous. + state :floatsuffix do + rule(/'?[fF](32|64)/, Num::Float) + rule(//, Text, :pop!) + end + + state :intsuffix do + rule(/'?[iI](32|64)/, Num::Integer::Long) + rule(/'?[iI](8|16)/, Num::Integer) + rule(/'?[uU]/, Num::Integer) + rule(//, Text, :pop!) + end + + state :root do + rule(/##.*$/, Str::Doc) + rule(/#.*$/, Comment) + rule(/\*|=|>|<|\+|-|\/|@|\$|~|&|%|\!|\?|\||\\|\[|\]/, Operator) + rule(/\.\.|\.|,|\[\.|\.\]|{\.|\.}|\(\.|\.\)|{|}|\(|\)|:|\^|`|;/, + Punctuation) + + # Strings + rule(/(?:\w+)"/,Str, :rdqs) + rule(/"""/, Str, :tdqs) + rule(/"/, Str, :dqs) + + # Char + rule(/'/, Str::Char, :chars) + + # Keywords + rule(%r[(#{Nim.underscorize(OPWORDS)})\b], Operator::Word) + rule(/(p_?r_?o_?c_?\s)(?![\(\[\]])/, Keyword, :funcname) + rule(%r[(#{Nim.underscorize(KEYWORDS)})\b], Keyword) + rule(%r[(#{Nim.underscorize(NAMESPACE)})\b], Keyword::Namespace) + rule(/(v_?a_?r)\b/, Keyword::Declaration) + rule(%r[(#{Nim.underscorize(TYPES)})\b], Keyword::Type) + rule(%r[(#{Nim.underscorize(PSEUDOKEYWORDS)})\b], Keyword::Pseudo) + # Identifiers + rule(/\b((?![_\d])\w)(((?!_)\w)|(_(?!_)\w))*/, Name) + + # Numbers + # Note: Have to do this with a block to push multiple states first, + # since we can't pass array of states like w/ Pygments. + rule(/[0-9][0-9_]*(?=([eE.]|'?[fF](32|64)))/) do + push :floatsuffix + push :floatnumber + token Num::Float + end + + rule(/0[xX][a-fA-F0-9][a-fA-F0-9_]*/, Num::Hex, :intsuffix) + rule(/0[bB][01][01_]*/, Num, :intsuffix) + rule(/0o[0-7][0-7_]*/, Num::Oct, :intsuffix) + rule(/[0-9][0-9_]*/, Num::Integer, :intsuffix) + + # Whitespace + rule(/\s+/, Text) + rule(/.+$/, Error) + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nix.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nix.rb new file mode 100644 index 0000000..7cc9a3a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/nix.rb @@ -0,0 +1,211 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Nix < RegexLexer + title 'Nix' + desc 'The Nix expression language (https://nixos.org/nix/manual/#ch-expression-language)' + tag 'nix' + aliases 'nixos' + filenames '*.nix' + + state :whitespaces do + rule %r/^\s*\n\s*$/m, Text + rule %r/\s+/, Text + end + + state :comment do + rule %r/#.*$/, Comment + rule %r(/\*), Comment, :multiline_comment + end + + state :multiline_comment do + rule %r(\*/), Comment, :pop! + rule %r/./, Comment + end + + state :number do + rule %r/[0-9]/, Num::Integer + end + + state :null do + rule %r/(null)/, Keyword::Constant + end + + state :boolean do + rule %r/(true|false)/, Keyword::Constant + end + + state :binding do + rule %r/[a-zA-Z_][a-zA-Z0-9-]*/, Name::Variable + end + + state :path do + word = "[a-zA-Z0-9\._-]+" + section = "(\/#{word})" + prefix = "[a-z\+]+:\/\/" + root = /#{section}+/.source + tilde = /~#{section}+/.source + basic = /#{word}(\/#{word})+/.source + url = /#{prefix}(\/?#{basic})/.source + rule %r/(#{root}|#{tilde}|#{basic}|#{url})/, Str::Other + end + + state :string do + rule %r/"/, Str::Double, :double_quoted_string + rule %r/''/, Str::Double, :indented_string + end + + state :string_content do + rule %r/\\./, Str::Escape + rule %r/\$\$/, Str::Escape + rule %r/\${/, Str::Interpol, :string_interpolated_arg + end + + state :indented_string_content do + rule %r/'''/, Str::Escape + rule %r/''\$/, Str::Escape + rule %r/\$\$/, Str::Escape + rule %r/''\\./, Str::Escape + rule %r/\${/, Str::Interpol, :string_interpolated_arg + end + + state :string_interpolated_arg do + mixin :expression + rule %r/}/, Str::Interpol, :pop! + end + + state :indented_string do + mixin :indented_string_content + rule %r/''/, Str::Double, :pop! + rule %r/./, Str::Double + end + + state :double_quoted_string do + mixin :string_content + rule %r/"/, Str::Double, :pop! + rule %r/./, Str::Double + end + + state :operator do + rule %r/(\.|\?|\+\+|\+|!=|!|\/\/|\=\=|&&|\|\||->|\/|\*|-|<|>|<=|=>)/, Operator + end + + state :assignment do + rule %r/(=)/, Operator + rule %r/(@)/, Operator + end + + state :accessor do + rule %r/(\$)/, Punctuation + end + + state :delimiter do + rule %r/(;|,|:)/, Punctuation + end + + state :atom_content do + mixin :expression + rule %r/\)/, Punctuation, :pop! + end + + state :atom do + rule %r/\(/, Punctuation, :atom_content + end + + state :list do + rule %r/\[/, Punctuation, :list_content + end + + state :list_content do + rule %r/\]/, Punctuation, :pop! + mixin :expression + end + + state :set do + rule %r/{/, Punctuation, :set_content + end + + state :set_content do + rule %r/}/, Punctuation, :pop! + mixin :expression + end + + state :expression do + mixin :ignore + mixin :comment + mixin :boolean + mixin :null + mixin :number + mixin :path + mixin :string + mixin :keywords + mixin :operator + mixin :accessor + mixin :assignment + mixin :delimiter + mixin :binding + mixin :atom + mixin :set + mixin :list + end + + state :keywords do + mixin :keywords_namespace + mixin :keywords_declaration + mixin :keywords_conditional + mixin :keywords_reserved + mixin :keywords_builtin + end + + state :keywords_namespace do + keywords = %w(with in inherit) + rule %r/(?:#{keywords.join('|')})\b/, Keyword::Namespace + end + + state :keywords_declaration do + keywords = %w(let) + rule %r/(?:#{keywords.join('|')})\b/, Keyword::Declaration + end + + state :keywords_conditional do + keywords = %w(if then else) + rule %r/(?:#{keywords.join('|')})\b/, Keyword + end + + state :keywords_reserved do + keywords = %w(rec assert map) + rule %r/(?:#{keywords.join('|')})\b/, Keyword::Reserved + end + + state :keywords_builtin do + keywords = %w( + abort + baseNameOf + builtins + derivation + fetchTarball + import + isNull + removeAttrs + throw + toString + ) + rule %r/(?:#{keywords.join('|')})\b/, Keyword::Reserved + end + + state :ignore do + mixin :whitespaces + end + + state :root do + mixin :ignore + mixin :expression + end + + start do + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/objective_c.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/objective_c.rb new file mode 100644 index 0000000..f147851 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/objective_c.rb @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'c.rb' + load_lexer 'objective_c/common.rb' + + class ObjectiveC < C + extend ObjectiveCCommon + + tag 'objective_c' + title "Objective-C" + desc 'an extension of C commonly used to write Apple software' + aliases 'objc', 'obj-c', 'obj_c', 'objectivec', 'objective-c' + filenames '*.m', '*.h' + + mimetypes 'text/x-objective_c', 'application/x-objective_c' + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/objective_c/common.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/objective_c/common.rb new file mode 100644 index 0000000..2cb8107 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/objective_c/common.rb @@ -0,0 +1,182 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + module ObjectiveCCommon + def at_keywords + @at_keywords ||= %w( + selector private protected public encode synchronized try + throw catch finally end property synthesize dynamic optional + interface implementation import autoreleasepool + ) + end + + def at_builtins + @at_builtins ||= %w(true false YES NO) + end + + def builtins + @builtins ||= %w(YES NO nil) + end + + def self.extended(base) + base.prepend :statements do + rule %r/@"/, base::Str, :string + rule %r/@'(\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|\\.|[^\\'\n]')/, + base::Str::Char + rule %r/@(\d+[.]\d*|[.]\d+|\d+)e[+-]?\d+l?/i, + base::Num::Float + rule %r/@(\d+[.]\d*|[.]\d+|\d+f)f?/i, base::Num::Float + rule %r/@0x\h+[lL]?/, base::Num::Hex + rule %r/@0[0-7]+l?/i, base::Num::Oct + rule %r/@\d+l?/, base::Num::Integer + rule %r/\bin\b/, base::Keyword + + rule %r/@(?:interface|implementation)\b/, base::Keyword, :objc_classname + rule %r/@(?:class|protocol)\b/, base::Keyword, :forward_classname + + rule %r/@([[:alnum:]]+)/ do |m| + if base.at_keywords.include? m[1] + token base::Keyword + elsif base.at_builtins.include? m[1] + token base::Name::Builtin + else + token base::Error + end + end + + rule %r/[?]/, base::Punctuation, :ternary + rule %r/\[/, base::Punctuation, :message + rule %r/@\[/, base::Punctuation, :array_literal + rule %r/@\{/, base::Punctuation, :dictionary_literal + end + + id = /[a-z$_][a-z0-9$_]*/i + + base.state :ternary do + rule %r/:/, base::Punctuation, :pop! + mixin :statements + end + + base.state :message_shared do + rule %r/\]/, base::Punctuation, :pop! + rule %r/\{/, base::Punctuation, :pop! + rule %r/;/, base::Error + + mixin :statements + end + + base.state :message do + rule %r/(#{id})(\s*)(:)/ do + groups(base::Name::Function, base::Text, base::Punctuation) + goto :message_with_args + end + + rule %r/(#{id})(\s*)(\])/ do + groups(base::Name::Function, base::Text, base::Punctuation) + pop! + end + + mixin :message_shared + end + + base.state :message_with_args do + rule %r/\{/, base::Punctuation, :function + rule %r/(#{id})(\s*)(:)/ do + groups(base::Name::Function, base::Text, base::Punctuation) + pop! + end + + mixin :message_shared + end + + base.state :array_literal do + rule %r/]/, base::Punctuation, :pop! + rule %r/,/, base::Punctuation + mixin :statements + end + + base.state :dictionary_literal do + rule %r/}/, base::Punctuation, :pop! + rule %r/,/, base::Punctuation + mixin :statements + end + + base.state :objc_classname do + mixin :whitespace + + rule %r/(#{id})(\s*)(:)(\s*)(#{id})/ do + groups(base::Name::Class, base::Text, + base::Punctuation, base::Text, + base::Name::Class) + pop! + end + + rule %r/(#{id})(\s*)([(])(\s*)(#{id})(\s*)([)])/ do + groups(base::Name::Class, base::Text, + base::Punctuation, base::Text, + base::Name::Label, base::Text, + base::Punctuation) + pop! + end + + rule id, base::Name::Class, :pop! + end + + base.state :forward_classname do + mixin :whitespace + + rule %r/(#{id})(\s*)(,)(\s*)/ do + groups(base::Name::Class, base::Text, base::Punctuation, base::Text) + push + end + + rule %r/(#{id})(\s*)(;?)/ do + groups(base::Name::Class, base::Text, base::Punctuation) + pop! + end + end + + base.prepend :root do + rule %r( + ([-+])(\s*) + ([(].*?[)])?(\s*) + (?=#{id}:?) + )ix do |m| + token base::Keyword, m[1] + token base::Text, m[2] + recurse(m[3]) if m[3] + token base::Text, m[4] + push :method_definition + end + end + + base.state :method_definition do + rule %r/,/, base::Punctuation + rule %r/[.][.][.]/, base::Punctuation + rule %r/([(].*?[)])(#{id})/ do |m| + recurse m[1]; token base::Name::Variable, m[2] + end + + rule %r/(#{id})(\s*)(:)/m do + groups(base::Name::Function, base::Text, base::Punctuation) + end + + rule %r/;/, base::Punctuation, :pop! + + rule %r/{/ do + token base::Punctuation + goto :function + end + + mixin :inline_whitespace + rule %r(//.*?\n), base::Comment::Single + rule %r/\s+/m, base::Text + + rule(//) { pop! } + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/objective_cpp.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/objective_cpp.rb new file mode 100644 index 0000000..2160692 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/objective_cpp.rb @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'cpp.rb' + load_lexer 'objective_c/common.rb' + + class ObjectiveCpp < Cpp + extend ObjectiveCCommon + + tag 'objective_cpp' + title "Objective-C++" + desc 'an extension of C++ uncommonly used to write Apple software' + aliases 'objcpp', 'obj-cpp', 'obj_cpp', 'objectivecpp', + 'objc++', 'obj-c++', 'obj_c++', 'objectivec++' + filenames '*.mm', '*.h' + + mimetypes 'text/x-objective-c++', 'application/x-objective-c++' + + prepend :statements do + rule %r/(\.)(class)/ do + groups(Operator, Name::Builtin::Pseudo) + end + rule %r/(@selector)(\()(class)(\))/ do + groups(Keyword, Punctuation, Name::Builtin::Pseudo, Punctuation) + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ocaml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ocaml.rb new file mode 100644 index 0000000..684b367 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ocaml.rb @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'ocaml/common.rb' + + class OCaml < OCamlCommon + title "OCaml" + desc 'Objective Caml (ocaml.org)' + tag 'ocaml' + filenames '*.ml', '*.mli', '*.mll', '*.mly' + mimetypes 'text/x-ocaml' + + def self.keywords + @keywords ||= super + Set.new(%w( + match raise + )) + end + + state :root do + rule %r/\s+/m, Text + rule %r/false|true|[(][)]|\[\]/, Name::Builtin::Pseudo + rule %r/#{@@upper_id}(?=\s*[.])/, Name::Namespace, :dotted + rule %r/`#{@@id}/, Name::Tag + rule @@upper_id, Name::Class + rule %r/[(][*](?![)])/, Comment, :comment + rule @@id do |m| + match = m[0] + if self.class.keywords.include? match + token Keyword + elsif self.class.word_operators.include? match + token Operator::Word + elsif self.class.primitives.include? match + token Keyword::Type + else + token Name + end + end + + rule %r/[(){}\[\];]+/, Punctuation + rule @@operator, Operator + + rule %r/-?\d[\d_]*(.[\d_]*)?(e[+-]?\d[\d_]*)/i, Num::Float + rule %r/0x\h[\h_]*/i, Num::Hex + rule %r/0o[0-7][0-7_]*/i, Num::Oct + rule %r/0b[01][01_]*/i, Num::Bin + rule %r/\d[\d_]*/, Num::Integer + + rule %r/'(?:(\\[\\"'ntbr ])|(\\[0-9]{3})|(\\x\h{2}))'/, Str::Char + rule %r/'[.]'/, Str::Char + rule %r/'/, Keyword + rule %r/"/, Str::Double, :string + rule %r/[~?]#{@@id}/, Name::Variable + end + + state :comment do + rule %r/[^(*)]+/, Comment + rule(/[(][*]/) { token Comment; push } + rule %r/[*][)]/, Comment, :pop! + rule %r/[(*)]/, Comment + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ocaml/common.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ocaml/common.rb new file mode 100644 index 0000000..bd6f93d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ocaml/common.rb @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + # shared states with Reasonml and ReScript + class OCamlCommon < RegexLexer + def self.keywords + @keywords ||= Set.new %w( + as assert begin class constraint do done downto else end + exception external false for fun function functor if in + include inherit initializer lazy let module mutable new + nonrec object of open rec sig struct then to true try type + val virtual when while with + ) + end + + def self.word_operators + @word_operators ||= Set.new %w(and asr land lor lsl lxor mod or) + end + + def self.primitives + @primitives ||= Set.new %w(unit int float bool string char list array) + end + + @@operator = %r([;,_!$%&*+./:<=>?@^|~#-]+) + @@id = /[a-z_][\w']*/i + @@upper_id = /[A-Z][\w']*/ + + state :string do + rule %r/[^\\"]+/, Str::Double + mixin :escape_sequence + rule %r/\\\n/, Str::Double + rule %r/"/, Str::Double, :pop! + end + + state :escape_sequence do + rule %r/\\[\\"'ntbr]/, Str::Escape + rule %r/\\\d{3}/, Str::Escape + rule %r/\\x\h{2}/, Str::Escape + end + + state :dotted do + rule %r/\s+/m, Text + rule %r/[.]/, Punctuation + rule %r/#{@@upper_id}(?=\s*[.])/, Name::Namespace + rule @@upper_id, Name::Class, :pop! + rule @@id, Name, :pop! + rule %r/[({\[]/, Punctuation, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ocl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ocl.rb new file mode 100644 index 0000000..6511ffa --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ocl.rb @@ -0,0 +1,84 @@ +module Rouge + module Lexers + class OCL < RegexLexer + title "OCL" + desc "OMG Object Constraint Language (omg.org/spec/OCL)" + tag 'ocl' + aliases 'OCL' + filenames '*.ocl' + mimetypes 'text/x-ocl' + + def self.keywords + @keywords ||= Set.new %w( + context pre post inv init body def derive if then else endif import + package endpackage let in + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + Boolean Integer UnlimitedNatural Real String OrderedSet Tuple Bag Set + Sequence OclInvalid OclVoid TupleType OclState Collection OclMessage + ) + end + + def self.builtins + @builtins ||= Set.new %w( + self null result true false invalid @pre + ) + end + + def self.operators + @operators ||= Set.new %w( + or xor and not implies + ) + end + + def self.functions + @functions ||= Set.new %w( + oclAsSet oclIsNew oclIsUndefined oclIsInvalid oclAsType oclIsTypeOf + oclIsKindOf oclInState oclType oclLocale hasReturned result + isSignalSent isOperationCallabs floor round max min toString div mod + size substring concat toInteger toReal toUpperCase toLowerCase + indexOf equalsIgnoreCase at characters toBoolean includes excludes + count includesAll excludesAll isEmpty notEmpty sum product + selectByKind selectByType asBag asSequence asOrderedSet asSet flatten + union intersection including excluding symmetricDifferencecount + append prepend insertAt subOrderedSet first last reverse subSequence + any closure collect collectNested exists forAll isUnique iterate one + reject select sortedBy allInstances average conformsTo + ) + end + + state :single_string do + rule %r/\\./, Str::Escape + rule %r/'/, Str::Single, :pop! + rule %r/[^\\']+/, Str::Single + end + + state :root do + rule %r/\s+/m, Text + rule %r/--.*/, Comment::Single + rule %r/\d+/, Num::Integer + rule %r/'/, Str::Single, :single_string + rule %r([-|+*/<>=~!@#%&?^]), Operator + rule %r/[;:()\[\],.]/, Punctuation + rule %r/[a-zA-Z]\w*/ do |m| + if self.class.operators.include? m[0] + token Operator + elsif self.class.keywords_type.include? m[0] + token Keyword::Declaration + elsif self.class.keywords.include? m[0] + token Keyword + elsif self.class.builtins.include? m[0] + token Name::Builtin + elsif self.class.functions.include? m[0] + token Name::Function + else + token Name + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/openedge.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/openedge.rb new file mode 100644 index 0000000..8250127 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/openedge.rb @@ -0,0 +1,632 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class OpenEdge < RegexLexer + tag 'openedge' + aliases 'abl' + filenames '*.w', '*.i', '*.p', '*.cls', '*.df' + mimetypes 'text/x-openedge' + + title 'OpenEdge ABL' + desc 'The OpenEdge ABL programming language' + + id = /[a-zA-Z_&{}!][a-zA-Z0-9_\-&!}]*/ + + def self.keywords + @keywords ||= Set.new %w( + ABORT ABS ABSO ABSOL ABSOLU ABSOLUT ABSOLUTE ABSTRACT ACCELERATOR ACCEPT-CHANGES ACCEPT-ROW-CHANGES + ACCUM ACCUMU ACCUMUL ACCUMULA ACCUMULAT ACCUMULATE ACROSS ACTIVE ACTIVE-FORM ACTIVE-WINDOW ACTOR ADD + ADD-BUFFER ADD-CALC-COL ADD-CALC-COLU ADD-CALC-COLUM ADD-CALC-COLUMN ADD-COLUMNS-FROM + ADD-EVENTS-PROC ADD-EVENTS-PROCE ADD-EVENTS-PROCED ADD-EVENTS-PROCEDU ADD-EVENTS-PROCEDUR + ADD-EVENTS-PROCEDURE ADD-FIELDS-FROM ADD-FIRST ADD-HEADER-ENTRY ADD-INDEX-FIELD ADD-INTERVAL + ADD-LAST ADD-LIKE-COLUMN ADD-LIKE-FIELD ADD-LIKE-INDEX ADD-NEW-FIELD ADD-NEW-INDEX + ADD-SCHEMA-LOCATION ADD-SOURCE-BUFFER ADD-SUPER-PROC ADD-SUPER-PROCE ADD-SUPER-PROCED + ADD-SUPER-PROCEDU ADD-SUPER-PROCEDUR ADD-SUPER-PROCEDURE ADM-DATA ADVISE AFTER-BUFFER AFTER-ROWID + AFTER-TABLE ALERT-BOX ALIAS ALL ALLOW-COLUMN-SEARCHING ALLOW-PREV-DESERIALIZATION ALLOW-REPLICATION + ALTER ALTERNATE-KEY ALWAYS-ON-TOP AMBIG AMBIGU AMBIGUO AMBIGUOU AMBIGUOUS ANALYZ ANALYZE AND + ANSI-ONLY ANY ANY-KEY ANY-PRINTABLE ANYWHERE APPEND APPEND-CHILD APPEND-LINE APPL-ALERT APPL-ALERT- + APPL-ALERT-B APPL-ALERT-BO APPL-ALERT-BOX APPL-ALERT-BOXE APPL-ALERT-BOXES APPL-CONTEXT-ID + APPLICATION APPLY APPLY-CALLBACK APPSERVER-INFO APPSERVER-PASSWORD APPSERVER-USERID ARRAY-M ARRAY-ME + ARRAY-MES ARRAY-MESS ARRAY-MESSA ARRAY-MESSAG ARRAY-MESSAGE AS ASC ASCE ASCEN ASCEND ASCENDI + ASCENDIN ASCENDING AS-CURSOR ASK-OVERWRITE ASSEMBLY ASSIGN ASYNCHRONOUS ASYNC-REQUEST-COUNT + ASYNC-REQUEST-HANDLE AT ATTACH ATTACH-DATA-SOURCE ATTACHED-PAIRLIST ATTACHMENT ATTR ATTR- + ATTRIBUTE-NAMES ATTRIBUTE-TYPE ATTR-S ATTR-SP ATTR-SPA ATTR-SPAC ATTR-SPACE AUDIT-CONTROL + AUDIT-ENABLED AUDIT-EVENT-CONTEXT AUDIT-POLICY AUTHENTICATION-FAILED AUTHORIZATION AUTO-COMP + AUTO-COMPL AUTO-COMPLE AUTO-COMPLET AUTO-COMPLETI AUTO-COMPLETIO AUTO-COMPLETION AUTO-DELETE + AUTO-DELETE-XML AUTO-ENDKEY AUTO-END-KEY AUTO-GO AUTO-IND AUTO-INDE AUTO-INDEN AUTO-INDENT AUTOMATIC + AUTO-RESIZE AUTO-RET AUTO-RETU AUTO-RETUR AUTO-RETURN AUTO-SYNCHRONIZE AUTO-VAL AUTO-VALI AUTO-VALID + AUTO-VALIDA AUTO-VALIDAT AUTO-VALIDATE AUTO-Z AUTO-ZA AUTO-ZAP AVAIL AVAILA AVAILAB AVAILABL + AVAILABLE AVAILABLE-FORMATS AVE AVER AVERA AVERAG AVERAGE AVG BACK BACKG BACKGR BACKGRO BACKGROU + BACKGROUN BACKGROUND BACKSPACE BACK-TAB BACKWARD BACKWARDS BASE64 BASE64-DECODE BASE64-ENCODE + BASE-ADE BASE-KEY BASIC-LOGGING BATCH BATCH-MODE BATCH-SIZE BEFORE-BUFFER BEFORE-H BEFORE-HI + BEFORE-HID BEFORE-HIDE BEFORE-ROWID BEFORE-TABLE BEGIN-EVENT-GROUP BEGINS BELL BETWEEN BGC BGCO + BGCOL BGCOLO BGCOLOR BIG-ENDIAN BINARY BIND BIND-WHERE BLANK BLOB BLOCK BLOCK-ITERATION-DISPLAY + BLOCK-LEV BLOCK-LEVE BLOCK-LEVEL BORDER-B BORDER-BO BORDER-BOT BORDER-BOTT BORDER-BOTTO + BORDER-BOTTOM BORDER-BOTTOM-C BORDER-BOTTOM-CH BORDER-BOTTOM-CHA BORDER-BOTTOM-CHAR + BORDER-BOTTOM-CHARS BORDER-BOTTOM-P BORDER-BOTTOM-PI BORDER-BOTTOM-PIX BORDER-BOTTOM-PIXE + BORDER-BOTTOM-PIXEL BORDER-BOTTOM-PIXELS BORDER-L BORDER-LE BORDER-LEF BORDER-LEFT BORDER-LEFT-C + BORDER-LEFT-CH BORDER-LEFT-CHA BORDER-LEFT-CHAR BORDER-LEFT-CHARS BORDER-LEFT-P BORDER-LEFT-PI + BORDER-LEFT-PIX BORDER-LEFT-PIXE BORDER-LEFT-PIXEL BORDER-LEFT-PIXELS BORDER-R BORDER-RI BORDER-RIG + BORDER-RIGH BORDER-RIGHT BORDER-RIGHT-C BORDER-RIGHT-CH BORDER-RIGHT-CHA BORDER-RIGHT-CHAR + BORDER-RIGHT-CHARS BORDER-RIGHT-P BORDER-RIGHT-PI BORDER-RIGHT-PIX BORDER-RIGHT-PIXE + BORDER-RIGHT-PIXEL BORDER-RIGHT-PIXELS BORDER-T BORDER-TO BORDER-TOP BORDER-TOP-C BORDER-TOP-CH + BORDER-TOP-CHA BORDER-TOP-CHAR BORDER-TOP-CHARS BORDER-TOP-P BORDER-TOP-PI BORDER-TOP-PIX + BORDER-TOP-PIXE BORDER-TOP-PIXEL BORDER-TOP-PIXELS BOTH BOTTOM BOTTOM-COLUMN BOX BOX-SELECT + BOX-SELECTA BOX-SELECTAB BOX-SELECTABL BOX-SELECTABLE BREAK BREAK-LINE BROWSE BROWSE-COLUMN-DATA-TYPES + BROWSE-COLUMN-FORMATS BROWSE-COLUMN-LABELS BROWSE-HEADER BTOS BUFFER BUFFER-CHARS BUFFER-COMP + BUFFER-COMPA BUFFER-COMPAR BUFFER-COMPARE BUFFER-COPY BUFFER-CREATE BUFFER-DELETE BUFFER-FIELD + BUFFER-GROUP-ID BUFFER-GROUP-NAME BUFFER-HANDLE BUFFER-LINES BUFFER-N BUFFER-NA BUFFER-NAM + BUFFER-NAME BUFFER-PARTITION-ID BUFFER-RELEAS BUFFER-RELEASE BUFFER-TENANT-ID BUFFER-TENANT-NAME + BUFFER-VALIDATE BUFFER-VALUE BUTTON BUTTONS BY BY-POINTER BY-REFERENCE BYTE BYTES-READ BYTES-WRITTEN + BY-VALUE BY-VARIANT-POINT BY-VARIANT-POINTE BY-VARIANT-POINTER CACHE CACHE-SIZE CALL CALL-NAME + CALL-TYPE CANCEL-BREAK CANCEL-BUTTON CANCELLED CANCEL-PICK CANCEL-REQUESTS CANCEL-REQUESTS-AFTER + CAN-CREA CAN-CREAT CAN-CREATE CAN-DELE CAN-DELET CAN-DELETE CAN-DO CAN-DO-DOMAIN-SUPPORT CAN-FIND + CAN-QUERY CAN-READ CAN-SET CAN-WRIT CAN-WRITE CAPS CAREFUL-PAINT CASE CASE-SEN CASE-SENS CASE-SENSI + CASE-SENSIT CASE-SENSITI CASE-SENSITIV CASE-SENSITIVE CAST CATCH CDECL CENTER CENTERE CENTERED + CHAINED CHAR CHARA CHARAC CHARACT CHARACTE CHARACTER CHARACTER_LENGTH CHARSET CHECK CHECKED + CHECK-MEM-STOMP CHILD-BUFFER CHILD-NUM CHOICES CHOOSE CHR CLASS CLASS-TYPE CLEAR CLEAR-APPL-CONTEXT + CLEAR-LOG CLEAR-SELECT CLEAR-SELECTI CLEAR-SELECTIO CLEAR-SELECTION CLEAR-SORT-ARROW + CLEAR-SORT-ARROWS CLIENT-CONNECTION-ID CLIENT-PRINCIPAL CLIENT-TTY CLIENT-TYPE CLIENT-WORKSTATION + CLIPBOARD CLOB CLONE-NODE CLOSE CLOSE-LOG CODE CODEBASE-LOCATOR CODEPAGE CODEPAGE-CONVERT COL + COLLATE COL-OF COLON COLON-ALIGN COLON-ALIGNE COLON-ALIGNED COLOR COLOR-TABLE COLUMN COLUMN-BGC + COLUMN-BGCO COLUMN-BGCOL COLUMN-BGCOLO COLUMN-BGCOLOR COLUMN-CODEPAGE COLUMN-DCOLOR COLUMN-FGC + COLUMN-FGCO COLUMN-FGCOL COLUMN-FGCOLO COLUMN-FGCOLOR COLUMN-FONT COLUMN-LAB COLUMN-LABE + COLUMN-LABEL COLUMN-LABEL-BGC COLUMN-LABEL-BGCO COLUMN-LABEL-BGCOL COLUMN-LABEL-BGCOLO + COLUMN-LABEL-BGCOLOR COLUMN-LABEL-DCOLOR COLUMN-LABEL-FGC COLUMN-LABEL-FGCO COLUMN-LABEL-FGCOL + COLUMN-LABEL-FGCOLO COLUMN-LABEL-FGCOLOR COLUMN-LABEL-FONT COLUMN-LABEL-HEIGHT-C + COLUMN-LABEL-HEIGHT-CH COLUMN-LABEL-HEIGHT-CHA COLUMN-LABEL-HEIGHT-CHAR COLUMN-LABEL-HEIGHT-CHARS + COLUMN-LABEL-HEIGHT-P COLUMN-LABEL-HEIGHT-PI COLUMN-LABEL-HEIGHT-PIX COLUMN-LABEL-HEIGHT-PIXE + COLUMN-LABEL-HEIGHT-PIXEL COLUMN-LABEL-HEIGHT-PIXELS COLUMN-MOVABLE COLUMN-OF COLUMN-PFC COLUMN-PFCO + COLUMN-PFCOL COLUMN-PFCOLO COLUMN-PFCOLOR COLUMN-READ-ONLY COLUMN-RESIZABLE COLUMNS COLUMN-SC + COLUMN-SCR COLUMN-SCRO COLUMN-SCROL COLUMN-SCROLL COLUMN-SCROLLI COLUMN-SCROLLIN COLUMN-SCROLLING + COMBO-BOX COM-HANDLE COMMAND COMPARE COMPARES COMPILE COMPILER COMPLETE COMPONENT-HANDLE + COMPONENT-SELF COM-SELF CONFIG-NAME CONNECT CONNECTED CONSTRAINED CONSTRUCTOR CONTAINER-EVENT + CONTAINS CONTENTS CONTEXT CONTEXT-HELP CONTEXT-HELP-FILE CONTEXT-HELP-ID CONTEXT-POP CONTEXT-POPU + CONTEXT-POPUP CONTROL CONTROL-BOX CONTROL-CONT CONTROL-CONTA CONTROL-CONTAI CONTROL-CONTAIN + CONTROL-CONTAINE CONTROL-CONTAINER CONTROL-FRAM CONTROL-FRAME CONVERT CONVERT-3D CONVERT-3D- + CONVERT-3D-C CONVERT-3D-CO CONVERT-3D-COL CONVERT-3D-COLO CONVERT-3D-COLOR CONVERT-3D-COLORS + CONVERT-TO-OFFS CONVERT-TO-OFFSE CONVERT-TO-OFFSET COPY COPY-DATASET COPY-LOB COPY-SAX-ATTRIBUTES + COPY-TEMP-TABLE COUNT COUNT-OF COVERAGE CPCASE CPCOLL CPINT CPINTE CPINTER CPINTERN CPINTERNA + CPINTERNAL CPLOG CPPRINT CPRCODEIN CPRCODEOUT CPSTREAM CPTERM CRC-VAL CRC-VALU CRC-VALUE CREATE + CREATE-LIKE CREATE-LIKE-SEQUENTIAL CREATE-NODE CREATE-NODE-NAMESPACE CREATE-ON-ADD + CREATE-RESULT-LIST-ENTRY CREATE-TEST-FILE CTOS CURRENT CURRENT_DATE CURRENT-CHANGED CURRENT-COLUMN + CURRENT-ENV CURRENT-ENVI CURRENT-ENVIR CURRENT-ENVIRO CURRENT-ENVIRON CURRENT-ENVIRONM + CURRENT-ENVIRONME CURRENT-ENVIRONMEN CURRENT-ENVIRONMENT CURRENT-ITERATION CURRENT-LANG + CURRENT-LANGU CURRENT-LANGUA CURRENT-LANGUAG CURRENT-LANGUAGE CURRENT-QUERY CURRENT-REQUEST-INFO + CURRENT-RESPONSE-INFO CURRENT-RESULT-ROW CURRENT-ROW-MODIFIED CURRENT-VALUE CURRENT-WINDOW CURS + CURSO CURSOR CURSOR-CHAR CURSOR-DOWN CURSOR-LEFT CURSOR-LINE CURSOR-OFFSET CURSOR-RIGHT CURSOR-UP + CUT DATA-B DATABASE DATA-BI DATA-BIN DATA-BIND DATA-ENTRY-RET DATA-ENTRY-RETU DATA-ENTRY-RETUR + DATA-ENTRY-RETURN DATA-REFRESH-LINE DATA-REFRESH-PAGE DATA-REL DATA-RELA DATA-RELAT DATA-RELATI + DATA-RELATIO DATA-RELATION DATASERVERS DATASET DATASET-HANDLE DATA-SOURCE DATA-SOURCE-COMPLETE-MAP + DATA-SOURCE-MODIFIED DATA-SOURCE-ROWID DATA-T DATA-TY DATA-TYP DATA-TYPE DATE DATE-F DATE-FO + DATE-FOR DATE-FORM DATE-FORMA DATE-FORMAT DATETIME DATETIME-TZ DAY DBCODEPAGE DBCOLLATION DB-CONTEXT + DB-LIST DBNAME DBPARAM DB-REFERENCES DB-REMOTE-HOST DBREST DBRESTR DBRESTRI DBRESTRIC DBRESTRICT + DBRESTRICTI DBRESTRICTIO DBRESTRICTION DBRESTRICTIONS DBTASKID DBTYPE DBVERS DBVERSI DBVERSIO + DBVERSION DCOLOR DDE DDE-ERROR DDE-I DDE-ID DDE-ITEM DDE-NAME DDE-NOTIFY DDE-TOPIC DEBLANK DEBU + DEBUG DEBUG-ALERT DEBUGGER DEBUG-LIST DEBUG-SET-TENANT DEC DECI DECIM DECIMA DECIMAL DECIMALS + DECLARE DECLARE-NAMESPACE DECRYPT DEF DEFAULT DEFAULT-ACTION DEFAULT-BUFFER-HANDLE DEFAULT-BUT + DEFAULT-BUTT DEFAULT-BUTTO DEFAULT-BUTTON DEFAULT-COMMIT DEFAULT-EX DEFAULT-EXT DEFAULT-EXTE + DEFAULT-EXTEN DEFAULT-EXTENS DEFAULT-EXTENSI DEFAULT-EXTENSIO DEFAULT-EXTENSION DEFAULT-NOXL + DEFAULT-NOXLA DEFAULT-NOXLAT DEFAULT-NOXLATE DEFAULT-POP-UP DEFAULT-STRING DEFAULT-VALUE + DEFAULT-WINDOW DEFAUT-B DEFER-LOB-FETCH DEFI DEFIN DEFINE DEFINED DEFINE-USER-EVENT-MANAGER DEL + DELEGATE DELETE DELETE-CHAR DELETE-CHARACTER DELETE-COLUMN DELETE-CURRENT-ROW DELETE-END-LINE + DELETE-FIELD DELETE-HEADER-ENTRY DELETE-LINE DELETE-NODE DELETE-RESULT-LIST-ENTRY + DELETE-SELECTED-ROW DELETE-SELECTED-ROWS DELETE-WORD DELIMITER DESC DESCE DESCEN DESCEND DESCENDI + DESCENDIN DESCENDING DESCRIPT DESCRIPTI DESCRIPTIO DESCRIPTION DESELECT DESELECT-EXTEND + DESELECT-FOCUSED-ROW DESELECTION DESELECTION-EXTEND DESELECT-ROWS DESELECT-SELECTED-ROW DESTRUCTOR + DETACH DETACH-DATA-SOURCE DIALOG-BOX DIALOG-HELP DICT DICTI DICTIO DICTION DICTIONA DICTIONAR + DICTIONARY DIR DIRECTORY DISABLE DISABLE-AUTO-ZAP DISABLE-CONNECTIONS DISABLED DISABLE-DUMP-TRIGGERS + DISABLE-LOAD-TRIGGERS DISCON DISCONN DISCONNE DISCONNEC DISCONNECT DISMISS-MENU DISP DISPL DISPLA + DISPLAY DISPLAY-MESSAGE DISPLAY-T DISPLAY-TIMEZONE DISPLAY-TY DISPLAY-TYP DISPLAY-TYPE DISTINCT + DLL-CALL-TYPE DO DOMAIN-DESCRIPTION DOMAIN-NAME DOMAIN-TYPE DOS DOS-END DOTNET-CLR-LOADED DOUBLE + DOWN DRAG-ENABLED DROP DROP-DOWN DROP-DOWN-LIST DROP-FILE-NOTIFY DROP-TARGET DS-CLOSE-CURSOR + DSLOG-MANAGER DUMP DUMP-LOGGING-NOW DYNAMIC DYNAMIC-CAST DYNAMIC-CURRENT-VALUE DYNAMIC-ENUM + DYNAMIC-FUNC DYNAMIC-FUNCT DYNAMIC-FUNCTI DYNAMIC-FUNCTIO DYNAMIC-FUNCTION DYNAMIC-INVOKE + DYNAMIC-NEW DYNAMIC-NEXT-VALUE DYNAMIC-PROPERTY EACH ECHO EDGE EDGE-C EDGE-CH EDGE-CHA EDGE-CHAR + EDGE-CHARS EDGE-P EDGE-PI EDGE-PIX EDGE-PIXE EDGE-PIXEL EDGE-PIXELS EDIT-CAN-PASTE EDIT-CAN-UNDO + EDIT-CLEAR EDIT-COPY EDIT-CUT EDITING EDITOR EDITOR-BACKTAB EDITOR-TAB EDIT-PASTE EDIT-UNDO ELSE + EMPTY EMPTY-DATASET EMPTY-SELECTION EMPTY-TEMP-TABLE ENABLE ENABLE-CONNECTIONS ENABLED + ENABLED-FIELDS ENCODE ENCODE-DOMAIN-ACCESS-CODE ENCODING ENCRYPT ENCRYPT-AUDIT-MAC-KEY + ENCRYPTION-SALT END END-BOX-SELECTION END-DOCUMENT END-ELEMENT END-ERROR END-EVENT-GROUP + END-FILE-DROP ENDKEY END-KEY END-MOVE END-RESIZE END-ROW-RESIZE END-SEARCH END-USER-PROMPT ENTERED + ENTER-MENUBAR ENTITY-EXPANSION-LIMIT ENTRY ENTRY-TYPES-LIST ENUM EQ ERROR ERROR-COL ERROR-COLU + ERROR-COLUM ERROR-COLUMN ERROR-OBJECT ERROR-OBJECT-DETAIL ERROR-ROW ERROR-STACK-TRACE ERROR-STAT + ERROR-STATU ERROR-STATUS ERROR-STRING ESCAPE ETIME EVENT EVENT-GROUP-ID EVENT-PROCEDURE + EVENT-PROCEDURE-CONTEXT EVENTS EVENT-T EVENT-TY EVENT-TYP EVENT-TYPE EXCEPT EXCLUSIVE EXCLUSIVE-ID + EXCLUSIVE-L EXCLUSIVE-LO EXCLUSIVE-LOC EXCLUSIVE-LOCK EXCLUSIVE-WEB EXCLUSIVE-WEB- EXCLUSIVE-WEB-U + EXCLUSIVE-WEB-US EXCLUSIVE-WEB-USE EXCLUSIVE-WEB-USER EXECUTE EXECUTION-LOG EXISTS EXIT EXIT-CODE + EXP EXPAND EXPANDABLE EXPIRE EXPLICIT EXPORT EXPORT-PRINCIPAL EXTENDED EXTENT EXTERNAL EXTRACT FALSE + FALSE-LEAKS FETCH FETCH-SELECTED-ROW FGC FGCO FGCOL FGCOLO FGCOLOR FIELD FIELDS FILE FILE-ACCESS-D + FILE-ACCESS-DA FILE-ACCESS-DAT FILE-ACCESS-DATE FILE-ACCESS-T FILE-ACCESS-TI FILE-ACCESS-TIM + FILE-ACCESS-TIME FILE-CREATE-D FILE-CREATE-DA FILE-CREATE-DAT FILE-CREATE-DATE FILE-CREATE-T + FILE-CREATE-TI FILE-CREATE-TIM FILE-CREATE-TIME FILE-INFO FILE-INFOR FILE-INFORM FILE-INFORMA + FILE-INFORMAT FILE-INFORMATI FILE-INFORMATIO FILE-INFORMATION FILE-MOD-D FILE-MOD-DA FILE-MOD-DAT + FILE-MOD-DATE FILE-MOD-T FILE-MOD-TI FILE-MOD-TIM FILE-MOD-TIME FILENAME FILE-NAME FILE-OFF + FILE-OFFS FILE-OFFSE FILE-OFFSET FILE-SIZE FILE-TYPE FILL FILLED FILL-IN FILL-MODE FILL-WHERE-STRING + FILTERS FINAL FINALLY FIND FIND-BY-ROWID FIND-CASE-SENSITIVE FIND-CURRENT FINDER FIND-FIRST + FIND-GLOBAL FIND-LAST FIND-NEXT FIND-NEXT-OCCURRENCE FIND-PREVIOUS FIND-PREV-OCCURRENCE FIND-SELECT + FIND-UNIQUE FIND-WRAP-AROUND FIREHOSE-CURSOR FIRST FIRST-ASYNC FIRST-ASYNC- FIRST-ASYNCH-REQUEST + FIRST-ASYNC-R FIRST-ASYNC-RE FIRST-ASYNC-REQ FIRST-ASYNC-REQU FIRST-ASYNC-REQUE FIRST-ASYNC-REQUES + FIRST-ASYNC-REQUEST FIRST-BUFFER FIRST-CHILD FIRST-COLUMN FIRST-DATASET FIRST-DATA-SOURCE FIRST-FORM + FIRST-OBJECT FIRST-OF FIRST-PROC FIRST-PROCE FIRST-PROCED FIRST-PROCEDU FIRST-PROCEDUR + FIRST-PROCEDURE FIRST-QUERY FIRST-SERV FIRST-SERVE FIRST-SERVER FIRST-SERVER-SOCKET FIRST-SOCKET + FIRST-TAB-I FIRST-TAB-IT FIRST-TAB-ITE FIRST-TAB-ITEM FIT-LAST-COLUMN FIX-CODEPAGE FIXED-ONLY FLAGS + FLAT-BUTTON FLOAT FOCUS FOCUSED-ROW FOCUSED-ROW-SELECTED FOCUS-IN FONT FONT-TABLE FOR FORCE-FILE + FORE FOREG FOREGR FOREGRO FOREGROU FOREGROUN FOREGROUND FOREIGN-KEY-HIDDEN FORM FORMA FORMAT + FORMATTE FORMATTED FORM-INPUT FORM-LONG-INPUT FORWARD FORWARD-ONLY FORWARDS FRAGMEN FRAGMENT FRAM + FRAME FRAME-COL FRAME-DB FRAME-DOWN FRAME-FIELD FRAME-FILE FRAME-INDE FRAME-INDEX FRAME-LINE + FRAME-NAME FRAME-ROW FRAME-SPA FRAME-SPAC FRAME-SPACI FRAME-SPACIN FRAME-SPACING FRAME-VAL + FRAME-VALU FRAME-VALUE FRAME-X FRAME-Y FREQUENCY FROM FROM-C FROM-CH FROM-CHA FROM-CHAR FROM-CHARS + FROM-CUR FROM-CURR FROM-CURRE FROM-CURREN FROM-CURRENT FROMNOREORDER FROM-P FROM-PI FROM-PIX + FROM-PIXE FROM-PIXEL FROM-PIXELS FULL-HEIGHT FULL-HEIGHT-C FULL-HEIGHT-CH FULL-HEIGHT-CHA + FULL-HEIGHT-CHAR FULL-HEIGHT-CHARS FULL-HEIGHT-P FULL-HEIGHT-PI FULL-HEIGHT-PIX FULL-HEIGHT-PIXE + FULL-HEIGHT-PIXEL FULL-HEIGHT-PIXELS FULL-PATHN FULL-PATHNA FULL-PATHNAM FULL-PATHNAME FULL-WIDTH + FULL-WIDTH- FULL-WIDTH-C FULL-WIDTH-CH FULL-WIDTH-CHA FULL-WIDTH-CHAR FULL-WIDTH-CHARS FULL-WIDTH-P + FULL-WIDTH-PI FULL-WIDTH-PIX FULL-WIDTH-PIXE FULL-WIDTH-PIXEL FULL-WIDTH-PIXELS FUNCTION + FUNCTION-CALL-TYPE GATEWAY GATEWAYS GE GENERATE-MD5 GENERATE-PBE-KEY GENERATE-PBE-SALT + GENERATE-RANDOM-KEY GENERATE-UUID GET GET-ATTR-CALL-TYPE GET-ATTRIBUTE GET-ATTRIBUTE-NODE + GET-BINARY-DATA GET-BITS GET-BLUE GET-BLUE- GET-BLUE-V GET-BLUE-VA GET-BLUE-VAL GET-BLUE-VALU + GET-BLUE-VALUE GET-BROWSE-COL GET-BROWSE-COLU GET-BROWSE-COLUM GET-BROWSE-COLUMN GET-BUFFER-HANDLE + GETBYTE GET-BYTE GET-BYTE-ORDER GET-BYTES GET-BYTES-AVAILABLE GET-CALLBACK-PROC-CONTEXT + GET-CALLBACK-PROC-NAME GET-CGI-LIST GET-CGI-LONG-VALUE GET-CGI-VALUE GET-CHANGES GET-CHILD + GET-CHILD-REL GET-CHILD-RELA GET-CHILD-RELAT GET-CHILD-RELATI GET-CHILD-RELATIO GET-CHILD-RELATION + GET-CLASS GET-CLIENT GET-CODEPAGE GET-CODEPAGES GET-COLL GET-COLLA GET-COLLAT GET-COLLATI + GET-COLLATIO GET-COLLATION GET-COLLATIONS GET-COLUMN GET-CONFIG-VALUE GET-CURR GET-CURRE GET-CURREN + GET-CURRENT GET-DATASET-BUFFER GET-DB-CLIENT GET-DIR GET-DOCUMENT-ELEMENT GET-DOUBLE + GET-DROPPED-FILE GET-DYNAMIC GET-EFFECTIVE-TENANT-ID GET-EFFECTIVE-TENANT-NAME GET-ERROR-COLUMN + GET-ERROR-ROW GET-FILE GET-FILE-NAME GET-FILE-OFFSE GET-FILE-OFFSET GET-FIRS GET-FIRST GET-FLOAT + GET-GREEN GET-GREEN- GET-GREEN-V GET-GREEN-VA GET-GREEN-VAL GET-GREEN-VALU GET-GREEN-VALUE + GET-HEADER-ENTR GET-HEADER-ENTRY GET-INDEX-BY-NAMESPACE-NAME GET-INDEX-BY-QNAME GET-INT64 + GET-ITERATION GET-KEY-VAL GET-KEY-VALU GET-KEY-VALUE GET-LAST GET-LOCALNAME-BY-INDEX GET-LONG + GET-MESSAGE GET-MESSAGE-TYPE GET-NEXT GET-NODE GET-NUMBER GET-PARENT GET-POINTER-VALUE GET-PREV + GET-PRINTERS GET-PROPERTY GET-QNAME-BY-INDEX GET-RED GET-RED- GET-RED-V GET-RED-VA GET-RED-VAL + GET-RED-VALU GET-RED-VALUE GET-REL GET-RELA GET-RELAT GET-RELATI GET-RELATIO GET-RELATION + GET-REPOSITIONED-ROW GET-RGB GET-RGB- GET-RGB-V GET-RGB-VA GET-RGB-VAL GET-RGB-VALU GET-RGB-VALUE + GET-ROW GET-SAFE-USER GET-SELECTED GET-SELECTED- GET-SELECTED-W GET-SELECTED-WI GET-SELECTED-WID + GET-SELECTED-WIDG GET-SELECTED-WIDGE GET-SELECTED-WIDGET GET-SERIALIZED GET-SHORT GET-SIGNATURE + GET-SIZE GET-SOCKET-OPTION GET-SOURCE-BUFFER GET-STRING GET-TAB-ITEM GET-TEXT-HEIGHT + GET-TEXT-HEIGHT-C GET-TEXT-HEIGHT-CH GET-TEXT-HEIGHT-CHA GET-TEXT-HEIGHT-CHAR GET-TEXT-HEIGHT-CHARS + GET-TEXT-HEIGHT-P GET-TEXT-HEIGHT-PI GET-TEXT-HEIGHT-PIX GET-TEXT-HEIGHT-PIXE GET-TEXT-HEIGHT-PIXEL + GET-TEXT-HEIGHT-PIXELS GET-TEXT-WIDTH GET-TEXT-WIDTH-C GET-TEXT-WIDTH-CH GET-TEXT-WIDTH-CHA + GET-TEXT-WIDTH-CHAR GET-TEXT-WIDTH-CHARS GET-TEXT-WIDTH-P GET-TEXT-WIDTH-PI GET-TEXT-WIDTH-PIX + GET-TEXT-WIDTH-PIXE GET-TEXT-WIDTH-PIXEL GET-TEXT-WIDTH-PIXELS GET-TOP-BUFFER GET-TYPE-BY-INDEX + GET-TYPE-BY-NAMESPACE-NAME GET-TYPE-BY-QNAME GET-UNSIGNED-LONG GET-UNSIGNED-SHORT GET-URI-BY-INDEX + GET-VALUE-BY-INDEX GET-VALUE-BY-NAMESPACE-NAME GET-VALUE-BY-QNAME GET-WAIT GET-WAIT- GET-WAIT-S + GET-WAIT-ST GET-WAIT-STA GET-WAIT-STAT GET-WAIT-STATE GLOBAL GO GO-ON GO-PEND GO-PENDI GO-PENDIN + GO-PENDING GOTO GRANT GRANT-ARCHIVE GRAPHIC-E GRAPHIC-ED GRAPHIC-EDG GRAPHIC-EDGE GRAYED + GRID-FACTOR-H GRID-FACTOR-HO GRID-FACTOR-HOR GRID-FACTOR-HORI GRID-FACTOR-HORIZ GRID-FACTOR-HORIZO + GRID-FACTOR-HORIZON GRID-FACTOR-HORIZONT GRID-FACTOR-HORIZONTA GRID-FACTOR-HORIZONTAL GRID-FACTOR-V + GRID-FACTOR-VE GRID-FACTOR-VER GRID-FACTOR-VERT GRID-FACTOR-VERTI GRID-FACTOR-VERTIC + GRID-FACTOR-VERTICA GRID-FACTOR-VERTICAL GRID-SET GRID-SNAP GRID-UNIT-HEIGHT GRID-UNIT-HEIGHT-C + GRID-UNIT-HEIGHT-CH GRID-UNIT-HEIGHT-CHA GRID-UNIT-HEIGHT-CHAR GRID-UNIT-HEIGHT-CHARS + GRID-UNIT-HEIGHT-P GRID-UNIT-HEIGHT-PI GRID-UNIT-HEIGHT-PIX GRID-UNIT-HEIGHT-PIXE + GRID-UNIT-HEIGHT-PIXEL GRID-UNIT-HEIGHT-PIXELS GRID-UNIT-WIDTH GRID-UNIT-WIDTH-C GRID-UNIT-WIDTH-CH + GRID-UNIT-WIDTH-CHA GRID-UNIT-WIDTH-CHAR GRID-UNIT-WIDTH-CHARS GRID-UNIT-WIDTH-P GRID-UNIT-WIDTH-PI + GRID-UNIT-WIDTH-PIX GRID-UNIT-WIDTH-PIXE GRID-UNIT-WIDTH-PIXEL GRID-UNIT-WIDTH-PIXELS GRID-VISIBLE + GROUP GROUP-BOX GT GUID HANDLE HANDLER HAS-LOBS HAS-RECORDS HAVING HEADER HEIGHT HEIGHT-C HEIGHT-CH + HEIGHT-CHA HEIGHT-CHAR HEIGHT-CHARS HEIGHT-P HEIGHT-PI HEIGHT-PIX HEIGHT-PIXE HEIGHT-PIXEL + HEIGHT-PIXELS HELP HELP-CON HELP-CONT HELP-CONTE HELP-CONTEX HELP-CONTEXT HELPFILE-N HELPFILE-NA + HELPFILE-NAM HELPFILE-NAME HELP-TOPIC HEX-DECODE HEX-ENCODE HIDDEN HIDE HINT HOME HORI HORIZ + HORIZ-END HORIZ-HOME HORIZO HORIZON HORIZONT HORIZONTA HORIZONTAL HORIZ-SCROLL-DRAG HOST-BYTE-ORDER + HTML-CHARSET HTML-END-OF-LINE HTML-END-OF-PAGE HTML-FRAME-BEGIN HTML-FRAME-END HTML-HEADER-BEGIN + HTML-HEADER-END HTML-TITLE-BEGIN HTML-TITLE-END HWND ICFPARAM ICFPARAME ICFPARAMET ICFPARAMETE + ICFPARAMETER ICON IF IGNORE-CURRENT-MOD IGNORE-CURRENT-MODI IGNORE-CURRENT-MODIF + IGNORE-CURRENT-MODIFI IGNORE-CURRENT-MODIFIE IGNORE-CURRENT-MODIFIED IMAGE IMAGE-DOWN + IMAGE-INSENSITIVE IMAGE-SIZE IMAGE-SIZE-C IMAGE-SIZE-CH IMAGE-SIZE-CHA IMAGE-SIZE-CHAR + IMAGE-SIZE-CHARS IMAGE-SIZE-P IMAGE-SIZE-PI IMAGE-SIZE-PIX IMAGE-SIZE-PIXE IMAGE-SIZE-PIXEL + IMAGE-SIZE-PIXELS IMAGE-UP IMMEDIATE-DISPLAY IMPLEMENTS IMPORT IMPORT-NODE IMPORT-PRINCIPAL IN + INCREMENT-EXCLUSIVE-ID INDEX INDEXED-REPOSITION INDEX-HINT INDEX-INFO INDEX-INFOR INDEX-INFORM + INDEX-INFORMA INDEX-INFORMAT INDEX-INFORMATI INDEX-INFORMATIO INDEX-INFORMATION INDICATOR INFO INFOR + INFORM INFORMA INFORMAT INFORMATI INFORMATIO INFORMATION IN-HANDLE INHERIT-BGC INHERIT-BGCO + INHERIT-BGCOL INHERIT-BGCOLO INHERIT-BGCOLOR INHERIT-COLOR-MODE INHERIT-FGC INHERIT-FGCO + INHERIT-FGCOL INHERIT-FGCOLO INHERIT-FGCOLOR INHERITS INIT INITIAL INITIAL-DIR INITIAL-FILTER + INITIALIZE INITIALIZE-DOCUMENT-TYPE INITIATE INNER INNER-CHARS INNER-LINES INPUT INPUT-O INPUT-OU + INPUT-OUT INPUT-OUTP INPUT-OUTPU INPUT-OUTPUT INPUT-VALUE INSERT INSERT-ATTRIBUTE INSERT-B INSERT-BA + INSERT-BAC INSERT-BACK INSERT-BACKT INSERT-BACKTA INSERT-BACKTAB INSERT-BEFORE INSERT-COLUMN + INSERT-FIELD INSERT-FIELD-DATA INSERT-FIELD-LABEL INSERT-FILE INSERT-MODE INSERT-ROW INSERT-STRING + INSERT-T INSERT-TA INSERT-TAB INSTANTIATING-PROCEDURE INT INT64 INTE INTEG INTEGE INTEGER INTERFACE + INTERNAL-ENTRIES INTERVAL INTO INVOKE IS IS-ATTR IS-ATTR- IS-ATTR-S IS-ATTR-SP IS-ATTR-SPA + IS-ATTR-SPAC IS-ATTR-SPACE IS-CLAS IS-CLASS IS-CODEPAGE-FIXED IS-COLUMN-CODEPAGE IS-DB-MULTI-TENANT + IS-JSON IS-LEAD-BYTE IS-MULTI-TENANT ISO-DATE IS-OPEN IS-PARAMETER-SET IS-PARTITIONE IS-PARTITIONED + IS-ROW-SELECTED IS-SELECTED IS-XML ITEM ITEMS-PER-ROW ITERATION-CHANGED JOIN JOIN-BY-SQLDB + JOIN-ON-SELECT KBLABEL KEEP-CONNECTION-OPEN KEEP-FRAME-Z KEEP-FRAME-Z- KEEP-FRAME-Z-O + KEEP-FRAME-Z-OR KEEP-FRAME-Z-ORD KEEP-FRAME-Z-ORDE KEEP-FRAME-Z-ORDER KEEP-MESSAGES + KEEP-SECURITY-CACHE KEEP-TAB-ORDER KEY KEYCACHE-JOIN KEYCODE KEY-CODE KEYFUNC KEY-FUNC KEYFUNCT + KEY-FUNCT KEYFUNCTI KEY-FUNCTI KEYFUNCTIO KEY-FUNCTIO KEYFUNCTION KEY-FUNCTION KEYLABEL KEY-LABEL + KEYS KEYWORD KEYWORD-ALL LABEL LABEL-BGC LABEL-BGCO LABEL-BGCOL LABEL-BGCOLO LABEL-BGCOLOR LABEL-DC + LABEL-DCO LABEL-DCOL LABEL-DCOLO LABEL-DCOLOR LABEL-FGC LABEL-FGCO LABEL-FGCOL LABEL-FGCOLO + LABEL-FGCOLOR LABEL-FONT LABEL-PFC LABEL-PFCO LABEL-PFCOL LABEL-PFCOLO LABEL-PFCOLOR LABELS + LABELS-HAVE-COLONS LANDSCAPE LANGUAGE LANGUAGES LARGE LARGE-TO-SMALL LAST LAST-ASYNC LAST-ASYNC- + LAST-ASYNCH-REQUEST LAST-ASYNC-R LAST-ASYNC-RE LAST-ASYNC-REQ LAST-ASYNC-REQU LAST-ASYNC-REQUE + LAST-ASYNC-REQUES LAST-ASYNC-REQUEST LAST-BATCH LAST-CHILD LAST-EVEN LAST-EVENT LAST-FORM LASTKEY + LAST-KEY LAST-OBJECT LAST-OF LAST-PROCE LAST-PROCED LAST-PROCEDU LAST-PROCEDUR LAST-PROCEDURE + LAST-SERV LAST-SERVE LAST-SERVER LAST-SERVER-SOCKET LAST-SOCKET LAST-TAB-I LAST-TAB-IT LAST-TAB-ITE + LAST-TAB-ITEM LC LDBNAME LE LEADING LEAK-DETECTION LEAVE LEFT LEFT-ALIGN LEFT-ALIGNE LEFT-ALIGNED + LEFT-END LEFT-TRIM LENGTH LIBRARY LIBRARY-CALLING-CONVENTION LIKE LIKE-SEQUENTIAL LINE LINE-COUNT + LINE-COUNTE LINE-COUNTER LINE-DOWN LINE-LEFT LINE-RIGHT LINE-UP LIST-EVENTS LISTI LISTIN LISTING + LISTINGS LIST-ITEM-PAIRS LIST-ITEMS LIST-PROPERTY-NAMES LIST-QUERY-ATTRS LIST-SET-ATTRS LIST-WIDGETS + LITERAL-QUESTION LITTLE-ENDIAN LOAD LOAD-DOMAINS LOAD-FROM LOAD-ICON LOAD-IMAGE LOAD-IMAGE-DOWN + LOAD-IMAGE-INSENSITIVE LOAD-IMAGE-UP LOAD-MOUSE-P LOAD-MOUSE-PO LOAD-MOUSE-POI LOAD-MOUSE-POIN + LOAD-MOUSE-POINT LOAD-MOUSE-POINTE LOAD-MOUSE-POINTER LOAD-PICTURE LOAD-RESULT-INTO LOAD-SMALL-ICON + LOB-DIR LOCAL-HOST LOCAL-NAME LOCAL-PORT LOCAL-VERSION-INFO LOCATOR-COLUMN-NUMBER + LOCATOR-LINE-NUMBER LOCATOR-PUBLIC-ID LOCATOR-SYSTEM-ID LOCATOR-TYPE LOCKED LOCK-REGISTRATION LOG + LOG-AUDIT-EVENT LOG-ENTRY-TYPES LOGFILE-NAME LOGGING-LEVEL LOGICAL LOG-ID LOGIN-EXPIRATION-TIMESTAMP + LOGIN-HOST LOGIN-STATE LOG-MANAGER LOGOUT LOG-THRESHOLD LONG LONGCH LONGCHA LONGCHAR + LONGCHAR-TO-NODE-VALUE LOOKAHEAD LOOKUP LOWER LT MACHINE-CLASS MAIN-MENU MANDATORY MANUAL-HIGHLIGHT + MAP MARGIN-EXTRA MARGIN-HEIGHT MARGIN-HEIGHT-C MARGIN-HEIGHT-CH MARGIN-HEIGHT-CHA MARGIN-HEIGHT-CHAR + MARGIN-HEIGHT-CHARS MARGIN-HEIGHT-P MARGIN-HEIGHT-PI MARGIN-HEIGHT-PIX MARGIN-HEIGHT-PIXE + MARGIN-HEIGHT-PIXEL MARGIN-HEIGHT-PIXELS MARGIN-WIDTH MARGIN-WIDTH-C MARGIN-WIDTH-CH + MARGIN-WIDTH-CHA MARGIN-WIDTH-CHAR MARGIN-WIDTH-CHARS MARGIN-WIDTH-P MARGIN-WIDTH-PI + MARGIN-WIDTH-PIX MARGIN-WIDTH-PIXE MARGIN-WIDTH-PIXEL MARGIN-WIDTH-PIXELS MARK-NEW MARK-ROW-STATE + MATCHES MAX MAX-BUTTON MAX-CHARS MAX-DATA-GUESS MAX-HEIGHT MAX-HEIGHT-C MAX-HEIGHT-CH MAX-HEIGHT-CHA + MAX-HEIGHT-CHAR MAX-HEIGHT-CHARS MAX-HEIGHT-P MAX-HEIGHT-PI MAX-HEIGHT-PIX MAX-HEIGHT-PIXE + MAX-HEIGHT-PIXEL MAX-HEIGHT-PIXELS MAXIMIZE MAXIMUM MAXIMUM-LEVEL MAX-ROWS MAX-SIZE MAX-VAL MAX-VALU + MAX-VALUE MAX-WIDTH MAX-WIDTH-C MAX-WIDTH-CH MAX-WIDTH-CHA MAX-WIDTH-CHAR MAX-WIDTH-CHARS + MAX-WIDTH-P MAX-WIDTH-PI MAX-WIDTH-PIX MAX-WIDTH-PIXE MAX-WIDTH-PIXEL MAX-WIDTH-PIXELS MD5-DIGEST + MD5-VALUE MEMBER MEMPTR MEMPTR-TO-NODE-VALUE MENU MENUBAR MENU-BAR MENU-DROP MENU-ITEM MENU-K + MENU-KE MENU-KEY MENU-M MENU-MO MENU-MOU MENU-MOUS MENU-MOUSE MERGE-BY-FIELD MERGE-CHANGES + MERGE-ROW-CHANGES MESSAGE MESSAGE-AREA MESSAGE-AREA-FONT MESSAGE-AREA-MSG MESSAGE-DIGEST + MESSAGE-LINE MESSAGE-LINES METHOD MIN MIN-BUTTON MIN-COLUMN-WIDTH-C MIN-COLUMN-WIDTH-CH + MIN-COLUMN-WIDTH-CHA MIN-COLUMN-WIDTH-CHAR MIN-COLUMN-WIDTH-CHARS MIN-COLUMN-WIDTH-P + MIN-COLUMN-WIDTH-PI MIN-COLUMN-WIDTH-PIX MIN-COLUMN-WIDTH-PIXE MIN-COLUMN-WIDTH-PIXEL + MIN-COLUMN-WIDTH-PIXELS MIN-HEIGHT MIN-HEIGHT-C MIN-HEIGHT-CH MIN-HEIGHT-CHA MIN-HEIGHT-CHAR + MIN-HEIGHT-CHARS MIN-HEIGHT-P MIN-HEIGHT-PI MIN-HEIGHT-PIX MIN-HEIGHT-PIXE MIN-HEIGHT-PIXEL + MIN-HEIGHT-PIXELS MINI MINIM MINIMU MINIMUM MIN-SCHEMA-MARSHAL MIN-SCHEMA-MARSHALL MIN-SIZE MIN-VAL + MIN-VALU MIN-VALUE MIN-WIDTH MIN-WIDTH-C MIN-WIDTH-CH MIN-WIDTH-CHA MIN-WIDTH-CHAR MIN-WIDTH-CHARS + MIN-WIDTH-P MIN-WIDTH-PI MIN-WIDTH-PIX MIN-WIDTH-PIXE MIN-WIDTH-PIXEL MIN-WIDTH-PIXELS MOD MODIFIED + MODULO MONTH MOUSE MOUSE-P MOUSE-PO MOUSE-POI MOUSE-POIN MOUSE-POINT MOUSE-POINTE MOUSE-POINTER + MOVABLE MOVE MOVE-AFTER MOVE-AFTER- MOVE-AFTER-T MOVE-AFTER-TA MOVE-AFTER-TAB MOVE-AFTER-TAB- + MOVE-AFTER-TAB-I MOVE-AFTER-TAB-IT MOVE-AFTER-TAB-ITE MOVE-AFTER-TAB-ITEM MOVE-BEFOR MOVE-BEFORE + MOVE-BEFORE- MOVE-BEFORE-T MOVE-BEFORE-TA MOVE-BEFORE-TAB MOVE-BEFORE-TAB- MOVE-BEFORE-TAB-I + MOVE-BEFORE-TAB-IT MOVE-BEFORE-TAB-ITE MOVE-BEFORE-TAB-ITEM MOVE-COL MOVE-COLU MOVE-COLUM + MOVE-COLUMN MOVE-TO-B MOVE-TO-BO MOVE-TO-BOT MOVE-TO-BOTT MOVE-TO-BOTTO MOVE-TO-BOTTOM MOVE-TO-EOF + MOVE-TO-T MOVE-TO-TO MOVE-TO-TOP MPE MTIME MULTI-COMPILE MULTIPLE MULTIPLE-KEY MULTITASKING-INTERVAL + MUST-EXIST MUST-UNDERSTAND NAME NAMESPACE-PREFIX NAMESPACE-URI NATIVE NE NEEDS-APPSERVER-PROMPT + NEEDS-PROMPT NESTED NEW NEW-INSTANCE NEW-LINE NEW-ROW NEXT NEXT-COL NEXT-COLU NEXT-COLUM NEXT-COLUMN + NEXT-ERROR NEXT-FRAME NEXT-PROMPT NEXT-ROWID NEXT-SIBLING NEXT-TAB-I NEXT-TAB-ITE NEXT-TAB-ITEM + NEXT-VALUE NEXT-WORD NO NO-APPLY NO-ARRAY-M NO-ARRAY-ME NO-ARRAY-MES NO-ARRAY-MESS NO-ARRAY-MESSA + NO-ARRAY-MESSAG NO-ARRAY-MESSAGE NO-ASSIGN NO-ATTR NO-ATTR-L NO-ATTR-LI NO-ATTR-LIS NO-ATTR-LIST + NO-ATTR-S NO-ATTR-SP NO-ATTR-SPA NO-ATTR-SPAC NO-ATTR-SPACE NO-AUTO-TRI NO-AUTO-TRIM + NO-AUTO-VALIDATE NO-BIND-WHERE NO-BOX NO-COLUMN-SC NO-COLUMN-SCR NO-COLUMN-SCRO NO-COLUMN-SCROL + NO-COLUMN-SCROLL NO-COLUMN-SCROLLI NO-COLUMN-SCROLLIN NO-COLUMN-SCROLLING NO-CONSOLE NO-CONVERT + NO-CONVERT-3D NO-CONVERT-3D- NO-CONVERT-3D-C NO-CONVERT-3D-CO NO-CONVERT-3D-COL NO-CONVERT-3D-COLO + NO-CONVERT-3D-COLOR NO-CONVERT-3D-COLORS NO-CURRENT-VALUE NO-DEBUG NODE-TYPE NODE-VALUE + NODE-VALUE-TO-LONGCHAR NODE-VALUE-TO-MEMPTR NO-DRAG NO-ECHO NO-EMPTY-SPACE NO-ERROR NO-F NO-FI + NO-FIL NO-FILL NO-FIREHOSE-CURSOR NO-FOCUS NO-HELP NO-HIDE NO-INDEX-HINT NO-INHERIT-BGC + NO-INHERIT-BGCO NO-INHERIT-BGCOL NO-INHERIT-BGCOLO NO-INHERIT-BGCOLOR NO-INHERIT-FGC NO-INHERIT-FGCO + NO-INHERIT-FGCOL NO-INHERIT-FGCOLO NO-INHERIT-FGCOLOR NO-JOIN-BY-SQLDB NO-KEYCACHE-JOIN NO-LABEL + NO-LABELS NO-LOBS NO-LOCK NO-LOOKAHEAD NO-MAP NO-MES NO-MESS NO-MESSA NO-MESSAG NO-MESSAGE + NONAMESPACE-SCHEMA-LOCATION NONE NON-SERIALIZABLE NO-PAUSE NO-PREFE NO-PREFET NO-PREFETC NO-PREFETCH + NO-QUERY-O NO-QUERY-OR NO-QUERY-ORD NO-QUERY-ORDE NO-QUERY-ORDER NO-QUERY-ORDER- NO-QUERY-ORDER-A + NO-QUERY-ORDER-AD NO-QUERY-ORDER-ADD NO-QUERY-ORDER-ADDE NO-QUERY-ORDER-ADDED NO-QUERY-U NO-QUERY-UN + NO-QUERY-UNI NO-QUERY-UNIQ NO-QUERY-UNIQU NO-QUERY-UNIQUE NO-QUERY-UNIQUE- NO-QUERY-UNIQUE-A + NO-QUERY-UNIQUE-AD NO-QUERY-UNIQUE-ADD NO-QUERY-UNIQUE-ADDE NO-QUERY-UNIQUE-ADDED NO-RETURN-VAL + NO-RETURN-VALU NO-RETURN-VALUE NORMALIZE NO-ROW-MARKERS NO-SCHEMA-MARSHAL NO-SCHEMA-MARSHALL + NO-SCROLLBAR-V NO-SCROLLBAR-VE NO-SCROLLBAR-VER NO-SCROLLBAR-VERT NO-SCROLLBAR-VERTI + NO-SCROLLBAR-VERTIC NO-SCROLLBAR-VERTICA NO-SCROLLBAR-VERTICAL NO-SCROLLING NO-SEPARATE-CONNECTION + NO-SEPARATORS NOT NO-TAB NO-TAB- NO-TAB-S NO-TAB-ST NO-TAB-STO NO-TAB-STOP NOT-ACTIVE NO-UND NO-UNDE + NO-UNDER NO-UNDERL NO-UNDERLI NO-UNDERLIN NO-UNDERLINE NO-UNDO NO-VAL NO-VALI NO-VALID NO-VALIDA + NO-VALIDAT NO-VALIDATE NOW NO-WAIT NO-WORD-WRAP NULL NUM-ALI NUM-ALIA NUM-ALIAS NUM-ALIASE + NUM-ALIASES NUM-BUFFERS NUM-BUT NUM-BUTT NUM-BUTTO NUM-BUTTON NUM-BUTTONS NUM-CHILD-RELATIONS + NUM-CHILDREN NUM-COL NUM-COLU NUM-COLUM NUM-COLUMN NUM-COLUMNS NUM-COPIES NUM-DBS NUM-DROPPED-FILES + NUM-ENTRIES NUMERIC NUMERIC-DEC NUMERIC-DECI NUMERIC-DECIM NUMERIC-DECIMA NUMERIC-DECIMAL + NUMERIC-DECIMAL- NUMERIC-DECIMAL-P NUMERIC-DECIMAL-PO NUMERIC-DECIMAL-POI NUMERIC-DECIMAL-POIN + NUMERIC-DECIMAL-POINT NUMERIC-F NUMERIC-FO NUMERIC-FOR NUMERIC-FORM NUMERIC-FORMA NUMERIC-FORMAT + NUMERIC-SEP NUMERIC-SEPA NUMERIC-SEPAR NUMERIC-SEPARA NUMERIC-SEPARAT NUMERIC-SEPARATO + NUMERIC-SEPARATOR NUM-FIELDS NUM-FORMATS NUM-HEADER-ENTRIES NUM-ITEMS NUM-ITERATIONS NUM-LINES + NUM-LOCKED-COL NUM-LOCKED-COLU NUM-LOCKED-COLUM NUM-LOCKED-COLUMN NUM-LOCKED-COLUMNS NUM-LOG-FILES + NUM-MESSAGES NUM-PARAMETERS NUM-REFERENCES NUM-RELATIONS NUM-REPL NUM-REPLA NUM-REPLAC NUM-REPLACE + NUM-REPLACED NUM-RESULTS NUM-SELECTED NUM-SELECTED-ROWS NUM-SELECTED-WIDGETS NUM-SOURCE-BUFFERS + NUM-TABS NUM-TOP-BUFFERS NUM-TO-RETAIN NUM-VISIBLE-COL NUM-VISIBLE-COLU NUM-VISIBLE-COLUM + NUM-VISIBLE-COLUMN NUM-VISIBLE-COLUMNS OBJECT OCTET_LENGTH OCTET-LENGTH OF OFF OFF-END OFF-HOME OK + OK-CANCEL OLD OLE-INVOKE-LOCA OLE-INVOKE-LOCAL OLE-INVOKE-LOCALE OLE-NAMES-LOCA OLE-NAMES-LOCAL + OLE-NAMES-LOCALE ON ON-FRAME ON-FRAME- ON-FRAME-B ON-FRAME-BO ON-FRAME-BOR ON-FRAME-BORD + ON-FRAME-BORDE ON-FRAME-BORDER OPEN OPEN-LINE-ABOVE OPSYS OPTION OPTIONS OPTIONS-FILE OR + ORDERED-JOIN ORDINAL ORIENTATION ORIGIN-HANDLE ORIGIN-ROWID OS2 OS400 OS-APPEND OS-COMMAND OS-COPY + OS-CREATE-DIR OS-DELETE OS-DIR OS-DRIVE OS-DRIVES OS-ERROR OS-GETENV OS-RENAME OTHERWISE OUTER + OUTER-JOIN OUT-OF-DATA OUTPUT OVERLAY OVERRIDE OWNER OWNER-DOCUMENT PACKAGE-PRIVATE + PACKAGE-PROTECTED PAGE PAGE-BOT PAGE-BOTT PAGE-BOTTO PAGE-BOTTOM PAGED PAGE-DOWN PAGE-LEFT PAGE-NUM + PAGE-NUMB PAGE-NUMBE PAGE-NUMBER PAGE-RIGHT PAGE-RIGHT-TEXT PAGE-SIZE PAGE-TOP PAGE-UP PAGE-WID + PAGE-WIDT PAGE-WIDTH PARAM PARAME PARAMET PARAMETE PARAMETER PARENT PARENT-BUFFER + PARENT-FIELDS-AFTER PARENT-FIELDS-BEFORE PARENT-ID-FIELD PARENT-ID-RELATION PARENT-REL PARENT-RELA + PARENT-RELAT PARENT-RELATI PARENT-RELATIO PARENT-RELATION PARENT-WINDOW-CLOSE PARSE-STATUS + PARTIAL-KEY PASCAL PASSWORD-FIELD PASTE PATHNAME PAUSE PBE-HASH-ALG PBE-HASH-ALGO PBE-HASH-ALGOR + PBE-HASH-ALGORI PBE-HASH-ALGORIT PBE-HASH-ALGORITH PBE-HASH-ALGORITHM PBE-KEY-ROUNDS PDBNAME PERF + PERFO PERFOR PERFORM PERFORMA PERFORMAN PERFORMANC PERFORMANCE PERSIST PERSISTE PERSISTEN PERSISTENT + PERSISTENT-CACHE-DISABLED PERSISTENT-PROCEDURE PFC PFCO PFCOL PFCOLO PFCOLOR PICK PICK-AREA + PICK-BOTH PIXELS PIXELS-PER-COL PIXELS-PER-COLU PIXELS-PER-COLUM PIXELS-PER-COLUMN PIXELS-PER-ROW + POPUP-M POPUP-ME POPUP-MEN POPUP-MENU POPUP-O POPUP-ON POPUP-ONL POPUP-ONLY PORTRAIT POSITION + PRECISION PREFER-DATASET PREPARED PREPARE-STRING PREPROC PREPROCE PREPROCES PREPROCESS PRESEL + PRESELE PRESELEC PRESELECT PREV PREV-COL PREV-COLU PREV-COLUM PREV-COLUMN PREV-FRAME PREV-SIBLING + PREV-TAB-I PREV-TAB-IT PREV-TAB-ITE PREV-TAB-ITEM PREV-WORD PRIMARY PRIMARY-PASSPHRASE PRINTER + PRINTER-CONTROL-HANDLE PRINTER-HDC PRINTER-NAME PRINTER-PORT PRINTER-SETUP PRIVATE PRIVATE-D + PRIVATE-DA PRIVATE-DAT PRIVATE-DATA PRIVILEGES PROCE PROCED PROCEDU PROCEDUR PROCEDURE + PROCEDURE-CALL-TYPE PROCEDURE-COMPLETE PROCEDURE-NAME PROCEDURE-TYPE PROCESS PROCESS-ARCHITECTURE + PROC-HA PROC-HAN PROC-HAND PROC-HANDL PROC-HANDLE PROC-ST PROC-STA PROC-STAT PROC-STATU PROC-STATUS + PROC-TEXT PROC-TEXT-BUFFER PROFILE-FILE PROFILER PROFILING PROGRAM-NAME PROGRESS PROGRESS-S + PROGRESS-SO PROGRESS-SOU PROGRESS-SOUR PROGRESS-SOURC PROGRESS-SOURCE PROMPT PROMPT-F PROMPT-FO + PROMPT-FOR PROMSGS PROPATH PROPERTY PROTECTED PROVERS PROVERSI PROVERSIO PROVERSION PROXY + PROXY-PASSWORD PROXY-USERID PUBLIC PUBLIC-ID PUBLISH PUBLISHED-EVENTS PUT PUT-BITS PUTBYTE PUT-BYTE + PUT-BYTES PUT-DOUBLE PUT-FLOAT PUT-INT64 PUT-KEY-VAL PUT-KEY-VALU PUT-KEY-VALUE PUT-LONG PUT-SHORT + PUT-STRING PUT-UNSIGNED-LONG PUT-UNSIGNED-SHORT QUALIFIED-USER-ID QUERY QUERY-CLOSE QUERY-OFF-END + QUERY-OPEN QUERY-PREPARE QUERY-TUNING QUESTION QUIT QUOTER RADIO-BUTTONS RADIO-SET RANDOM RAW + RAW-TRANSFER RCODE-INFO RCODE-INFOR RCODE-INFORM RCODE-INFORMA RCODE-INFORMAT RCODE-INFORMATI + RCODE-INFORMATIO RCODE-INFORMATION READ READ-AVAILABLE READ-EXACT-NUM READ-FILE READ-JSON READKEY + READ-ONLY READ-RESPONSE READ-XML READ-XMLSCHEMA REAL RECALL RECID RECORD-LEN RECORD-LENG + RECORD-LENGT RECORD-LENGTH RECT RECTA RECTAN RECTANG RECTANGL RECTANGLE RECURSIVE REFERENCE-ONLY + REFRESH REFRESHABLE REFRESH-AUDIT-POLICY REGISTER-DOMAIN REINSTATE REJECT-CHANGES REJECTED + REJECT-ROW-CHANGES RELATION-FI RELATION-FIE RELATION-FIEL RELATION-FIELD RELATION-FIELDS + RELATIONS-ACTIVE RELEASE REMOTE REMOTE-HOST REMOTE-PORT REMOVE-ATTRIBUTE REMOVE-CHILD + REMOVE-EVENTS-PROC REMOVE-EVENTS-PROCE REMOVE-EVENTS-PROCED REMOVE-EVENTS-PROCEDU + REMOVE-EVENTS-PROCEDUR REMOVE-EVENTS-PROCEDURE REMOVE-SUPER-PROC REMOVE-SUPER-PROCE + REMOVE-SUPER-PROCED REMOVE-SUPER-PROCEDU REMOVE-SUPER-PROCEDUR REMOVE-SUPER-PROCEDURE REPEAT REPLACE + REPLACE-CHILD REPLACE-SELECTION-TEXT REPLICATION-CREATE REPLICATION-DELETE REPLICATION-WRITE REPORTS + REPOSITION REPOSITION-BACK REPOSITION-BACKW REPOSITION-BACKWA REPOSITION-BACKWAR REPOSITION-BACKWARD + REPOSITION-BACKWARDS REPOSITION-FORW REPOSITION-FORWA REPOSITION-FORWAR REPOSITION-FORWARD + REPOSITION-FORWARDS REPOSITION-MODE REPOSITION-PARENT-REL REPOSITION-PARENT-RELA + REPOSITION-PARENT-RELAT REPOSITION-PARENT-RELATI REPOSITION-PARENT-RELATIO REPOSITION-PARENT-RELATION + REPOSITION-TO-ROW REPOSITION-TO-ROWID REQUEST REQUEST-INFO RESET RESIZA RESIZAB RESIZABL RESIZABLE + RESIZE RESPONSE-INFO RESTART-ROW RESTART-ROWID RESULT RESUME-DISPLAY RETAIN RETAIN-S RETAIN-SH + RETAIN-SHA RETAIN-SHAP RETAIN-SHAPE RETRY RETRY-CANCEL RETURN RETURN-ALIGN RETURN-INS RETURN-INSE + RETURN-INSER RETURN-INSERT RETURN-INSERTE RETURN-INSERTED RETURNS RETURN-TO-START-DI + RETURN-TO-START-DIR RETURN-VAL RETURN-VALU RETURN-VALUE RETURN-VALUE-DATA-TYPE RETURN-VALUE-DLL-TYPE + REVERSE-FROM REVERT REVOKE RGB-V RGB-VA RGB-VAL RGB-VALU RGB-VALUE RIGHT RIGHT-ALIGN RIGHT-ALIGNE + RIGHT-ALIGNED RIGHT-END RIGHT-TRIM R-INDEX ROLE ROLES ROUND ROUNDED ROUTINE-LEVEL ROW ROW-CREATED + ROW-DELETED ROW-DISPLAY ROW-ENTRY ROW-HEIGHT ROW-HEIGHT-C ROW-HEIGHT-CH ROW-HEIGHT-CHA + ROW-HEIGHT-CHAR ROW-HEIGHT-CHARS ROW-HEIGHT-P ROW-HEIGHT-PI ROW-HEIGHT-PIX ROW-HEIGHT-PIXE + ROW-HEIGHT-PIXEL ROW-HEIGHT-PIXELS ROWID ROW-LEAVE ROW-MA ROW-MAR ROW-MARK ROW-MARKE ROW-MARKER + ROW-MARKERS ROW-MODIFIED ROW-OF ROW-RESIZABLE ROW-STATE ROW-UNMODIFIED RULE RULE-ROW RULE-Y RUN + RUN-PROC RUN-PROCE RUN-PROCED RUN-PROCEDU RUN-PROCEDUR RUN-PROCEDURE SAVE SAVE-AS SAVE-FILE + SAVE-ROW-CHANGES SAVE-WHERE-STRING SAX-ATTRIBUTES SAX-COMPLE SAX-COMPLET SAX-COMPLETE SAX-PARSE + SAX-PARSE-FIRST SAX-PARSE-NEXT SAX-PARSER-ERROR SAX-READER SAX-RUNNING SAX-UNINITIALIZED + SAX-WRITE-BEGIN SAX-WRITE-COMPLETE SAX-WRITE-CONTENT SAX-WRITE-ELEMENT SAX-WRITE-ERROR + SAX-WRITE-IDLE SAX-WRITER SAX-WRITE-TAG SAX-XML SCHEMA SCHEMA-CHANGE SCHEMA-LOCATION SCHEMA-MARSHAL + SCHEMA-PATH SCREEN SCREEN-IO SCREEN-LINES SCREEN-VAL SCREEN-VALU SCREEN-VALUE SCROLL SCROLLABLE + SCROLLBAR-DRAG SCROLLBAR-H SCROLLBAR-HO SCROLLBAR-HOR SCROLLBAR-HORI SCROLLBAR-HORIZ + SCROLLBAR-HORIZO SCROLLBAR-HORIZON SCROLLBAR-HORIZONT SCROLLBAR-HORIZONTA SCROLLBAR-HORIZONTAL + SCROLL-BARS SCROLLBAR-V SCROLLBAR-VE SCROLLBAR-VER SCROLLBAR-VERT SCROLLBAR-VERTI SCROLLBAR-VERTIC + SCROLLBAR-VERTICA SCROLLBAR-VERTICAL SCROLL-DELTA SCROLLED-ROW-POS SCROLLED-ROW-POSI + SCROLLED-ROW-POSIT SCROLLED-ROW-POSITI SCROLLED-ROW-POSITIO SCROLLED-ROW-POSITION SCROLL-HORIZONTAL + SCROLLING SCROLL-LEFT SCROLL-MODE SCROLL-NOTIFY SCROLL-OFFSET SCROLL-RIGHT SCROLL-TO-CURRENT-ROW + SCROLL-TO-I SCROLL-TO-IT SCROLL-TO-ITE SCROLL-TO-ITEM SCROLL-TO-SELECTED-ROW SCROLL-VERTICAL SDBNAME + SEAL SEAL-TIMESTAMP SEARCH SEARCH-SELF SEARCH-TARGER SEARCH-TARGET SECTION SECURITY-POLICY SEEK + SELECT SELECTABLE SELECT-ALL SELECTED SELECTED-ITEMS SELECT-EXTEND SELECT-FOCUSED-ROW SELECTION + SELECTION-END SELECTION-EXTEND SELECTION-LIST SELECTION-START SELECTION-TEXT SELECT-NEXT-ROW + SELECT-ON-JOIN SELECT-PREV-ROW SELECT-REPOSITIONED-ROW SELECT-ROW SELF SEND SEND-SQL + SEND-SQL-STATEMENT SENSITIVE SEPARATE-CONNECTION SEPARATOR-FGC SEPARATOR-FGCO SEPARATOR-FGCOL + SEPARATOR-FGCOLO SEPARATOR-FGCOLOR SEPARATORS SERIALIZABLE SERIALIZE-HIDDEN SERIALIZE-NAME + SERIALIZE-ROW SERVER SERVER-CONNECTION-BO SERVER-CONNECTION-BOU SERVER-CONNECTION-BOUN + SERVER-CONNECTION-BOUND SERVER-CONNECTION-BOUND-RE SERVER-CONNECTION-BOUND-REQ SERVER-CONNECTION-BOUND-REQU + SERVER-CONNECTION-BOUND-REQUE SERVER-CONNECTION-BOUND-REQUES SERVER-CONNECTION-BOUND-REQUEST + SERVER-CONNECTION-CO SERVER-CONNECTION-CON SERVER-CONNECTION-CONT SERVER-CONNECTION-CONTE + SERVER-CONNECTION-CONTEX SERVER-CONNECTION-CONTEXT SERVER-CONNECTION-ID SERVER-OPERATING-MODE + SERVER-SOCKET SESSION SESSION-END SESSION-ID SET SET-ACTOR SET-APPL-CONTEXT SET-ATTR-CALL-TYPE + SET-ATTRIBUTE SET-ATTRIBUTE-NODE SET-BLUE SET-BLUE- SET-BLUE-V SET-BLUE-VA SET-BLUE-VAL + SET-BLUE-VALU SET-BLUE-VALUE SET-BREAK SET-BUFFERS SET-BYTE-ORDER SET-CALLBACK SET-CALLBACK-PROCEDURE + SET-CELL-FOCUS SET-CLIENT SET-COMMIT SET-CONNECT-PROCEDURE SET-CONTENTS SET-CURRENT-VALUE + SET-DB-CLIENT SET-DB-LOGGING SET-DYNAMIC SET-EFFECTIVE-TENANT SET-EVENT-MANAGER-OPTION SET-GREEN + SET-GREEN- SET-GREEN-V SET-GREEN-VA SET-GREEN-VAL SET-GREEN-VALU SET-GREEN-VALUE SET-INPUT-SOURCE + SET-MUST-UNDERSTAND SET-NODE SET-NUMERIC-FORM SET-NUMERIC-FORMA SET-NUMERIC-FORMAT SET-OPTION + SET-OUTPUT-DESTINATION SET-PARAMETER SET-POINTER-VAL SET-POINTER-VALU SET-POINTER-VALUE SET-PROPERTY + SET-READ-RESPONSE-PROCEDURE SET-RED SET-RED- SET-RED-V SET-RED-VA SET-RED-VAL SET-RED-VALU + SET-RED-VALUE SET-REPOSITIONED-ROW SET-RGB SET-RGB- SET-RGB-V SET-RGB-VA SET-RGB-VAL SET-RGB-VALU + SET-RGB-VALUE SET-ROLE SET-ROLLBACK SET-SAFE-USER SET-SELECTION SET-SERIALIZED SET-SIZE + SET-SOCKET-OPTION SET-SORT-ARROW SET-STATE SETTINGS SETUSER SETUSERI SETUSERID SET-WAIT SET-WAIT- + SET-WAIT-S SET-WAIT-ST SET-WAIT-STA SET-WAIT-STAT SET-WAIT-STATE SHA1-DIGEST SHARE SHARE- SHARED + SHARE-L SHARE-LO SHARE-LOC SHARE-LOCK SHORT SHOW-IN-TASK SHOW-IN-TASKB SHOW-IN-TASKBA + SHOW-IN-TASKBAR SHOW-STAT SHOW-STATS SIDE-LAB SIDE-LABE SIDE-LABEL SIDE-LABEL-H SIDE-LABEL-HA + SIDE-LABEL-HAN SIDE-LABEL-HAND SIDE-LABEL-HANDL SIDE-LABEL-HANDLE SIDE-LABELS SIGNATURE + SIGNATURE-VALUE SILENT SIMPLE SINGLE SINGLE-CHARACTER SINGLE-RUN SINGLETON SIZE SIZE-C SIZE-CH + SIZE-CHA SIZE-CHAR SIZE-CHARS SIZE-P SIZE-PI SIZE-PIX SIZE-PIXE SIZE-PIXEL SIZE-PIXELS SKIP + SKIP-DELETED-REC SKIP-DELETED-RECO SKIP-DELETED-RECOR SKIP-DELETED-RECORD SKIP-GROUP-DUPLICATES + SKIP-SCHEMA-CHECK SLIDER SMALL-ICON SMALLINT SMALL-TITLE SOAP-FAULT SOAP-FAULT-ACTOR SOAP-FAULT-CODE + SOAP-FAULT-DETAIL SOAP-FAULT-MISUNDERSTOOD-HEADER SOAP-FAULT-NODE SOAP-FAULT-ROLE SOAP-FAULT-STRING + SOAP-FAULT-SUBCODE SOAP-HEADER SOAP-HEADER-ENTRYREF SOAP-VERSION SOCKET SOME SORT SORT-ASCENDING + SORT-NUMBER SOURCE SOURCE-PROCEDURE SPACE SQL SQRT SSL-SERVER-NAME STANDALONE START + START-BOX-SELECTION START-DOCUMENT START-ELEMENT START-EXTEND-BOX-SELECTION STARTING START-MEM-CHECK + START-MOVE START-RESIZE START-ROW-RESIZE START-SEARCH STARTUP-PARAMETERS STATE-DETAIL STATIC + STATISTICS STATUS STATUS-AREA STATUS-AREA-FONT STATUS-AREA-MSG STDCALL STOMP-DETECTION + STOMP-FREQUENCY STOP STOP-AFTER STOP-DISPLAY STOP-MEM-CHECK STOP-OBJECT STOP-PARSING STOPPE STOPPED + STORED-PROC STORED-PROCE STORED-PROCED STORED-PROCEDU STORED-PROCEDUR STORED-PROCEDURE STREAM + STREAM-HANDLE STREAM-IO STRETCH-TO-FIT STRICT STRICT-ENTITY-RESOLUTION STRING STRING-VALUE + STRING-XREF SUB- SUB-AVE SUB-AVER SUB-AVERA SUB-AVERAG SUB-AVERAGE SUB-COUNT SUB-MAX SUB-MAXI + SUB-MAXIM SUB-MAXIMU SUB-MAXIMUM SUB-MENU SUB-MENU-HELP SUB-MIN SUB-MINI SUB-MINIM SUB-MINIMU + SUB-MINIMUM SUBSCRIBE SUBST SUBSTI SUBSTIT SUBSTITU SUBSTITUT SUBSTITUTE SUBSTR SUBSTRI SUBSTRIN + SUBSTRING SUB-TOTAL SUBTYPE SUM SUMMARY SUM-MAX SUPER SUPER-PROC SUPER-PROCE SUPER-PROCED + SUPER-PROCEDU SUPER-PROCEDUR SUPER-PROCEDURE SUPER-PROCEDURES SUPPRESS-NAMESPACE-PROCESSING + SUPPRESS-W SUPPRESS-WA SUPPRESS-WAR SUPPRESS-WARN SUPPRESS-WARNI SUPPRESS-WARNIN SUPPRESS-WARNING + SUPPRESS-WARNINGS SUPPRESS-WARNINGS-LIST SUSPEND SYMMETRIC-ENCRYPTION-ALGORITHM SYMMETRIC-ENCRYPTION-IV + SYMMETRIC-ENCRYPTION-KEY SYMMETRIC-SUPPORT SYNCHRONIZE SYSTEM-ALERT SYSTEM-ALERT- SYSTEM-ALERT-B + SYSTEM-ALERT-BO SYSTEM-ALERT-BOX SYSTEM-ALERT-BOXE SYSTEM-ALERT-BOXES SYSTEM-DIALOG SYSTEM-HELP + SYSTEM-ID TAB TABLE TABLE-CRC-LIST TABLE-HANDLE TABLE-LIST TABLE-NUM TABLE-NUMB TABLE-NUMBE + TABLE-NUMBER TABLE-SCAN TAB-POSITION TAB-STOP TARGET TARGET-PROCEDURE TEMP-DIR TEMP-DIRE TEMP-DIREC + TEMP-DIRECT TEMP-DIRECTO TEMP-DIRECTOR TEMP-DIRECTORY TEMP-TABLE TEMP-TABLE-PREPAR + TEMP-TABLE-PREPARE TENANT TENANT-ID TENANT-NAME TENANT-NAME-TO-ID TENANT-WHERE TERM TERMINAL + TERMINATE TEXT TEXT-CURSOR TEXT-SEG TEXT-SEG- TEXT-SEG-G TEXT-SEG-GR TEXT-SEG-GRO TEXT-SEG-GROW + TEXT-SEG-GROWT TEXT-SEG-GROWTH TEXT-SELECTED THEN THIS-OBJECT THIS-PROCEDURE THREAD-SAFE THREE-D + THROUGH THROW THRU TIC-MARKS TIME TIME-SOURCE TIMEZONE TITLE TITLE-BGC TITLE-BGCO TITLE-BGCOL + TITLE-BGCOLO TITLE-BGCOLOR TITLE-DC TITLE-DCO TITLE-DCOL TITLE-DCOLO TITLE-DCOLOR TITLE-FGC + TITLE-FGCO TITLE-FGCOL TITLE-FGCOLO TITLE-FGCOLOR TITLE-FO TITLE-FON TITLE-FONT TO TODAY TOGGLE-BOX + TOOLTIP TOOLTIPS TOP TOP-COLUMN TOPIC TOP-NAV-QUERY TOP-ONLY TO-ROWID TOTAL TRACE-FILTER TRACING + TRACKING-CHANGES TRAILING TRANS TRANSACT TRANSACTI TRANSACTIO TRANSACTION TRANSACTION-MODE + TRANS-INIT-PROC TRANS-INIT-PROCE TRANS-INIT-PROCED TRANS-INIT-PROCEDU TRANS-INIT-PROCEDUR + TRANS-INIT-PROCEDURE TRANSPAR TRANSPARE TRANSPAREN TRANSPARENT TRIGGER TRIGGERS TRIM TRUE TRUNC + TRUNCA TRUNCAT TRUNCATE TTCODEPAGE TYPE TYPE-OF UNBOX UNBUFF UNBUFFE UNBUFFER UNBUFFERE UNBUFFERED + UNDERL UNDERLI UNDERLIN UNDERLINE UNDO UNDO-THROW-SCOPE UNFORM UNFORMA UNFORMAT UNFORMATT UNFORMATTE + UNFORMATTED UNION UNIQUE UNIQUE-ID UNIQUE-MATCH UNIX UNIX-END UNLESS-HIDDEN UNLOAD UNSIGNED-BYTE + UNSIGNED-INT64 UNSIGNED-INTEGER UNSIGNED-LONG UNSIGNED-SHORT UNSUBSCRIBE UP UPDATE UPDATE-ATTRIBUTE + UPPER URL URL-DECODE URL-ENCODE URL-PASSWORD URL-USERID USE USE-DIC USE-DICT USE-DICT- USE-DICT-E + USE-DICT-EX USE-DICT-EXP USE-DICT-EXPS USE-FILENAME USE-INDEX USER USER-DATA USE-REVVIDEO USERID + USER-ID USE-TEXT USE-UNDERLINE USE-WIDGET-POOL USING UTC-OFFSET V6DISPLAY V6FRAME VALIDATE + VALIDATE-DOMAIN-ACCESS-CODE VALIDATE-EXPRESSIO VALIDATE-EXPRESSION VALIDATE-MESSAGE VALIDATE-SEAL + VALIDATE-XML VALIDATION-ENABLED VALID-EVENT VALID-HANDLE VALID-OBJECT VALUE VALUE-CHANGED VALUES VAR + VARI VARIA VARIAB VARIABL VARIABLE VERB VERBO VERBOS VERBOSE VERSION VERT VERTI VERTIC VERTICA + VERTICAL VIEW VIEW-AS VIEW-FIRST-COLUMN-ON-REOPEN VIRTUAL-HEIGHT VIRTUAL-HEIGHT-C VIRTUAL-HEIGHT-CH + VIRTUAL-HEIGHT-CHA VIRTUAL-HEIGHT-CHAR VIRTUAL-HEIGHT-CHARS VIRTUAL-HEIGHT-P VIRTUAL-HEIGHT-PI + VIRTUAL-HEIGHT-PIX VIRTUAL-HEIGHT-PIXE VIRTUAL-HEIGHT-PIXEL VIRTUAL-HEIGHT-PIXELS VIRTUAL-WIDTH + VIRTUAL-WIDTH-C VIRTUAL-WIDTH-CH VIRTUAL-WIDTH-CHA VIRTUAL-WIDTH-CHAR VIRTUAL-WIDTH-CHARS + VIRTUAL-WIDTH-P VIRTUAL-WIDTH-PI VIRTUAL-WIDTH-PIX VIRTUAL-WIDTH-PIXE VIRTUAL-WIDTH-PIXEL + VIRTUAL-WIDTH-PIXELS VISIBLE VMS VOID WAIT WAIT-FOR WARNING WC-ADMIN-APP WEB-CON WEB-CONT WEB-CONTE + WEB-CONTEX WEB-CONTEXT WEB-NOTIFY WEEKDAY WHEN WHERE WHERE-STRING WHILE WIDGET WIDGET-E WIDGET-EN + WIDGET-ENT WIDGET-ENTE WIDGET-ENTER WIDGET-H WIDGET-HA WIDGET-HAN WIDGET-HAND WIDGET-HANDL + WIDGET-HANDLE WIDGET-ID WIDGET-L WIDGET-LE WIDGET-LEA WIDGET-LEAV WIDGET-LEAVE WIDGET-POOL WIDTH + WIDTH-C WIDTH-CH WIDTH-CHA WIDTH-CHAR WIDTH-CHARS WIDTH-P WIDTH-PI WIDTH-PIX WIDTH-PIXE WIDTH-PIXEL + WIDTH-PIXELS WINDOW WINDOW-CLOSE WINDOW-DELAYED-MIN WINDOW-DELAYED-MINI WINDOW-DELAYED-MINIM + WINDOW-DELAYED-MINIMI WINDOW-DELAYED-MINIMIZ WINDOW-DELAYED-MINIMIZE WINDOW-MAXIM WINDOW-MAXIMI + WINDOW-MAXIMIZ WINDOW-MAXIMIZE WINDOW-MAXIMIZED WINDOW-MINIM WINDOW-MINIMI WINDOW-MINIMIZ + WINDOW-MINIMIZE WINDOW-MINIMIZED WINDOW-NAME WINDOW-NORMAL WINDOW-RESIZED WINDOW-RESTORED WINDOW-STA + WINDOW-STAT WINDOW-STATE WINDOW-SYS WINDOW-SYST WINDOW-SYSTE WINDOW-SYSTEM WITH WORD-INDEX WORD-WRAP + WORK-AREA-HEIGHT-P WORK-AREA-HEIGHT-PI WORK-AREA-HEIGHT-PIX WORK-AREA-HEIGHT-PIXE + WORK-AREA-HEIGHT-PIXEL WORK-AREA-HEIGHT-PIXELS WORK-AREA-WIDTH-P WORK-AREA-WIDTH-PI + WORK-AREA-WIDTH-PIX WORK-AREA-WIDTH-PIXE WORK-AREA-WIDTH-PIXEL WORK-AREA-WIDTH-PIXELS WORK-AREA-X + WORK-AREA-Y WORKFILE WORK-TAB WORK-TABL WORK-TABLE WRITE WRITE-CDATA WRITE-CHARACTERS WRITE-COMMENT + WRITE-DATA WRITE-DATA-ELEMENT WRITE-EMPTY-ELEMENT WRITE-ENTITY-REF WRITE-EXTERNAL-DTD WRITE-FRAGMENT + WRITE-JSON WRITE-MESSAGE WRITE-PROCESSING-INSTRUCTION WRITE-STATUS WRITE-XML WRITE-XMLSCHEMA X XCODE + XCODE-SESSION-KEY X-DOCUMENT XML-DATA-TYPE XML-ENTITY-EXPANSION-LIMIT XML-NODE-NAME XML-NODE-TYPE + XML-SCHEMA-PAT XML-SCHEMA-PATH XML-STRICT-ENTITY-RESOLUTION XML-SUPPRESS-NAMESPACE-PROCESSING + X-NODEREF X-OF XOR XREF XREF-XML Y YEAR YEAR-OFFSET YES YES-NO YES-NO-CANCEL Y-OF + ) + end + + def self.keywords_prepro + @keywords_prepro ||= Set.new %w( + &ANALYZE-SUSPEND &ANALYZE-RESUME + &ELSE &ELSEIF &ENDIF &GLOB &GLOBAL-DEFINE &IF &MESSAGE &SCOP &SCOPED-DEFINE &THEN &UNDEF &UNDEFINE &WEBSTREAM + {&BATCH} {&BATCH-MODE} {&FILE-NAME} {&LINE-NUMBE} {&LINE-NUMBER} {&OPSYS} {&PROCESS-ARCHITECTURE} {&SEQUENCE} + {&WINDOW-SYS} {&WINDOW-SYSTEM} + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + BLOB CHARACTER CHAR CLOB COM-HANDLE DATE DATETIME DATETIME-TZ DECIMAL + DEC HANDLE INT64 INTEGER INT LOGICAL LONGCHAR MEMPTR RAW RECID ROWID + WIDGET-HANDLE VOID + ) + end + + state :statements do + mixin :singlelinecomment + mixin :multilinecomment + mixin :string + mixin :numeric + mixin :constant + mixin :operator + mixin :whitespace + mixin :preproc + mixin :decorator + mixin :function + end + + state :whitespace do + rule %r/\s+/m, Text + end + + state :singlelinecomment do + rule %r(//.*$), Comment::Single + end + + state :multilinecomment do + rule %r(/[*]), Comment::Multiline, :multilinecomment_content + end + + state :multilinecomment_content do + rule %r([*]/), Comment::Multiline, :pop! + rule %r(/[*]), Comment::Multiline, :multilinecomment_content + rule %r([^*/]+), Comment::Multiline + rule %r([*/]), Comment::Multiline + end + + state :string do + rule %r/"/, Str::Delimiter, :doublequotedstring + rule %r/'/, Str::Delimiter, :singlequotedstring + end + + state :numeric do + rule %r((?:\d+[.]\d*|[.]\d+)(?:e[+-]?\d+[lu]*)?)i, Num::Float + rule %r(\d+e[+-]?\d+[lu]*)i, Num::Float + rule %r/0x[0-9a-f]+[lu]*/i, Num::Hex + rule %r/0[0-7]+[lu]*/i, Num::Oct + rule %r/\d+[lu]*/i, Num::Integer + end + + state :constant do + rule %r/(?:TRUE|FALSE|YES|NO(?!\-)|\?)\b/i, Keyword::Constant + end + + state :operator do + rule %r([~!%^*+=\|?:<>/-]), Operator + rule %r/[()\[\],.]/, Punctuation + end + + state :doublequotedstring do + rule %r/\~[~nrt"]?/, Str::Escape + rule %r/[^\\"]+/, Str::Double + rule %r/"/, Str::Delimiter, :pop! + end + + state :singlequotedstring do + rule %r/\~[~nrt']?/, Str::Escape + rule %r/[^\\']+/, Str::Single + rule %r/'/, Str::Delimiter, :pop! + end + + state :preproc do + rule %r/(\&analyze-suspend|\&analyze-resume)/i, Comment::Preproc, :analyze_suspend_resume_content + rule %r/(\&scoped-define|\&global-define)\s*([\.\w\\\/-]*)/i , Comment::Preproc, :analyze_suspend_resume_content + mixin :include_file + end + + state :analyze_suspend_resume_content do + rule %r/.*(?=(?:\/\/|\/\*))/, Comment::Preproc, :pop! + rule %r/.*\n/, Comment::Preproc, :pop! + rule %r/.*/, Comment::Preproc, :pop! + end + + state :preproc_content do + rule %r/\n/, Text, :pop! + rule %r/\s+/, Text + + rule %r/({?&)(\S+)/ do + groups Comment::Preproc, Name::Other + end + + rule %r/"/, Str, :string + mixin :numeric + + rule %r/\S+/, Name + end + + state :include_file do + rule %r/(\{(?:[^\{\}]|(\g<0>))+\})/i , Comment::Preproc + end + + state :decorator do + rule %r/@#{id}/, Name::Decorator #, :decorator_content + end + + state :function do + rule %r/\!?#{id}(?=\s*\()/i , Name::Function + end + + state :root do + mixin :statements + + rule id do |m| + name = m[0].upcase + if self.class.keywords_prepro.include? name + token Comment::Preproc + elsif self.class.keywords.include? name + token Keyword + elsif self.class.keywords_type.include? name + token Keyword::Type + else + token Name::Variable + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/opentype_feature_file.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/opentype_feature_file.rb new file mode 100644 index 0000000..943d6ab --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/opentype_feature_file.rb @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class OpenTypeFeatureFile < RegexLexer + title "OpenType Feature File" + desc "Feature specifications for an OpenType font (adobe-type-tools.github.io/afdko)" + tag 'opentype_feature_file' + aliases 'fea', 'opentype', 'opentypefeature' + filenames '*.fea' + + def self.keywords + @keywords ||= %w( + Ascender Attach AxisValue CapHeight CaretOffset CodePageRange + DesignAxis Descender ElidedFallbackName ElidedFallbackNameID + ElidableAxisValueName FeatUILabelNameID FeatUITooltipTextNameID + FontRevision FSType GlyphClassDef HorizAxis.BaseScriptList + HorizAxis.BaseTagList HorizAxis.MinMax IgnoreBaseGlyphs + IgnoreLigatures IgnoreMarks LigatureCaretByDev LigatureCaretByIndex + LigatureCaretByPos LineGap MarkAttachClass MarkAttachmentType NULL + OlderSiblingFontAttribute Panose ParamUILabelNameID RightToLeft + SampleTextNameID TypoAscender TypoDescender TypoLineGap UnicodeRange + UseMarkFilteringSet Vendor VertAdvanceY VertAxis.BaseScriptList + VertAxis.BaseTagList VertAxis.MinMax VertOriginY VertTypoAscender + VertTypoDescender VertTypoLineGap WeightClass WidthClass XHeight + + anchorDef anchor anonymous anon by contour cursive device enumerate + enum exclude_dflt featureNames feature flag from ignore include_dflt + include languagesystem language location lookupflag lookup markClass + mark nameid name parameters position pos required reversesub rsub + script sizemenuname substitute subtable sub table useExtension + valueRecordDef winAscent winDescent + ) + end + + + identifier = %r/[a-z_][a-z0-9\/_.-]*/i + + state :root do + rule %r/\s+/m, Text::Whitespace + rule %r/#.*$/, Comment + + # feature <tag> + rule %r/(anonymous|anon|feature|lookup|table)((?:\s)+)/ do + groups Keyword, Text + push :featurename + end + # } <tag> ; + rule %r/(\})((?:\s))/ do + groups Punctuation, Text + push :featurename + end + # solve include( ../path) + rule %r/include\b/i, Keyword, :includepath + + rule %r/[\-\[\]\/(){},.:;=%*<>']/, Punctuation + + rule %r/`.*?/, Str::Backtick + rule %r/\"/, Str, :strings + rule %r/\\[^.*\s]+/i, Str::Escape + + # classes, start with @<nameOfClass> + rule %r/@#{identifier}/, Name::Class + + # using negative lookbehind so we don't match property names + rule %r/(?<!\.)#{identifier}/ do |m| + if self.class.keywords.include? m[0] + token Keyword + else + token Name + end + end + + rule identifier, Name + rule %r/(?:0x|\\)[0-9A-Fa-f]+/, Num::Hex + rule %r/-?\d+/, Num::Integer + end + + state :featurename do + rule identifier, Name::Function, :pop! + end + + state :includepath do + rule %r/\s+/, Text::Whitespace + rule %r/\)/, Punctuation, :pop! + rule %r/\(/, Punctuation + rule %r/[^\s()]+/, Str + end + + state :strings do + rule %r/"/, Str, :pop! + rule %r/[^"%\n]+/, Str + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/p4.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/p4.rb new file mode 100644 index 0000000..87e656f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/p4.rb @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class P4 < RegexLexer + tag 'p4' + title 'P4' + desc 'The P4 programming language' + filenames '*.p4' + mimetypes 'text/x-p4' + + def self.keywords + @keywords ||= %w( + abstract action actions apply const default default_action else enum + entries extern exit if in inout key list out package packet_in + packet_out return size select switch this transition tuple type + typedef + ) + end + + def self.operators + @operators ||= %w( + \|\+\| \|-\| \? \& \&\&\& < > << >> \* \| ~ \^ - \+ / + \# \. = != <= >= \+\+ + ) + end + + def self.decls + @decls ||= %w( + control header header_union parser state struct table + value_set + ) + end + + def self.builtins + @builtins ||= %w( + bit bool error extract int isValid setValid setInvalid match_kind + string varbit verify void + ) + end + + state :whitespace do + rule %r/\s+/m, Text + end + + state :comment do + rule %r((//).*$\n?), Comment::Single + rule %r/\/\*(?:(?!\*\/).)*\*\//m, Comment::Multiline + end + + state :number do + rule %r/([0-9]+[sw])?0[oO][0-7_]+/, Num + rule %r/([0-9]+[sw])?0[xX][0-9a-fA-F_]+/, Num + rule %r/([0-9]+[sw])?0[bB][01_]+/, Num + rule %r/([0-9]+[sw])?0[dD][0-9_]+/, Num + rule %r/([0-9]+[sw])?[0-9_]+/, Num + end + + id = /[\p{XID_Start}_]\p{XID_Continue}*/ + string_element = /\\"|[^"]/x + + state :root do + mixin :whitespace + mixin :comment + + rule %r/#\s*#{id}/, Comment::Preproc + rule %r/\b(?:#{P4.keywords.join('|')})\b/, Keyword + rule %r/\b(?:#{P4.decls.join('|')})\b/, Keyword::Declaration + rule %r/\b(?:#{P4.builtins.join('|')})\b/, Name::Builtin + rule %r/\b#{id}_[th]\b/x, Name::Class + rule %r/(?:#{P4.operators.join('|')})/x, Operator + rule %r/[(){}\[\]<>,:;\.]/, Punctuation + mixin :number + rule %r/@#{id}/x, Name::Label + rule %r/#{id}/x, Text + rule %r/"(?: #{string_element} )*"/x, Str::String + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/pascal.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/pascal.rb new file mode 100644 index 0000000..29491c8 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/pascal.rb @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Pascal < RegexLexer + tag 'pascal' + title "Pascal" + desc 'a procedural programming language commonly used as a teaching language.' + filenames '*.pas', '*.lpr', '*.pp' + + mimetypes 'text/x-pascal' + + id = /@?[_a-z]\w*/i + + keywords = %w( + absolute abstract all and and_then array as asm assembler attribute + begin bindable case class const constructor delay destructor div do + downto else end except exit export exports external far file finalization + finally for forward function goto if implementation import in inc index + inherited initialization inline interface interrupt is label library + message mod module near nil not object of on only operator or or_else + otherwise out overload override packed pascal pow private procedure program + property protected public published qualified raise read record register + repeat resident resourcestring restricted safecall segment set shl shr + stdcall stored string then threadvar to try type unit until uses value var + view virtual while with write writeln xor + ) + + keywords_type = %w( + ansichar ansistring bool boolean byte bytebool cardinal char comp currency + double dword extended int64 integer iunknown longbool longint longword pansichar + pansistring pbool pboolean pbyte pbytearray pcardinal pchar pcomp pcurrency + pdate pdatetime pdouble pdword pextended phandle pint64 pinteger plongint plongword + pointer ppointer pshortint pshortstring psingle psmallint pstring pvariant pwidechar + pwidestring pword pwordarray pwordbool real real48 shortint shortstring single + smallint string tclass tdate tdatetime textfile thandle tobject ttime variant + widechar widestring word wordbool + ) + + state :whitespace do + # Spaces + rule %r/\s+/m, Text + # // Comments + rule %r((//).*$\n?), Comment::Single + # -- Comments + rule %r((--).*$\n?), Comment::Single + # (* Comments *) + rule %r(\(\*.*?\*\))m, Comment::Multiline + # { Comments } + rule %r(\{.*?\})m, Comment::Multiline + end + + state :root do + mixin :whitespace + + rule %r{((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?}, Num + rule %r/\$[0-9A-Fa-f]+/, Num::Hex + rule %r{[~!@#\$%\^&\*\(\)\+`\-={}\[\]:;<>\?,\.\/\|\\]}, Punctuation + rule %r{'([^']|'')*'}, Str + rule %r/(true|false|nil)\b/i, Name::Builtin + rule %r/\b(#{keywords.join('|')})\b/i, Keyword + rule %r/\b(#{keywords_type.join('|')})\b/i, Keyword::Type + rule id, Name + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/perl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/perl.rb new file mode 100644 index 0000000..78d6bc6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/perl.rb @@ -0,0 +1,251 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Perl < RegexLexer + title "Perl" + desc "The Perl scripting language (perl.org)" + + tag 'perl' + aliases 'pl' + + filenames '*.pl', '*.pm', '*.t' + mimetypes 'text/x-perl', 'application/x-perl' + + def self.detect?(text) + return true if text.shebang? 'perl' + end + + keywords = %w( + case continue do else elsif for foreach if last my next our + redo reset then unless until while use print new BEGIN CHECK + INIT END return + ) + + builtins = %w( + abs accept alarm atan2 bind binmode bless caller chdir chmod + chomp chop chown chr chroot close closedir connect continue cos + crypt dbmclose dbmopen defined delete die dump each endgrent + endhostent endnetent endprotoent endpwent endservent eof eval + exec exists exit exp fcntl fileno flock fork format formline getc + getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent + getlogin getnetbyaddr getnetbyname getnetent getpeername + getpgrp getppid getpriority getprotobyname getprotobynumber + getprotoent getpwent getpwnam getpwuid getservbyname getservbyport + getservent getsockname getsockopt glob gmtime goto grep hex + import index int ioctl join keys kill last lc lcfirst length + link listen local localtime log lstat map mkdir msgctl msgget + msgrcv msgsnd my next no oct open opendir ord our pack package + pipe pop pos printf prototype push quotemeta rand read readdir + readline readlink readpipe recv redo ref rename require reverse + rewinddir rindex rmdir scalar seek seekdir select semctl semget + semop send setgrent sethostent setnetent setpgrp setpriority + setprotoent setpwent setservent setsockopt shift shmctl shmget + shmread shmwrite shutdown sin sleep socket socketpair sort splice + split sprintf sqrt srand stat study substr symlink syscall sysopen + sysread sysseek system syswrite tell telldir tie tied time times + tr truncate uc ucfirst umask undef unlink unpack unshift untie + utime values vec wait waitpid wantarray warn write + ) + + re_tok = Str::Regex + + state :balanced_regex do + rule %r(/(\\[\\/]|[^/])*/[egimosx]*)m, re_tok, :pop! + rule %r(!(\\[\\!]|[^!])*![egimosx]*)m, re_tok, :pop! + rule %r(\\(\\\\|[^\\])*\\[egimosx]*)m, re_tok, :pop! + rule %r({(\\[\\}]|[^}])*}[egimosx]*), re_tok, :pop! + rule %r(<(\\[\\>]|[^>])*>[egimosx]*), re_tok, :pop! + rule %r(\[(\\[\\\]]|[^\]])*\][egimosx]*), re_tok, :pop! + rule %r[\((\\[\\\)]|[^\)])*\)[egimosx]*], re_tok, :pop! + rule %r(@(\\[\\@]|[^@])*@[egimosx]*), re_tok, :pop! + rule %r(%(\\[\\%]|[^%])*%[egimosx]*), re_tok, :pop! + rule %r(\$(\\[\\\$]|[^\$])*\$[egimosx]*), re_tok, :pop! + end + + state :root do + rule %r/#.*/, Comment::Single + rule %r/^=[a-zA-Z0-9]+\s+.*?\n=cut/m, Comment::Multiline + rule %r/(?:#{keywords.join('|')})\b/, Keyword + + rule %r/(format)(\s+)([a-zA-Z0-9_]+)(\s*)(=)(\s*\n)/ do + groups Keyword, Text, Name, Text, Punctuation, Text + + push :format + end + + rule %r/(?:eq|lt|gt|le|ge|ne|not|and|or|cmp)\b/, Operator::Word + + # substitution/transliteration: balanced delimiters + rule %r((?:s|tr|y){(\\\\|\\}|[^}])*}\s*), re_tok, :balanced_regex + rule %r((?:s|tr|y)<(\\\\|\\>|[^>])*>\s*), re_tok, :balanced_regex + rule %r((?:s|tr|y)\[(\\\\|\\\]|[^\]])*\]\s*), re_tok, :balanced_regex + rule %r[(?:s|tr|y)\((\\\\|\\\)|[^\)])*\)\s*], re_tok, :balanced_regex + + # substitution/transliteration: arbitrary non-whitespace delimiters + rule %r((?:s|tr|y)\s*([^\w\s])((\\\\|\\\1)|[^\1])*?\1((\\\\|\\\1)|[^\1])*?\1[msixpodualngcr]*)m, re_tok + rule %r((?:s|tr|y)\s+(\w)((\\\\|\\\1)|[^\1])*?\1((\\\\|\\\1)|[^\1])*?\1[msixpodualngcr]*)m, re_tok + + # matches: common case, m-optional + rule %r(m?/(\\\\|\\/|[^/\n])*/[msixpodualngc]*), re_tok + rule %r(m(?=[/!\\{<\[\(@%\$])), re_tok, :balanced_regex + + # arbitrary non-whitespace delimiters + rule %r(m\s*([^\w\s])((\\\\|\\\1)|[^\1])*?\1[msixpodualngc]*)m, re_tok + rule %r(m\s+(\w)((\\\\|\\\1)|[^\1])*?\1[msixpodualngc]*)m, re_tok + + rule %r(((?<==~)|(?<=\())\s*/(\\\\|\\/|[^/])*/[msixpodualngc]*), + re_tok, :balanced_regex + + rule %r/\s+/, Text + + rule(/(?=[a-z_]\w*(\s*#.*\n)*\s*=>)/i) { push :fat_comma } + + rule %r/(?:#{builtins.join('|')})\b/, Name::Builtin + rule %r/((__(DIE|WARN)__)|(DATA|STD(IN|OUT|ERR)))\b/, + Name::Builtin::Pseudo + + rule %r/<<([\'"]?)([a-zA-Z_][a-zA-Z0-9_]*)\1;?\n.*?\n\2\n/m, Str + + rule %r/(__(END|DATA)__)\b/, Comment::Preproc, :end_part + rule %r/\$\^[ADEFHILMOPSTWX]/, Name::Variable::Global + rule %r/\$[\\"'\[\]&`+*.,;=%~?@$!<>(^\|\/_-](?!\w)/, Name::Variable::Global + rule %r/[$@%&*][$@%&*#_]*(?=[a-z{\[;])/i, Name::Variable, :varname + + rule %r/[-+\/*%=<>&^\|!\\~]=?/, Operator + + rule %r/0_?[0-7]+(_[0-7]+)*/, Num::Oct + rule %r/0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*/, Num::Hex + rule %r/0b[01]+(_[01]+)*/, Num::Bin + rule %r/(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?/i, + Num::Float + rule %r/\d+(_\d*)*e[+-]?\d+(_\d*)*/i, Num::Float + rule %r/\d+(_\d+)*/, Num::Integer + + rule %r/'/, Punctuation, :sq + rule %r/"/, Punctuation, :dq + rule %r/`/, Punctuation, :bq + rule %r/<([^\s>]+)>/, re_tok + rule %r/(q|qq|qw|qr|qx)\{/, Str::Other, :cb_string + rule %r/(q|qq|qw|qr|qx)\(/, Str::Other, :rb_string + rule %r/(q|qq|qw|qr|qx)\[/, Str::Other, :sb_string + rule %r/(q|qq|qw|qr|qx)</, Str::Other, :lt_string + rule %r/(q|qq|qw|qr|qx)(\W)(.|\n)*?\2/, Str::Other + + rule %r/package\s+/, Keyword, :modulename + rule %r/sub\s+/, Keyword, :funcname + rule %r/\[\]|\*\*|::|<<|>>|>=|<=|<=>|={3}|!=|=~|!~|&&?|\|\||\.{1,3}/, + Operator + rule %r/[()\[\]:;,<>\/?{}]/, Punctuation + rule(/(?=\w)/) { push :name } + end + + state :format do + rule %r/\.\n/, Str::Interpol, :pop! + rule %r/.*?\n/, Str::Interpol + end + + state :fat_comma do + rule %r/#.*/, Comment::Single + rule %r/\w+/, Str + rule %r/\s+/, Text + rule %r/=>/, Operator, :pop! + end + + state :name_common do + rule %r/\w+::/, Name::Namespace + rule %r/[\w:]+/, Name::Variable, :pop! + end + + state :varname do + rule %r/\s+/, Text + rule %r/[{\[]/, Punctuation, :pop! # hash syntax + rule %r/[),]/, Punctuation, :pop! # arg specifier + rule %r/[;]/, Punctuation, :pop! # postfix + mixin :name_common + end + + state :name do + mixin :name_common + rule %r/[A-Z_]+(?=[^a-zA-Z0-9_])/, Name::Constant, :pop! + rule(/(?=\W)/) { pop! } + end + + state :modulename do + rule %r/[a-z_]\w*/i, Name::Namespace, :pop! + end + + state :funcname do + rule %r/[a-zA-Z_]\w*[!?]?/, Name::Function + rule %r/\s+/, Text + + # argument declaration + rule %r/(\([$@%]*\))(\s*)/ do + groups Punctuation, Text + end + + rule %r/.*?{/, Punctuation, :pop! + rule %r/;/, Punctuation, :pop! + end + + state :sq do + rule %r/\\[\\']/, Str::Escape + rule %r/[^\\']+/, Str::Single + rule %r/'/, Punctuation, :pop! + rule %r/\\/, Str::Single + end + + state :dq do + mixin :string_intp + rule %r/\\[\\tnrabefluLUE"$@]/, Str::Escape + rule %r/\\0\d{2}/, Str::Escape + rule %r/\\o\{\d+\}/, Str::Escape + rule %r/\\x\h{2}/, Str::Escape + rule %r/\\x\{\h+\}/, Str::Escape + rule %r/\\c./, Str::Escape + rule %r/\\N\{[^\}]+\}/, Str::Escape + rule %r/[^\\"]+?/, Str::Double + rule %r/"/, Punctuation, :pop! + rule %r/\\/, Str::Escape + end + + state :bq do + mixin :string_intp + rule %r/\\[\\tnr`]/, Str::Escape + rule %r/[^\\`]+?/, Str::Backtick + rule %r/`/, Punctuation, :pop! + end + + [[:cb, '\{', '\}'], + [:rb, '\(', '\)'], + [:sb, '\[', '\]'], + [:lt, '<', '>']].each do |name, open, close| + tok = Str::Other + state :"#{name}_string" do + rule %r/\\[#{open}#{close}\\]/, tok + rule %r/\\/, tok + rule(/#{open}/) { token tok; push } + rule %r/#{close}/, tok, :pop! + rule %r/[^#{open}#{close}\\]+/, tok + end + end + + state :in_interp do + rule %r/}/, Str::Interpol, :pop! + rule %r/\s+/, Text + rule %r/[a-z_]\w*/i, Str::Interpol + end + + state :string_intp do + rule %r/[$@][{]/, Str::Interpol, :in_interp + rule %r/[$@][a-z_]\w*/i, Str::Interpol + end + + state :end_part do + # eat the rest of the stream + rule %r/.+/m, Comment::Preproc, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/php.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/php.rb new file mode 100644 index 0000000..1580b47 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/php.rb @@ -0,0 +1,381 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class PHP < TemplateLexer + title "PHP" + desc "The PHP scripting language (php.net)" + tag 'php' + aliases 'php', 'php3', 'php4', 'php5' + filenames '*.php', '*.php[345t]','*.phtml', + # Support Drupal file extensions, see: + # https://github.com/gitlabhq/gitlabhq/issues/8900 + '*.module', '*.inc', '*.profile', '*.install', '*.test' + mimetypes 'text/x-php' + + option :start_inline, 'Whether to start with inline php or require <?php ... ?>. (default: best guess)' + option :funcnamehighlighting, 'Whether to highlight builtin functions (default: true)' + option :disabledmodules, 'Disable certain modules from being highlighted as builtins (default: empty)' + + def initialize(*) + super + + # if truthy, the lexer starts highlighting with php code + # (no <?php required) + @start_inline = bool_option(:start_inline) { :guess } + @funcnamehighlighting = bool_option(:funcnamehighlighting) { true } + @disabledmodules = list_option(:disabledmodules) + end + + def self.detect?(text) + return true if text.shebang?('php') + return false if /^<\?hh/ =~ text + return true if /^<\?php/ =~ text + end + + def self.keywords + @keywords ||= Set.new %w( + old_function cfunction + __class__ __dir__ __file__ __function__ __halt_compiler __line__ + __method__ __namespace__ __trait__ abstract and array as break case + catch clone continue declare default die do echo else elseif empty + enddeclare endfor endforeach endif endswitch endwhile eval exit + extends final finally fn for foreach global goto if implements + include include_once instanceof insteadof isset list match new or + parent print private protected public readonly require require_once + return self static switch throw try unset var while xor yield + ) + end + + def self.builtins + Kernel::load File.join(Lexers::BASE_DIR, 'php/keywords.rb') + builtins + end + + def builtins + return [] unless @funcnamehighlighting + + @builtins ||= Set.new.tap do |builtins| + self.class.builtins.each do |mod, fns| + next if @disabledmodules.include? mod + builtins.merge(fns) + end + end + end + + id = /[\p{L}_][\p{L}\p{N}_]*/ + ns = /(?:#{id}\\)+/ + id_with_ns = /\\?(?:#{ns})?#{id}/ + + start do + case @start_inline + when true + push :php + when :guess + push :start + end + end + + state :escape do + rule %r/\?>/ do + token Comment::Preproc + reset_stack + end + end + + state :return do + rule(//) { pop! } + end + + state :start do + # We enter this state if we aren't sure whether the PHP in the text is + # delimited by <?php (or <?=) tags or not. These two rules check + # whether there is an opening angle bracket and, if there is, delegates + # the tokens before it to the HTML lexer. + rule(/\s*(?=<)/m) { delegate parent; pop! } + rule(/[^$]+(?=<\?(php|=))/i) { delegate parent; pop! } + + rule(//) { goto :php } + end + + state :names do + rule %r/#{id_with_ns}(?=\s*\()/ do |m| + name = m[0].downcase + if self.class.keywords.include? name + token Keyword + elsif self.builtins.include? name + token Name::Builtin + else + token Name::Function + end + end + + rule id_with_ns do |m| + name = m[0].downcase + if name == "use" + push :in_use + token Keyword::Namespace + elsif name == "const" + push :in_const + token Keyword + elsif name == "catch" + push :in_catch + token Keyword + elsif %w(public protected private).include? name + push :in_visibility + token Keyword + elsif name == "stdClass" + token Name::Class + elsif self.class.keywords.include? name + token Keyword + elsif m[0] =~ /^__.*?__$/ + token Name::Builtin + elsif m[0] =~ /^(E|PHP)(_[[:upper:]]+)+$/ + token Keyword::Constant + elsif m[0] =~ /(\\|^)[[:upper:]][[[:upper:]][[:digit:]]_]+$/ + token Name::Constant + elsif m[0] =~ /(\\|^)[[:upper:]][[:alnum:]]*?$/ + token Name::Class + else + token Name + end + end + end + + state :operators do + rule %r/[~!%^&*+\|:.<>\/@-]+/, Operator + end + + state :string do + rule %r/"/, Str::Double, :pop! + rule %r/[^\\{$"]+/, Str::Double + rule %r/\\u\{[0-9a-fA-F]+\}/, Str::Escape + rule %r/\\([efrntv\"$\\]|[0-7]{1,3}|[xX][0-9a-fA-F]{1,2})/, Str::Escape + rule %r/\$#{id}(\[\S+\]|->#{id})?/, Name::Variable + + rule %r/\{\$\{/, Str::Interpol, :string_interp_double + rule %r/\{(?=\$)/, Str::Interpol, :string_interp_single + rule %r/(\{)(\S+)(\})/ do + groups Str::Interpol, Name::Variable, Str::Interpol + end + + rule %r/[${\\]+/, Str::Double + end + + state :string_interp_double do + rule %r/\}\}/, Str::Interpol, :pop! + mixin :php + end + + state :string_interp_single do + rule %r/\}/, Str::Interpol, :pop! + mixin :php + end + + state :values do + # heredocs + rule %r/<<<(["']?)(#{id})\1\n.*?\n\s*\2;?/im, Str::Heredoc + + # numbers + rule %r/(\d[_\d]*)?\.(\d[_\d]*)?(e[+-]?\d[_\d]*)?/i, Num::Float + rule %r/0[0-7][0-7_]*/, Num::Oct + rule %r/0b[01][01_]*/i, Num::Bin + rule %r/0x[a-f0-9][a-f0-9_]*/i, Num::Hex + rule %r/\d[_\d]*/, Num::Integer + + # strings + rule %r/'([^'\\]*(?:\\.[^'\\]*)*)'/, Str::Single + rule %r/`([^`\\]*(?:\\.[^`\\]*)*)`/, Str::Backtick + rule %r/"/, Str::Double, :string + + # functions + rule %r/(function|fn)\b/i do + push :in_function_return + push :in_function_params + push :in_function_name + token Keyword + end + + # constants + rule %r/(true|false|null)\b/i, Keyword::Constant + + # objects + rule %r/new\b/i, Keyword, :in_new + end + + state :variables do + rule %r/\$\{\$+#{id}\}/, Name::Variable + rule %r/\$+#{id}/, Name::Variable + end + + state :whitespace do + rule %r/\s+/, Text + rule %r/#[^\[].*?$/, Comment::Single + rule %r(//.*?$), Comment::Single + rule %r(/\*\*(?!/).*?\*/)m, Comment::Doc + rule %r(/\*.*?\*/)m, Comment::Multiline + end + + state :root do + rule %r/<\?(php|=)?/i, Comment::Preproc, :php + rule(/.*?(?=<\?)|.*/m) { delegate parent } + end + + state :php do + mixin :escape + + mixin :whitespace + mixin :variables + mixin :values + + rule %r/(namespace) + (\s+) + (#{id_with_ns})/ix do |m| + groups Keyword::Namespace, Text, Name::Namespace + end + + rule %r/#\[.*\]$/, Name::Attribute + + rule %r/(class|interface|trait|extends|implements) + (\s+) + (#{id_with_ns})/ix do |m| + groups Keyword::Declaration, Text, Name::Class + end + + mixin :names + + rule %r/[;,\(\)\{\}\[\]]/, Punctuation + + mixin :operators + rule %r/[=?]/, Operator + end + + state :in_assign do + rule %r/,/, Punctuation, :pop! + rule %r/[\[\]]/, Punctuation + rule %r/\(/, Punctuation, :in_assign_function + mixin :escape + mixin :whitespace + mixin :values + mixin :variables + mixin :names + mixin :operators + mixin :return + end + + state :in_assign_function do + rule %r/\)/, Punctuation, :pop! + rule %r/,/, Punctuation + mixin :in_assign + end + + state :in_catch do + rule %r/\(/, Punctuation + rule %r/\|/, Operator + rule id_with_ns, Name::Class + mixin :escape + mixin :whitespace + mixin :return + end + + state :in_const do + rule id, Name::Constant + rule %r/=/, Operator, :in_assign + mixin :escape + mixin :whitespace + mixin :return + end + + state :in_function_body do + rule %r/{/, Punctuation, :push + rule %r/}/, Punctuation, :pop! + mixin :php + end + + state :in_function_name do + rule %r/&/, Operator + rule id, Name + rule %r/\(/, Punctuation, :pop! + mixin :escape + mixin :whitespace + mixin :return + end + + state :in_function_params do + rule %r/\)/, Punctuation, :pop! + rule %r/,/, Punctuation + rule %r/[.]{3}/, Punctuation + rule %r/=/, Operator, :in_assign + rule %r/\b(?:public|protected|private|readonly)\b/i, Keyword + rule %r/\??#{id}/, Keyword::Type, :in_assign + mixin :escape + mixin :whitespace + mixin :variables + mixin :return + end + + state :in_function_return do + rule %r/:/, Punctuation + rule %r/use\b/i, Keyword, :in_function_use + rule %r/\??#{id}/, Keyword::Type, :in_assign + rule %r/\{/ do + token Punctuation + goto :in_function_body + end + mixin :escape + mixin :whitespace + mixin :return + end + + state :in_function_use do + rule %r/[,\(]/, Punctuation + rule %r/&/, Operator + rule %r/\)/, Punctuation, :pop! + mixin :escape + mixin :whitespace + mixin :variables + mixin :return + end + + state :in_new do + rule %r/class\b/i do + token Keyword::Declaration + goto :in_new_class + end + rule id_with_ns, Name::Class, :pop! + mixin :escape + mixin :whitespace + mixin :return + end + + state :in_new_class do + rule %r/\}/, Punctuation, :pop! + rule %r/\{/, Punctuation + mixin :php + end + + state :in_use do + rule %r/[,\}]/, Punctuation + rule %r/(function|const)\b/i, Keyword + rule %r/(#{ns})(\{)/ do + groups Name::Namespace, Punctuation + end + rule %r/#{id_with_ns}(_#{id})+/, Name::Function + mixin :escape + mixin :whitespace + mixin :names + mixin :return + end + + state :in_visibility do + rule %r/\b(?:readonly|static)\b/i, Keyword + rule %r/(?=(abstract|const|function)\b)/i, Keyword, :pop! + rule %r/\??#{id}/, Keyword::Type, :pop! + mixin :escape + mixin :whitespace + mixin :return + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/php/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/php/keywords.rb new file mode 100644 index 0000000..5fa56ce --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/php/keywords.rb @@ -0,0 +1,202 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# DO NOT EDIT +# This file is automatically generated by `rake builtins:php`. +# See tasks/builtins/php.rake for more info. + +module Rouge + module Lexers + class PHP + def self.builtins + @builtins ||= {}.tap do |b| + b["Apache"] = Set.new ["apache_child_terminate", "apache_get_modules", "apache_get_version", "apache_getenv", "apache_lookup_uri", "apache_note", "apache_request_headers", "apache_reset_timeout", "apache_response_headers", "apache_setenv", "getallheaders", "virtual"] + b["APC"] = Set.new ["apc_add", "apc_bin_dump", "apc_bin_dumpfile", "apc_bin_load", "apc_bin_loadfile", "apc_cache_info", "apc_cas", "apc_clear_cache", "apc_compile_file", "apc_dec", "apc_define_constants", "apc_delete_file", "apc_delete", "apc_exists", "apc_fetch", "apc_inc", "apc_load_constants", "apc_sma_info", "apc_store"] + b["APCu"] = Set.new ["apcu_add", "apcu_cache_info", "apcu_cas", "apcu_clear_cache", "apcu_dec", "apcu_delete", "apcu_enabled", "apcu_entry", "apcu_exists", "apcu_fetch", "apcu_inc", "apcu_sma_info", "apcu_store"] + b["APD"] = Set.new ["apd_breakpoint", "apd_callstack", "apd_clunk", "apd_continue", "apd_croak", "apd_dump_function_table", "apd_dump_persistent_resources", "apd_dump_regular_resources", "apd_echo", "apd_get_active_symbols", "apd_set_pprof_trace", "apd_set_session_trace_socket", "apd_set_session_trace", "apd_set_session", "override_function", "rename_function"] + b["Array"] = Set.new ["array_change_key_case", "array_chunk", "array_column", "array_combine", "array_count_values", "array_diff_assoc", "array_diff_key", "array_diff_uassoc", "array_diff_ukey", "array_diff", "array_fill_keys", "array_fill", "array_filter", "array_flip", "array_intersect_assoc", "array_intersect_key", "array_intersect_uassoc", "array_intersect_ukey", "array_intersect", "array_key_exists", "array_key_first", "array_key_last", "array_keys", "array_map", "array_merge_recursive", "array_merge", "array_multisort", "array_pad", "array_pop", "array_product", "array_push", "array_rand", "array_reduce", "array_replace_recursive", "array_replace", "array_reverse", "array_search", "array_shift", "array_slice", "array_splice", "array_sum", "array_udiff_assoc", "array_udiff_uassoc", "array_udiff", "array_uintersect_assoc", "array_uintersect_uassoc", "array_uintersect", "array_unique", "array_unshift", "array_values", "array_walk_recursive", "array_walk", "array", "arsort", "asort", "compact", "count", "current", "each", "end", "extract", "in_array", "key_exists", "key", "krsort", "ksort", "list", "natcasesort", "natsort", "next", "pos", "prev", "range", "reset", "rsort", "shuffle", "sizeof", "sort", "uasort", "uksort", "usort"] + b["BBCode"] = Set.new ["bbcode_add_element", "bbcode_add_smiley", "bbcode_create", "bbcode_destroy", "bbcode_parse", "bbcode_set_arg_parser", "bbcode_set_flags"] + b["BC Math"] = Set.new ["bcadd", "bccomp", "bcdiv", "bcmod", "bcmul", "bcpow", "bcpowmod", "bcscale", "bcsqrt", "bcsub"] + b["bcompiler"] = Set.new ["bcompiler_load_exe", "bcompiler_load", "bcompiler_parse_class", "bcompiler_read", "bcompiler_write_class", "bcompiler_write_constant", "bcompiler_write_exe_footer", "bcompiler_write_file", "bcompiler_write_footer", "bcompiler_write_function", "bcompiler_write_functions_from_file", "bcompiler_write_header", "bcompiler_write_included_filename"] + b["Blenc"] = Set.new ["blenc_encrypt"] + b["Bzip2"] = Set.new ["bzclose", "bzcompress", "bzdecompress", "bzerrno", "bzerror", "bzerrstr", "bzflush", "bzopen", "bzread", "bzwrite"] + b["Cairo"] = Set.new ["cairo_create", "cairo_font_options_create", "cairo_font_options_equal", "cairo_font_options_get_antialias", "cairo_font_options_get_hint_metrics", "cairo_font_options_get_hint_style", "cairo_font_options_get_subpixel_order", "cairo_font_options_hash", "cairo_font_options_merge", "cairo_font_options_set_antialias", "cairo_font_options_set_hint_metrics", "cairo_font_options_set_hint_style", "cairo_font_options_set_subpixel_order", "cairo_font_options_status", "cairo_format_stride_for_width", "cairo_image_surface_create_for_data", "cairo_image_surface_create_from_png", "cairo_image_surface_create", "cairo_image_surface_get_data", "cairo_image_surface_get_format", "cairo_image_surface_get_height", "cairo_image_surface_get_stride", "cairo_image_surface_get_width", "cairo_matrix_create_scale", "cairo_matrix_create_translate", "cairo_matrix_invert", "cairo_matrix_multiply", "cairo_matrix_transform_distance", "cairo_matrix_transform_point", "cairo_matrix_translate", "cairo_pattern_add_color_stop_rgb", "cairo_pattern_add_color_stop_rgba", "cairo_pattern_create_for_surface", "cairo_pattern_create_linear", "cairo_pattern_create_radial", "cairo_pattern_create_rgb", "cairo_pattern_create_rgba", "cairo_pattern_get_color_stop_count", "cairo_pattern_get_color_stop_rgba", "cairo_pattern_get_extend", "cairo_pattern_get_filter", "cairo_pattern_get_linear_points", "cairo_pattern_get_matrix", "cairo_pattern_get_radial_circles", "cairo_pattern_get_rgba", "cairo_pattern_get_surface", "cairo_pattern_get_type", "cairo_pattern_set_extend", "cairo_pattern_set_filter", "cairo_pattern_set_matrix", "cairo_pattern_status", "cairo_pdf_surface_create", "cairo_pdf_surface_set_size", "cairo_ps_get_levels", "cairo_ps_level_to_string", "cairo_ps_surface_create", "cairo_ps_surface_dsc_begin_page_setup", "cairo_ps_surface_dsc_begin_setup", "cairo_ps_surface_dsc_comment", "cairo_ps_surface_get_eps", "cairo_ps_surface_restrict_to_level", "cairo_ps_surface_set_eps", "cairo_ps_surface_set_size", "cairo_scaled_font_create", "cairo_scaled_font_extents", "cairo_scaled_font_get_ctm", "cairo_scaled_font_get_font_face", "cairo_scaled_font_get_font_matrix", "cairo_scaled_font_get_font_options", "cairo_scaled_font_get_scale_matrix", "cairo_scaled_font_get_type", "cairo_scaled_font_glyph_extents", "cairo_scaled_font_status", "cairo_scaled_font_text_extents", "cairo_surface_copy_page", "cairo_surface_create_similar", "cairo_surface_finish", "cairo_surface_flush", "cairo_surface_get_content", "cairo_surface_get_device_offset", "cairo_surface_get_font_options", "cairo_surface_get_type", "cairo_surface_mark_dirty_rectangle", "cairo_surface_mark_dirty", "cairo_surface_set_device_offset", "cairo_surface_set_fallback_resolution", "cairo_surface_show_page", "cairo_surface_status", "cairo_surface_write_to_png", "cairo_svg_surface_create", "cairo_svg_surface_restrict_to_version", "cairo_svg_version_to_string"] + b["Calendar"] = Set.new ["cal_days_in_month", "cal_from_jd", "cal_info", "cal_to_jd", "easter_date", "easter_days", "frenchtojd", "gregoriantojd", "jddayofweek", "jdmonthname", "jdtofrench", "jdtogregorian", "jdtojewish", "jdtojulian", "jdtounix", "jewishtojd", "juliantojd", "unixtojd"] + b["chdb"] = Set.new ["chdb_create"] + b["Classkit"] = Set.new ["classkit_import", "classkit_method_add", "classkit_method_copy", "classkit_method_redefine", "classkit_method_remove", "classkit_method_rename"] + b["Classes/Object"] = Set.new ["__autoload", "call_user_method_array", "call_user_method", "class_alias", "class_exists", "get_called_class", "get_class_methods", "get_class_vars", "get_class", "get_declared_classes", "get_declared_interfaces", "get_declared_traits", "get_object_vars", "get_parent_class", "interface_exists", "is_a", "is_subclass_of", "method_exists", "property_exists", "trait_exists"] + b["CommonMark"] = Set.new ["CommonMark\\Parse", "CommonMark\\Render", "CommonMark\\Render\\HTML", "CommonMark\\Render\\Latex", "CommonMark\\Render\\Man", "CommonMark\\Render\\XML"] + b["COM"] = Set.new ["com_create_guid", "com_event_sink", "com_get_active_object", "com_load_typelib", "com_message_pump", "com_print_typeinfo", "variant_abs", "variant_add", "variant_and", "variant_cast", "variant_cat", "variant_cmp", "variant_date_from_timestamp", "variant_date_to_timestamp", "variant_div", "variant_eqv", "variant_fix", "variant_get_type", "variant_idiv", "variant_imp", "variant_int", "variant_mod", "variant_mul", "variant_neg", "variant_not", "variant_or", "variant_pow", "variant_round", "variant_set_type", "variant_set", "variant_sub", "variant_xor"] + b["Crack"] = Set.new ["crack_check", "crack_closedict", "crack_getlastmessage", "crack_opendict"] + b["CSPRNG"] = Set.new ["random_bytes", "random_int"] + b["Ctype"] = Set.new ["ctype_alnum", "ctype_alpha", "ctype_cntrl", "ctype_digit", "ctype_graph", "ctype_lower", "ctype_print", "ctype_punct", "ctype_space", "ctype_upper", "ctype_xdigit"] + b["CUBRID"] = Set.new ["cubrid_bind", "cubrid_close_prepare", "cubrid_close_request", "cubrid_col_get", "cubrid_col_size", "cubrid_column_names", "cubrid_column_types", "cubrid_commit", "cubrid_connect_with_url", "cubrid_connect", "cubrid_current_oid", "cubrid_disconnect", "cubrid_drop", "cubrid_error_code_facility", "cubrid_error_code", "cubrid_error_msg", "cubrid_execute", "cubrid_fetch", "cubrid_free_result", "cubrid_get_autocommit", "cubrid_get_charset", "cubrid_get_class_name", "cubrid_get_client_info", "cubrid_get_db_parameter", "cubrid_get_query_timeout", "cubrid_get_server_info", "cubrid_get", "cubrid_insert_id", "cubrid_is_instance", "cubrid_lob_close", "cubrid_lob_export", "cubrid_lob_get", "cubrid_lob_send", "cubrid_lob_size", "cubrid_lob2_bind", "cubrid_lob2_close", "cubrid_lob2_export", "cubrid_lob2_import", "cubrid_lob2_new", "cubrid_lob2_read", "cubrid_lob2_seek64", "cubrid_lob2_seek", "cubrid_lob2_size64", "cubrid_lob2_size", "cubrid_lob2_tell64", "cubrid_lob2_tell", "cubrid_lob2_write", "cubrid_lock_read", "cubrid_lock_write", "cubrid_move_cursor", "cubrid_next_result", "cubrid_num_cols", "cubrid_num_rows", "cubrid_pconnect_with_url", "cubrid_pconnect", "cubrid_prepare", "cubrid_put", "cubrid_rollback", "cubrid_schema", "cubrid_seq_drop", "cubrid_seq_insert", "cubrid_seq_put", "cubrid_set_add", "cubrid_set_autocommit", "cubrid_set_db_parameter", "cubrid_set_drop", "cubrid_set_query_timeout", "cubrid_version"] + b["cURL"] = Set.new ["curl_close", "curl_copy_handle", "curl_errno", "curl_error", "curl_escape", "curl_exec", "curl_file_create", "curl_getinfo", "curl_init", "curl_multi_add_handle", "curl_multi_close", "curl_multi_errno", "curl_multi_exec", "curl_multi_getcontent", "curl_multi_info_read", "curl_multi_init", "curl_multi_remove_handle", "curl_multi_select", "curl_multi_setopt", "curl_multi_strerror", "curl_pause", "curl_reset", "curl_setopt_array", "curl_setopt", "curl_share_close", "curl_share_errno", "curl_share_init", "curl_share_setopt", "curl_share_strerror", "curl_strerror", "curl_unescape", "curl_version"] + b["Cyrus"] = Set.new ["cyrus_authenticate", "cyrus_bind", "cyrus_close", "cyrus_connect", "cyrus_query", "cyrus_unbind"] + b["Date/Time"] = Set.new ["checkdate", "date_add", "date_create_from_format", "date_create_immutable_from_format", "date_create_immutable", "date_create", "date_date_set", "date_default_timezone_get", "date_default_timezone_set", "date_diff", "date_format", "date_get_last_errors", "date_interval_create_from_date_string", "date_interval_format", "date_isodate_set", "date_modify", "date_offset_get", "date_parse_from_format", "date_parse", "date_sub", "date_sun_info", "date_sunrise", "date_sunset", "date_time_set", "date_timestamp_get", "date_timestamp_set", "date_timezone_get", "date_timezone_set", "date", "getdate", "gettimeofday", "gmdate", "gmmktime", "gmstrftime", "idate", "localtime", "microtime", "mktime", "strftime", "strptime", "strtotime", "time", "timezone_abbreviations_list", "timezone_identifiers_list", "timezone_location_get", "timezone_name_from_abbr", "timezone_name_get", "timezone_offset_get", "timezone_open", "timezone_transitions_get", "timezone_version_get"] + b["DBA"] = Set.new ["dba_close", "dba_delete", "dba_exists", "dba_fetch", "dba_firstkey", "dba_handlers", "dba_insert", "dba_key_split", "dba_list", "dba_nextkey", "dba_open", "dba_optimize", "dba_popen", "dba_replace", "dba_sync"] + b["dBase"] = Set.new ["dbase_add_record", "dbase_close", "dbase_create", "dbase_delete_record", "dbase_get_header_info", "dbase_get_record_with_names", "dbase_get_record", "dbase_numfields", "dbase_numrecords", "dbase_open", "dbase_pack", "dbase_replace_record"] + b["DB++"] = Set.new ["dbplus_add", "dbplus_aql", "dbplus_chdir", "dbplus_close", "dbplus_curr", "dbplus_errcode", "dbplus_errno", "dbplus_find", "dbplus_first", "dbplus_flush", "dbplus_freealllocks", "dbplus_freelock", "dbplus_freerlocks", "dbplus_getlock", "dbplus_getunique", "dbplus_info", "dbplus_last", "dbplus_lockrel", "dbplus_next", "dbplus_open", "dbplus_prev", "dbplus_rchperm", "dbplus_rcreate", "dbplus_rcrtexact", "dbplus_rcrtlike", "dbplus_resolve", "dbplus_restorepos", "dbplus_rkeys", "dbplus_ropen", "dbplus_rquery", "dbplus_rrename", "dbplus_rsecindex", "dbplus_runlink", "dbplus_rzap", "dbplus_savepos", "dbplus_setindex", "dbplus_setindexbynumber", "dbplus_sql", "dbplus_tcl", "dbplus_tremove", "dbplus_undo", "dbplus_undoprepare", "dbplus_unlockrel", "dbplus_unselect", "dbplus_update", "dbplus_xlockrel", "dbplus_xunlockrel"] + b["dbx"] = Set.new ["dbx_close", "dbx_compare", "dbx_connect", "dbx_error", "dbx_escape_string", "dbx_fetch_row", "dbx_query", "dbx_sort"] + b["Direct IO"] = Set.new ["dio_close", "dio_fcntl", "dio_open", "dio_read", "dio_seek", "dio_stat", "dio_tcsetattr", "dio_truncate", "dio_write"] + b["Directory"] = Set.new ["chdir", "chroot", "closedir", "dir", "getcwd", "opendir", "readdir", "rewinddir", "scandir"] + b["DOM"] = Set.new ["dom_import_simplexml"] + b["Eio"] = Set.new ["eio_busy", "eio_cancel", "eio_chmod", "eio_chown", "eio_close", "eio_custom", "eio_dup2", "eio_event_loop", "eio_fallocate", "eio_fchmod", "eio_fchown", "eio_fdatasync", "eio_fstat", "eio_fstatvfs", "eio_fsync", "eio_ftruncate", "eio_futime", "eio_get_event_stream", "eio_get_last_error", "eio_grp_add", "eio_grp_cancel", "eio_grp_limit", "eio_grp", "eio_init", "eio_link", "eio_lstat", "eio_mkdir", "eio_mknod", "eio_nop", "eio_npending", "eio_nready", "eio_nreqs", "eio_nthreads", "eio_open", "eio_poll", "eio_read", "eio_readahead", "eio_readdir", "eio_readlink", "eio_realpath", "eio_rename", "eio_rmdir", "eio_seek", "eio_sendfile", "eio_set_max_idle", "eio_set_max_parallel", "eio_set_max_poll_reqs", "eio_set_max_poll_time", "eio_set_min_parallel", "eio_stat", "eio_statvfs", "eio_symlink", "eio_sync_file_range", "eio_sync", "eio_syncfs", "eio_truncate", "eio_unlink", "eio_utime", "eio_write"] + b["Enchant"] = Set.new ["enchant_broker_describe", "enchant_broker_dict_exists", "enchant_broker_free_dict", "enchant_broker_free", "enchant_broker_get_dict_path", "enchant_broker_get_error", "enchant_broker_init", "enchant_broker_list_dicts", "enchant_broker_request_dict", "enchant_broker_request_pwl_dict", "enchant_broker_set_dict_path", "enchant_broker_set_ordering", "enchant_dict_add_to_personal", "enchant_dict_add_to_session", "enchant_dict_check", "enchant_dict_describe", "enchant_dict_get_error", "enchant_dict_is_in_session", "enchant_dict_quick_check", "enchant_dict_store_replacement", "enchant_dict_suggest"] + b["Error Handling"] = Set.new ["debug_backtrace", "debug_print_backtrace", "error_clear_last", "error_get_last", "error_log", "error_reporting", "restore_error_handler", "restore_exception_handler", "set_error_handler", "set_exception_handler", "trigger_error", "user_error"] + b["Program execution"] = Set.new ["escapeshellarg", "escapeshellcmd", "exec", "passthru", "proc_close", "proc_get_status", "proc_nice", "proc_open", "proc_terminate", "shell_exec", "system"] + b["Exif"] = Set.new ["exif_imagetype", "exif_read_data", "exif_tagname", "exif_thumbnail", "read_exif_data"] + b["Expect"] = Set.new ["expect_expectl", "expect_popen"] + b["FAM"] = Set.new ["fam_cancel_monitor", "fam_close", "fam_monitor_collection", "fam_monitor_directory", "fam_monitor_file", "fam_next_event", "fam_open", "fam_pending", "fam_resume_monitor", "fam_suspend_monitor"] + b["Fann"] = Set.new ["fann_cascadetrain_on_data", "fann_cascadetrain_on_file", "fann_clear_scaling_params", "fann_copy", "fann_create_from_file", "fann_create_shortcut_array", "fann_create_shortcut", "fann_create_sparse_array", "fann_create_sparse", "fann_create_standard_array", "fann_create_standard", "fann_create_train_from_callback", "fann_create_train", "fann_descale_input", "fann_descale_output", "fann_descale_train", "fann_destroy_train", "fann_destroy", "fann_duplicate_train_data", "fann_get_activation_function", "fann_get_activation_steepness", "fann_get_bias_array", "fann_get_bit_fail_limit", "fann_get_bit_fail", "fann_get_cascade_activation_functions_count", "fann_get_cascade_activation_functions", "fann_get_cascade_activation_steepnesses_count", "fann_get_cascade_activation_steepnesses", "fann_get_cascade_candidate_change_fraction", "fann_get_cascade_candidate_limit", "fann_get_cascade_candidate_stagnation_epochs", "fann_get_cascade_max_cand_epochs", "fann_get_cascade_max_out_epochs", "fann_get_cascade_min_cand_epochs", "fann_get_cascade_min_out_epochs", "fann_get_cascade_num_candidate_groups", "fann_get_cascade_num_candidates", "fann_get_cascade_output_change_fraction", "fann_get_cascade_output_stagnation_epochs", "fann_get_cascade_weight_multiplier", "fann_get_connection_array", "fann_get_connection_rate", "fann_get_errno", "fann_get_errstr", "fann_get_layer_array", "fann_get_learning_momentum", "fann_get_learning_rate", "fann_get_MSE", "fann_get_network_type", "fann_get_num_input", "fann_get_num_layers", "fann_get_num_output", "fann_get_quickprop_decay", "fann_get_quickprop_mu", "fann_get_rprop_decrease_factor", "fann_get_rprop_delta_max", "fann_get_rprop_delta_min", "fann_get_rprop_delta_zero", "fann_get_rprop_increase_factor", "fann_get_sarprop_step_error_shift", "fann_get_sarprop_step_error_threshold_factor", "fann_get_sarprop_temperature", "fann_get_sarprop_weight_decay_shift", "fann_get_total_connections", "fann_get_total_neurons", "fann_get_train_error_function", "fann_get_train_stop_function", "fann_get_training_algorithm", "fann_init_weights", "fann_length_train_data", "fann_merge_train_data", "fann_num_input_train_data", "fann_num_output_train_data", "fann_print_error", "fann_randomize_weights", "fann_read_train_from_file", "fann_reset_errno", "fann_reset_errstr", "fann_reset_MSE", "fann_run", "fann_save_train", "fann_save", "fann_scale_input_train_data", "fann_scale_input", "fann_scale_output_train_data", "fann_scale_output", "fann_scale_train_data", "fann_scale_train", "fann_set_activation_function_hidden", "fann_set_activation_function_layer", "fann_set_activation_function_output", "fann_set_activation_function", "fann_set_activation_steepness_hidden", "fann_set_activation_steepness_layer", "fann_set_activation_steepness_output", "fann_set_activation_steepness", "fann_set_bit_fail_limit", "fann_set_callback", "fann_set_cascade_activation_functions", "fann_set_cascade_activation_steepnesses", "fann_set_cascade_candidate_change_fraction", "fann_set_cascade_candidate_limit", "fann_set_cascade_candidate_stagnation_epochs", "fann_set_cascade_max_cand_epochs", "fann_set_cascade_max_out_epochs", "fann_set_cascade_min_cand_epochs", "fann_set_cascade_min_out_epochs", "fann_set_cascade_num_candidate_groups", "fann_set_cascade_output_change_fraction", "fann_set_cascade_output_stagnation_epochs", "fann_set_cascade_weight_multiplier", "fann_set_error_log", "fann_set_input_scaling_params", "fann_set_learning_momentum", "fann_set_learning_rate", "fann_set_output_scaling_params", "fann_set_quickprop_decay", "fann_set_quickprop_mu", "fann_set_rprop_decrease_factor", "fann_set_rprop_delta_max", "fann_set_rprop_delta_min", "fann_set_rprop_delta_zero", "fann_set_rprop_increase_factor", "fann_set_sarprop_step_error_shift", "fann_set_sarprop_step_error_threshold_factor", "fann_set_sarprop_temperature", "fann_set_sarprop_weight_decay_shift", "fann_set_scaling_params", "fann_set_train_error_function", "fann_set_train_stop_function", "fann_set_training_algorithm", "fann_set_weight_array", "fann_set_weight", "fann_shuffle_train_data", "fann_subset_train_data", "fann_test_data", "fann_test", "fann_train_epoch", "fann_train_on_data", "fann_train_on_file", "fann_train"] + b["FrontBase"] = Set.new ["fbsql_affected_rows", "fbsql_autocommit", "fbsql_blob_size", "fbsql_change_user", "fbsql_clob_size", "fbsql_close", "fbsql_commit", "fbsql_connect", "fbsql_create_blob", "fbsql_create_clob", "fbsql_create_db", "fbsql_data_seek", "fbsql_database_password", "fbsql_database", "fbsql_db_query", "fbsql_db_status", "fbsql_drop_db", "fbsql_errno", "fbsql_error", "fbsql_fetch_array", "fbsql_fetch_assoc", "fbsql_fetch_field", "fbsql_fetch_lengths", "fbsql_fetch_object", "fbsql_fetch_row", "fbsql_field_flags", "fbsql_field_len", "fbsql_field_name", "fbsql_field_seek", "fbsql_field_table", "fbsql_field_type", "fbsql_free_result", "fbsql_get_autostart_info", "fbsql_hostname", "fbsql_insert_id", "fbsql_list_dbs", "fbsql_list_fields", "fbsql_list_tables", "fbsql_next_result", "fbsql_num_fields", "fbsql_num_rows", "fbsql_password", "fbsql_pconnect", "fbsql_query", "fbsql_read_blob", "fbsql_read_clob", "fbsql_result", "fbsql_rollback", "fbsql_rows_fetched", "fbsql_select_db", "fbsql_set_characterset", "fbsql_set_lob_mode", "fbsql_set_password", "fbsql_set_transaction", "fbsql_start_db", "fbsql_stop_db", "fbsql_table_name", "fbsql_tablename", "fbsql_username", "fbsql_warnings"] + b["FDF"] = Set.new ["fdf_add_doc_javascript", "fdf_add_template", "fdf_close", "fdf_create", "fdf_enum_values", "fdf_errno", "fdf_error", "fdf_get_ap", "fdf_get_attachment", "fdf_get_encoding", "fdf_get_file", "fdf_get_flags", "fdf_get_opt", "fdf_get_status", "fdf_get_value", "fdf_get_version", "fdf_header", "fdf_next_field_name", "fdf_open_string", "fdf_open", "fdf_remove_item", "fdf_save_string", "fdf_save", "fdf_set_ap", "fdf_set_encoding", "fdf_set_file", "fdf_set_flags", "fdf_set_javascript_action", "fdf_set_on_import_javascript", "fdf_set_opt", "fdf_set_status", "fdf_set_submit_form_action", "fdf_set_target_frame", "fdf_set_value", "fdf_set_version"] + b["Fileinfo"] = Set.new ["finfo_buffer", "finfo_close", "finfo_file", "finfo_open", "finfo_set_flags", "mime_content_type"] + b["filePro"] = Set.new ["filepro_fieldcount", "filepro_fieldname", "filepro_fieldtype", "filepro_fieldwidth", "filepro_retrieve", "filepro_rowcount", "filepro"] + b["Filesystem"] = Set.new ["basename", "chgrp", "chmod", "chown", "clearstatcache", "copy", "delete", "dirname", "disk_free_space", "disk_total_space", "diskfreespace", "fclose", "feof", "fflush", "fgetc", "fgetcsv", "fgets", "fgetss", "file_exists", "file_get_contents", "file_put_contents", "file", "fileatime", "filectime", "filegroup", "fileinode", "filemtime", "fileowner", "fileperms", "filesize", "filetype", "flock", "fnmatch", "fopen", "fpassthru", "fputcsv", "fputs", "fread", "fscanf", "fseek", "fstat", "ftell", "ftruncate", "fwrite", "glob", "is_dir", "is_executable", "is_file", "is_link", "is_readable", "is_uploaded_file", "is_writable", "is_writeable", "lchgrp", "lchown", "link", "linkinfo", "lstat", "mkdir", "move_uploaded_file", "parse_ini_file", "parse_ini_string", "pathinfo", "pclose", "popen", "readfile", "readlink", "realpath_cache_get", "realpath_cache_size", "realpath", "rename", "rewind", "rmdir", "set_file_buffer", "stat", "symlink", "tempnam", "tmpfile", "touch", "umask", "unlink"] + b["Filter"] = Set.new ["filter_has_var", "filter_id", "filter_input_array", "filter_input", "filter_list", "filter_var_array", "filter_var"] + b["FPM"] = Set.new ["fastcgi_finish_request"] + b["FriBiDi"] = Set.new ["fribidi_log2vis"] + b["FTP"] = Set.new ["ftp_alloc", "ftp_append", "ftp_cdup", "ftp_chdir", "ftp_chmod", "ftp_close", "ftp_connect", "ftp_delete", "ftp_exec", "ftp_fget", "ftp_fput", "ftp_get_option", "ftp_get", "ftp_login", "ftp_mdtm", "ftp_mkdir", "ftp_mlsd", "ftp_nb_continue", "ftp_nb_fget", "ftp_nb_fput", "ftp_nb_get", "ftp_nb_put", "ftp_nlist", "ftp_pasv", "ftp_put", "ftp_pwd", "ftp_quit", "ftp_raw", "ftp_rawlist", "ftp_rename", "ftp_rmdir", "ftp_set_option", "ftp_site", "ftp_size", "ftp_ssl_connect", "ftp_systype"] + b["Function handling"] = Set.new ["call_user_func_array", "call_user_func", "create_function", "forward_static_call_array", "forward_static_call", "func_get_arg", "func_get_args", "func_num_args", "function_exists", "get_defined_functions", "register_shutdown_function", "register_tick_function", "unregister_tick_function"] + b["GeoIP"] = Set.new ["geoip_asnum_by_name", "geoip_continent_code_by_name", "geoip_country_code_by_name", "geoip_country_code3_by_name", "geoip_country_name_by_name", "geoip_database_info", "geoip_db_avail", "geoip_db_filename", "geoip_db_get_all_info", "geoip_domain_by_name", "geoip_id_by_name", "geoip_isp_by_name", "geoip_netspeedcell_by_name", "geoip_org_by_name", "geoip_record_by_name", "geoip_region_by_name", "geoip_region_name_by_code", "geoip_setup_custom_directory", "geoip_time_zone_by_country_and_region"] + b["Gettext"] = Set.new ["bind_textdomain_codeset", "bindtextdomain", "dcgettext", "dcngettext", "dgettext", "dngettext", "gettext", "ngettext", "textdomain"] + b["GMP"] = Set.new ["gmp_abs", "gmp_add", "gmp_and", "gmp_binomial", "gmp_clrbit", "gmp_cmp", "gmp_com", "gmp_div_q", "gmp_div_qr", "gmp_div_r", "gmp_div", "gmp_divexact", "gmp_export", "gmp_fact", "gmp_gcd", "gmp_gcdext", "gmp_hamdist", "gmp_import", "gmp_init", "gmp_intval", "gmp_invert", "gmp_jacobi", "gmp_kronecker", "gmp_lcm", "gmp_legendre", "gmp_mod", "gmp_mul", "gmp_neg", "gmp_nextprime", "gmp_or", "gmp_perfect_power", "gmp_perfect_square", "gmp_popcount", "gmp_pow", "gmp_powm", "gmp_prob_prime", "gmp_random_bits", "gmp_random_range", "gmp_random_seed", "gmp_random", "gmp_root", "gmp_rootrem", "gmp_scan0", "gmp_scan1", "gmp_setbit", "gmp_sign", "gmp_sqrt", "gmp_sqrtrem", "gmp_strval", "gmp_sub", "gmp_testbit", "gmp_xor"] + b["GnuPG"] = Set.new ["gnupg_adddecryptkey", "gnupg_addencryptkey", "gnupg_addsignkey", "gnupg_cleardecryptkeys", "gnupg_clearencryptkeys", "gnupg_clearsignkeys", "gnupg_decrypt", "gnupg_decryptverify", "gnupg_encrypt", "gnupg_encryptsign", "gnupg_export", "gnupg_geterror", "gnupg_getprotocol", "gnupg_import", "gnupg_init", "gnupg_keyinfo", "gnupg_setarmor", "gnupg_seterrormode", "gnupg_setsignmode", "gnupg_sign", "gnupg_verify"] + b["Gupnp"] = Set.new ["gupnp_context_get_host_ip", "gupnp_context_get_port", "gupnp_context_get_subscription_timeout", "gupnp_context_host_path", "gupnp_context_new", "gupnp_context_set_subscription_timeout", "gupnp_context_timeout_add", "gupnp_context_unhost_path", "gupnp_control_point_browse_start", "gupnp_control_point_browse_stop", "gupnp_control_point_callback_set", "gupnp_control_point_new", "gupnp_device_action_callback_set", "gupnp_device_info_get_service", "gupnp_device_info_get", "gupnp_root_device_get_available", "gupnp_root_device_get_relative_location", "gupnp_root_device_new", "gupnp_root_device_set_available", "gupnp_root_device_start", "gupnp_root_device_stop", "gupnp_service_action_get", "gupnp_service_action_return_error", "gupnp_service_action_return", "gupnp_service_action_set", "gupnp_service_freeze_notify", "gupnp_service_info_get_introspection", "gupnp_service_info_get", "gupnp_service_introspection_get_state_variable", "gupnp_service_notify", "gupnp_service_proxy_action_get", "gupnp_service_proxy_action_set", "gupnp_service_proxy_add_notify", "gupnp_service_proxy_callback_set", "gupnp_service_proxy_get_subscribed", "gupnp_service_proxy_remove_notify", "gupnp_service_proxy_set_subscribed", "gupnp_service_thaw_notify"] + b["Hash"] = Set.new ["hash_algos", "hash_copy", "hash_equals", "hash_file", "hash_final", "hash_hkdf", "hash_hmac_algos", "hash_hmac_file", "hash_hmac", "hash_init", "hash_pbkdf2", "hash_update_file", "hash_update_stream", "hash_update", "hash"] + b["Hyperwave API"] = Set.new ["hwapi_attribute_new", "hwapi_content_new", "hwapi_hgcsp", "hwapi_object_new"] + b["Firebird/InterBase"] = Set.new ["fbird_add_user", "fbird_affected_rows", "fbird_backup", "fbird_blob_add", "fbird_blob_cancel", "fbird_blob_close", "fbird_blob_create", "fbird_blob_echo", "fbird_blob_get", "fbird_blob_import", "fbird_blob_info", "fbird_blob_open", "fbird_close", "fbird_commit_ret", "fbird_commit", "fbird_connect", "fbird_db_info", "fbird_delete_user", "fbird_drop_db", "fbird_errcode", "fbird_errmsg", "fbird_execute", "fbird_fetch_assoc", "fbird_fetch_object", "fbird_fetch_row", "fbird_field_info", "fbird_free_event_handler", "fbird_free_query", "fbird_free_result", "fbird_gen_id", "fbird_maintain_db", "fbird_modify_user", "fbird_name_result", "fbird_num_fields", "fbird_num_params", "fbird_param_info", "fbird_pconnect", "fbird_prepare", "fbird_query", "fbird_restore", "fbird_rollback_ret", "fbird_rollback", "fbird_server_info", "fbird_service_attach", "fbird_service_detach", "fbird_set_event_handler", "fbird_trans", "fbird_wait_event", "ibase_add_user", "ibase_affected_rows", "ibase_backup", "ibase_blob_add", "ibase_blob_cancel", "ibase_blob_close", "ibase_blob_create", "ibase_blob_echo", "ibase_blob_get", "ibase_blob_import", "ibase_blob_info", "ibase_blob_open", "ibase_close", "ibase_commit_ret", "ibase_commit", "ibase_connect", "ibase_db_info", "ibase_delete_user", "ibase_drop_db", "ibase_errcode", "ibase_errmsg", "ibase_execute", "ibase_fetch_assoc", "ibase_fetch_object", "ibase_fetch_row", "ibase_field_info", "ibase_free_event_handler", "ibase_free_query", "ibase_free_result", "ibase_gen_id", "ibase_maintain_db", "ibase_modify_user", "ibase_name_result", "ibase_num_fields", "ibase_num_params", "ibase_param_info", "ibase_pconnect", "ibase_prepare", "ibase_query", "ibase_restore", "ibase_rollback_ret", "ibase_rollback", "ibase_server_info", "ibase_service_attach", "ibase_service_detach", "ibase_set_event_handler", "ibase_trans", "ibase_wait_event"] + b["IBM DB2"] = Set.new ["db2_autocommit", "db2_bind_param", "db2_client_info", "db2_close", "db2_column_privileges", "db2_columns", "db2_commit", "db2_conn_error", "db2_conn_errormsg", "db2_connect", "db2_cursor_type", "db2_escape_string", "db2_exec", "db2_execute", "db2_fetch_array", "db2_fetch_assoc", "db2_fetch_both", "db2_fetch_object", "db2_fetch_row", "db2_field_display_size", "db2_field_name", "db2_field_num", "db2_field_precision", "db2_field_scale", "db2_field_type", "db2_field_width", "db2_foreign_keys", "db2_free_result", "db2_free_stmt", "db2_get_option", "db2_last_insert_id", "db2_lob_read", "db2_next_result", "db2_num_fields", "db2_num_rows", "db2_pclose", "db2_pconnect", "db2_prepare", "db2_primary_keys", "db2_procedure_columns", "db2_procedures", "db2_result", "db2_rollback", "db2_server_info", "db2_set_option", "db2_special_columns", "db2_statistics", "db2_stmt_error", "db2_stmt_errormsg", "db2_table_privileges", "db2_tables"] + b["iconv"] = Set.new ["iconv_get_encoding", "iconv_mime_decode_headers", "iconv_mime_decode", "iconv_mime_encode", "iconv_set_encoding", "iconv_strlen", "iconv_strpos", "iconv_strrpos", "iconv_substr", "iconv", "ob_iconv_handler"] + b["ID3"] = Set.new ["id3_get_frame_long_name", "id3_get_frame_short_name", "id3_get_genre_id", "id3_get_genre_list", "id3_get_genre_name", "id3_get_tag", "id3_get_version", "id3_remove_tag", "id3_set_tag"] + b["Informix"] = Set.new ["ifx_affected_rows", "ifx_blobinfile_mode", "ifx_byteasvarchar", "ifx_close", "ifx_connect", "ifx_copy_blob", "ifx_create_blob", "ifx_create_char", "ifx_do", "ifx_error", "ifx_errormsg", "ifx_fetch_row", "ifx_fieldproperties", "ifx_fieldtypes", "ifx_free_blob", "ifx_free_char", "ifx_free_result", "ifx_get_blob", "ifx_get_char", "ifx_getsqlca", "ifx_htmltbl_result", "ifx_nullformat", "ifx_num_fields", "ifx_num_rows", "ifx_pconnect", "ifx_prepare", "ifx_query", "ifx_textasvarchar", "ifx_update_blob", "ifx_update_char", "ifxus_close_slob", "ifxus_create_slob", "ifxus_free_slob", "ifxus_open_slob", "ifxus_read_slob", "ifxus_seek_slob", "ifxus_tell_slob", "ifxus_write_slob"] + b["IIS"] = Set.new ["iis_add_server", "iis_get_dir_security", "iis_get_script_map", "iis_get_server_by_comment", "iis_get_server_by_path", "iis_get_server_rights", "iis_get_service_state", "iis_remove_server", "iis_set_app_settings", "iis_set_dir_security", "iis_set_script_map", "iis_set_server_rights", "iis_start_server", "iis_start_service", "iis_stop_server", "iis_stop_service"] + b["GD and Image"] = Set.new ["gd_info", "getimagesize", "getimagesizefromstring", "image_type_to_extension", "image_type_to_mime_type", "image2wbmp", "imageaffine", "imageaffinematrixconcat", "imageaffinematrixget", "imagealphablending", "imageantialias", "imagearc", "imagebmp", "imagechar", "imagecharup", "imagecolorallocate", "imagecolorallocatealpha", "imagecolorat", "imagecolorclosest", "imagecolorclosestalpha", "imagecolorclosesthwb", "imagecolordeallocate", "imagecolorexact", "imagecolorexactalpha", "imagecolormatch", "imagecolorresolve", "imagecolorresolvealpha", "imagecolorset", "imagecolorsforindex", "imagecolorstotal", "imagecolortransparent", "imageconvolution", "imagecopy", "imagecopymerge", "imagecopymergegray", "imagecopyresampled", "imagecopyresized", "imagecreate", "imagecreatefrombmp", "imagecreatefromgd2", "imagecreatefromgd2part", "imagecreatefromgd", "imagecreatefromgif", "imagecreatefromjpeg", "imagecreatefrompng", "imagecreatefromstring", "imagecreatefromwbmp", "imagecreatefromwebp", "imagecreatefromxbm", "imagecreatefromxpm", "imagecreatetruecolor", "imagecrop", "imagecropauto", "imagedashedline", "imagedestroy", "imageellipse", "imagefill", "imagefilledarc", "imagefilledellipse", "imagefilledpolygon", "imagefilledrectangle", "imagefilltoborder", "imagefilter", "imageflip", "imagefontheight", "imagefontwidth", "imageftbbox", "imagefttext", "imagegammacorrect", "imagegd2", "imagegd", "imagegetclip", "imagegif", "imagegrabscreen", "imagegrabwindow", "imageinterlace", "imageistruecolor", "imagejpeg", "imagelayereffect", "imageline", "imageloadfont", "imageopenpolygon", "imagepalettecopy", "imagepalettetotruecolor", "imagepng", "imagepolygon", "imagepsbbox", "imagepsencodefont", "imagepsextendfont", "imagepsfreefont", "imagepsloadfont", "imagepsslantfont", "imagepstext", "imagerectangle", "imageresolution", "imagerotate", "imagesavealpha", "imagescale", "imagesetbrush", "imagesetclip", "imagesetinterpolation", "imagesetpixel", "imagesetstyle", "imagesetthickness", "imagesettile", "imagestring", "imagestringup", "imagesx", "imagesy", "imagetruecolortopalette", "imagettfbbox", "imagettftext", "imagetypes", "imagewbmp", "imagewebp", "imagexbm", "iptcembed", "iptcparse", "jpeg2wbmp", "png2wbmp"] + b["IMAP"] = Set.new ["imap_8bit", "imap_alerts", "imap_append", "imap_base64", "imap_binary", "imap_body", "imap_bodystruct", "imap_check", "imap_clearflag_full", "imap_close", "imap_create", "imap_createmailbox", "imap_delete", "imap_deletemailbox", "imap_errors", "imap_expunge", "imap_fetch_overview", "imap_fetchbody", "imap_fetchheader", "imap_fetchmime", "imap_fetchstructure", "imap_fetchtext", "imap_gc", "imap_get_quota", "imap_get_quotaroot", "imap_getacl", "imap_getmailboxes", "imap_getsubscribed", "imap_header", "imap_headerinfo", "imap_headers", "imap_last_error", "imap_list", "imap_listmailbox", "imap_listscan", "imap_listsubscribed", "imap_lsub", "imap_mail_compose", "imap_mail_copy", "imap_mail_move", "imap_mail", "imap_mailboxmsginfo", "imap_mime_header_decode", "imap_msgno", "imap_mutf7_to_utf8", "imap_num_msg", "imap_num_recent", "imap_open", "imap_ping", "imap_qprint", "imap_rename", "imap_renamemailbox", "imap_reopen", "imap_rfc822_parse_adrlist", "imap_rfc822_parse_headers", "imap_rfc822_write_address", "imap_savebody", "imap_scan", "imap_scanmailbox", "imap_search", "imap_set_quota", "imap_setacl", "imap_setflag_full", "imap_sort", "imap_status", "imap_subscribe", "imap_thread", "imap_timeout", "imap_uid", "imap_undelete", "imap_unsubscribe", "imap_utf7_decode", "imap_utf7_encode", "imap_utf8_to_mutf7", "imap_utf8"] + b["inclued"] = Set.new ["inclued_get_data"] + b["PHP Options/Info"] = Set.new ["assert_options", "assert", "cli_get_process_title", "cli_set_process_title", "dl", "extension_loaded", "gc_collect_cycles", "gc_disable", "gc_enable", "gc_enabled", "gc_mem_caches", "gc_status", "get_cfg_var", "get_current_user", "get_defined_constants", "get_extension_funcs", "get_include_path", "get_included_files", "get_loaded_extensions", "get_magic_quotes_gpc", "get_magic_quotes_runtime", "get_required_files", "get_resources", "getenv", "getlastmod", "getmygid", "getmyinode", "getmypid", "getmyuid", "getopt", "getrusage", "ini_alter", "ini_get_all", "ini_get", "ini_restore", "ini_set", "magic_quotes_runtime", "main", "memory_get_peak_usage", "memory_get_usage", "php_ini_loaded_file", "php_ini_scanned_files", "php_logo_guid", "php_sapi_name", "php_uname", "phpcredits", "phpinfo", "phpversion", "putenv", "restore_include_path", "set_include_path", "set_magic_quotes_runtime", "set_time_limit", "sys_get_temp_dir", "version_compare", "zend_logo_guid", "zend_thread_id", "zend_version"] + b["Ingres"] = Set.new ["ingres_autocommit_state", "ingres_autocommit", "ingres_charset", "ingres_close", "ingres_commit", "ingres_connect", "ingres_cursor", "ingres_errno", "ingres_error", "ingres_errsqlstate", "ingres_escape_string", "ingres_execute", "ingres_fetch_array", "ingres_fetch_assoc", "ingres_fetch_object", "ingres_fetch_proc_return", "ingres_fetch_row", "ingres_field_length", "ingres_field_name", "ingres_field_nullable", "ingres_field_precision", "ingres_field_scale", "ingres_field_type", "ingres_free_result", "ingres_next_error", "ingres_num_fields", "ingres_num_rows", "ingres_pconnect", "ingres_prepare", "ingres_query", "ingres_result_seek", "ingres_rollback", "ingres_set_environment", "ingres_unbuffered_query"] + b["Inotify"] = Set.new ["inotify_add_watch", "inotify_init", "inotify_queue_len", "inotify_read", "inotify_rm_watch"] + b["Grapheme"] = Set.new ["grapheme_extract", "grapheme_stripos", "grapheme_stristr", "grapheme_strlen", "grapheme_strpos", "grapheme_strripos", "grapheme_strrpos", "grapheme_strstr", "grapheme_substr"] + b["intl"] = Set.new ["intl_error_name", "intl_get_error_code", "intl_get_error_message", "intl_is_failure"] + b["IDN"] = Set.new ["idn_to_ascii", "idn_to_utf8"] + b["JSON"] = Set.new ["json_decode", "json_encode", "json_last_error_msg", "json_last_error"] + b["Judy"] = Set.new ["judy_type", "judy_version"] + b["KADM5"] = Set.new ["kadm5_chpass_principal", "kadm5_create_principal", "kadm5_delete_principal", "kadm5_destroy", "kadm5_flush", "kadm5_get_policies", "kadm5_get_principal", "kadm5_get_principals", "kadm5_init_with_password", "kadm5_modify_principal"] + b["LDAP"] = Set.new ["ldap_8859_to_t61", "ldap_add_ext", "ldap_add", "ldap_bind_ext", "ldap_bind", "ldap_close", "ldap_compare", "ldap_connect", "ldap_control_paged_result_response", "ldap_control_paged_result", "ldap_count_entries", "ldap_delete_ext", "ldap_delete", "ldap_dn2ufn", "ldap_err2str", "ldap_errno", "ldap_error", "ldap_escape", "ldap_exop_passwd", "ldap_exop_refresh", "ldap_exop_whoami", "ldap_exop", "ldap_explode_dn", "ldap_first_attribute", "ldap_first_entry", "ldap_first_reference", "ldap_free_result", "ldap_get_attributes", "ldap_get_dn", "ldap_get_entries", "ldap_get_option", "ldap_get_values_len", "ldap_get_values", "ldap_list", "ldap_mod_add_ext", "ldap_mod_add", "ldap_mod_del_ext", "ldap_mod_del", "ldap_mod_replace_ext", "ldap_mod_replace", "ldap_modify_batch", "ldap_modify", "ldap_next_attribute", "ldap_next_entry", "ldap_next_reference", "ldap_parse_exop", "ldap_parse_reference", "ldap_parse_result", "ldap_read", "ldap_rename_ext", "ldap_rename", "ldap_sasl_bind", "ldap_search", "ldap_set_option", "ldap_set_rebind_proc", "ldap_sort", "ldap_start_tls", "ldap_t61_to_8859", "ldap_unbind"] + b["Libevent"] = Set.new ["event_add", "event_base_free", "event_base_loop", "event_base_loopbreak", "event_base_loopexit", "event_base_new", "event_base_priority_init", "event_base_reinit", "event_base_set", "event_buffer_base_set", "event_buffer_disable", "event_buffer_enable", "event_buffer_fd_set", "event_buffer_free", "event_buffer_new", "event_buffer_priority_set", "event_buffer_read", "event_buffer_set_callback", "event_buffer_timeout_set", "event_buffer_watermark_set", "event_buffer_write", "event_del", "event_free", "event_new", "event_priority_set", "event_set", "event_timer_add", "event_timer_del", "event_timer_new", "event_timer_set"] + b["libxml"] = Set.new ["libxml_clear_errors", "libxml_disable_entity_loader", "libxml_get_errors", "libxml_get_last_error", "libxml_set_external_entity_loader", "libxml_set_streams_context", "libxml_use_internal_errors"] + b["LZF"] = Set.new ["lzf_compress", "lzf_decompress", "lzf_optimized_for"] + b["Mail"] = Set.new ["ezmlm_hash", "mail"] + b["Mailparse"] = Set.new ["mailparse_determine_best_xfer_encoding", "mailparse_msg_create", "mailparse_msg_extract_part_file", "mailparse_msg_extract_part", "mailparse_msg_extract_whole_part_file", "mailparse_msg_free", "mailparse_msg_get_part_data", "mailparse_msg_get_part", "mailparse_msg_get_structure", "mailparse_msg_parse_file", "mailparse_msg_parse", "mailparse_rfc822_parse_addresses", "mailparse_stream_encode", "mailparse_uudecode_all"] + b["Math"] = Set.new ["abs", "acos", "acosh", "asin", "asinh", "atan2", "atan", "atanh", "base_convert", "bindec", "ceil", "cos", "cosh", "decbin", "dechex", "decoct", "deg2rad", "exp", "expm1", "floor", "fmod", "getrandmax", "hexdec", "hypot", "intdiv", "is_finite", "is_infinite", "is_nan", "lcg_value", "log10", "log1p", "log", "max", "min", "mt_getrandmax", "mt_rand", "mt_srand", "octdec", "pi", "pow", "rad2deg", "rand", "round", "sin", "sinh", "sqrt", "srand", "tan", "tanh"] + b["MaxDB"] = Set.new ["maxdb_affected_rows", "maxdb_autocommit", "maxdb_bind_param", "maxdb_bind_result", "maxdb_change_user", "maxdb_character_set_name", "maxdb_client_encoding", "maxdb_close_long_data", "maxdb_close", "maxdb_commit", "maxdb_connect_errno", "maxdb_connect_error", "maxdb_connect", "maxdb_data_seek", "maxdb_debug", "maxdb_disable_reads_from_master", "maxdb_disable_rpl_parse", "maxdb_dump_debug_info", "maxdb_embedded_connect", "maxdb_enable_reads_from_master", "maxdb_enable_rpl_parse", "maxdb_errno", "maxdb_error", "maxdb_escape_string", "maxdb_execute", "maxdb_fetch_array", "maxdb_fetch_assoc", "maxdb_fetch_field_direct", "maxdb_fetch_field", "maxdb_fetch_fields", "maxdb_fetch_lengths", "maxdb_fetch_object", "maxdb_fetch_row", "maxdb_fetch", "maxdb_field_count", "maxdb_field_seek", "maxdb_field_tell", "maxdb_free_result", "maxdb_get_client_info", "maxdb_get_client_version", "maxdb_get_host_info", "maxdb_get_metadata", "maxdb_get_proto_info", "maxdb_get_server_info", "maxdb_get_server_version", "maxdb_info", "maxdb_init", "maxdb_insert_id", "maxdb_kill", "maxdb_master_query", "maxdb_more_results", "maxdb_multi_query", "maxdb_next_result", "maxdb_num_fields", "maxdb_num_rows", "maxdb_options", "maxdb_param_count", "maxdb_ping", "maxdb_prepare", "maxdb_query", "maxdb_real_connect", "maxdb_real_escape_string", "maxdb_real_query", "maxdb_report", "maxdb_rollback", "maxdb_rpl_parse_enabled", "maxdb_rpl_probe", "maxdb_rpl_query_type", "maxdb_select_db", "maxdb_send_long_data", "maxdb_send_query", "maxdb_server_end", "maxdb_server_init", "maxdb_set_opt", "maxdb_sqlstate", "maxdb_ssl_set", "maxdb_stat", "maxdb_stmt_affected_rows", "maxdb_stmt_bind_param", "maxdb_stmt_bind_result", "maxdb_stmt_close_long_data", "maxdb_stmt_close", "maxdb_stmt_data_seek", "maxdb_stmt_errno", "maxdb_stmt_error", "maxdb_stmt_execute", "maxdb_stmt_fetch", "maxdb_stmt_free_result", "maxdb_stmt_init", "maxdb_stmt_num_rows", "maxdb_stmt_param_count", "maxdb_stmt_prepare", "maxdb_stmt_reset", "maxdb_stmt_result_metadata", "maxdb_stmt_send_long_data", "maxdb_stmt_sqlstate", "maxdb_stmt_store_result", "maxdb_store_result", "maxdb_thread_id", "maxdb_thread_safe", "maxdb_use_result", "maxdb_warning_count"] + b["Multibyte String"] = Set.new ["mb_check_encoding", "mb_chr", "mb_convert_case", "mb_convert_encoding", "mb_convert_kana", "mb_convert_variables", "mb_decode_mimeheader", "mb_decode_numericentity", "mb_detect_encoding", "mb_detect_order", "mb_encode_mimeheader", "mb_encode_numericentity", "mb_encoding_aliases", "mb_ereg_match", "mb_ereg_replace_callback", "mb_ereg_replace", "mb_ereg_search_getpos", "mb_ereg_search_getregs", "mb_ereg_search_init", "mb_ereg_search_pos", "mb_ereg_search_regs", "mb_ereg_search_setpos", "mb_ereg_search", "mb_ereg", "mb_eregi_replace", "mb_eregi", "mb_get_info", "mb_http_input", "mb_http_output", "mb_internal_encoding", "mb_language", "mb_list_encodings", "mb_ord", "mb_output_handler", "mb_parse_str", "mb_preferred_mime_name", "mb_regex_encoding", "mb_regex_set_options", "mb_scrub", "mb_send_mail", "mb_split", "mb_str_split", "mb_strcut", "mb_strimwidth", "mb_stripos", "mb_stristr", "mb_strlen", "mb_strpos", "mb_strrchr", "mb_strrichr", "mb_strripos", "mb_strrpos", "mb_strstr", "mb_strtolower", "mb_strtoupper", "mb_strwidth", "mb_substitute_character", "mb_substr_count", "mb_substr"] + b["Mcrypt"] = Set.new ["mcrypt_cbc", "mcrypt_cfb", "mcrypt_create_iv", "mcrypt_decrypt", "mcrypt_ecb", "mcrypt_enc_get_algorithms_name", "mcrypt_enc_get_block_size", "mcrypt_enc_get_iv_size", "mcrypt_enc_get_key_size", "mcrypt_enc_get_modes_name", "mcrypt_enc_get_supported_key_sizes", "mcrypt_enc_is_block_algorithm_mode", "mcrypt_enc_is_block_algorithm", "mcrypt_enc_is_block_mode", "mcrypt_enc_self_test", "mcrypt_encrypt", "mcrypt_generic_deinit", "mcrypt_generic_end", "mcrypt_generic_init", "mcrypt_generic", "mcrypt_get_block_size", "mcrypt_get_cipher_name", "mcrypt_get_iv_size", "mcrypt_get_key_size", "mcrypt_list_algorithms", "mcrypt_list_modes", "mcrypt_module_close", "mcrypt_module_get_algo_block_size", "mcrypt_module_get_algo_key_size", "mcrypt_module_get_supported_key_sizes", "mcrypt_module_is_block_algorithm_mode", "mcrypt_module_is_block_algorithm", "mcrypt_module_is_block_mode", "mcrypt_module_open", "mcrypt_module_self_test", "mcrypt_ofb", "mdecrypt_generic"] + b["MCVE"] = Set.new ["m_checkstatus", "m_completeauthorizations", "m_connect", "m_connectionerror", "m_deletetrans", "m_destroyconn", "m_destroyengine", "m_getcell", "m_getcellbynum", "m_getcommadelimited", "m_getheader", "m_initconn", "m_initengine", "m_iscommadelimited", "m_maxconntimeout", "m_monitor", "m_numcolumns", "m_numrows", "m_parsecommadelimited", "m_responsekeys", "m_responseparam", "m_returnstatus", "m_setblocking", "m_setdropfile", "m_setip", "m_setssl_cafile", "m_setssl_files", "m_setssl", "m_settimeout", "m_sslcert_gen_hash", "m_transactionssent", "m_transinqueue", "m_transkeyval", "m_transnew", "m_transsend", "m_uwait", "m_validateidentifier", "m_verifyconnection", "m_verifysslcert"] + b["Memcache"] = Set.new ["memcache_debug"] + b["Mhash"] = Set.new ["mhash_count", "mhash_get_block_size", "mhash_get_hash_name", "mhash_keygen_s2k", "mhash"] + b["Ming"] = Set.new ["ming_keypress", "ming_setcubicthreshold", "ming_setscale", "ming_setswfcompression", "ming_useconstants", "ming_useswfversion"] + b["Misc."] = Set.new ["connection_aborted", "connection_status", "constant", "define", "defined", "die", "eval", "exit", "get_browser", "__halt_compiler", "highlight_file", "highlight_string", "hrtime", "ignore_user_abort", "pack", "php_check_syntax", "php_strip_whitespace", "sapi_windows_cp_conv", "sapi_windows_cp_get", "sapi_windows_cp_is_utf8", "sapi_windows_cp_set", "sapi_windows_generate_ctrl_event", "sapi_windows_set_ctrl_handler", "sapi_windows_vt100_support", "show_source", "sleep", "sys_getloadavg", "time_nanosleep", "time_sleep_until", "uniqid", "unpack", "usleep"] + b["mnoGoSearch"] = Set.new ["udm_add_search_limit", "udm_alloc_agent_array", "udm_alloc_agent", "udm_api_version", "udm_cat_list", "udm_cat_path", "udm_check_charset", "udm_clear_search_limits", "udm_crc32", "udm_errno", "udm_error", "udm_find", "udm_free_agent", "udm_free_ispell_data", "udm_free_res", "udm_get_doc_count", "udm_get_res_field", "udm_get_res_param", "udm_hash32", "udm_load_ispell_data", "udm_set_agent_param"] + b["Mongo"] = Set.new ["bson_decode", "bson_encode"] + b["mqseries"] = Set.new ["mqseries_back", "mqseries_begin", "mqseries_close", "mqseries_cmit", "mqseries_conn", "mqseries_connx", "mqseries_disc", "mqseries_get", "mqseries_inq", "mqseries_open", "mqseries_put1", "mqseries_put", "mqseries_set", "mqseries_strerror"] + b["Msession"] = Set.new ["msession_connect", "msession_count", "msession_create", "msession_destroy", "msession_disconnect", "msession_find", "msession_get_array", "msession_get_data", "msession_get", "msession_inc", "msession_list", "msession_listvar", "msession_lock", "msession_plugin", "msession_randstr", "msession_set_array", "msession_set_data", "msession_set", "msession_timeout", "msession_uniq", "msession_unlock"] + b["mSQL"] = Set.new ["msql_affected_rows", "msql_close", "msql_connect", "msql_create_db", "msql_createdb", "msql_data_seek", "msql_db_query", "msql_dbname", "msql_drop_db", "msql_error", "msql_fetch_array", "msql_fetch_field", "msql_fetch_object", "msql_fetch_row", "msql_field_flags", "msql_field_len", "msql_field_name", "msql_field_seek", "msql_field_table", "msql_field_type", "msql_fieldflags", "msql_fieldlen", "msql_fieldname", "msql_fieldtable", "msql_fieldtype", "msql_free_result", "msql_list_dbs", "msql_list_fields", "msql_list_tables", "msql_num_fields", "msql_num_rows", "msql_numfields", "msql_numrows", "msql_pconnect", "msql_query", "msql_regcase", "msql_result", "msql_select_db", "msql_tablename", "msql"] + b["Mssql"] = Set.new ["mssql_bind", "mssql_close", "mssql_connect", "mssql_data_seek", "mssql_execute", "mssql_fetch_array", "mssql_fetch_assoc", "mssql_fetch_batch", "mssql_fetch_field", "mssql_fetch_object", "mssql_fetch_row", "mssql_field_length", "mssql_field_name", "mssql_field_seek", "mssql_field_type", "mssql_free_result", "mssql_free_statement", "mssql_get_last_message", "mssql_guid_string", "mssql_init", "mssql_min_error_severity", "mssql_min_message_severity", "mssql_next_result", "mssql_num_fields", "mssql_num_rows", "mssql_pconnect", "mssql_query", "mssql_result", "mssql_rows_affected", "mssql_select_db"] + b["Mysql_xdevapi"] = Set.new ["expression", "getSession"] + b["MySQL"] = Set.new ["mysql_affected_rows", "mysql_client_encoding", "mysql_close", "mysql_connect", "mysql_create_db", "mysql_data_seek", "mysql_db_name", "mysql_db_query", "mysql_drop_db", "mysql_errno", "mysql_error", "mysql_escape_string", "mysql_fetch_array", "mysql_fetch_assoc", "mysql_fetch_field", "mysql_fetch_lengths", "mysql_fetch_object", "mysql_fetch_row", "mysql_field_flags", "mysql_field_len", "mysql_field_name", "mysql_field_seek", "mysql_field_table", "mysql_field_type", "mysql_free_result", "mysql_get_client_info", "mysql_get_host_info", "mysql_get_proto_info", "mysql_get_server_info", "mysql_info", "mysql_insert_id", "mysql_list_dbs", "mysql_list_fields", "mysql_list_processes", "mysql_list_tables", "mysql_num_fields", "mysql_num_rows", "mysql_pconnect", "mysql_ping", "mysql_query", "mysql_real_escape_string", "mysql_result", "mysql_select_db", "mysql_set_charset", "mysql_stat", "mysql_tablename", "mysql_thread_id", "mysql_unbuffered_query"] + b["Aliases and deprecated Mysqli"] = Set.new ["mysqli_bind_param", "mysqli_bind_result", "mysqli_client_encoding", "mysqli_connect", "mysqli_disable_rpl_parse", "mysqli_enable_reads_from_master", "mysqli_enable_rpl_parse", "mysqli_escape_string", "mysqli_execute", "mysqli_fetch", "mysqli_get_cache_stats", "mysqli_get_client_stats", "mysqli_get_links_stats", "mysqli_get_metadata", "mysqli_master_query", "mysqli_param_count", "mysqli_report", "mysqli_rpl_parse_enabled", "mysqli_rpl_probe", "mysqli_send_long_data", "mysqli_slave_query"] + b["Mysqlnd_memcache"] = Set.new ["mysqlnd_memcache_get_config", "mysqlnd_memcache_set"] + b["Mysqlnd_ms"] = Set.new ["mysqlnd_ms_dump_servers", "mysqlnd_ms_fabric_select_global", "mysqlnd_ms_fabric_select_shard", "mysqlnd_ms_get_last_gtid", "mysqlnd_ms_get_last_used_connection", "mysqlnd_ms_get_stats", "mysqlnd_ms_match_wild", "mysqlnd_ms_query_is_select", "mysqlnd_ms_set_qos", "mysqlnd_ms_set_user_pick_server", "mysqlnd_ms_xa_begin", "mysqlnd_ms_xa_commit", "mysqlnd_ms_xa_gc", "mysqlnd_ms_xa_rollback"] + b["mysqlnd_qc"] = Set.new ["mysqlnd_qc_clear_cache", "mysqlnd_qc_get_available_handlers", "mysqlnd_qc_get_cache_info", "mysqlnd_qc_get_core_stats", "mysqlnd_qc_get_normalized_query_trace_log", "mysqlnd_qc_get_query_trace_log", "mysqlnd_qc_set_cache_condition", "mysqlnd_qc_set_is_select", "mysqlnd_qc_set_storage_handler", "mysqlnd_qc_set_user_handlers"] + b["Mysqlnd_uh"] = Set.new ["mysqlnd_uh_convert_to_mysqlnd", "mysqlnd_uh_set_connection_proxy", "mysqlnd_uh_set_statement_proxy"] + b["Ncurses"] = Set.new ["ncurses_addch", "ncurses_addchnstr", "ncurses_addchstr", "ncurses_addnstr", "ncurses_addstr", "ncurses_assume_default_colors", "ncurses_attroff", "ncurses_attron", "ncurses_attrset", "ncurses_baudrate", "ncurses_beep", "ncurses_bkgd", "ncurses_bkgdset", "ncurses_border", "ncurses_bottom_panel", "ncurses_can_change_color", "ncurses_cbreak", "ncurses_clear", "ncurses_clrtobot", "ncurses_clrtoeol", "ncurses_color_content", "ncurses_color_set", "ncurses_curs_set", "ncurses_def_prog_mode", "ncurses_def_shell_mode", "ncurses_define_key", "ncurses_del_panel", "ncurses_delay_output", "ncurses_delch", "ncurses_deleteln", "ncurses_delwin", "ncurses_doupdate", "ncurses_echo", "ncurses_echochar", "ncurses_end", "ncurses_erase", "ncurses_erasechar", "ncurses_filter", "ncurses_flash", "ncurses_flushinp", "ncurses_getch", "ncurses_getmaxyx", "ncurses_getmouse", "ncurses_getyx", "ncurses_halfdelay", "ncurses_has_colors", "ncurses_has_ic", "ncurses_has_il", "ncurses_has_key", "ncurses_hide_panel", "ncurses_hline", "ncurses_inch", "ncurses_init_color", "ncurses_init_pair", "ncurses_init", "ncurses_insch", "ncurses_insdelln", "ncurses_insertln", "ncurses_insstr", "ncurses_instr", "ncurses_isendwin", "ncurses_keyok", "ncurses_keypad", "ncurses_killchar", "ncurses_longname", "ncurses_meta", "ncurses_mouse_trafo", "ncurses_mouseinterval", "ncurses_mousemask", "ncurses_move_panel", "ncurses_move", "ncurses_mvaddch", "ncurses_mvaddchnstr", "ncurses_mvaddchstr", "ncurses_mvaddnstr", "ncurses_mvaddstr", "ncurses_mvcur", "ncurses_mvdelch", "ncurses_mvgetch", "ncurses_mvhline", "ncurses_mvinch", "ncurses_mvvline", "ncurses_mvwaddstr", "ncurses_napms", "ncurses_new_panel", "ncurses_newpad", "ncurses_newwin", "ncurses_nl", "ncurses_nocbreak", "ncurses_noecho", "ncurses_nonl", "ncurses_noqiflush", "ncurses_noraw", "ncurses_pair_content", "ncurses_panel_above", "ncurses_panel_below", "ncurses_panel_window", "ncurses_pnoutrefresh", "ncurses_prefresh", "ncurses_putp", "ncurses_qiflush", "ncurses_raw", "ncurses_refresh", "ncurses_replace_panel", "ncurses_reset_prog_mode", "ncurses_reset_shell_mode", "ncurses_resetty", "ncurses_savetty", "ncurses_scr_dump", "ncurses_scr_init", "ncurses_scr_restore", "ncurses_scr_set", "ncurses_scrl", "ncurses_show_panel", "ncurses_slk_attr", "ncurses_slk_attroff", "ncurses_slk_attron", "ncurses_slk_attrset", "ncurses_slk_clear", "ncurses_slk_color", "ncurses_slk_init", "ncurses_slk_noutrefresh", "ncurses_slk_refresh", "ncurses_slk_restore", "ncurses_slk_set", "ncurses_slk_touch", "ncurses_standend", "ncurses_standout", "ncurses_start_color", "ncurses_termattrs", "ncurses_termname", "ncurses_timeout", "ncurses_top_panel", "ncurses_typeahead", "ncurses_ungetch", "ncurses_ungetmouse", "ncurses_update_panels", "ncurses_use_default_colors", "ncurses_use_env", "ncurses_use_extended_names", "ncurses_vidattr", "ncurses_vline", "ncurses_waddch", "ncurses_waddstr", "ncurses_wattroff", "ncurses_wattron", "ncurses_wattrset", "ncurses_wborder", "ncurses_wclear", "ncurses_wcolor_set", "ncurses_werase", "ncurses_wgetch", "ncurses_whline", "ncurses_wmouse_trafo", "ncurses_wmove", "ncurses_wnoutrefresh", "ncurses_wrefresh", "ncurses_wstandend", "ncurses_wstandout", "ncurses_wvline"] + b["Gopher"] = Set.new ["gopher_parsedir"] + b["Network"] = Set.new ["checkdnsrr", "closelog", "define_syslog_variables", "dns_check_record", "dns_get_mx", "dns_get_record", "fsockopen", "gethostbyaddr", "gethostbyname", "gethostbynamel", "gethostname", "getmxrr", "getprotobyname", "getprotobynumber", "getservbyname", "getservbyport", "header_register_callback", "header_remove", "header", "headers_list", "headers_sent", "http_response_code", "inet_ntop", "inet_pton", "ip2long", "long2ip", "openlog", "pfsockopen", "setcookie", "setrawcookie", "socket_get_status", "socket_set_blocking", "socket_set_timeout", "syslog"] + b["Newt"] = Set.new ["newt_bell", "newt_button_bar", "newt_button", "newt_centered_window", "newt_checkbox_get_value", "newt_checkbox_set_flags", "newt_checkbox_set_value", "newt_checkbox_tree_add_item", "newt_checkbox_tree_find_item", "newt_checkbox_tree_get_current", "newt_checkbox_tree_get_entry_value", "newt_checkbox_tree_get_multi_selection", "newt_checkbox_tree_get_selection", "newt_checkbox_tree_multi", "newt_checkbox_tree_set_current", "newt_checkbox_tree_set_entry_value", "newt_checkbox_tree_set_entry", "newt_checkbox_tree_set_width", "newt_checkbox_tree", "newt_checkbox", "newt_clear_key_buffer", "newt_cls", "newt_compact_button", "newt_component_add_callback", "newt_component_takes_focus", "newt_create_grid", "newt_cursor_off", "newt_cursor_on", "newt_delay", "newt_draw_form", "newt_draw_root_text", "newt_entry_get_value", "newt_entry_set_filter", "newt_entry_set_flags", "newt_entry_set", "newt_entry", "newt_finished", "newt_form_add_component", "newt_form_add_components", "newt_form_add_hot_key", "newt_form_destroy", "newt_form_get_current", "newt_form_run", "newt_form_set_background", "newt_form_set_height", "newt_form_set_size", "newt_form_set_timer", "newt_form_set_width", "newt_form_watch_fd", "newt_form", "newt_get_screen_size", "newt_grid_add_components_to_form", "newt_grid_basic_window", "newt_grid_free", "newt_grid_get_size", "newt_grid_h_close_stacked", "newt_grid_h_stacked", "newt_grid_place", "newt_grid_set_field", "newt_grid_simple_window", "newt_grid_v_close_stacked", "newt_grid_v_stacked", "newt_grid_wrapped_window_at", "newt_grid_wrapped_window", "newt_init", "newt_label_set_text", "newt_label", "newt_listbox_append_entry", "newt_listbox_clear_selection", "newt_listbox_clear", "newt_listbox_delete_entry", "newt_listbox_get_current", "newt_listbox_get_selection", "newt_listbox_insert_entry", "newt_listbox_item_count", "newt_listbox_select_item", "newt_listbox_set_current_by_key", "newt_listbox_set_current", "newt_listbox_set_data", "newt_listbox_set_entry", "newt_listbox_set_width", "newt_listbox", "newt_listitem_get_data", "newt_listitem_set", "newt_listitem", "newt_open_window", "newt_pop_help_line", "newt_pop_window", "newt_push_help_line", "newt_radio_get_current", "newt_radiobutton", "newt_redraw_help_line", "newt_reflow_text", "newt_refresh", "newt_resize_screen", "newt_resume", "newt_run_form", "newt_scale_set", "newt_scale", "newt_scrollbar_set", "newt_set_help_callback", "newt_set_suspend_callback", "newt_suspend", "newt_textbox_get_num_lines", "newt_textbox_reflowed", "newt_textbox_set_height", "newt_textbox_set_text", "newt_textbox", "newt_vertical_scrollbar", "newt_wait_for_key", "newt_win_choice", "newt_win_entries", "newt_win_menu", "newt_win_message", "newt_win_messagev", "newt_win_ternary"] + b["YP/NIS"] = Set.new ["yp_all", "yp_cat", "yp_err_string", "yp_errno", "yp_first", "yp_get_default_domain", "yp_master", "yp_match", "yp_next", "yp_order"] + b["NSAPI"] = Set.new ["nsapi_request_headers", "nsapi_response_headers", "nsapi_virtual"] + b["OAuth"] = Set.new ["oauth_get_sbs", "oauth_urlencode"] + b["OCI8"] = Set.new ["oci_bind_array_by_name", "oci_bind_by_name", "oci_cancel", "oci_client_version", "oci_close", "oci_commit", "oci_connect", "oci_define_by_name", "oci_error", "oci_execute", "oci_fetch_all", "oci_fetch_array", "oci_fetch_assoc", "oci_fetch_object", "oci_fetch_row", "oci_fetch", "oci_field_is_null", "oci_field_name", "oci_field_precision", "oci_field_scale", "oci_field_size", "oci_field_type_raw", "oci_field_type", "oci_free_descriptor", "oci_free_statement", "oci_get_implicit_resultset", "oci_internal_debug", "oci_lob_copy", "oci_lob_is_equal", "oci_new_collection", "oci_new_connect", "oci_new_cursor", "oci_new_descriptor", "oci_num_fields", "oci_num_rows", "oci_parse", "oci_password_change", "oci_pconnect", "oci_register_taf_callback", "oci_result", "oci_rollback", "oci_server_version", "oci_set_action", "oci_set_call_timeout", "oci_set_client_identifier", "oci_set_client_info", "oci_set_db_operation", "oci_set_edition", "oci_set_module_name", "oci_set_prefetch", "oci_statement_type", "oci_unregister_taf_callback"] + b["OPcache"] = Set.new ["opcache_compile_file", "opcache_get_configuration", "opcache_get_status", "opcache_invalidate", "opcache_is_script_cached", "opcache_reset"] + b["OpenAL"] = Set.new ["openal_buffer_create", "openal_buffer_data", "openal_buffer_destroy", "openal_buffer_get", "openal_buffer_loadwav", "openal_context_create", "openal_context_current", "openal_context_destroy", "openal_context_process", "openal_context_suspend", "openal_device_close", "openal_device_open", "openal_listener_get", "openal_listener_set", "openal_source_create", "openal_source_destroy", "openal_source_get", "openal_source_pause", "openal_source_play", "openal_source_rewind", "openal_source_set", "openal_source_stop", "openal_stream"] + b["OpenSSL"] = Set.new ["openssl_cipher_iv_length", "openssl_csr_export_to_file", "openssl_csr_export", "openssl_csr_get_public_key", "openssl_csr_get_subject", "openssl_csr_new", "openssl_csr_sign", "openssl_decrypt", "openssl_dh_compute_key", "openssl_digest", "openssl_encrypt", "openssl_error_string", "openssl_free_key", "openssl_get_cert_locations", "openssl_get_cipher_methods", "openssl_get_curve_names", "openssl_get_md_methods", "openssl_get_privatekey", "openssl_get_publickey", "openssl_open", "openssl_pbkdf2", "openssl_pkcs12_export_to_file", "openssl_pkcs12_export", "openssl_pkcs12_read", "openssl_pkcs7_decrypt", "openssl_pkcs7_encrypt", "openssl_pkcs7_read", "openssl_pkcs7_sign", "openssl_pkcs7_verify", "openssl_pkey_export_to_file", "openssl_pkey_export", "openssl_pkey_free", "openssl_pkey_get_details", "openssl_pkey_get_private", "openssl_pkey_get_public", "openssl_pkey_new", "openssl_private_decrypt", "openssl_private_encrypt", "openssl_public_decrypt", "openssl_public_encrypt", "openssl_random_pseudo_bytes", "openssl_seal", "openssl_sign", "openssl_spki_export_challenge", "openssl_spki_export", "openssl_spki_new", "openssl_spki_verify", "openssl_verify", "openssl_x509_check_private_key", "openssl_x509_checkpurpose", "openssl_x509_export_to_file", "openssl_x509_export", "openssl_x509_fingerprint", "openssl_x509_free", "openssl_x509_parse", "openssl_x509_read", "openssl_x509_verify"] + b["Output Control"] = Set.new ["flush", "ob_clean", "ob_end_clean", "ob_end_flush", "ob_flush", "ob_get_clean", "ob_get_contents", "ob_get_flush", "ob_get_length", "ob_get_level", "ob_get_status", "ob_gzhandler", "ob_implicit_flush", "ob_list_handlers", "ob_start", "output_add_rewrite_var", "output_reset_rewrite_vars"] + b["Paradox"] = Set.new ["px_close", "px_create_fp", "px_date2string", "px_delete_record", "px_delete", "px_get_field", "px_get_info", "px_get_parameter", "px_get_record", "px_get_schema", "px_get_value", "px_insert_record", "px_new", "px_numfields", "px_numrecords", "px_open_fp", "px_put_record", "px_retrieve_record", "px_set_blob_file", "px_set_parameter", "px_set_tablename", "px_set_targetencoding", "px_set_value", "px_timestamp2string", "px_update_record"] + b["Parsekit"] = Set.new ["parsekit_compile_file", "parsekit_compile_string", "parsekit_func_arginfo"] + b["Password Hashing"] = Set.new ["password_get_info", "password_hash", "password_needs_rehash", "password_verify"] + b["PCNTL"] = Set.new ["pcntl_alarm", "pcntl_async_signals", "pcntl_errno", "pcntl_exec", "pcntl_fork", "pcntl_get_last_error", "pcntl_getpriority", "pcntl_setpriority", "pcntl_signal_dispatch", "pcntl_signal_get_handler", "pcntl_signal", "pcntl_sigprocmask", "pcntl_sigtimedwait", "pcntl_sigwaitinfo", "pcntl_strerror", "pcntl_wait", "pcntl_waitpid", "pcntl_wexitstatus", "pcntl_wifexited", "pcntl_wifsignaled", "pcntl_wifstopped", "pcntl_wstopsig", "pcntl_wtermsig"] + b["PCRE"] = Set.new ["preg_filter", "preg_grep", "preg_last_error", "preg_match_all", "preg_match", "preg_quote", "preg_replace_callback_array", "preg_replace_callback", "preg_replace", "preg_split"] + b["PDF"] = Set.new ["PDF_activate_item", "PDF_add_annotation", "PDF_add_bookmark", "PDF_add_launchlink", "PDF_add_locallink", "PDF_add_nameddest", "PDF_add_note", "PDF_add_outline", "PDF_add_pdflink", "PDF_add_table_cell", "PDF_add_textflow", "PDF_add_thumbnail", "PDF_add_weblink", "PDF_arc", "PDF_arcn", "PDF_attach_file", "PDF_begin_document", "PDF_begin_font", "PDF_begin_glyph", "PDF_begin_item", "PDF_begin_layer", "PDF_begin_page_ext", "PDF_begin_page", "PDF_begin_pattern", "PDF_begin_template_ext", "PDF_begin_template", "PDF_circle", "PDF_clip", "PDF_close_image", "PDF_close_pdi_page", "PDF_close_pdi", "PDF_close", "PDF_closepath_fill_stroke", "PDF_closepath_stroke", "PDF_closepath", "PDF_concat", "PDF_continue_text", "PDF_create_3dview", "PDF_create_action", "PDF_create_annotation", "PDF_create_bookmark", "PDF_create_field", "PDF_create_fieldgroup", "PDF_create_gstate", "PDF_create_pvf", "PDF_create_textflow", "PDF_curveto", "PDF_define_layer", "PDF_delete_pvf", "PDF_delete_table", "PDF_delete_textflow", "PDF_delete", "PDF_encoding_set_char", "PDF_end_document", "PDF_end_font", "PDF_end_glyph", "PDF_end_item", "PDF_end_layer", "PDF_end_page_ext", "PDF_end_page", "PDF_end_pattern", "PDF_end_template", "PDF_endpath", "PDF_fill_imageblock", "PDF_fill_pdfblock", "PDF_fill_stroke", "PDF_fill_textblock", "PDF_fill", "PDF_findfont", "PDF_fit_image", "PDF_fit_pdi_page", "PDF_fit_table", "PDF_fit_textflow", "PDF_fit_textline", "PDF_get_apiname", "PDF_get_buffer", "PDF_get_errmsg", "PDF_get_errnum", "PDF_get_font", "PDF_get_fontname", "PDF_get_fontsize", "PDF_get_image_height", "PDF_get_image_width", "PDF_get_majorversion", "PDF_get_minorversion", "PDF_get_parameter", "PDF_get_pdi_parameter", "PDF_get_pdi_value", "PDF_get_value", "PDF_info_font", "PDF_info_matchbox", "PDF_info_table", "PDF_info_textflow", "PDF_info_textline", "PDF_initgraphics", "PDF_lineto", "PDF_load_3ddata", "PDF_load_font", "PDF_load_iccprofile", "PDF_load_image", "PDF_makespotcolor", "PDF_moveto", "PDF_new", "PDF_open_ccitt", "PDF_open_file", "PDF_open_gif", "PDF_open_image_file", "PDF_open_image", "PDF_open_jpeg", "PDF_open_memory_image", "PDF_open_pdi_document", "PDF_open_pdi_page", "PDF_open_pdi", "PDF_open_tiff", "PDF_pcos_get_number", "PDF_pcos_get_stream", "PDF_pcos_get_string", "PDF_place_image", "PDF_place_pdi_page", "PDF_process_pdi", "PDF_rect", "PDF_restore", "PDF_resume_page", "PDF_rotate", "PDF_save", "PDF_scale", "PDF_set_border_color", "PDF_set_border_dash", "PDF_set_border_style", "PDF_set_char_spacing", "PDF_set_duration", "PDF_set_gstate", "PDF_set_horiz_scaling", "PDF_set_info_author", "PDF_set_info_creator", "PDF_set_info_keywords", "PDF_set_info_subject", "PDF_set_info_title", "PDF_set_info", "PDF_set_layer_dependency", "PDF_set_leading", "PDF_set_parameter", "PDF_set_text_matrix", "PDF_set_text_pos", "PDF_set_text_rendering", "PDF_set_text_rise", "PDF_set_value", "PDF_set_word_spacing", "PDF_setcolor", "PDF_setdash", "PDF_setdashpattern", "PDF_setflat", "PDF_setfont", "PDF_setgray_fill", "PDF_setgray_stroke", "PDF_setgray", "PDF_setlinecap", "PDF_setlinejoin", "PDF_setlinewidth", "PDF_setmatrix", "PDF_setmiterlimit", "PDF_setpolydash", "PDF_setrgbcolor_fill", "PDF_setrgbcolor_stroke", "PDF_setrgbcolor", "PDF_shading_pattern", "PDF_shading", "PDF_shfill", "PDF_show_boxed", "PDF_show_xy", "PDF_show", "PDF_skew", "PDF_stringwidth", "PDF_stroke", "PDF_suspend_page", "PDF_translate", "PDF_utf16_to_utf8", "PDF_utf32_to_utf16", "PDF_utf8_to_utf16"] + b["PostgreSQL"] = Set.new ["pg_affected_rows", "pg_cancel_query", "pg_client_encoding", "pg_close", "pg_connect_poll", "pg_connect", "pg_connection_busy", "pg_connection_reset", "pg_connection_status", "pg_consume_input", "pg_convert", "pg_copy_from", "pg_copy_to", "pg_dbname", "pg_delete", "pg_end_copy", "pg_escape_bytea", "pg_escape_identifier", "pg_escape_literal", "pg_escape_string", "pg_execute", "pg_fetch_all_columns", "pg_fetch_all", "pg_fetch_array", "pg_fetch_assoc", "pg_fetch_object", "pg_fetch_result", "pg_fetch_row", "pg_field_is_null", "pg_field_name", "pg_field_num", "pg_field_prtlen", "pg_field_size", "pg_field_table", "pg_field_type_oid", "pg_field_type", "pg_flush", "pg_free_result", "pg_get_notify", "pg_get_pid", "pg_get_result", "pg_host", "pg_insert", "pg_last_error", "pg_last_notice", "pg_last_oid", "pg_lo_close", "pg_lo_create", "pg_lo_export", "pg_lo_import", "pg_lo_open", "pg_lo_read_all", "pg_lo_read", "pg_lo_seek", "pg_lo_tell", "pg_lo_truncate", "pg_lo_unlink", "pg_lo_write", "pg_meta_data", "pg_num_fields", "pg_num_rows", "pg_options", "pg_parameter_status", "pg_pconnect", "pg_ping", "pg_port", "pg_prepare", "pg_put_line", "pg_query_params", "pg_query", "pg_result_error_field", "pg_result_error", "pg_result_seek", "pg_result_status", "pg_select", "pg_send_execute", "pg_send_prepare", "pg_send_query_params", "pg_send_query", "pg_set_client_encoding", "pg_set_error_verbosity", "pg_socket", "pg_trace", "pg_transaction_status", "pg_tty", "pg_unescape_bytea", "pg_untrace", "pg_update", "pg_version"] + b["phpdbg"] = Set.new ["phpdbg_break_file", "phpdbg_break_function", "phpdbg_break_method", "phpdbg_break_next", "phpdbg_clear", "phpdbg_color", "phpdbg_end_oplog", "phpdbg_exec", "phpdbg_get_executable", "phpdbg_prompt", "phpdbg_start_oplog"] + b["POSIX"] = Set.new ["posix_access", "posix_ctermid", "posix_errno", "posix_get_last_error", "posix_getcwd", "posix_getegid", "posix_geteuid", "posix_getgid", "posix_getgrgid", "posix_getgrnam", "posix_getgroups", "posix_getlogin", "posix_getpgid", "posix_getpgrp", "posix_getpid", "posix_getppid", "posix_getpwnam", "posix_getpwuid", "posix_getrlimit", "posix_getsid", "posix_getuid", "posix_initgroups", "posix_isatty", "posix_kill", "posix_mkfifo", "posix_mknod", "posix_setegid", "posix_seteuid", "posix_setgid", "posix_setpgid", "posix_setrlimit", "posix_setsid", "posix_setuid", "posix_strerror", "posix_times", "posix_ttyname", "posix_uname"] + b["Proctitle"] = Set.new ["setproctitle", "setthreadtitle"] + b["PS"] = Set.new ["ps_add_bookmark", "ps_add_launchlink", "ps_add_locallink", "ps_add_note", "ps_add_pdflink", "ps_add_weblink", "ps_arc", "ps_arcn", "ps_begin_page", "ps_begin_pattern", "ps_begin_template", "ps_circle", "ps_clip", "ps_close_image", "ps_close", "ps_closepath_stroke", "ps_closepath", "ps_continue_text", "ps_curveto", "ps_delete", "ps_end_page", "ps_end_pattern", "ps_end_template", "ps_fill_stroke", "ps_fill", "ps_findfont", "ps_get_buffer", "ps_get_parameter", "ps_get_value", "ps_hyphenate", "ps_include_file", "ps_lineto", "ps_makespotcolor", "ps_moveto", "ps_new", "ps_open_file", "ps_open_image_file", "ps_open_image", "ps_open_memory_image", "ps_place_image", "ps_rect", "ps_restore", "ps_rotate", "ps_save", "ps_scale", "ps_set_border_color", "ps_set_border_dash", "ps_set_border_style", "ps_set_info", "ps_set_parameter", "ps_set_text_pos", "ps_set_value", "ps_setcolor", "ps_setdash", "ps_setflat", "ps_setfont", "ps_setgray", "ps_setlinecap", "ps_setlinejoin", "ps_setlinewidth", "ps_setmiterlimit", "ps_setoverprintmode", "ps_setpolydash", "ps_shading_pattern", "ps_shading", "ps_shfill", "ps_show_boxed", "ps_show_xy2", "ps_show_xy", "ps_show2", "ps_show", "ps_string_geometry", "ps_stringwidth", "ps_stroke", "ps_symbol_name", "ps_symbol_width", "ps_symbol", "ps_translate"] + b["Pspell"] = Set.new ["pspell_add_to_personal", "pspell_add_to_session", "pspell_check", "pspell_clear_session", "pspell_config_create", "pspell_config_data_dir", "pspell_config_dict_dir", "pspell_config_ignore", "pspell_config_mode", "pspell_config_personal", "pspell_config_repl", "pspell_config_runtogether", "pspell_config_save_repl", "pspell_new_config", "pspell_new_personal", "pspell_new", "pspell_save_wordlist", "pspell_store_replacement", "pspell_suggest"] + b["Radius"] = Set.new ["radius_acct_open", "radius_add_server", "radius_auth_open", "radius_close", "radius_config", "radius_create_request", "radius_cvt_addr", "radius_cvt_int", "radius_cvt_string", "radius_demangle_mppe_key", "radius_demangle", "radius_get_attr", "radius_get_tagged_attr_data", "radius_get_tagged_attr_tag", "radius_get_vendor_attr", "radius_put_addr", "radius_put_attr", "radius_put_int", "radius_put_string", "radius_put_vendor_addr", "radius_put_vendor_attr", "radius_put_vendor_int", "radius_put_vendor_string", "radius_request_authenticator", "radius_salt_encrypt_attr", "radius_send_request", "radius_server_secret", "radius_strerror"] + b["Rar"] = Set.new ["rar_wrapper_cache_stats"] + b["Readline"] = Set.new ["readline_add_history", "readline_callback_handler_install", "readline_callback_handler_remove", "readline_callback_read_char", "readline_clear_history", "readline_completion_function", "readline_info", "readline_list_history", "readline_on_new_line", "readline_read_history", "readline_redisplay", "readline_write_history", "readline"] + b["Recode"] = Set.new ["recode_file", "recode_string", "recode"] + b["POSIX Regex"] = Set.new ["ereg_replace", "ereg", "eregi_replace", "eregi", "split", "spliti", "sql_regcase"] + b["RpmInfo"] = Set.new ["rpmaddtag", "rpmdbinfo", "rpmdbsearch", "rpminfo", "rpmvercmp"] + b["RPM Reader"] = Set.new ["rpm_close", "rpm_get_tag", "rpm_is_valid", "rpm_open", "rpm_version"] + b["RRD"] = Set.new ["rrd_create", "rrd_error", "rrd_fetch", "rrd_first", "rrd_graph", "rrd_info", "rrd_last", "rrd_lastupdate", "rrd_restore", "rrd_tune", "rrd_update", "rrd_version", "rrd_xport", "rrdc_disconnect"] + b["runkit"] = Set.new ["runkit_class_adopt", "runkit_class_emancipate", "runkit_constant_add", "runkit_constant_redefine", "runkit_constant_remove", "runkit_function_add", "runkit_function_copy", "runkit_function_redefine", "runkit_function_remove", "runkit_function_rename", "runkit_import", "runkit_lint_file", "runkit_lint", "runkit_method_add", "runkit_method_copy", "runkit_method_redefine", "runkit_method_remove", "runkit_method_rename", "runkit_return_value_used", "runkit_sandbox_output_handler", "runkit_superglobals"] + b["runkit7"] = Set.new ["runkit7_constant_add", "runkit7_constant_redefine", "runkit7_constant_remove", "runkit7_function_add", "runkit7_function_copy", "runkit7_function_redefine", "runkit7_function_remove", "runkit7_function_rename", "runkit7_import", "runkit7_method_add", "runkit7_method_copy", "runkit7_method_redefine", "runkit7_method_remove", "runkit7_method_rename", "runkit7_object_id", "runkit7_superglobals", "runkit7_zval_inspect"] + b["Scoutapm"] = Set.new ["scoutapm_get_calls", "scoutapm_list_instrumented_functions"] + b["Seaslog"] = Set.new ["seaslog_get_author", "seaslog_get_version"] + b["Semaphore"] = Set.new ["ftok", "msg_get_queue", "msg_queue_exists", "msg_receive", "msg_remove_queue", "msg_send", "msg_set_queue", "msg_stat_queue", "sem_acquire", "sem_get", "sem_release", "sem_remove", "shm_attach", "shm_detach", "shm_get_var", "shm_has_var", "shm_put_var", "shm_remove_var", "shm_remove"] + b["Session PgSQL"] = Set.new ["session_pgsql_add_error", "session_pgsql_get_error", "session_pgsql_get_field", "session_pgsql_reset", "session_pgsql_set_field", "session_pgsql_status"] + b["Session"] = Set.new ["session_abort", "session_cache_expire", "session_cache_limiter", "session_commit", "session_create_id", "session_decode", "session_destroy", "session_encode", "session_gc", "session_get_cookie_params", "session_id", "session_is_registered", "session_module_name", "session_name", "session_regenerate_id", "session_register_shutdown", "session_register", "session_reset", "session_save_path", "session_set_cookie_params", "session_set_save_handler", "session_start", "session_status", "session_unregister", "session_unset", "session_write_close"] + b["Shared Memory"] = Set.new ["shmop_close", "shmop_delete", "shmop_open", "shmop_read", "shmop_size", "shmop_write"] + b["SimpleXML"] = Set.new ["simplexml_import_dom", "simplexml_load_file", "simplexml_load_string"] + b["SNMP"] = Set.new ["snmp_get_quick_print", "snmp_get_valueretrieval", "snmp_read_mib", "snmp_set_enum_print", "snmp_set_oid_numeric_print", "snmp_set_oid_output_format", "snmp_set_quick_print", "snmp_set_valueretrieval", "snmp2_get", "snmp2_getnext", "snmp2_real_walk", "snmp2_set", "snmp2_walk", "snmp3_get", "snmp3_getnext", "snmp3_real_walk", "snmp3_set", "snmp3_walk", "snmpget", "snmpgetnext", "snmprealwalk", "snmpset", "snmpwalk", "snmpwalkoid"] + b["SOAP"] = Set.new ["is_soap_fault", "use_soap_error_handler"] + b["Socket"] = Set.new ["socket_accept", "socket_addrinfo_bind", "socket_addrinfo_connect", "socket_addrinfo_explain", "socket_addrinfo_lookup", "socket_bind", "socket_clear_error", "socket_close", "socket_cmsg_space", "socket_connect", "socket_create_listen", "socket_create_pair", "socket_create", "socket_export_stream", "socket_get_option", "socket_getopt", "socket_getpeername", "socket_getsockname", "socket_import_stream", "socket_last_error", "socket_listen", "socket_read", "socket_recv", "socket_recvfrom", "socket_recvmsg", "socket_select", "socket_send", "socket_sendmsg", "socket_sendto", "socket_set_block", "socket_set_nonblock", "socket_set_option", "socket_setopt", "socket_shutdown", "socket_strerror", "socket_write", "socket_wsaprotocol_info_export", "socket_wsaprotocol_info_import", "socket_wsaprotocol_info_release"] + b["Sodium"] = Set.new ["sodium_add", "sodium_base642bin", "sodium_bin2base64", "sodium_bin2hex", "sodium_compare", "sodium_crypto_aead_aes256gcm_decrypt", "sodium_crypto_aead_aes256gcm_encrypt", "sodium_crypto_aead_aes256gcm_is_available", "sodium_crypto_aead_aes256gcm_keygen", "sodium_crypto_aead_chacha20poly1305_decrypt", "sodium_crypto_aead_chacha20poly1305_encrypt", "sodium_crypto_aead_chacha20poly1305_ietf_decrypt", "sodium_crypto_aead_chacha20poly1305_ietf_encrypt", "sodium_crypto_aead_chacha20poly1305_ietf_keygen", "sodium_crypto_aead_chacha20poly1305_keygen", "sodium_crypto_aead_xchacha20poly1305_ietf_decrypt", "sodium_crypto_aead_xchacha20poly1305_ietf_encrypt", "sodium_crypto_aead_xchacha20poly1305_ietf_keygen", "sodium_crypto_auth_keygen", "sodium_crypto_auth_verify", "sodium_crypto_auth", "sodium_crypto_box_keypair_from_secretkey_and_publickey", "sodium_crypto_box_keypair", "sodium_crypto_box_open", "sodium_crypto_box_publickey_from_secretkey", "sodium_crypto_box_publickey", "sodium_crypto_box_seal_open", "sodium_crypto_box_seal", "sodium_crypto_box_secretkey", "sodium_crypto_box_seed_keypair", "sodium_crypto_box", "sodium_crypto_generichash_final", "sodium_crypto_generichash_init", "sodium_crypto_generichash_keygen", "sodium_crypto_generichash_update", "sodium_crypto_generichash", "sodium_crypto_kdf_derive_from_key", "sodium_crypto_kdf_keygen", "sodium_crypto_kx_client_session_keys", "sodium_crypto_kx_keypair", "sodium_crypto_kx_publickey", "sodium_crypto_kx_secretkey", "sodium_crypto_kx_seed_keypair", "sodium_crypto_kx_server_session_keys", "sodium_crypto_pwhash_scryptsalsa208sha256_str_verify", "sodium_crypto_pwhash_scryptsalsa208sha256_str", "sodium_crypto_pwhash_scryptsalsa208sha256", "sodium_crypto_pwhash_str_needs_rehash", "sodium_crypto_pwhash_str_verify", "sodium_crypto_pwhash_str", "sodium_crypto_pwhash", "sodium_crypto_scalarmult_base", "sodium_crypto_scalarmult", "sodium_crypto_secretbox_keygen", "sodium_crypto_secretbox_open", "sodium_crypto_secretbox", "sodium_crypto_secretstream_xchacha20poly1305_init_pull", "sodium_crypto_secretstream_xchacha20poly1305_init_push", "sodium_crypto_secretstream_xchacha20poly1305_keygen", "sodium_crypto_secretstream_xchacha20poly1305_pull", "sodium_crypto_secretstream_xchacha20poly1305_push", "sodium_crypto_secretstream_xchacha20poly1305_rekey", "sodium_crypto_shorthash_keygen", "sodium_crypto_shorthash", "sodium_crypto_sign_detached", "sodium_crypto_sign_ed25519_pk_to_curve25519", "sodium_crypto_sign_ed25519_sk_to_curve25519", "sodium_crypto_sign_keypair_from_secretkey_and_publickey", "sodium_crypto_sign_keypair", "sodium_crypto_sign_open", "sodium_crypto_sign_publickey_from_secretkey", "sodium_crypto_sign_publickey", "sodium_crypto_sign_secretkey", "sodium_crypto_sign_seed_keypair", "sodium_crypto_sign_verify_detached", "sodium_crypto_sign", "sodium_crypto_stream_keygen", "sodium_crypto_stream_xor", "sodium_crypto_stream", "sodium_hex2bin", "sodium_increment", "sodium_memcmp", "sodium_memzero", "sodium_pad", "sodium_unpad"] + b["Solr"] = Set.new ["solr_get_version"] + b["SPL"] = Set.new ["class_implements", "class_parents", "class_uses", "iterator_apply", "iterator_count", "iterator_to_array", "spl_autoload_call", "spl_autoload_extensions", "spl_autoload_functions", "spl_autoload_register", "spl_autoload_unregister", "spl_autoload", "spl_classes", "spl_object_hash", "spl_object_id"] + b["SQLite"] = Set.new ["sqlite_array_query", "sqlite_busy_timeout", "sqlite_changes", "sqlite_close", "sqlite_column", "sqlite_create_aggregate", "sqlite_create_function", "sqlite_current", "sqlite_error_string", "sqlite_escape_string", "sqlite_exec", "sqlite_factory", "sqlite_fetch_all", "sqlite_fetch_array", "sqlite_fetch_column_types", "sqlite_fetch_object", "sqlite_fetch_single", "sqlite_fetch_string", "sqlite_field_name", "sqlite_has_more", "sqlite_has_prev", "sqlite_key", "sqlite_last_error", "sqlite_last_insert_rowid", "sqlite_libencoding", "sqlite_libversion", "sqlite_next", "sqlite_num_fields", "sqlite_num_rows", "sqlite_open", "sqlite_popen", "sqlite_prev", "sqlite_query", "sqlite_rewind", "sqlite_seek", "sqlite_single_query", "sqlite_udf_decode_binary", "sqlite_udf_encode_binary", "sqlite_unbuffered_query", "sqlite_valid"] + b["SQLSRV"] = Set.new ["sqlsrv_begin_transaction", "sqlsrv_cancel", "sqlsrv_client_info", "sqlsrv_close", "sqlsrv_commit", "sqlsrv_configure", "sqlsrv_connect", "sqlsrv_errors", "sqlsrv_execute", "sqlsrv_fetch_array", "sqlsrv_fetch_object", "sqlsrv_fetch", "sqlsrv_field_metadata", "sqlsrv_free_stmt", "sqlsrv_get_config", "sqlsrv_get_field", "sqlsrv_has_rows", "sqlsrv_next_result", "sqlsrv_num_fields", "sqlsrv_num_rows", "sqlsrv_prepare", "sqlsrv_query", "sqlsrv_rollback", "sqlsrv_rows_affected", "sqlsrv_send_stream_data", "sqlsrv_server_info"] + b["ssdeep"] = Set.new ["ssdeep_fuzzy_compare", "ssdeep_fuzzy_hash_filename", "ssdeep_fuzzy_hash"] + b["SSH2"] = Set.new ["ssh2_auth_agent", "ssh2_auth_hostbased_file", "ssh2_auth_none", "ssh2_auth_password", "ssh2_auth_pubkey_file", "ssh2_connect", "ssh2_disconnect", "ssh2_exec", "ssh2_fetch_stream", "ssh2_fingerprint", "ssh2_methods_negotiated", "ssh2_publickey_add", "ssh2_publickey_init", "ssh2_publickey_list", "ssh2_publickey_remove", "ssh2_scp_recv", "ssh2_scp_send", "ssh2_sftp_chmod", "ssh2_sftp_lstat", "ssh2_sftp_mkdir", "ssh2_sftp_readlink", "ssh2_sftp_realpath", "ssh2_sftp_rename", "ssh2_sftp_rmdir", "ssh2_sftp_stat", "ssh2_sftp_symlink", "ssh2_sftp_unlink", "ssh2_sftp", "ssh2_shell", "ssh2_tunnel"] + b["Statistic"] = Set.new ["stats_absolute_deviation", "stats_cdf_beta", "stats_cdf_binomial", "stats_cdf_cauchy", "stats_cdf_chisquare", "stats_cdf_exponential", "stats_cdf_f", "stats_cdf_gamma", "stats_cdf_laplace", "stats_cdf_logistic", "stats_cdf_negative_binomial", "stats_cdf_noncentral_chisquare", "stats_cdf_noncentral_f", "stats_cdf_noncentral_t", "stats_cdf_normal", "stats_cdf_poisson", "stats_cdf_t", "stats_cdf_uniform", "stats_cdf_weibull", "stats_covariance", "stats_dens_beta", "stats_dens_cauchy", "stats_dens_chisquare", "stats_dens_exponential", "stats_dens_f", "stats_dens_gamma", "stats_dens_laplace", "stats_dens_logistic", "stats_dens_normal", "stats_dens_pmf_binomial", "stats_dens_pmf_hypergeometric", "stats_dens_pmf_negative_binomial", "stats_dens_pmf_poisson", "stats_dens_t", "stats_dens_uniform", "stats_dens_weibull", "stats_harmonic_mean", "stats_kurtosis", "stats_rand_gen_beta", "stats_rand_gen_chisquare", "stats_rand_gen_exponential", "stats_rand_gen_f", "stats_rand_gen_funiform", "stats_rand_gen_gamma", "stats_rand_gen_ibinomial_negative", "stats_rand_gen_ibinomial", "stats_rand_gen_int", "stats_rand_gen_ipoisson", "stats_rand_gen_iuniform", "stats_rand_gen_noncentral_chisquare", "stats_rand_gen_noncentral_f", "stats_rand_gen_noncentral_t", "stats_rand_gen_normal", "stats_rand_gen_t", "stats_rand_get_seeds", "stats_rand_phrase_to_seeds", "stats_rand_ranf", "stats_rand_setall", "stats_skew", "stats_standard_deviation", "stats_stat_binomial_coef", "stats_stat_correlation", "stats_stat_factorial", "stats_stat_independent_t", "stats_stat_innerproduct", "stats_stat_paired_t", "stats_stat_percentile", "stats_stat_powersum", "stats_variance"] + b["Stomp"] = Set.new ["stomp_connect_error", "stomp_version"] + b["Stream"] = Set.new ["set_socket_blocking", "stream_bucket_append", "stream_bucket_make_writeable", "stream_bucket_new", "stream_bucket_prepend", "stream_context_create", "stream_context_get_default", "stream_context_get_options", "stream_context_get_params", "stream_context_set_default", "stream_context_set_option", "stream_context_set_params", "stream_copy_to_stream", "stream_filter_append", "stream_filter_prepend", "stream_filter_register", "stream_filter_remove", "stream_get_contents", "stream_get_filters", "stream_get_line", "stream_get_meta_data", "stream_get_transports", "stream_get_wrappers", "stream_is_local", "stream_isatty", "stream_notification_callback", "stream_register_wrapper", "stream_resolve_include_path", "stream_select", "stream_set_blocking", "stream_set_chunk_size", "stream_set_read_buffer", "stream_set_timeout", "stream_set_write_buffer", "stream_socket_accept", "stream_socket_client", "stream_socket_enable_crypto", "stream_socket_get_name", "stream_socket_pair", "stream_socket_recvfrom", "stream_socket_sendto", "stream_socket_server", "stream_socket_shutdown", "stream_supports_lock", "stream_wrapper_register", "stream_wrapper_restore", "stream_wrapper_unregister"] + b["String"] = Set.new ["addcslashes", "addslashes", "bin2hex", "chop", "chr", "chunk_split", "convert_cyr_string", "convert_uudecode", "convert_uuencode", "count_chars", "crc32", "crypt", "echo", "explode", "fprintf", "get_html_translation_table", "hebrev", "hebrevc", "hex2bin", "html_entity_decode", "htmlentities", "htmlspecialchars_decode", "htmlspecialchars", "implode", "join", "lcfirst", "levenshtein", "localeconv", "ltrim", "md5_file", "md5", "metaphone", "money_format", "nl_langinfo", "nl2br", "number_format", "ord", "parse_str", "print", "printf", "quoted_printable_decode", "quoted_printable_encode", "quotemeta", "rtrim", "setlocale", "sha1_file", "sha1", "similar_text", "soundex", "sprintf", "sscanf", "str_getcsv", "str_ireplace", "str_pad", "str_repeat", "str_replace", "str_rot13", "str_shuffle", "str_split", "str_word_count", "strcasecmp", "strchr", "strcmp", "strcoll", "strcspn", "strip_tags", "stripcslashes", "stripos", "stripslashes", "stristr", "strlen", "strnatcasecmp", "strnatcmp", "strncasecmp", "strncmp", "strpbrk", "strpos", "strrchr", "strrev", "strripos", "strrpos", "strspn", "strstr", "strtok", "strtolower", "strtoupper", "strtr", "substr_compare", "substr_count", "substr_replace", "substr", "trim", "ucfirst", "ucwords", "vfprintf", "vprintf", "vsprintf", "wordwrap"] + b["SVN"] = Set.new ["svn_add", "svn_auth_get_parameter", "svn_auth_set_parameter", "svn_blame", "svn_cat", "svn_checkout", "svn_cleanup", "svn_client_version", "svn_commit", "svn_delete", "svn_diff", "svn_export", "svn_fs_abort_txn", "svn_fs_apply_text", "svn_fs_begin_txn2", "svn_fs_change_node_prop", "svn_fs_check_path", "svn_fs_contents_changed", "svn_fs_copy", "svn_fs_delete", "svn_fs_dir_entries", "svn_fs_file_contents", "svn_fs_file_length", "svn_fs_is_dir", "svn_fs_is_file", "svn_fs_make_dir", "svn_fs_make_file", "svn_fs_node_created_rev", "svn_fs_node_prop", "svn_fs_props_changed", "svn_fs_revision_prop", "svn_fs_revision_root", "svn_fs_txn_root", "svn_fs_youngest_rev", "svn_import", "svn_log", "svn_ls", "svn_mkdir", "svn_repos_create", "svn_repos_fs_begin_txn_for_commit", "svn_repos_fs_commit_txn", "svn_repos_fs", "svn_repos_hotcopy", "svn_repos_open", "svn_repos_recover", "svn_revert", "svn_status", "svn_update"] + b["Swoole"] = Set.new ["swoole_async_dns_lookup", "swoole_async_read", "swoole_async_readfile", "swoole_async_set", "swoole_async_write", "swoole_async_writefile", "swoole_client_select", "swoole_cpu_num", "swoole_errno", "swoole_event_add", "swoole_event_defer", "swoole_event_del", "swoole_event_exit", "swoole_event_set", "swoole_event_wait", "swoole_event_write", "swoole_get_local_ip", "swoole_last_error", "swoole_load_module", "swoole_select", "swoole_set_process_name", "swoole_strerror", "swoole_timer_after", "swoole_timer_exists", "swoole_timer_tick", "swoole_version"] + b["Sybase"] = Set.new ["sybase_affected_rows", "sybase_close", "sybase_connect", "sybase_data_seek", "sybase_deadlock_retry_count", "sybase_fetch_array", "sybase_fetch_assoc", "sybase_fetch_field", "sybase_fetch_object", "sybase_fetch_row", "sybase_field_seek", "sybase_free_result", "sybase_get_last_message", "sybase_min_client_severity", "sybase_min_error_severity", "sybase_min_message_severity", "sybase_min_server_severity", "sybase_num_fields", "sybase_num_rows", "sybase_pconnect", "sybase_query", "sybase_result", "sybase_select_db", "sybase_set_message_handler", "sybase_unbuffered_query"] + b["Taint"] = Set.new ["is_tainted", "taint", "untaint"] + b["TCP"] = Set.new ["tcpwrap_check"] + b["Tidy"] = Set.new ["ob_tidyhandler", "tidy_access_count", "tidy_config_count", "tidy_error_count", "tidy_get_output", "tidy_warning_count"] + b["Tokenizer"] = Set.new ["token_get_all", "token_name"] + b["Trader"] = Set.new ["trader_acos", "trader_ad", "trader_add", "trader_adosc", "trader_adx", "trader_adxr", "trader_apo", "trader_aroon", "trader_aroonosc", "trader_asin", "trader_atan", "trader_atr", "trader_avgprice", "trader_bbands", "trader_beta", "trader_bop", "trader_cci", "trader_cdl2crows", "trader_cdl3blackcrows", "trader_cdl3inside", "trader_cdl3linestrike", "trader_cdl3outside", "trader_cdl3starsinsouth", "trader_cdl3whitesoldiers", "trader_cdlabandonedbaby", "trader_cdladvanceblock", "trader_cdlbelthold", "trader_cdlbreakaway", "trader_cdlclosingmarubozu", "trader_cdlconcealbabyswall", "trader_cdlcounterattack", "trader_cdldarkcloudcover", "trader_cdldoji", "trader_cdldojistar", "trader_cdldragonflydoji", "trader_cdlengulfing", "trader_cdleveningdojistar", "trader_cdleveningstar", "trader_cdlgapsidesidewhite", "trader_cdlgravestonedoji", "trader_cdlhammer", "trader_cdlhangingman", "trader_cdlharami", "trader_cdlharamicross", "trader_cdlhighwave", "trader_cdlhikkake", "trader_cdlhikkakemod", "trader_cdlhomingpigeon", "trader_cdlidentical3crows", "trader_cdlinneck", "trader_cdlinvertedhammer", "trader_cdlkicking", "trader_cdlkickingbylength", "trader_cdlladderbottom", "trader_cdllongleggeddoji", "trader_cdllongline", "trader_cdlmarubozu", "trader_cdlmatchinglow", "trader_cdlmathold", "trader_cdlmorningdojistar", "trader_cdlmorningstar", "trader_cdlonneck", "trader_cdlpiercing", "trader_cdlrickshawman", "trader_cdlrisefall3methods", "trader_cdlseparatinglines", "trader_cdlshootingstar", "trader_cdlshortline", "trader_cdlspinningtop", "trader_cdlstalledpattern", "trader_cdlsticksandwich", "trader_cdltakuri", "trader_cdltasukigap", "trader_cdlthrusting", "trader_cdltristar", "trader_cdlunique3river", "trader_cdlupsidegap2crows", "trader_cdlxsidegap3methods", "trader_ceil", "trader_cmo", "trader_correl", "trader_cos", "trader_cosh", "trader_dema", "trader_div", "trader_dx", "trader_ema", "trader_errno", "trader_exp", "trader_floor", "trader_get_compat", "trader_get_unstable_period", "trader_ht_dcperiod", "trader_ht_dcphase", "trader_ht_phasor", "trader_ht_sine", "trader_ht_trendline", "trader_ht_trendmode", "trader_kama", "trader_linearreg_angle", "trader_linearreg_intercept", "trader_linearreg_slope", "trader_linearreg", "trader_ln", "trader_log10", "trader_ma", "trader_macd", "trader_macdext", "trader_macdfix", "trader_mama", "trader_mavp", "trader_max", "trader_maxindex", "trader_medprice", "trader_mfi", "trader_midpoint", "trader_midprice", "trader_min", "trader_minindex", "trader_minmax", "trader_minmaxindex", "trader_minus_di", "trader_minus_dm", "trader_mom", "trader_mult", "trader_natr", "trader_obv", "trader_plus_di", "trader_plus_dm", "trader_ppo", "trader_roc", "trader_rocp", "trader_rocr100", "trader_rocr", "trader_rsi", "trader_sar", "trader_sarext", "trader_set_compat", "trader_set_unstable_period", "trader_sin", "trader_sinh", "trader_sma", "trader_sqrt", "trader_stddev", "trader_stoch", "trader_stochf", "trader_stochrsi", "trader_sub", "trader_sum", "trader_t3", "trader_tan", "trader_tanh", "trader_tema", "trader_trange", "trader_trima", "trader_trix", "trader_tsf", "trader_typprice", "trader_ultosc", "trader_var", "trader_wclprice", "trader_willr", "trader_wma"] + b["UI"] = Set.new ["UI\\Draw\\Text\\Font\\fontFamilies", "UI\\quit", "UI\\run"] + b["ODBC"] = Set.new ["odbc_autocommit", "odbc_binmode", "odbc_close_all", "odbc_close", "odbc_columnprivileges", "odbc_columns", "odbc_commit", "odbc_connect", "odbc_cursor", "odbc_data_source", "odbc_do", "odbc_error", "odbc_errormsg", "odbc_exec", "odbc_execute", "odbc_fetch_array", "odbc_fetch_into", "odbc_fetch_object", "odbc_fetch_row", "odbc_field_len", "odbc_field_name", "odbc_field_num", "odbc_field_precision", "odbc_field_scale", "odbc_field_type", "odbc_foreignkeys", "odbc_free_result", "odbc_gettypeinfo", "odbc_longreadlen", "odbc_next_result", "odbc_num_fields", "odbc_num_rows", "odbc_pconnect", "odbc_prepare", "odbc_primarykeys", "odbc_procedurecolumns", "odbc_procedures", "odbc_result_all", "odbc_result", "odbc_rollback", "odbc_setoption", "odbc_specialcolumns", "odbc_statistics", "odbc_tableprivileges", "odbc_tables"] + b["Uopz"] = Set.new ["uopz_add_function", "uopz_allow_exit", "uopz_backup", "uopz_compose", "uopz_copy", "uopz_del_function", "uopz_delete", "uopz_extend", "uopz_flags", "uopz_function", "uopz_get_exit_status", "uopz_get_hook", "uopz_get_mock", "uopz_get_property", "uopz_get_return", "uopz_get_static", "uopz_implement", "uopz_overload", "uopz_redefine", "uopz_rename", "uopz_restore", "uopz_set_hook", "uopz_set_mock", "uopz_set_property", "uopz_set_return", "uopz_set_static", "uopz_undefine", "uopz_unset_hook", "uopz_unset_mock", "uopz_unset_return"] + b["URL"] = Set.new ["base64_decode", "base64_encode", "get_headers", "get_meta_tags", "http_build_query", "parse_url", "rawurldecode", "rawurlencode", "urldecode", "urlencode"] + b["Variable handling"] = Set.new ["boolval", "debug_zval_dump", "doubleval", "empty", "floatval", "get_defined_vars", "get_resource_type", "gettype", "import_request_variables", "intval", "is_array", "is_bool", "is_callable", "is_countable", "is_double", "is_float", "is_int", "is_integer", "is_iterable", "is_long", "is_null", "is_numeric", "is_object", "is_real", "is_resource", "is_scalar", "is_string", "isset", "print_r", "serialize", "settype", "strval", "unserialize", "unset", "var_dump", "var_export"] + b["vpopmail"] = Set.new ["vpopmail_add_alias_domain_ex", "vpopmail_add_alias_domain", "vpopmail_add_domain_ex", "vpopmail_add_domain", "vpopmail_add_user", "vpopmail_alias_add", "vpopmail_alias_del_domain", "vpopmail_alias_del", "vpopmail_alias_get_all", "vpopmail_alias_get", "vpopmail_auth_user", "vpopmail_del_domain_ex", "vpopmail_del_domain", "vpopmail_del_user", "vpopmail_error", "vpopmail_passwd", "vpopmail_set_user_quota"] + b["WDDX"] = Set.new ["wddx_add_vars", "wddx_deserialize", "wddx_packet_end", "wddx_packet_start", "wddx_serialize_value", "wddx_serialize_vars"] + b["win32ps"] = Set.new ["win32_ps_list_procs", "win32_ps_stat_mem", "win32_ps_stat_proc"] + b["win32service"] = Set.new ["win32_continue_service", "win32_create_service", "win32_delete_service", "win32_get_last_control_message", "win32_pause_service", "win32_query_service_status", "win32_send_custom_control", "win32_set_service_exit_code", "win32_set_service_exit_mode", "win32_set_service_status", "win32_start_service_ctrl_dispatcher", "win32_start_service", "win32_stop_service"] + b["WinCache"] = Set.new ["wincache_fcache_fileinfo", "wincache_fcache_meminfo", "wincache_lock", "wincache_ocache_fileinfo", "wincache_ocache_meminfo", "wincache_refresh_if_changed", "wincache_rplist_fileinfo", "wincache_rplist_meminfo", "wincache_scache_info", "wincache_scache_meminfo", "wincache_ucache_add", "wincache_ucache_cas", "wincache_ucache_clear", "wincache_ucache_dec", "wincache_ucache_delete", "wincache_ucache_exists", "wincache_ucache_get", "wincache_ucache_inc", "wincache_ucache_info", "wincache_ucache_meminfo", "wincache_ucache_set", "wincache_unlock"] + b["xattr"] = Set.new ["xattr_get", "xattr_list", "xattr_remove", "xattr_set", "xattr_supported"] + b["xdiff"] = Set.new ["xdiff_file_bdiff_size", "xdiff_file_bdiff", "xdiff_file_bpatch", "xdiff_file_diff_binary", "xdiff_file_diff", "xdiff_file_merge3", "xdiff_file_patch_binary", "xdiff_file_patch", "xdiff_file_rabdiff", "xdiff_string_bdiff_size", "xdiff_string_bdiff", "xdiff_string_bpatch", "xdiff_string_diff_binary", "xdiff_string_diff", "xdiff_string_merge3", "xdiff_string_patch_binary", "xdiff_string_patch", "xdiff_string_rabdiff"] + b["Xhprof"] = Set.new ["xhprof_disable", "xhprof_enable", "xhprof_sample_disable", "xhprof_sample_enable"] + b["XML Parser"] = Set.new ["utf8_decode", "utf8_encode", "xml_error_string", "xml_get_current_byte_index", "xml_get_current_column_number", "xml_get_current_line_number", "xml_get_error_code", "xml_parse_into_struct", "xml_parse", "xml_parser_create_ns", "xml_parser_create", "xml_parser_free", "xml_parser_get_option", "xml_parser_set_option", "xml_set_character_data_handler", "xml_set_default_handler", "xml_set_element_handler", "xml_set_end_namespace_decl_handler", "xml_set_external_entity_ref_handler", "xml_set_notation_decl_handler", "xml_set_object", "xml_set_processing_instruction_handler", "xml_set_start_namespace_decl_handler", "xml_set_unparsed_entity_decl_handler"] + b["XML-RPC"] = Set.new ["xmlrpc_decode_request", "xmlrpc_decode", "xmlrpc_encode_request", "xmlrpc_encode", "xmlrpc_get_type", "xmlrpc_is_fault", "xmlrpc_parse_method_descriptions", "xmlrpc_server_add_introspection_data", "xmlrpc_server_call_method", "xmlrpc_server_create", "xmlrpc_server_destroy", "xmlrpc_server_register_introspection_callback", "xmlrpc_server_register_method", "xmlrpc_set_type"] + b["Yaml"] = Set.new ["yaml_emit_file", "yaml_emit", "yaml_parse_file", "yaml_parse_url", "yaml_parse"] + b["YAZ"] = Set.new ["yaz_addinfo", "yaz_ccl_conf", "yaz_ccl_parse", "yaz_close", "yaz_connect", "yaz_database", "yaz_element", "yaz_errno", "yaz_error", "yaz_es_result", "yaz_es", "yaz_get_option", "yaz_hits", "yaz_itemorder", "yaz_present", "yaz_range", "yaz_record", "yaz_scan_result", "yaz_scan", "yaz_schema", "yaz_search", "yaz_set_option", "yaz_sort", "yaz_syntax", "yaz_wait"] + b["Zip"] = Set.new ["zip_close", "zip_entry_close", "zip_entry_compressedsize", "zip_entry_compressionmethod", "zip_entry_filesize", "zip_entry_name", "zip_entry_open", "zip_entry_read", "zip_open", "zip_read"] + b["Zlib"] = Set.new ["deflate_add", "deflate_init", "gzclose", "gzcompress", "gzdecode", "gzdeflate", "gzencode", "gzeof", "gzfile", "gzgetc", "gzgets", "gzgetss", "gzinflate", "gzopen", "gzpassthru", "gzputs", "gzread", "gzrewind", "gzseek", "gztell", "gzuncompress", "gzwrite", "inflate_add", "inflate_get_read_len", "inflate_get_status", "inflate_init", "readgzfile", "zlib_decode", "zlib_encode", "zlib_get_coding_type"] + b["ZooKeeper"] = Set.new ["zookeeper_dispatch"] + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/plain_text.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/plain_text.rb new file mode 100644 index 0000000..db49767 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/plain_text.rb @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class PlainText < Lexer + title "Plain Text" + desc "A boring lexer that doesn't highlight anything" + + tag 'plaintext' + aliases 'text' + filenames '*.txt', 'Messages' + mimetypes 'text/plain' + + attr_reader :token + def initialize(*) + super + + @token = token_option(:token) || Text + end + + def stream_tokens(string, &b) + yield self.token, string + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/plist.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/plist.rb new file mode 100644 index 0000000..bd0ed9b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/plist.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + class Plist < RegexLexer + desc 'plist' + tag 'plist' + aliases 'plist' + filenames '*.plist', '*.pbxproj' + + mimetypes 'text/x-plist', 'application/x-plist' + + state :whitespace do + rule %r/\s+/, Text::Whitespace + end + + state :root do + rule %r{//.*$}, Comment + rule %r{/\*.+?\*/}m, Comment + mixin :whitespace + rule %r/{/, Punctuation, :dictionary + rule %r/\(/, Punctuation, :array + rule %r/"([^"\\]|\\.)*"/, Literal::String::Double + rule %r/'([^'\\]|\\.)*'/, Literal::String::Single + rule %r/</, Punctuation, :data + rule %r{[\w$/:.-]+}, Literal + end + + state :dictionary do + mixin :root + rule %r/[=;]/, Punctuation + rule %r/}/, Punctuation, :pop! + end + + state :array do + mixin :root + rule %r/[,]/, Punctuation + rule %r/\)/, Punctuation, :pop! + end + + state :data do + rule %r/[\h\s]+/, Literal::Number::Hex + rule %r/>/, Punctuation, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/plsql.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/plsql.rb new file mode 100644 index 0000000..4674cc5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/plsql.rb @@ -0,0 +1,578 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class PLSQL < RegexLexer + title "PLSQL" + desc "Procedural Language Structured Query Language for Oracle relational database" + tag 'plsql' + filenames '*.pls', '*.typ', '*.tps', '*.tpb', '*.pks', '*.pkb', '*.pkg', '*.trg' + mimetypes 'text/x-plsql' + + def self.keywords_reserved + @keywords_reserved ||= Set.new(%w( + ACCESSIBLE AGENT ALL ALTER AND ANY AS ASC BETWEEN BFILE_BASE BLOB_BASE BY + C CALLING CHARSET CHARSETFORM CHARSETID CHAR_BASE CHECK CLOB_BASE CLUSTER + COLLATE COMPILED COMPRESS CONNECT CONNECT_BY_ROOT CONSTRUCTOR CREATE CUSTOMDATUM + DATE_BASE DEFAULT DELETE DESC DISTINCT DROP DURATION ELSE ELSIF EXCEPT EXCLUSIVE + EXISTS EXIT FIXED FOR FORALL FROM GENERAL GRANT GROUP HAVING IDENTIFIED IN INDEX + INDICES INSERT INTERFACE INTERSECT INTO IS LARGE LIKE LIMITED LOCK LOOP MAXLEN + MINUS MODE NOCOMPRESS NOT NOWAIT NULL NUMBER_BASE OCICOLL OCIDATE OCIDATETIME + OCIDURATION OCIINTERVAL OCILOBLOCATOR OCINUMBER OCIRAW OCIREF OCIREFCURSOR + OCIROWID OCISTRING OCITYPE OF ON OPTION OR ORACLE ORADATA ORDER ORLANY ORLVARY + OUT OVERRIDING PARALLEL_ENABLE PARAMETER PASCAL PCTFREE PIPE PIPELINED POLYMORPHIC + PRAGMA PRIOR PUBLIC RAISE RECORD RELIES_ON REM RENAME RESOURCE RESULT REVOKE ROWID + SB1 SB2 SELECT SEPARATE SET SHARE SHORT SIZE SIZE_T SPARSE SQLCODE SQLDATA + SQLNAME SQLSTATE STANDARD START STORED STRUCT STYLE SYNONYM TABLE TDO THEN + TRANSACTIONAL TRIGGER UB1 UB4 UNION UNIQUE UNSIGNED UNTRUSTED UPDATE VALIST + VALUES VARIABLE VIEW VOID WHERE WHILE WITH + )) + end + + def self.keywords + @keywords ||= Set.new(%w( + ABORT ABS ABSENT ACCESS ACCESSED ACCOUNT ACL ACOS ACROSS ACTION ACTIONS + ACTIVATE ACTIVE ACTIVE_COMPONENT ACTIVE_DATA ACTIVE_FUNCTION ACTIVE_TAG ACTIVITY + ADAPTIVE_PLAN ADD ADD_COLUMN ADD_GROUP ADD_MONTHS ADG_REDIRECT_DML ADG_REDIRECT_PLSQL + ADJ_DATE ADMIN ADMINISTER ADMINISTRATOR ADVANCED ADVISE ADVISOR AFD_DISKSTRING + AFFINITY AFTER AGGREGATE AGGREGATES ALGORITHM ALIAS ALLOCATE ALLOW ALL_ROWS + ALTERNATE ALWAYS ANALYTIC ANALYTIC_VIEW_SQL ANALYZE ANCESTOR ANCILLARY AND_EQUAL + ANOMALY ANSI_REARCH ANSWER_QUERY_USING_STATS ANTIJOIN ANYSCHEMA ANY_VALUE + APPEND APPENDCHILDXML APPEND_VALUES APPLICATION APPLY APPROX_COUNT APPROX_COUNT_DISTINCT + APPROX_COUNT_DISTINCT_AGG APPROX_COUNT_DISTINCT_DETAIL APPROX_MEDIAN APPROX_PERCENTILE + APPROX_PERCENTILE_AGG APPROX_PERCENTILE_DETAIL APPROX_RANK APPROX_SUM ARCHIVAL + ARCHIVE ARCHIVED ARCHIVELOG ARRAY ARRAYS ASCII ASCIISTR ASIN ASIS ASSEMBLY + ASSIGN ASSOCIATE ASYNC ASYNCHRONOUS AS_JSON AT ATAN ATAN2 ATTRIBUTE ATTRIBUTES + AUDIT AUTHENTICATED AUTHENTICATION AUTHID AUTHORIZATION AUTO AUTOALLOCATE + AUTOEXTEND AUTOMATIC AUTO_LOGIN AUTO_REOPTIMIZE AVAILABILITY AVCACHE_OP AVERAGE_RANK + AVG AVMDX_OP AVRO AV_AGGREGATE AV_CACHE AW BACKGROUND BACKINGFILE BACKUP BAND_JOIN + BASIC BASICFILE BATCH BATCHSIZE BATCH_TABLE_ACCESS_BY_ROWID BECOME BEFORE + BEGIN BEGINNING BEGIN_OUTLINE_DATA BEHALF BEQUEATH BFILENAME BIGFILE BINARY + BINARY_DOUBLE_INFINITY BINARY_DOUBLE_NAN BINARY_FLOAT_INFINITY BINARY_FLOAT_NAN + BINDING BIND_AWARE BIN_TO_NUM BITAND BITMAP BITMAPS BITMAP_AND BITMAP_BIT_POSITION + BITMAP_BUCKET_NUMBER BITMAP_CONSTRUCT_AGG BITMAP_COUNT BITMAP_OR_AGG BITMAP_TREE + BITOR BITS BITXOR BIT_AND_AGG BIT_OR_AGG BIT_XOR_AGG BLOCK BLOCKCHAIN BLOCKING + BLOCKS BLOCKSIZE BLOCK_RANGE BODY BOOL BOOTSTRAP BOTH BOUND BRANCH BREADTH + BROADCAST BSON BUFFER BUFFER_CACHE BUFFER_POOL BUILD BULK BUSHY_JOIN BYPASS_RECURSIVE_CHECK + BYPASS_UJVC CACHE CACHE_CB CACHE_INSTANCES CACHE_TEMP_TABLE CACHING CALCULATED + CALL CALLBACK CANCEL CAPACITY CAPTION CAPTURE CARDINALITY CASCADE CASE CAST + CATALOG_DBLINK CATEGORY CDB$DEFAULT CDB_HTTP_HANDLER CEIL CELLMEMORY CELL_FLASH_CACHE + CERTIFICATE CFILE CHAINED CHANGE CHANGE_DUPKEY_ERROR_INDEX CHARTOROWID CHAR_CS + CHECKPOINT CHECKSUM CHECK_ACL_REWRITE CHILD CHOOSE CHR CHUNK CLASS CLASSIFICATION + CLASSIFIER CLAUSE CLEAN CLEANUP CLEAR CLIENT CLONE CLOSE CLOSEST CLOSE_CACHED_OPEN_CURSORS + CLOUD_IDENTITY CLUSTERING CLUSTERING_FACTOR CLUSTERS CLUSTER_BY_ROWID CLUSTER_DETAILS + CLUSTER_DISTANCE CLUSTER_ID CLUSTER_PROBABILITY CLUSTER_SET COALESCE COALESCE_SQ + COARSE COLAUTH COLD COLLATE COLLATION COLLECT COLUMN COLUMNAR COLUMNS COLUMN_AUTHORIZATION_INDICATOR + COLUMN_AUTH_INDICATOR COLUMN_STATS COLUMN_VALUE COMMENT COMMIT COMMITTED COMMON + COMMON_DATA_MAP COMPACT COMPATIBILITY COMPILE COMPLETE COMPLIANCE COMPONENT + COMPONENTS COMPOSE COMPOSITE COMPOSITE_LIMIT COMPOUND COMPUTATION COMPUTE + CONCAT CONDITION CONDITIONAL CONFIRM CONFORMING CONNECT_BY_CB_WHR_ONLY CONNECT_BY_COMBINE_SW + CONNECT_BY_COST_BASED CONNECT_BY_ELIM_DUPS CONNECT_BY_FILTERING CONNECT_BY_ISCYCLE + CONNECT_BY_ISLEAF CONNECT_BY_ROOT CONNECT_TIME CONSENSUS CONSIDER CONSISTENT + CONST CONSTANT CONSTRAINT CONSTRAINTS CONTAINER CONTAINERS CONTAINERS_DEFAULT + CONTAINER_DATA CONTAINER_DATA_ADMIT_NULL CONTAINER_MAP CONTAINER_MAP_OBJECT + CONTENT CONTENTS CONTEXT CONTINUE CONTROLFILE CONVERSION CONVERT CON_DBID_TO_ID + CON_GUID_TO_ID CON_ID CON_ID_FILTER CON_ID_TO_CON_NAME CON_ID_TO_DBID CON_ID_TO_GUID + CON_ID_TO_UID CON_NAME_TO_ID CON_UID_TO_ID COOKIE COPY CORR CORRUPTION CORRUPT_XID + CORRUPT_XID_ALL CORR_K CORR_S COS COSH COST COST_XML_QUERY_REWRITE COUNT COVAR_POP + COVAR_SAMP CO_AUTH_IND CPU_COSTING CPU_COUNT CPU_PER_CALL CPU_PER_SESSION + CPU_TIME CRASH CREATE_FILE_DEST CREATE_STORED_OUTLINES CREATION CREDENTIAL + CREDENTIALS CRITICAL CROSS CROSSEDITION CSCONVERT CUBE CUBE_AJ CUBE_GB CUBE_SJ + CUME_DIST CUME_DISTM CURRENT CURRENTV CURRENT_DATE CURRENT_INSTANCE CURRENT_PARTSET_KEY + CURRENT_SCHEMA CURRENT_SHARD_KEY CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER + CURSOR CURSOR_SHARING_EXACT CURSOR_SPECIFIC_SEGMENT CV CYCLE DAGG_OPTIM_GSETS + DANGLING DATA DATABASE DATABASES DATAFILE DATAFILES DATAMOVEMENT DATAOBJNO + DATAOBJ_TO_MAT_PARTITION DATAOBJ_TO_PARTITION DATAPUMP DATASTORE DATA_LINK_DML + DATA_SECURITY_REWRITE_LIMIT DATA_VALIDATE DATE_MODE DAYS DBA DBA_RECYCLEBIN + DBMS_STATS DBSTR2UTF8 DBTIMEZONE DB_ROLE_CHANGE DB_UNIQUE_NAME DB_VERSION + DDL DEALLOCATE DEBUG DEBUGGER DECLARE DECODE DECOMPOSE DECOMPRESS DECORRELATE + DECR DECREMENT DECRYPT DEDUPLICATE DEFAULTS DEFAULT_COLLATION DEFAULT_PDB_HINT + DEFERRABLE DEFERRED DEFINE DEFINED DEFINER DEFINITION DEGREE DELAY DELEGATE + DELETEXML DELETE_ALL DEMAND DENORM_AV DENSE_RANK DENSE_RANKM DEPENDENT DEPTH + DEQUEUE DEREF DEREF_NO_REWRITE DESCENDANT DESCRIPTION DESTROY DETACHED DETERMINED + DETERMINES DETERMINISTIC DG_GATHER_STATS DIAGNOSTICS DICTIONARY DIGEST DIMENSION + DIMENSIONS DIRECT DIRECTORY DIRECT_LOAD DIRECT_PATH DISABLE DISABLE_ALL DISABLE_CONTAINERS_DEFAULT + DISABLE_CONTAINER_MAP DISABLE_PARALLEL_DML DISABLE_PRESET DISABLE_RPKE DISALLOW + DISASSOCIATE DISCARD DISCONNECT DISK DISKGROUP DISKS DISMOUNT DISTINGUISHED + DISTRIBUTE DISTRIBUTED DIST_AGG_PROLLUP_PUSHDOWN DML DML_UPDATE DOCFIDELITY + DOCUMENT DOMAIN_INDEX_FILTER DOMAIN_INDEX_NO_SORT DOMAIN_INDEX_SORT DOWNGRADE + DRAIN_TIMEOUT DRIVING_SITE DROP_COLUMN DROP_GROUP DST_UPGRADE_INSERT_CONV + DUMP DUPLICATE DUPLICATED DV DYNAMIC DYNAMIC_SAMPLING DYNAMIC_SAMPLING_EST_CDN + EACH EDITION EDITIONABLE EDITIONING EDITIONS ELAPSED_TIME ELEMENT ELIMINATE_JOIN + ELIMINATE_OBY ELIMINATE_OUTER_JOIN ELIMINATE_SQ ELIM_GROUPBY EM EMPTY EMPTY_BLOB + EMPTY_CLOB ENABLE ENABLE_ALL ENABLE_PARALLEL_DML ENABLE_PRESET ENCODE ENCODING + ENCRYPT ENCRYPTION END END_OUTLINE_DATA ENFORCE ENFORCED ENQUEUE ENTERPRISE + ENTITYESCAPING ENTRY EQUIPART EQUIVALENT ERROR ERRORS ERROR_ARGUMENT ERROR_ON_OVERLAP_TIME + ESCAPE ESTIMATE EVAL EVALNAME EVALUATE EVALUATION EVEN EVENTS EVERY EXCEPTION + EXCEPTIONS EXCHANGE EXCLUDE EXCLUDING EXECUTE EXEMPT EXISTING EXISTSNODE EXP + EXPAND EXPAND_GSET_TO_UNION EXPAND_TABLE EXPIRE EXPLAIN EXPLOSION EXPORT EXPRESS + EXPR_CORR_CHECK EXTEND EXTENDED EXTENDS EXTENT EXTENTS EXTERNAL EXTERNALLY + EXTRA EXTRACT EXTRACTCLOBXML EXTRACTVALUE FACILITY FACT FACTOR FACTORIZE_JOIN + FAILED FAILED_LOGIN_ATTEMPTS FAILGROUP FAILOVER FAILURE FALSE FAMILY FAR FAST + FBTSCAN FEATURE FEATURE_COMPARE FEATURE_DETAILS FEATURE_ID FEATURE_SET FEATURE_VALUE + FEDERATION FETCH FILE FILEGROUP FILESTORE FILESYSTEM_LIKE_LOGGING FILE_NAME_CONVERT + FILTER FINAL FINE FINISH FIRST FIRSTM FIRST_ROWS FIRST_VALUE FIXED_VIEW_DATA + FLAGGER FLASHBACK FLASH_CACHE FLEX FLOB FLOOR FLUSH FOLDER FOLLOWING FOLLOWS + FORCE FORCE_JSON_TABLE_TRANSFORM FORCE_SPATIAL FORCE_XML_QUERY_REWRITE FOREIGN + FOREVER FORMAT FORWARD FRAGMENT_NUMBER FREE FREELIST FREELISTS FREEPOOLS FRESH + FRESH_MV FROM_TZ FTP FULL FULL_OUTER_JOIN_TO_OUTER FUNCTION FUNCTIONS GATHER_OPTIMIZER_STATISTICS + GATHER_PLAN_STATISTICS GBY_CONC_ROLLUP GBY_PUSHDOWN GENERATED GET GLOBAL GLOBALLY + GLOBAL_NAME GLOBAL_TOPIC_ENABLED GOLDENGATE GOTO GRANTED GRANULAR GREATEST + GROUPING GROUPING_ID GROUPS GROUP_BY GROUP_ID GUARANTEE GUARANTEED GUARD H + HALF_YEARS HASH HASHING HASHKEYS HASHSET_BUILD HASH_AJ HASH_SJ HEADER HEAP + HELP HEXTORAW HEXTOREF HIDDEN HIDE HIERARCHICAL HIERARCHIES HIERARCHY HIER_ANCESTOR + HIER_CAPTION HIER_CHILDREN HIER_CHILD_COUNT HIER_COLUMN HIER_CONDITION HIER_DEPTH + HIER_DESCRIPTION HIER_HAS_CHILDREN HIER_LAG HIER_LEAD HIER_LEVEL HIER_MEMBER_NAME + HIER_MEMBER_UNIQUE_NAME HIER_ORDER HIER_PARENT HIER_WINDOW HIGH HINTSET_BEGIN + HINTSET_END HOST HOT HOUR HOURS HTTP HWM_BROKERED HYBRID ID IDENTIFIER IDENTITY + IDGENERATORS IDLE IDLE_TIME IF IGNORE IGNORE_OPTIM_EMBEDDED_HINTS IGNORE_ROW_ON_DUPKEY_INDEX + IGNORE_WHERE_CLAUSE ILM IMMEDIATE IMMUTABLE IMPACT IMPORT INACTIVE INACTIVE_ACCOUNT_TIME + INCLUDE INCLUDES INCLUDE_VERSION INCLUDING INCOMING INCR INCREMENT INCREMENTAL + INDENT INDEXED INDEXES INDEXING INDEXTYPE INDEXTYPES INDEX_ASC INDEX_COMBINE + INDEX_DESC INDEX_FFS INDEX_FILTER INDEX_JOIN INDEX_ROWS INDEX_RRS INDEX_RS + INDEX_RS_ASC INDEX_RS_DESC INDEX_SCAN INDEX_SKIP_SCAN INDEX_SS INDEX_SS_ASC + INDEX_SS_DESC INDEX_STATS INDICATOR INFINITE INFORMATIONAL INHERIT INITCAP + INITIAL INITIALIZED INITIALLY INITRANS INLINE INLINE_XMLTYPE_NT INLINE_XT + INMEMORY INMEMORY_PRUNING INNER INPLACE INSENSITIVE INSERTCHILDXML INSERTCHILDXMLAFTER + INSERTCHILDXMLBEFORE INSERTXMLAFTER INSERTXMLBEFORE INSTALL INSTANCE INSTANCES + INSTANTIABLE INSTANTLY INSTEAD INSTR INSTR2 INSTR4 INSTRB INSTRC INTERLEAVED + INTERMEDIATE INTERNAL_CONVERT INTERNAL_USE INTERPRETED INTRA_CDB INVALIDATE + INVALIDATION INVISIBLE IN_MEMORY_METADATA IN_XQUERY IOSEEKTIM IOTFRSPEED IO_LOGICAL + IO_MEGABYTES IO_REQUESTS ISOLATE ISOLATION ISOLATION_LEVEL ITERATE ITERATION_NUMBER + JAVA JOB JOIN JSON JSONGET JSONPARSE JSONTOXML JSON_ARRAY JSON_ARRAYAGG JSON_EQUAL + JSON_EQUAL2 JSON_EXISTS JSON_EXISTS2 JSON_HASH JSON_LENGTH JSON_MERGEPATCH + JSON_MKMVI JSON_OBJECT JSON_OBJECTAGG JSON_PATCH JSON_QUERY JSON_SCALAR JSON_SERIALIZE + JSON_TABLE JSON_TEXTCONTAINS JSON_TEXTCONTAINS2 JSON_TRANSFORM JSON_VALUE + KEEP KEEP_DUPLICATES KERBEROS KEY KEYS KEYSIZE KEYSTORE KEY_LENGTH KILL + KURTOSIS_POP KURTOSIS_SAMP LABEL LAG LAG_DIFF LAG_DIFF_PERCENT LANGUAGE LAST + LAST_DAY LAST_VALUE LATERAL LAX LAYER LDAP_REGISTRATION LDAP_REGISTRATION_ENABLED + LDAP_REG_SYNC_INTERVAL LEAD LEADING LEAD_CDB LEAD_CDB_URI LEAD_DIFF LEAD_DIFF_PERCENT + LEAF LEAST LEAVES LEDGER LEFT LENGTH LENGTH2 LENGTH4 LENGTHB LENGTHC LESS + LEVEL LEVELS LIBRARY LIFE LIFECYCLE LIFETIME LIKE2 LIKE4 LIKEC LIMIT LINEAR + LINK LIST LISTAGG LN LNNVL LOAD LOB LOBNVL LOBS LOB_VALUE LOCALTIME LOCALTIMESTAMP + LOCAL_INDEXES LOCATION LOCATOR LOCKDOWN LOCKED LOCKING LOG LOGFILE LOGFILES + LOGGING LOGICAL LOGICAL_READS_PER_CALL LOGICAL_READS_PER_SESSION LOGMINING + LOGOFF LOGON LOG_READ_ONLY_VIOLATIONS LOST LOW LOWER LPAD LTRIM MAIN MAKE_REF + MANAGE MANAGED MANAGEMENT MANAGER MANDATORY MANUAL MAP MAPPER MAPPING MASTER + MATCH MATCHED MATCHES MATCH_NUMBER MATCH_RECOGNIZE MATERIALIZE MATERIALIZED + MATRIX MAX MAXARCHLOGS MAXDATAFILES MAXEXTENTS MAXIMIZE MAXINSTANCES MAXLOGFILES + MAXLOGHISTORY MAXLOGMEMBERS MAXSIZE MAXTRANS MAXVALUE MAX_AUDIT_SIZE MAX_DIAG_SIZE + MAX_PDB_SNAPSHOTS MAX_SHARED_TEMP_SIZE MBRC MEASURE MEASURES MEDIAN MEDIUM + MEMBER MEMCOMPRESS MEMOPTIMIZE MEMOPTIMIZE_WRITE MEMORY MERGE MERGE$ACTIONS + MERGE_AJ MERGE_CONST_ON MERGE_SJ METADATA METADATA_SOURCE_PDB METHOD MIGRATE + MIGRATE_CROSS_CON MIGRATION MIN MINEXTENTS MINIMIZE MINIMUM MINING MINUS_NULL + MINUTE MINUTES MINVALUE MIRROR MIRRORCOLD MIRRORHOT MISMATCH MISSING MLE MLSLABEL + MOD MODEL MODEL_COMPILE_SUBQUERY MODEL_DONTVERIFY_UNIQUENESS MODEL_DYNAMIC_SUBQUERY + MODEL_MIN_ANALYSIS MODEL_NB MODEL_NO_ANALYSIS MODEL_PBY MODEL_PUSH_REF MODEL_SV + MODIFICATION MODIFY MODIFY_COLUMN_TYPE MODULE MONITOR MONITORING MONTHS MONTHS_BETWEEN + MOUNT MOUNTPATH MOUNTPOINT MOVE MOVEMENT MULTIDIMENSIONAL MULTISET MULTIVALUE + MV_MERGE NAME NAMED NAMES NAMESPACE NAN NANVL NATIVE NATIVE_FULL_OUTER_JOIN + NATURAL NAV NCHAR_CS NCHR NEEDED NEG NESTED NESTED_ROLLUP_TOP NESTED_TABLE_FAST_INSERT + NESTED_TABLE_GET_REFS NESTED_TABLE_ID NESTED_TABLE_SET_REFS NESTED_TABLE_SET_SETID + NETWORK NEVER NEW NEW_TIME NEXT NEXT_DAY NLJ_BATCHING NLJ_INDEX_FILTER NLJ_INDEX_SCAN + NLJ_PREFETCH NLSSORT NLS_CALENDAR NLS_CHARACTERSET NLS_CHARSET_DECL_LEN NLS_CHARSET_ID + NLS_CHARSET_NAME NLS_COLLATION_ID NLS_COLLATION_NAME NLS_COMP NLS_CURRENCY + NLS_DATE_FORMAT NLS_DATE_LANGUAGE NLS_INITCAP NLS_ISO_CURRENCY NLS_LANG NLS_LANGUAGE + NLS_LENGTH_SEMANTICS NLS_LOWER NLS_NCHAR_CONV_EXCP NLS_NUMERIC_CHARACTERS + NLS_SORT NLS_SPECIAL_CHARS NLS_TERRITORY NLS_UPPER NL_AJ NL_SJ NO NOAPPEND + NOARCHIVELOG NOAUDIT NOCACHE NOCOPY NOCPU_COSTING NOCYCLE NODELAY NOENTITYESCAPING + NOEXTEND NOFORCE NOGUARANTEE NOKEEP NOLOCAL NOLOGGING NOMAPPING NOMAXVALUE + NOMINIMIZE NOMINVALUE NOMONITORING NONBLOCKING NONE NONEDITIONABLE NONPARTITIONED + NONSCHEMA NOORDER NOOVERRIDE NOPARALLEL NOPARALLEL_INDEX NORELOCATE NORELY + NOREPAIR NOREPLAY NORESETLOGS NOREVERSE NOREWRITE NORMAL NOROWDEPENDENCIES + NOSCALE NOSCHEMACHECK NOSEGMENT NOSHARD NOSORT NOSTRICT NOSWITCH NOTHING NOTIFICATION + NOVALIDATE NOW NO_ACCESS NO_ADAPTIVE_PLAN NO_ANSI_REARCH NO_ANSWER_QUERY_USING_STATS + NO_AUTO_REOPTIMIZE NO_BAND_JOIN NO_BASETABLE_MULTIMV_REWRITE NO_BATCH_TABLE_ACCESS_BY_ROWID + NO_BIND_AWARE NO_BUFFER NO_BUSHY_JOIN NO_CARTESIAN NO_CHECK_ACL_REWRITE NO_CLUSTERING + NO_CLUSTER_BY_ROWID NO_COALESCE_SQ NO_COMMON_DATA NO_CONNECT_BY_CB_WHR_ONLY + NO_CONNECT_BY_COMBINE_SW NO_CONNECT_BY_COST_BASED NO_CONNECT_BY_ELIM_DUPS + NO_CONNECT_BY_FILTERING NO_CONTAINERS NO_COST_XML_QUERY_REWRITE NO_CPU_COSTING + NO_CROSS_CONTAINER NO_DAGG_OPTIM_GSETS NO_DATA_SECURITY_REWRITE NO_DECORRELATE + NO_DIST_AGG_PROLLUP_PUSHDOWN NO_DOMAIN_INDEX_FILTER NO_DST_UPGRADE_INSERT_CONV + NO_ELIMINATE_JOIN NO_ELIMINATE_OBY NO_ELIMINATE_OUTER_JOIN NO_ELIMINATE_SQ + NO_ELIM_GROUPBY NO_EXPAND NO_EXPAND_GSET_TO_UNION NO_EXPAND_TABLE NO_FACT + NO_FACTORIZE_JOIN NO_FILTERING NO_FULL_OUTER_JOIN_TO_OUTER NO_GATHER_OPTIMIZER_STATISTICS + NO_GBY_PUSHDOWN NO_INDEX NO_INDEX_FFS NO_INDEX_SS NO_INMEMORY NO_INMEMORY_PRUNING + NO_JSON_TABLE_TRANSFORM NO_LOAD NO_MERGE NO_MODEL_PUSH_REF NO_MONITOR NO_MONITORING + NO_MULTIMV_REWRITE NO_NATIVE_FULL_OUTER_JOIN NO_NLJ_BATCHING NO_NLJ_PREFETCH + NO_OBJECT_LINK NO_OBY_GBYPD_SEPARATE NO_ORDER_ROLLUPS NO_OR_EXPAND NO_OUTER_JOIN_TO_ANTI + NO_OUTER_JOIN_TO_INNER NO_PARALLEL NO_PARALLEL_INDEX NO_PARTIAL_COMMIT NO_PARTIAL_JOIN + NO_PARTIAL_OSON_UPDATE NO_PARTIAL_ROLLUP_PUSHDOWN NO_PLACE_DISTINCT NO_PLACE_GROUP_BY + NO_PQ_CONCURRENT_UNION NO_PQ_EXPAND_TABLE NO_PQ_MAP NO_PQ_NONLEAF_SKEW NO_PQ_REPLICATE + NO_PQ_SKEW NO_PRUNE_GSETS NO_PULL_PRED NO_PUSH_HAVING_TO_GBY NO_PUSH_PRED + NO_PUSH_SUBQ NO_PX_FAULT_TOLERANCE NO_PX_JOIN_FILTER NO_QKN_BUFF NO_QUERY_TRANSFORMATION + NO_REF_CASCADE NO_REORDER_WIF NO_RESULT_CACHE NO_REWRITE NO_ROOT_SW_FOR_LOCAL + NO_SEMIJOIN NO_SEMI_TO_INNER NO_SET_GBY_PUSHDOWN NO_SET_TO_JOIN NO_SQL_TRANSLATION + NO_SQL_TUNE NO_STAR_TRANSFORMATION NO_STATEMENT_QUEUING NO_STATS_GSETS NO_SUBQUERY_PRUNING + NO_SUBSTRB_PAD NO_SWAP_JOIN_INPUTS NO_TABLE_LOOKUP_BY_NL NO_TEMP_TABLE NO_TRANSFORM_DISTINCT_AGG + NO_UNNEST NO_USE_CUBE NO_USE_DAGG_UNION_ALL_GSETS NO_USE_HASH NO_USE_HASH_AGGREGATION + NO_USE_HASH_GBY_FOR_DAGGPSHD NO_USE_HASH_GBY_FOR_PUSHDOWN NO_USE_INVISIBLE_INDEXES + NO_USE_MERGE NO_USE_NL NO_USE_PARTITION_WISE_DISTINCT NO_USE_PARTITION_WISE_GBY + NO_USE_PARTITION_WISE_WIF NO_USE_SCALABLE_GBY_INVDIST NO_USE_VECTOR_AGGREGATION + NO_VECTOR_TRANSFORM NO_VECTOR_TRANSFORM_DIMS NO_VECTOR_TRANSFORM_FACT NO_XDB_FASTPATH_INSERT + NO_XMLINDEX_REWRITE NO_XMLINDEX_REWRITE_IN_SELECT NO_XML_DML_REWRITE NO_XML_QUERY_REWRITE + NO_ZONEMAP NTH_VALUE NTILE NULLIF NULLS NUMTODSINTERVAL NUMTOYMINTERVAL NUM_INDEX_KEYS + NVL NVL2 OBJECT OBJECT2XML OBJNO OBJNO_REUSE OBJ_ID OBY_GBYPD_SEPARATE OCCURENCES + OCCURRENCES ODD OFF OFFLINE OFFSET OID OIDINDEX OLAP OLD OLD_PUSH_PRED OLS + OLTP OMIT ONE ONLINE ONLY OPAQUE OPAQUE_TRANSFORM OPAQUE_XCANONICAL OPCODE + OPEN OPERATIONS OPERATOR OPTIMAL OPTIMIZE OPTIMIZER_FEATURES_ENABLE OPTIMIZER_GOAL + OPT_ESTIMATE OPT_PARAM ORADEBUG ORA_BRANCH ORA_CHECK_ACL ORA_CHECK_PRIVILEGE + ORA_CHECK_SYS_PRIVILEGE ORA_CLUSTERING ORA_CONCAT_RWKEY ORA_DM_PARTITION_NAME + ORA_DST_AFFECTED ORA_DST_CONVERT ORA_DST_ERROR ORA_GET_ACLIDS ORA_GET_PRIVILEGES + ORA_HASH ORA_INVOKING_USER ORA_INVOKING_USERID ORA_INVOKING_XS_USER ORA_INVOKING_XS_USER_GUID + ORA_NORMALIZE ORA_PARTITION_VALIDATION ORA_RAWCOMPARE ORA_RAWCONCAT ORA_ROWSCN + ORA_ROWSCN_RAW ORA_ROWVERSION ORA_SEARCH_RWKEY ORA_SHARDSPACE_NAME ORA_SHARD_ID + ORA_TABVERSION ORA_WRITE_TIME ORDERED ORDERED_PREDICATES ORDER_KEY_VECTOR_USE + ORDER_SUBQ ORDINALITY ORGANIZATION OR_EXPAND OR_PREDICATES OSON OSON_DIAG + OSON_GET_CONTENT OTHER OTHERS OUTER OUTER_JOIN_TO_ANTI OUTER_JOIN_TO_INNER + OUTLINE OUTLINE_LEAF OUT_OF_LINE OVER OVERFLOW OVERFLOW_NOMOVE OVERLAPS OWN + OWNER OWNERSHIP PACKAGE PACKAGES PARALLEL PARALLEL_INDEX PARAM PARAMETERS + PARENT PARITY PART$NUM$INST PARTIAL PARTIALLY PARTIAL_JOIN PARTIAL_ROLLUP_PUSHDOWN + PARTITION PARTITIONING PARTITIONS PARTITIONSET PARTITION_CONTAINED PARTITION_HASH + PARTITION_LIST PARTITION_RANGE PASSING PASSIVE PASSWORD PASSWORDFILE_METADATA_CACHE + PASSWORD_GRACE_TIME PASSWORD_LIFE_TIME PASSWORD_LOCK_TIME PASSWORD_REUSE_MAX + PASSWORD_REUSE_TIME PASSWORD_ROLLOVER_TIME PASSWORD_VERIFY_FUNCTION PAST PATCH + PATH PATHS PATH_PREFIX PATTERN PBL_HS_BEGIN PBL_HS_END PCTINCREASE PCTTHRESHOLD + PCTUSED PCTVERSION PDB_LOCAL_ONLY PEER PEERS PENDING PER PERCENT PERCENTAGE + PERCENTILE_CONT PERCENTILE_DISC PERCENT_RANK PERCENT_RANKM PERFORMANCE PERIOD + PERMANENT PERMISSION PERMUTE PERSISTABLE PFILE PHV PHYSICAL PIKEY PIVOT PIV_GB + PIV_SSF PLACE_DISTINCT PLACE_GROUP_BY PLAN PLSCOPE_SETTINGS PLSQL_CCFLAGS + PLSQL_CODE_TYPE PLSQL_DEBUG PLSQL_OPTIMIZE_LEVEL PLSQL_WARNINGS PLUGGABLE + PMEM POINT POLICY POOL_16K POOL_2K POOL_32K POOL_4K POOL_8K PORT POSITION + POST_TRANSACTION POWER POWERMULTISET POWERMULTISET_BY_CARDINALITY PQ_CONCURRENT_UNION + PQ_DISTRIBUTE PQ_DISTRIBUTE_WINDOW PQ_EXPAND_TABLE PQ_FILTER PQ_MAP PQ_NOMAP + PQ_NONLEAF_SKEW PQ_REPLICATE PQ_SKEW PREBUILT PRECEDES PRECEDING PRECOMPUTE_SUBQUERY + PREDICATE_REORDERS PREDICTION PREDICTION_BOUNDS PREDICTION_COST PREDICTION_DETAILS + PREDICTION_PROBABILITY PREDICTION_SET PRELOAD PREPARE PRESENT PRESENTNNV PRESENTV + PRESERVE PRESERVE_OID PRETTY PREV PREVIOUS PRIMARY PRINTBLOBTOCLOB PRIORITY + PRIVATE PRIVATE_SGA PRIVILEGE PRIVILEGED PRIVILEGES PROCEDURAL PROCEDURE PROCESS + PROFILE PROGRAM PROJECT PROPAGATE PROPAGATION PROPERTY PROTECTED PROTECTION + PROTOCOL PROXY PRUNING PULL_PRED PURGE PUSH_HAVING_TO_GBY PUSH_PRED PUSH_SUBQ + PX_FAULT_TOLERANCE PX_GRANULE PX_JOIN_FILTER QB_NAME QUALIFY QUARANTINE QUARTERS + QUERY QUERY_BLOCK QUEUE QUEUE_CURR QUEUE_ROWP QUIESCE QUORUM QUOTA QUOTAGROUP + QUOTES RANDOM RANDOM_LOCAL RANGE RANK RANKM RAPIDLY RATIO_TO_REPORT RAWTOHEX + RAWTONHEX RAWTOREF RBA RBO_OUTLINE RDBA READ READS READ_OR_WRITE REALM REBALANCE + REBUILD RECONNECT RECORDS_PER_BLOCK RECOVER RECOVERABLE RECOVERY RECYCLE RECYCLEBIN + REDACTION REDEFINE REDO REDUCED REDUNDANCY REFERENCE REFERENCED REFERENCES + REFERENCING REFRESH REFTOHEX REFTORAW REF_CASCADE_CURSOR REGEXP_COUNT REGEXP_INSTR + REGEXP_LIKE REGEXP_REPLACE REGEXP_SUBSTR REGISTER REGR_AVGX REGR_AVGY REGR_COUNT + REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY REGULAR REJECT + REKEY RELATIONAL RELOCATE RELY REMAINDER REMOTE REMOTE_MAPPED REMOVE REORDER_WIF + REPAIR REPEAT REPLACE REPLICATION REQUIRED RESERVOIR_SAMPLING RESET RESETLOGS + RESIZE RESOLVE RESOLVER RESPECT RESTART RESTORE RESTORE_AS_INTERVALS RESTRICT + RESTRICTED RESTRICT_ALL_REF_CONS RESULT_CACHE RESUMABLE RESUME RETENTION RETRY_ON_ROW_CHANGE + RETURN RETURNING REUSE REVERSE REWRITE REWRITE_OR_ERROR RIGHT RLS_FORCE ROLE + ROLES ROLESET ROLLBACK ROLLING ROLLOVER ROLLUP ROOT ROUND ROUND_TIES_TO_EVEN + ROW ROWDEPENDENCIES ROWIDTOCHAR ROWIDTONCHAR ROWID_MAPPING_TABLE ROWNUM ROWS + ROW_LENGTH ROW_NUMBER RPAD RTRIM RULE RULES RUNNING SALT SAMPLE SAVE SAVEPOINT + SAVE_AS_INTERVALS SB4 SCALAR SCALARS SCALE SCALE_ROWS SCAN SCAN_INSTANCES + SCHEDULER SCHEMA SCHEMACHECK SCN SCN_ASCENDING SCOPE SCRUB SDO_GEOM_KEY SDO_GEOM_MAX_X + SDO_GEOM_MAX_Y SDO_GEOM_MAX_Z SDO_GEOM_MBB SDO_GEOM_MBR SDO_GEOM_MIN_X SDO_GEOM_MIN_Y + SDO_GEOM_MIN_Z SDO_TOLERANCE SD_ALL SD_INHIBIT SD_SHOW SEARCH SECONDS SECRET + SECUREFILE SECUREFILE_DBA SECURITY SEED SEGMENT SEG_BLOCK SEG_FILE SELECTIVITY + SELF SEMIJOIN SEMIJOIN_DRIVER SEMI_TO_INNER SENSITIVE SEQUENCE SEQUENCED SEQUENTIAL + SERIAL SERIALIZABLE SERVERERROR SERVICE SERVICES SERVICE_NAME_CONVERT SESSION + SESSIONS_PER_USER SESSIONTIMEZONE SESSIONTZNAME SESSION_CACHED_CURSORS SETS + SETTINGS SET_GBY_PUSHDOWN SET_TO_JOIN SEVERE SHARD SHARDED SHARDS SHARDSPACE + SHARD_CHUNK_ID SHARED SHARED_POOL SHARE_OF SHARING SHD$COL$MAP SHELFLIFE SHOW + SHRINK SHUTDOWN SIBLING SIBLINGS SID SIGN SIGNAL_COMPONENT SIGNAL_FUNCTION + SIGNATURE SIMPLE SIN SINGLE SINGLETASK SINH SITE SKEWNESS_POP SKEWNESS_SAMP + SKIP SKIP_EXT_OPTIMIZER SKIP_PROXY SKIP_UNQ_UNUSABLE_IDX SKIP_UNUSABLE_INDEXES + SMALLFILE SNAPSHOT SOME SORT SOUNDEX SOURCE SOURCE_FILE_DIRECTORY SOURCE_FILE_NAME_CONVERT + SPACE SPATIAL SPECIFICATION SPFILE SPLIT SPREADSHEET SQL SQLLDR SQL_SCOPE + SQL_TRACE SQL_TRANSLATION_PROFILE SQRT STALE STANDALONE STANDARD_HASH STANDBY + STANDBYS STANDBY_MAX_DATA_DELAY STAR STARTUP STAR_TRANSFORMATION STATE STATEMENT + STATEMENTS STATEMENT_ID STATEMENT_QUEUING STATIC STATISTICS STATS_BINOMIAL_TEST + STATS_CROSSTAB STATS_F_TEST STATS_KS_TEST STATS_MODE STATS_MW_TEST STATS_ONE_WAY_ANOVA + STATS_T_TEST_INDEP STATS_T_TEST_INDEPU STATS_T_TEST_ONE STATS_T_TEST_PAIRED + STATS_WSR_TEST STDDEV STDDEV_POP STDDEV_SAMP STOP STORAGE STORAGE_INDEX STORE + STREAM STREAMS STRICT STRING STRINGS STRIP STRIPE_COLUMNS STRIPE_WIDTH STRUCTURE + SUBMULTISET SUBPARTITION SUBPARTITIONING SUBPARTITIONS SUBPARTITION_REL SUBQUERIES + SUBQUERY_PRUNING SUBSCRIBE SUBSET SUBSTITUTABLE SUBSTR SUBSTR2 SUBSTR4 SUBSTRB + SUBSTRC SUBTYPE SUCCESS SUCCESSFUL SUM SUMMARY SUPPLEMENTAL SUPPRESS_LOAD + SUSPEND SWAP_JOIN_INPUTS SWITCH SWITCHOVER SYNC SYNCHRONOUS SYSASM SYSAUX + SYSBACKUP SYSDATE SYSDBA SYSDG SYSGUID SYSKM SYSOBJ SYSOPER SYSRAC SYSTEM + SYSTEM_DEFINED SYSTEM_STATS SYSTIMESTAMP SYS_AUDIT SYS_CHECKACL SYS_CHECK_PRIVILEGE + SYS_CONNECT_BY_PATH SYS_CONS_ANY_SCALAR SYS_CONTEXT SYS_CTXINFOPK SYS_CTX_CONTAINS2 + SYS_CTX_MKIVIDX SYS_DBURIGEN SYS_DL_CURSOR SYS_DM_RXFORM_CHR SYS_DM_RXFORM_LAB + SYS_DM_RXFORM_NUM SYS_DOM_COMPARE SYS_DST_PRIM2SEC SYS_DST_SEC2PRIM SYS_ET_BFILE_TO_RAW + SYS_ET_BLOB_TO_IMAGE SYS_ET_IMAGE_TO_BLOB SYS_ET_RAW_TO_BFILE SYS_EXTPDTXT + SYS_EXTRACT_UTC SYS_FBT_INSDEL SYS_FILTER_ACLS SYS_FNMATCHES SYS_FNREPLACE + SYS_GETTOKENID SYS_GETXTIVAL SYS_GET_ACLIDS SYS_GET_ANY_SCALAR SYS_GET_COL_ACLIDS + SYS_GET_PRIVILEGES SYS_GUID SYS_MAKEXML SYS_MAKE_XMLNODEID SYS_MKXMLATTR SYS_MKXTI + SYS_OPTLOBPRBSC SYS_OPTXICMP SYS_OPTXQCASTASNQ SYS_OP_ADT2BIN SYS_OP_ADTCONS + SYS_OP_ALSCRVAL SYS_OP_ATG SYS_OP_BIN2ADT SYS_OP_BITVEC SYS_OP_BL2R SYS_OP_BLOOM_FILTER + SYS_OP_BLOOM_FILTER_LIST SYS_OP_C2C SYS_OP_CAST SYS_OP_CEG SYS_OP_CL2C SYS_OP_COMBINED_HASH + SYS_OP_COMP SYS_OP_CONVERT SYS_OP_COUNTCHG SYS_OP_CSCONV SYS_OP_CSCONVTEST + SYS_OP_CSR SYS_OP_CSX_PATCH SYS_OP_CYCLED_SEQ SYS_OP_DECOMP SYS_OP_DESCEND + SYS_OP_DISTINCT SYS_OP_DRA SYS_OP_DSB_DESERIALIZE SYS_OP_DSB_SERIALIZE SYS_OP_DUMP + SYS_OP_DV_CHECK SYS_OP_ENFORCE_NOT_NULL$ SYS_OP_EXTRACT SYS_OP_GROUPING SYS_OP_GUID + SYS_OP_HASH SYS_OP_HCS_TABLE SYS_OP_IIX SYS_OP_INTERVAL_HIGH_BOUND SYS_OP_ITR + SYS_OP_KEY_VECTOR_CREATE SYS_OP_KEY_VECTOR_FILTER SYS_OP_KEY_VECTOR_FILTER_LIST + SYS_OP_KEY_VECTOR_PAYLOAD SYS_OP_KEY_VECTOR_SUCCEEDED SYS_OP_KEY_VECTOR_USE + SYS_OP_LBID SYS_OP_LOBLOC2BLOB SYS_OP_LOBLOC2CLOB SYS_OP_LOBLOC2ID SYS_OP_LOBLOC2NCLOB + SYS_OP_LOBLOC2TYP SYS_OP_LSVI SYS_OP_LVL SYS_OP_MAKEOID SYS_OP_MAP_NONNULL + SYS_OP_MSR SYS_OP_NICOMBINE SYS_OP_NIEXTRACT SYS_OP_NII SYS_OP_NIX SYS_OP_NOEXPAND + SYS_OP_NTCIMG$ SYS_OP_NUMTORAW SYS_OP_OBJ_UPD_IN_TXN SYS_OP_OIDVALUE SYS_OP_OPNSIZE + SYS_OP_PAR SYS_OP_PARGID SYS_OP_PARGID_1 SYS_OP_PART_ID SYS_OP_PAR_1 SYS_OP_PIVOT + SYS_OP_R2O SYS_OP_RAWTONUM SYS_OP_RDTM SYS_OP_REF SYS_OP_RMTD SYS_OP_ROWIDTOOBJ + SYS_OP_RPB SYS_OP_TOSETID SYS_OP_TPR SYS_OP_TRTB SYS_OP_UNDESCEND SYS_OP_VECAND + SYS_OP_VECBIT SYS_OP_VECOR SYS_OP_VECTOR_GROUP_BY SYS_OP_VECXOR SYS_OP_VERSION + SYS_OP_VREF SYS_OP_VVD SYS_OP_XMLCONS_FOR_CSX SYS_OP_XPTHATG SYS_OP_XPTHIDX + SYS_OP_XPTHOP SYS_OP_XTNN SYS_OP_XTXT2SQLT SYS_OP_ZONE_ID SYS_ORDERKEY_DEPTH + SYS_ORDERKEY_MAXCHILD SYS_ORDERKEY_PARENT SYS_PARALLEL_TXN SYS_PATHID_IS_ATTR + SYS_PATHID_IS_NMSPC SYS_PATHID_LASTNAME SYS_PATHID_LASTNMSPC SYS_PATH_REVERSE + SYS_PLSQL_COUNT SYS_PLSQL_CPU SYS_PLSQL_IO SYS_PXQEXTRACT SYS_RAW_TO_XSID + SYS_REMAP_XMLTYPE SYS_RID_ORDER SYS_ROW_DELTA SYS_SC_2_XMLT SYS_SYNRCIREDO + SYS_TYPEID SYS_UMAKEXML SYS_XMLANALYZE SYS_XMLCONTAINS SYS_XMLCONV SYS_XMLEXNSURI + SYS_XMLGEN SYS_XMLINSTR SYS_XMLI_LOC_ISNODE SYS_XMLI_LOC_ISTEXT SYS_XMLLOCATOR_GETSVAL + SYS_XMLNODEID SYS_XMLNODEID_GETCID SYS_XMLNODEID_GETLOCATOR SYS_XMLNODEID_GETOKEY + SYS_XMLNODEID_GETPATHID SYS_XMLNODEID_GETPTRID SYS_XMLNODEID_GETRID SYS_XMLNODEID_GETSVAL + SYS_XMLNODEID_GETTID SYS_XMLTRANSLATE SYS_XMLTYPE2SQL SYS_XMLT_2_SC SYS_XQBASEURI + SYS_XQCASTABLEERRH SYS_XQCODEP2STR SYS_XQCODEPEQ SYS_XQCON2SEQ SYS_XQCONCAT + SYS_XQDELETE SYS_XQDFLTCOLATION SYS_XQDOC SYS_XQDOCURI SYS_XQDURDIV SYS_XQED4URI + SYS_XQENDSWITH SYS_XQERR SYS_XQERRH SYS_XQESHTMLURI SYS_XQEXLOBVAL SYS_XQEXSTWRP + SYS_XQEXTRACT SYS_XQEXTRREF SYS_XQEXVAL SYS_XQFB2STR SYS_XQFNBOOL SYS_XQFNCMP + SYS_XQFNDATIM SYS_XQFNLNAME SYS_XQFNNM SYS_XQFNNSURI SYS_XQFNPREDTRUTH SYS_XQFNQNM + SYS_XQFNROOT SYS_XQFORMATNUM SYS_XQFTCONTAIN SYS_XQFUNCR SYS_XQGETCONTENT + SYS_XQINDXOF SYS_XQINSERT SYS_XQINSPFX SYS_XQIRI2URI SYS_XQLANG SYS_XQLLNMFRMQNM + SYS_XQMKNODEREF SYS_XQNILLED SYS_XQNODENAME SYS_XQNORMSPACE SYS_XQNORMUCODE + SYS_XQNSP4PFX SYS_XQNSPFRMQNM SYS_XQPFXFRMQNM SYS_XQPOLYABS SYS_XQPOLYADD + SYS_XQPOLYCEL SYS_XQPOLYCST SYS_XQPOLYCSTBL SYS_XQPOLYDIV SYS_XQPOLYFLR SYS_XQPOLYMOD + SYS_XQPOLYMUL SYS_XQPOLYRND SYS_XQPOLYSQRT SYS_XQPOLYSUB SYS_XQPOLYUMUS SYS_XQPOLYUPLS + SYS_XQPOLYVEQ SYS_XQPOLYVGE SYS_XQPOLYVGT SYS_XQPOLYVLE SYS_XQPOLYVLT SYS_XQPOLYVNE + SYS_XQREF2VAL SYS_XQRENAME SYS_XQREPLACE SYS_XQRESVURI SYS_XQRNDHALF2EVN SYS_XQRSLVQNM + SYS_XQRYENVPGET SYS_XQRYVARGET SYS_XQRYWRP SYS_XQSEQ2CON SYS_XQSEQ2CON4XC + SYS_XQSEQDEEPEQ SYS_XQSEQINSB SYS_XQSEQRM SYS_XQSEQRVS SYS_XQSEQSUB SYS_XQSEQTYPMATCH + SYS_XQSTARTSWITH SYS_XQSTATBURI SYS_XQSTR2CODEP SYS_XQSTRJOIN SYS_XQSUBSTRAFT + SYS_XQSUBSTRBEF SYS_XQTOKENIZE SYS_XQTREATAS SYS_XQXFORM SYS_XQ_ASQLCNV SYS_XQ_ATOMCNVCHK + SYS_XQ_NRNG SYS_XQ_PKSQL2XML SYS_XQ_UPKXML2SQL SYS_XSID_TO_RAW SYS_ZMAP_FILTER + SYS_ZMAP_REFRESH TABAUTH TABLES TABLESPACE TABLESPACE_NO TABLE_LOOKUP_BY_NL + TABLE_STATS TABNO TAG TAN TANH TARGET TBL$OR$IDX$PART$NUM TEMP TEMPFILE TEMPLATE + TEMPORARY TEMP_TABLE TENANT_ID TEST TEXT THAN THE THREAD THROUGH TIER TIES + TIMEOUT TIMES TIMESTAMP_TO_NUMBER TIMEZONE_ABBR TIMEZONE_HOUR TIMEZONE_MINUTE + TIMEZONE_OFFSET TIMEZONE_REGION TIME_ZONE TIV_GB TIV_SSF TOKEN TOPLEVEL TO_ACLID + TO_APPROX_COUNT_DISTINCT TO_APPROX_PERCENTILE TO_BINARY_DOUBLE TO_BINARY_FLOAT + TO_BLOB TO_CHAR TO_CLOB TO_DATE TO_DSINTERVAL TO_ISO_STRING TO_LOB TO_MULTI_BYTE + TO_NCHAR TO_NCLOB TO_NUMBER TO_SINGLE_BYTE TO_TIME TO_TIMESTAMP TO_TIMESTAMP_TZ + TO_TIME_TZ TO_UTC_TIMESTAMP_TZ TO_YMINTERVAL TRACE TRACING TRACKING TRAILING + TRANSACTION TRANSFORM TRANSFORM_DISTINCT_AGG TRANSITION TRANSITIONAL TRANSLATE + TRANSLATION TRANSPORTABLE TREAT TRIGGERS TRIM TRUE TRUNC TRUNCATE TRUST TRUSTED + TUNING TX TYPE TYPENAME TYPES TZ_OFFSET UB2 UBA UCS2 UID UNARCHIVED UNBOUND + UNBOUNDED UNCONDITIONAL UNDER UNDO UNDROP UNIFORM UNINSTALL UNION_ALL UNISTR + UNITE UNIXTIME UNLIMITED UNLOAD UNLOCK UNMATCHED UNNEST UNNEST_INNERJ_DISTINCT_VIEW + UNNEST_NOSEMIJ_NODISTINCTVIEW UNNEST_SEMIJ_VIEW UNPACKED UNPIVOT UNPLUG UNPROTECTED + UNQUIESCE UNRECOVERABLE UNRESTRICTED UNSUBSCRIBE UNTIL UNUSABLE UNUSED UPDATABLE + UPDATED UPDATEXML UPD_INDEXES UPD_JOININDEX UPGRADE UPPER UPSERT USABLE USAGE + USE USER USERENV USERGROUP USERS USER_DATA USER_DEFINED USER_RECYCLEBIN USER_TABLESPACES + USE_ANTI USE_CONCAT USE_CUBE USE_DAGG_UNION_ALL_GSETS USE_HASH USE_HASH_AGGREGATION + USE_HASH_GBY_FOR_DAGGPSHD USE_HASH_GBY_FOR_PUSHDOWN USE_HIDDEN_PARTITIONS + USE_INVISIBLE_INDEXES USE_MERGE USE_MERGE_CARTESIAN USE_NL USE_NL_WITH_INDEX + USE_PARTITION_WISE_DISTINCT USE_PARTITION_WISE_GBY USE_PARTITION_WISE_WIF + USE_PRIVATE_OUTLINES USE_SCALABLE_GBY_INVDIST USE_SEMI USE_STORED_OUTLINES + USE_TTT_FOR_GSETS USE_VECTOR_AGGREGATION USE_WEAK_NAME_RESL USING USING_NO_EXPAND + UTF16BE UTF16LE UTF32 UTF8 V1 V2 VALIDATE VALIDATE_CONVERSION VALIDATION VALID_TIME_END + VALUE VARIANCE VARRAY VARRAYS VAR_POP VAR_SAMP VECTOR VECTOR_ENCODE VECTOR_READ + VECTOR_READ_TRACE VECTOR_TRANSFORM VECTOR_TRANSFORM_DIMS VECTOR_TRANSFORM_FACT + VERIFIER VERIFY VERSION VERSIONING VERSIONS VERSIONS_ENDSCN VERSIONS_ENDTIME + VERSIONS_OPERATION VERSIONS_STARTSCN VERSIONS_STARTTIME VERSIONS_XID VIEWS + VIOLATION VIRTUAL VISIBILITY VISIBLE VOLUME VSIZE WAIT WALLET WEEK WEEKS WELLFORMED + WHEN WHENEVER WHITESPACE WIDTH_BUCKET WINDOW WITHIN WITHOUT WITH_EXPRESSION + WITH_PLSQL WORK WRAPPED WRAPPER WRITE XDB_FASTPATH_INSERT XID XML XML2OBJECT + XMLATTRIBUTES XMLCAST XMLCDATA XMLCOLATTVAL XMLCOMMENT XMLCONCAT XMLDIFF XMLELEMENT + XMLEXISTS XMLEXISTS2 XMLFOREST XMLINDEX_REWRITE XMLINDEX_REWRITE_IN_SELECT + XMLINDEX_SEL_IDX_TBL XMLISNODE XMLISVALID XMLNAMESPACES XMLPARSE XMLPATCH + XMLPI XMLQUERY XMLQUERYVAL XMLROOT XMLSCHEMA XMLSERIALIZE XMLTABLE XMLTOJSON + XMLTOKENSET XMLTRANSFORM XMLTRANSFORMBLOB XMLTSET_DML_ENABLE XML_DIAG XML_DML_RWT_STMT + XPATHTABLE XS XS_SYS_CONTEXT X_DYN_PRUNE YEARS YES ZONEMAP + )) + end + + def self.keywords_func + @keywords_func ||= Set.new(%w( + ABS ACOS ADD_MONTHS APPROX_COUNT APPROX_COUNT_DISTINCT APPROX_COUNT_DISTINCT_AGG + APPROX_COUNT_DISTINCT_DETAIL APPROX_MEDIAN APPROX_PERCENTILE APPROX_PERCENTILE_AGG + APPROX_PERCENTILE_DETAIL APPROX_RANK APPROX_SUM ASCII ASCIISTR ASIN ATAN ATAN2 + AVG BFILENAME BIN_TO_NUM BITAND CARDINALITY CAST CEIL CHARTOROWID CHR CLUSTER_DETAILS + CLUSTER_DISTANCE CLUSTER_ID CLUSTER_PROBABILITY CLUSTER_SET COALESCE COLLATION + COLLECT COMPOSE CONCAT CONVERT CON_DBID_TO_ID CON_GUID_TO_ID CON_NAME_TO_ID + CON_UID_TO_ID CORR COS COSH COUNT COVAR_POP COVAR_SAMP CUME_DIST CURRENT_DATE + CURRENT_TIMESTAMP CV DATAOBJ_TO_MAT_PARTITION DATAOBJ_TO_PARTITION DBTIMEZONE + DECODE DECOMPOSE DENSE_RANK DEPTH DEREF DUMP EMPTY_BLOB EMPTY_CLOB EXISTSNODE + EXP EXTRACT EXTRACTVALUE FEATURE_COMPARE FEATURE_DETAILS FEATURE_ID FEATURE_SET + FEATURE_VALUE FIRST FIRST_VALUE FLOOR FROM_TZ GREATEST GROUPING GROUPING_ID + GROUP_ID HEXTORAW INITCAP INSTR ITERATION_NUMBER JSON_ARRAY JSON_ARRAYAGG + JSON_OBJECT JSON_OBJECTAGG JSON_QUERY JSON_TABLE JSON_VALUE LAG LAST LAST_DAY + LAST_VALUE LEAD LEAST LENGTH LISTAGG LN LNNVL LOCALTIMESTAMP LOG LOWER LPAD + LTRIM MAKE_REF MAX MEDIAN MIN MOD MONTHS_BETWEEN NANVL NCHR NEW_TIME NEXT_DAY + NLSSORT NLS_CHARSET_DECL_LEN NLS_CHARSET_ID NLS_CHARSET_NAME NLS_COLLATION_ID + NLS_COLLATION_NAME NLS_INITCAP NLS_LOWER NLS_UPPER NTH_VALUE NTILE NULLIF + NUMTODSINTERVAL NUMTOYMINTERVAL NVL NVL2 ORA_DM_PARTITION_NAME ORA_DST_AFFECTED + ORA_DST_CONVERT ORA_DST_ERROR ORA_HASH ORA_INVOKING_USER ORA_INVOKING_USERID + PATH PERCENTILE_CONT PERCENTILE_DISC PERCENT_RANK POWER POWERMULTISET POWERMULTISET_BY_CARDINALITY + PREDICTION PREDICTION_BOUNDS PREDICTION_COST PREDICTION_DETAILS PREDICTION_PROBABILITY + PREDICTION_SET PRESENTNNV PRESENTV PREVIOUS RANK RATIO_TO_REPORT RAWTOHEX + RAWTONHEX REFTOHEX REGEXP_COUNT REGEXP_INSTR REGEXP_REPLACE REGEXP_SUBSTR + REMAINDER REPLACE ROUND ROUND ROWIDTOCHAR ROWIDTONCHAR ROW_NUMBER RPAD RTRIM + SCN_TO_TIMESTAMP SESSIONTIMEZONE SET SIGN SIN SINH SOUNDEX SQRT STANDARD_HASH + STATS_BINOMIAL_TEST STATS_CROSSTAB STATS_F_TEST STATS_KS_TEST STATS_MODE STATS_MW_TEST + STATS_ONE_WAY_ANOVA STATS_WSR_TEST STDDEV STDDEV_POP STDDEV_SAMP SUBSTR SUM + SYSDATE SYSTIMESTAMP SYS_CONNECT_BY_PATH SYS_CONTEXT SYS_DBURIGEN SYS_EXTRACT_UTC + SYS_GUID SYS_OP_ZONE_ID SYS_TYPEID SYS_XMLAGG SYS_XMLGEN TAN TANH TIMESTAMP_TO_SCN + TO_APPROX_COUNT_DISTINCT TO_APPROX_PERCENTILE TO_BINARY_DOUBLE TO_BINARY_FLOAT + TO_BLOB TO_CHAR TO_CLOB TO_DATE TO_DSINTERVAL TO_LOB TO_MULTI_BYTE TO_NCHAR + TO_NCLOB TO_NUMBER TO_SINGLE_BYTE TO_TIMESTAMP TO_TIMESTAMP_TZ TO_YMINTERVAL + TRANSLATE TREAT TRIM TRUNC TZ_OFFSET UID UNISTR UPPER USER USERENV VALIDATE_CONVERSION + VALUE VARIANCE VAR_POP VAR_SAMP VSIZE WIDTH_BUCKET XMLAGG XMLCAST XMLCDATA + XMLCOLATTVAL XMLCOMMENT XMLCONCAT XMLDIFF XMLELEMENT XMLEXISTS XMLFOREST XMLISVALID + XMLPARSE XMLPATCH XMLPI XMLQUERY XMLROOT XMLSEQUENCE XMLSERIALIZE XMLTABLE + XMLTRANSFORM + )) + end + + def self.keywords_type + @keywords_type ||= Set.new(%w( + CHAR BYTE VARCHAR2 NCHAR NVARCHAR2 + NUMBER FLOAT BINARY_FLOAT BINARY_DOUBLE + LONG RAW + DATE TIMESTAMP INTERVAL LOCAL TIME ZONE TO MONTH SECOND YEAR DAY + BLOB CLOB NCLOB BFILE + UROWID + CHARACTER VARYING VARCHAR NATIONAL CHARACTER + NUMERIC DECIMAL DEC INTEGER INT SMALLINT + FLOAT DOUBLE PRECISION REAL + SDO_GEOMETRY SDO_TOPO_GEOMETRY SDO_GEORASTER + REF ANYTYPE ANYDATA ANYDATASET XMLTYPE HTTPURITYPE XDBURITYPE DUBRITYPE + BOOLEAN PLS_INTEGER BINARY_INTEGER SIMPLE_FLOAT SIMPLE_INTEGER SIMPLE_DOUBLE SYS_REFCURSOR + )) + end + + state :root do + delimiter_map = { '{' => '}', '[' => ']', '(' => ')', '<' => '>' } + # eat whitespace including newlines + rule %r/\s+/m, Text + + # Comments + rule %r/--.*/, Comment::Single + rule %r(/\*), Comment::Multiline, :multiline_comments + + # literals + # Q' operator quoted string literal + rule %r/q'(.)/i do |m| + close = Regexp.escape(delimiter_map[m[1]] || m[1]) + # the opening q'X + token Operator + push do + rule %r/(?:#{close}[^']|[^#{close}]'|[^#{close}'])+/m, Str::Other + rule %r/#{close}'/, Operator, :pop! + end + end + rule %r/'/, Operator, :single_string + # A double-quoted string refers to a database object in our default SQL + rule %r/"/, Operator, :double_string + # preprocessor directive treated as special comment + rule %r/(\$(?:IF|THEN|ELSE|ELSIF|ERROR|END|(?:\$\$?[a-z]\w*)))(\s+)/im do + groups Comment::Preproc, Text + end + + # Numbers + rule %r/[+-]?(?:(?:\.\d+(?:[eE][+-]?\d+)?)|\d+\.(?:\d+(?:[eE][+-]?\d+)?)?)[fFdD]?/, Num::Float + rule %r/[+-]?\d+/, Num::Integer + + # Operators + # Special semi-operator, but this seems an appropriate classification + rule %r/%(?:TYPE|ROWTYPE|FOUND|ISOPEN|NOTFOUND|ROWCOUNT)\b/i, Name::Attribute + # longer ones come first on purpose! It matters to regex engine + rule %r/=>|\|\||\*\*|<<|>>|\.\.|<>|[:!~^<>]=|[-+%\/*=<>@&!^\[\]]/, Operator + rule %r/(NOT|AND|OR|LIKE|BETWEEN|IN)(\s)/im do + groups Operator::Word, Text + end + rule %r/(IS)(\s+)(?:(NOT)(\s+))?(NULL\b)/im do + groups Operator::Word, Text, Operator::Word, Text, Operator::Word + end + + # Punctuation + # special case of dot followed by a name. notice the lookahead assertion + rule %r/\.(?=\w)/ do + token Punctuation + push :dotnames + end + rule %r/[;:()\[\],.]/, Punctuation + + # Special processing for keywords with multiple contexts + # + # this madness is to keep the word "replace" from being treated as a builtin function in this context + rule %r/(create)(\s+)(?:(or)(\s+)(replace)(\s+))?(package|function|procedure|type)(?:(\s+)(body))?(\s+)([a-z][\w$]*)/im do + groups Keyword::Reserved, Text, Keyword::Reserved, Text, Keyword::Reserved, Text, Keyword::Reserved, Text, Keyword::Reserved, Text, Name + end + # similar for MERGE keywords + rule %r/(when)(\s+)(?:(not)(\s+))?(matched)(\s+)(then)(\s+)(update|insert)\b(?:(\s+)(set)(\s+))?/im do + groups Keyword::Reserved, Text, Keyword::Reserved, Text, Keyword::Reserved, Text, Keyword::Reserved, Text, Keyword::Reserved, Text, Keyword::Reserved, Text + end + + # + # General keyword classification with sepcial attention to names + # in a chained "dot" notation. + # + rule %r/([a-zA-Z][\w$]*)(\.(?=\w))?/ do |m| + if self.class.keywords_type.include? m[1].upcase + tok = Keyword::Type + elsif self.class.keywords_func.include? m[1].upcase + tok = Name::Function + elsif self.class.keywords_reserved.include? m[1].upcase + tok = Keyword::Reserved + elsif self.class.keywords.include? m[1].upcase + tok = Keyword + else + tok = Name + end + groups tok, Punctuation + + if m[2] == "." + push :dotnames + end + end + end + + state :multiline_comments do + rule %r/([*][^\/]|[^*])+/m, Comment::Multiline + rule %r([*]\/), Comment::Multiline, :pop! + end + + state :single_string do + rule %r/\\./, Str::Escape + rule %r/''/, Str::Escape + rule %r/'/, Operator, :pop! + rule %r/[^\\']+/m, Str::Single + end + + state :double_string do + rule %r/\\./, Str::Escape + rule %r/""/, Str::Escape + rule %r/"/, Operator, :pop! + rule %r/[^\\"]+/m, Name::Variable + end + + state :dotnames do + # if we are followed by a dot and another name, we are an ordinary name + rule %r/([a-zA-Z][\w\$]*)(\.(?=\w))/ do + groups Name, Punctuation + end + # this rule WILL be true if something pushed into our state. That is our state contract + rule %r/[a-zA-Z][\w\$]*/ do |m| + if self.class.keywords_func.include? m[0].upcase + # The Function lookup allows collection methods like COUNT, FIRST, LAST, etc.. to be + # classified correctly. Occasionally misidentifies ordinary names as builtin functions, + # but seems to be as correct as we can get without becoming a full blown parser + token Name::Function + else + token Name + end + pop! + end + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/pony.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/pony.rb new file mode 100644 index 0000000..b0510b6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/pony.rb @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Pony < RegexLexer + tag 'pony' + filenames '*.pony' + + keywords = Set.new %w( + actor addressof and as + be break + class compiler_intrinsic consume continue + do + else elseif embed end error + for fun + if ifdef in interface is isnt + lambda let + match + new not + object + primitive + recover repeat return + struct + then this trait try type + until use + var + where while with + ) + + capabilities = Set.new %w( + box iso ref tag trn val + ) + + types = Set.new %w( + Number Signed Unsigned Float + I8 I16 I32 I64 I128 U8 U32 U64 U128 F32 F64 + EventID Align IntFormat NumberPrefix FloatFormat + Type + ) + + state :whitespace do + rule %r/\s+/m, Text + end + + state :root do + mixin :whitespace + rule %r/"""/, Str::Doc, :docstring + rule %r{//.*}, Comment::Single + rule %r{/(\\\n)?[*](.|\n)*?[*](\\\n)?/}, Comment::Multiline + rule %r/"/, Str, :string + rule %r([~!%^&*+=\|?:<>/-]), Operator + rule %r/(true|false|NULL)\b/, Name::Constant + rule %r{(?:[A-Z_][a-zA-Z0-9_]*)}, Name::Class + rule %r/[()\[\],.';]/, Punctuation + + # Numbers + rule %r/0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)[pP][+\-]?[0-9_]+[fFL]?[i]?/, Num::Float + rule %r/[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)[fFL]?[i]?/, Num::Float + rule %r/\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[fFL]?[i]?/, Num::Float + rule %r/0[xX][0-9a-fA-F_]+/, Num::Hex + rule %r/(0|[1-9][0-9_]*)([LUu]|Lu|LU|uL|UL)?/, Num::Integer + + rule %r/[a-z_][a-z0-9_]*/io do |m| + match = m[0] + + if capabilities.include?(match) + token Keyword::Declaration + elsif keywords.include?(match) + token Keyword::Reserved + elsif types.include?(match) + token Keyword::Type + else + token Name + end + end + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape + rule %r/[^\\"\n]+/, Str + rule %r/\\\n/, Str + rule %r/\\/, Str # stray backslash + end + + state :docstring do + rule %r/"""/, Str::Doc, :pop! + rule %r/\n/, Str::Doc + rule %r/./, Str::Doc + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/postscript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/postscript.rb new file mode 100644 index 0000000..57e8b61 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/postscript.rb @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# Adapted from pygments PostScriptLexer +module Rouge + module Lexers + class PostScript < RegexLexer + title "PostScript" + desc "The PostScript language (adobe.com/devnet/postscript.html)" + tag "postscript" + aliases "postscr", "postscript", "ps", "eps" + filenames "*.ps", "*.eps" + mimetypes "application/postscript" + + def self.detect?(text) + return true if /^%!/ =~ text + end + + delimiter = %s"()<>\[\]{}/%\s" + delimiter_end = Regexp.new("(?=[#{delimiter}])") + valid_name_chars = Regexp.new("[^#{delimiter}]") + valid_name = /#{valid_name_chars}+#{delimiter_end}/ + + # These keywords taken from + # <http://www.math.ubc.ca/~cass/graphics/manual/pdf/a1.pdf> + # Is there an authoritative list anywhere that doesn't involve + # trawling documentation? + keywords = %w/abs add aload arc arcn array atan begin + bind ceiling charpath clip closepath concat + concatmatrix copy cos currentlinewidth currentmatrix + currentpoint curveto cvi cvs def defaultmatrix + dict dictstackoverflow div dtransform dup end + exch exec exit exp fill findfont floor get + getinterval grestore gsave identmatrix idiv + idtransform index invertmatrix itransform length + lineto ln load log loop matrix mod moveto + mul neg newpath pathforall pathbbox pop print + pstack put quit rand rangecheck rcurveto repeat + restore rlineto rmoveto roll rotate round run + save scale scalefont setdash setfont setgray + setlinecap setlinejoin setlinewidth setmatrix + setrgbcolor shfill show showpage sin sqrt + stack stringwidth stroke strokepath sub syntaxerror + transform translate truncate typecheck undefined + undefinedfilename undefinedresult/ + + state :root do + # All comment types + rule %r'^%!.+?$', Comment::Preproc + rule %r'%%.*?$', Comment::Special + rule %r'(^%.*?$){2,}', Comment::Multiline + rule %r'%.*?$', Comment::Single + + # String literals are awkward; enter separate state. + rule %r'\(', Str, :stringliteral + + # References + rule %r'/#{valid_name}', Name::Variable + + rule %r'[{}<>\[\]]', Punctuation + + rule %r'(?:#{keywords.join('|')})#{delimiter_end}', Name::Builtin + + # Conditionals / flow control + rule %r'(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?)#{delimiter_end}', Keyword::Reserved + rule %r'(false|true)#{delimiter_end}', Keyword::Constant + + # Numbers + rule %r'<[0-9A-Fa-f]+>#{delimiter_end}', Num::Hex + # Slight abuse: use Oct to signify any explicit base system + rule %r'[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?#{delimiter_end}', Num::Oct + rule %r'(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?#{delimiter_end}', Num::Float + rule %r'(\-|\+)?[0-9]+#{delimiter_end}', Num::Integer + + # Names + rule valid_name, Name::Function # Anything else is executed + + rule %r'\s+', Text + end + + state :stringliteral do + rule %r'[^()\\]+', Str + rule %r'\\', Str::Escape, :escape + rule %r'\(', Str, :stringliteral + rule %r'\)', Str, :pop! + end + + state :escape do + rule %r'[0-8]{3}|n|r|t|b|f|\\|\(|\)', Str::Escape, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/powershell.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/powershell.rb new file mode 100644 index 0000000..72bb0ab --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/powershell.rb @@ -0,0 +1,248 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + + class Powershell < RegexLexer + title 'powershell' + desc 'powershell' + tag 'powershell' + aliases 'posh', 'microsoftshell', 'msshell' + filenames '*.ps1', '*.psm1', '*.psd1', '*.psrc', '*.pssc' + mimetypes 'text/x-powershell' + + # https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_functions_cmdletbindingattribute?view=powershell-6 + ATTRIBUTES = %w( + ConfirmImpact DefaultParameterSetName HelpURI PositionalBinding + SupportsPaging SupportsShouldProcess + ) + + # https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-6 + AUTO_VARS = %w( + \$\$ \$\? \$\^ \$_ + \$args \$ConsoleFileName \$Error \$Event \$EventArgs \$EventSubscriber + \$ExecutionContext \$false \$foreach \$HOME \$Host \$input \$IsCoreCLR + \$IsLinux \$IsMacOS \$IsWindows \$LastExitCode \$Matches \$MyInvocation + \$NestedPromptLevel \$null \$PID \$PROFILE \$PSBoundParameters \$PSCmdlet + \$PSCommandPath \$PSCulture \$PSDebugContext \$PSHOME \$PSItem + \$PSScriptRoot \$PSSenderInfo \$PSUICulture \$PSVersionTable \$PWD + \$REPORTERRORSHOWEXCEPTIONCLASS \$REPORTERRORSHOWINNEREXCEPTION + \$REPORTERRORSHOWSOURCE \$REPORTERRORSHOWSTACKTRACE + \$SENDER \$ShellId \$StackTrace \$switch \$this \$true + ).join('|') + + # https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_reserved_words?view=powershell-6 + KEYWORDS = %w( + assembly exit process base filter public begin finally return break for + sequence catch foreach static class from switch command function throw + configuration hidden trap continue if try data in type define + inlinescript until do interface using dynamicparam module var else + namespace while elseif parallel workflow end param enum private + ).join('|') + + # https://devblogs.microsoft.com/scripting/powertip-find-a-list-of-powershell-type-accelerators/ + # ([PSObject].Assembly.GetType("System.Management.Automation.TypeAccelerators")::Get).Keys -join ' ' + KEYWORDS_TYPE = %w( + Alias AllowEmptyCollection AllowEmptyString AllowNull ArgumentCompleter + array bool byte char CmdletBinding datetime decimal double DscResource + float single guid hashtable int int32 int16 long int64 ciminstance + cimclass cimtype cimconverter IPEndpoint NullString OutputType + ObjectSecurity Parameter PhysicalAddress pscredential PSDefaultValue + pslistmodifier psobject pscustomobject psprimitivedictionary ref + PSTypeNameAttribute regex DscProperty sbyte string SupportsWildcards + switch cultureinfo bigint securestring timespan uint16 uint32 uint64 + uri ValidateCount ValidateDrive ValidateLength ValidateNotNull + ValidateNotNullOrEmpty ValidatePattern ValidateRange ValidateScript + ValidateSet ValidateTrustedData ValidateUserDrive version void + ipaddress DscLocalConfigurationManager WildcardPattern X509Certificate + X500DistinguishedName xml CimSession adsi adsisearcher wmiclass wmi + wmisearcher mailaddress scriptblock psvariable type psmoduleinfo + powershell runspacefactory runspace initialsessionstate psscriptmethod + psscriptproperty psnoteproperty psaliasproperty psvariableproperty + ).join('|') + + OPERATORS = %w( + -split -isplit -csplit -join -is -isnot -as -eq -ieq -ceq -ne -ine -cne + -gt -igt -cgt -ge -ige -cge -lt -ilt -clt -le -ile -cle -like -ilike + -clike -notlike -inotlike -cnotlike -match -imatch -cmatch -notmatch + -inotmatch -cnotmatch -contains -icontains -ccontains -notcontains + -inotcontains -cnotcontains -replace -ireplace -creplace -shl -shr -band + -bor -bxor -and -or -xor -not \+= -= \*= \/= %= + ).join('|') + + MULTILINE_KEYWORDS = %w( + synopsis description parameter example inputs outputs notes link + component role functionality forwardhelptargetname forwardhelpcategory + remotehelprunspace externalhelp + ).join('|') + + state :variable do + rule %r/#{AUTO_VARS}/, Name::Builtin::Pseudo + rule %r/(\$)(?:(\w+)(:))?(\w+|\{(?:[^`]|`.)+?\})/ do + groups Name::Variable, Name::Namespace, Punctuation, Name::Variable + end + rule %r/\$\w+/, Name::Variable + rule %r/\$\{(?:[^`]|`.)+?\}/, Name::Variable + end + + state :multiline do + rule %r/\.(?:#{MULTILINE_KEYWORDS})/i, Comment::Special + rule %r/#>/, Comment::Multiline, :pop! + rule %r/[^#.]+?/m, Comment::Multiline + rule %r/[#.]+/, Comment::Multiline + end + + state :interpol do + rule %r/\)/, Str::Interpol, :pop! + mixin :root + end + + state :dq do + # NB: "abc$" is literally the string abc$. + # Here we prevent :interp from interpreting $" as a variable. + rule %r/(?:\$#?)?"/, Str::Double, :pop! + rule %r/\$\(/, Str::Interpol, :interpol + rule %r/`$/, Str::Escape # line continuation + rule %r/`./, Str::Escape + rule %r/[^"`$]+/, Str::Double + mixin :variable + end + + state :sq do + rule %r/'/, Str::Single, :pop! + rule %r/[^']+/, Str::Single + end + + state :heredoc do + rule %r/(?:\$#?)?"@/, Str::Heredoc, :pop! + rule %r/\$\(/, Str::Interpol, :interpol + rule %r/`$/, Str::Escape # line continuation + rule %r/`./, Str::Escape + rule %r/[^"`$]+?/m, Str::Heredoc + rule %r/"+/, Str::Heredoc + mixin :variable + end + + state :class do + rule %r/\{/, Punctuation, :pop! + rule %r/\s+/, Text::Whitespace + rule %r/\w+/, Name::Class + rule %r/[:,]/, Punctuation + end + + state :expr do + mixin :comments + rule %r/"/, Str::Double, :dq + rule %r/'/, Str::Single, :sq + rule %r/@"/, Str::Heredoc, :heredoc + rule %r/@'.*?'@/m, Str::Heredoc + rule %r/\d*\.\d+/, Num::Float + rule %r/\d+/, Num::Integer + rule %r/@\{/, Punctuation, :hasht + rule %r/@\(/, Punctuation, :array + rule %r/{/, Punctuation, :brace + rule %r/\[/, Punctuation, :bracket + end + + state :hasht do + rule %r/\}/, Punctuation, :pop! + rule %r/=/, Operator + rule %r/[,;]/, Punctuation + mixin :expr + rule %r/\w+/, Name::Other + mixin :variable + end + + state :array do + rule %r/\s+/, Text::Whitespace + rule %r/\)/, Punctuation, :pop! + rule %r/[,;]/, Punctuation + mixin :expr + mixin :variable + end + + state :brace do + rule %r/[}]/, Punctuation, :pop! + mixin :root + end + + state :bracket do + rule %r/\]/, Punctuation, :pop! + rule %r/[A-Za-z]\w+\./, Name + rule %r/([A-Za-z]\w+)/ do |m| + if ATTRIBUTES.include? m[0] + token Name::Builtin::Pseudo + else + token Name + end + end + mixin :root + end + + state :parameters do + rule %r/`./m, Str::Escape + rule %r/\)/ do + token Punctuation + pop!(2) if in_state?(:interpol) # pop :parameters and :interpol + end + rule %r/\s*?\n/, Text::Whitespace, :pop! + rule %r/[;(){}\]]/, Punctuation, :pop! + rule %r/[|=]/, Operator, :pop! + rule %r/[\/\\~\w][-.:\/\\~\w]*/, Name::Other + rule %r/\w[-\w]+/, Name::Other + mixin :root + end + + state :comments do + rule %r/\s+/, Text::Whitespace + rule %r/#.*/, Comment + rule %r/<#/, Comment::Multiline, :multiline + end + + state :root do + mixin :comments + rule %r/#requires\s-version \d(?:\.\d+)?/, Comment::Preproc + + rule %r/\.\.(?=\.?\d)/, Operator + rule %r/(?:#{OPERATORS})\b/i, Operator + + rule %r/(class)(\s+)(\w+)/i do + groups Keyword::Reserved, Text::Whitespace, Name::Class + push :class + end + rule %r/(function)(\s+)(?:(\w+)(:))?(\w[-\w]+)/i do + groups Keyword::Reserved, Text::Whitespace, Name::Namespace, Punctuation, Name::Function + end + rule %r/(?:#{KEYWORDS})\b(?![-.])/i, Keyword::Reserved + + rule %r/-{1,2}\w+/, Name::Tag + + rule %r/(\.)?([-\w]+)(\[)/ do |m| + groups Operator, Name, Punctuation + push :bracket + end + + rule %r/([\/\\~[a-z]][-.:\/\\~\w]*)(\n)?/i do |m| + groups Name, Text::Whitespace + push :parameters + end + + rule %r/(\.)([-\w]+)(?:(\()|(\n))?/ do |m| + groups Operator, Name::Function, Punctuation, Text::Whitespace + push :parameters unless m[3].nil? + end + + rule %r/\?/, Name::Function, :parameters + + mixin :expr + mixin :variable + + rule %r/[-+*\/%=!.&|]/, Operator + rule %r/[{}(),:;]/, Punctuation + + rule %r/`$/, Str::Escape # line continuation + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/praat.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/praat.rb new file mode 100644 index 0000000..1dc78a7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/praat.rb @@ -0,0 +1,438 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Praat < RegexLexer + title "Praat" + desc "The Praat scripting language (praat.org)" + + tag 'praat' + + filenames '*.praat', '*.proc', '*.psc' + + def self.detect?(text) + return true if text.shebang? 'praat' + end + + def self.keywords + @keywords ||= %w( + if then else elsif elif endif fi for from to endfor endproc while + endwhile repeat until select plus minus demo assert stopwatch + nocheck nowarn noprogress editor endeditor clearinfo + ) + end + + def self.functions_string + @functions_string ||= %w( + backslashTrigraphsToUnicode$ chooseDirectory$ chooseReadFile$ + chooseWriteFile$ date$ demoKey$ do$ environment$ extractLine$ extractWord$ + fixed$ info$ left$ mid$ percent$ readFile$ replace$ replace_regex$ right$ + selected$ string$ unicodeToBackslashTrigraphs$ + ) + end + + def self.functions_numeric + @functions_numeric ||= %w( + abs appendFile appendFileLine appendInfo appendInfoLine arccos arccosh + arcsin arcsinh arctan arctan2 arctanh barkToHertz beginPause + beginSendPraat besselI besselK beta beta2 binomialP binomialQ boolean + ceiling chiSquareP chiSquareQ choice comment cos cosh createDirectory + deleteFile demoClicked demoClickedIn demoCommandKeyPressed + demoExtraControlKeyPressed demoInput demoKeyPressed + demoOptionKeyPressed demoShiftKeyPressed demoShow demoWaitForInput + demoWindowTitle demoX demoY differenceLimensToPhon do editor endPause + endSendPraat endsWith erb erbToHertz erf erfc exitScript exp + extractNumber fileReadable fisherP fisherQ floor gaussP gaussQ hash + hertzToBark hertzToErb hertzToMel hertzToSemitones imax imin + incompleteBeta incompleteGammaP index index_regex integer invBinomialP + invBinomialQ invChiSquareQ invFisherQ invGaussQ invSigmoid invStudentQ + length ln lnBeta lnGamma log10 log2 max melToHertz min minusObject + natural number numberOfColumns numberOfRows numberOfSelected + objectsAreIdentical option optionMenu pauseScript + phonToDifferenceLimens plusObject positive randomBinomial randomGauss + randomInteger randomPoisson randomUniform real readFile removeObject + rindex rindex_regex round runScript runSystem runSystem_nocheck + selectObject selected semitonesToHertz sentence sentencetext sigmoid + sin sinc sincpi sinh soundPressureToPhon sqrt startsWith studentP + studentQ tan tanh text variableExists word writeFile writeFileLine + writeInfo writeInfoLine + ) + end + + def self.functions_array + @functions_array ||= %w( + linear# randomGauss# randomInteger# randomUniform# zero# + ) + end + + def self.functions_matrix + @functions_matrix ||= %w( + linear## mul## mul_fast## mul_metal## mul_nt## mul_tn## mul_tt## outer## peaks## + randomGamma## randomGauss## randomInteger## randomUniform## softmaxPerRow## + solve## transpose## zero## + ) + end + + def self.functions_string_vector + @functions_string_vector ||= %w( + empty$# fileNames$# folderNames$# readLinesFromFile$# splitByWhitespace$# + ) + end + + def self.functions_builtin + @functions_builtin ||= + self.functions_string | + self.functions_numeric | + self.functions_array | + self.functions_matrix | + self.functions_string_vector + end + + def self.objects + @objects ||= %w( + Activation AffineTransform AmplitudeTier Art Artword Autosegment + BarkFilter BarkSpectrogram CCA Categories Cepstrogram Cepstrum + Cepstrumc ChebyshevSeries ClassificationTable Cochleagram Collection + ComplexSpectrogram Configuration Confusion ContingencyTable Corpus + Correlation Covariance CrossCorrelationTable CrossCorrelationTableList + CrossCorrelationTables DTW DataModeler Diagonalizer Discriminant + Dissimilarity Distance Distributions DurationTier EEG ERP ERPTier + EditCostsTable EditDistanceTable Eigen Excitation Excitations + ExperimentMFC FFNet FeatureWeights FileInMemory FilesInMemory Formant + FormantFilter FormantGrid FormantModeler FormantPoint FormantTier + GaussianMixture HMM HMM_Observation HMM_ObservationSequence HMM_State + HMM_StateSequence HMMObservation HMMObservationSequence HMMState + HMMStateSequence Harmonicity ISpline Index Intensity IntensityTier + IntervalTier KNN KlattGrid KlattTable LFCC LPC Label LegendreSeries + LinearRegression LogisticRegression LongSound Ltas MFCC MSpline ManPages + Manipulation Matrix MelFilter MelSpectrogram MixingMatrix Movie Network + OTGrammar OTHistory OTMulti PCA PairDistribution ParamCurve Pattern + Permutation Photo Pitch PitchModeler PitchTier PointProcess Polygon + Polynomial PowerCepstrogram PowerCepstrum Procrustes RealPoint RealTier + ResultsMFC Roots SPINET SSCP SVD Salience ScalarProduct Similarity + SimpleString SortedSetOfString Sound Speaker Spectrogram Spectrum + SpectrumTier SpeechSynthesizer SpellingChecker Strings StringsIndex + Table TableOfReal TextGrid TextInterval TextPoint TextTier Tier + Transition VocalTract VocalTractTier Weight WordList + ) + end + + def self.variables_numeric + @variables_numeric ||= %w( + all average e left macintosh mono pi praatVersion right stereo + undefined unix windows + ) + end + + def self.variables_string + @variables_string ||= %w( + praatVersion$ tab$ shellDirectory$ homeDirectory$ + preferencesDirectory$ newline$ temporaryDirectory$ + defaultDirectory$ + ) + end + + def self.object_attributes + @object_attributes ||= %w( + ncol nrow xmin ymin xmax ymax nx ny dx dy + ) + end + + state :root do + rule %r/(\s+)(#.*?$)/ do + groups Text, Comment::Single + end + + rule %r/^#.*?$/, Comment::Single + rule %r/;[^\n]*/, Comment::Single + rule %r/\s+/, Text + + rule %r/(\bprocedure)(\s+)/ do + groups Keyword, Text + push :procedure_definition + end + + rule %r/(\bcall)(\s+)/ do + groups Keyword, Text + push :procedure_call + end + + rule %r/@/, Name::Function, :procedure_call + + mixin :function_call + + rule %r/\b(?:select all)\b/, Keyword + + rule %r/(\bform\b)(\s+)([^\n]+)/ do + groups Keyword, Text, Literal::String + push :old_form + end + + rule %r/(print(?:line|tab)?|echo|exit|asserterror|pause|send(?:praat|socket)|include|execute|system(?:_nocheck)?)(\s+)/ do + groups Keyword, Text + push :string_unquoted + end + + rule %r/(goto|label)(\s+)(\w+)/ do + groups Keyword, Text, Name::Label + end + + mixin :variable_name + mixin :number + mixin :vector_literal + + rule %r/"/, Literal::String, :string + + rule %r/\b([A-Z][a-zA-Z0-9]+)(?=\s+\S+\n)/ do |m| + match = m[0] + if self.class.objects.include?(match) + token Name::Class + push :string_unquoted + else + token Keyword + end + end + + rule %r/\b(?=[A-Z])/, Text, :command + rule %r/(\.{3}|[)(,\$])/, Punctuation + + rule %r/[a_z]+/ do |m| + match = m[0] + if self.class.keywords.include?(match) + token Keyword + else + token Text + end + end + end + + state :command do + rule %r/( ?([^\s:\.'])+ ?)/, Keyword + mixin :string_interpolated + + rule %r/\.{3}/ do + token Keyword + pop! + push :old_arguments + end + + rule %r/:/ do + token Keyword + pop! + push :comma_list + end + + rule %r/[\s]/, Text, :pop! + end + + state :procedure_call do + mixin :string_interpolated + + rule %r/(:|\s*\()/, Punctuation, :pop! + + rule %r/'/, Name::Function + rule %r/[^:\('\s]+/, Name::Function + + rule %r/(?=\s+)/ do + token Text + pop! + push :old_arguments + end + end + + state :procedure_definition do + rule %r/(:|\s*\()/, Punctuation, :pop! + + rule %r/[^:\(\s]+/, Name::Function + + rule %r/(\s+)/, Text, :pop! + end + + state :function_call do + rule %r/\b([a-z][a-zA-Z0-9_.]+)(\$#|##|\$|#)?(?=\s*[:(])/ do |m| + match = m[0] + if self.class.functions_builtin.include?(match) + token Name::Function + push :function + elsif self.class.keywords.include?(match) + token Keyword + else + token Operator::Word + end + end + end + + state :function do + rule %r/\s+/, Text + + rule %r/(?::|\s*\()/ do + token Text + pop! + push :comma_list + end + end + + state :comma_list do + rule %r/(\s*\n\s*)(\.{3})/ do + groups Text, Punctuation + end + + rule %r/\s*[\]\})\n]/, Text, :pop! + + rule %r/\s+/, Text + rule %r/"/, Literal::String, :string + rule %r/\b(if|then|else|fi|endif)\b/, Keyword + + mixin :function_call + mixin :variable_name + mixin :operator + mixin :number + mixin :vector_literal + + rule %r/[()]/, Text + rule %r/,/, Punctuation + end + + state :old_arguments do + rule %r/\n/, Text, :pop! + + mixin :variable_name + mixin :operator + mixin :number + + rule %r/"/, Literal::String, :string + rule %r/[^\n]/, Text + end + + state :number do + rule %r/\n/, Text, :pop! + rule %r/\b\d+(\.\d*)?([eE][-+]?\d+)?%?/, Literal::Number + end + + state :variable_name do + mixin :operator + mixin :number + + rule %r/\b([A-Z][a-zA-Z0-9]+)_/ do |m| + match = m[1] + if (['Object'] | self.class.objects).include?(match) + token Name::Builtin + push :object_reference + else + token Name::Variable + end + end + + rule %r/\.?[a-z][a-zA-Z0-9_.]*(\$#|##|\$|#)?/ do |m| + match = m[0] + if self.class.variables_string.include?(match) || + self.class.variables_numeric.include?(match) + token Name::Builtin + elsif self.class.keywords.include?(match) + token Keyword + else + token Name::Variable + end + end + + rule %r/[\[\]]/, Text, :comma_list + mixin :string_interpolated + end + + state :vector_literal do + rule %r/(\{)/, Text, :comma_list + end + + state :object_reference do + mixin :string_interpolated + rule %r/([a-z][a-zA-Z0-9_]*|\d+)/, Name::Builtin + + rule %r/\.([a-z]+)\b/ do |m| + match = m[1] + if self.class.object_attributes.include?(match) + token Name::Builtin + pop! + end + end + + rule %r/\$/, Name::Builtin + rule %r/\[/, Text, :pop! + end + + state :operator do + # This rule incorrectly matches === or +++++, which are not operators + rule %r/([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)/, Operator + rule %r/(?<![\w.])(and|or|not|div|mod)(?![\w.])/, Operator::Word + end + + state :string_interpolated do + rule %r/'[\._a-z][^\[\]'":]*(\[([\d,]+|"[\w,]+")\])?(:[0-9]+)?'/, Literal::String::Interpol + end + + state :string_unquoted do + rule %r/\n\s*\.{3}/, Punctuation + rule %r/\n/, Text, :pop! + rule %r/\s/, Text + + mixin :string_interpolated + + rule %r/'/, Literal::String + rule %r/[^'\n]+/, Literal::String + end + + state :string do + rule %r/\n\s*\.{3}/, Punctuation + rule %r/"/, Literal::String, :pop! + + mixin :string_interpolated + + rule %r/'/, Literal::String + rule %r/[^'"\n]+/, Literal::String + end + + state :old_form do + rule %r/(\s+)(#.*?$)/ do + groups Text, Comment::Single + end + + rule %r/\s+/, Text + + rule %r/(optionmenu|choice)([ \t]+\S+:[ \t]+)/ do + groups Keyword, Text + push :number + end + + rule %r/(option|button)([ \t]+)/ do + groups Keyword, Text + push :string_unquoted + end + + rule %r/(sentence|text)([ \t]+\S+)/ do + groups Keyword, Text + push :string_unquoted + end + + rule %r/(word)([ \t]+\S+[ \t]*)(\S+)?([ \t]+.*)?/ do + groups Keyword, Text, Literal::String, Text + end + + rule %r/(boolean)(\s+\S+\s*)(0|1|"?(?:yes|no)"?)/ do + groups Keyword, Text, Name::Variable + end + + rule %r/(real|natural|positive|integer)([ \t]+\S+[ \t]*)([+-]?)/ do + groups Keyword, Text, Operator + push :number + end + + rule %r/(comment)(\s+)/ do + groups Keyword, Text + push :string_unquoted + end + + rule %r/\bendform\b/, Keyword, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/prolog.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/prolog.rb new file mode 100644 index 0000000..5f1d23e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/prolog.rb @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Prolog < RegexLexer + title "Prolog" + desc "The Prolog programming language (http://en.wikipedia.org/wiki/Prolog)" + tag 'prolog' + aliases 'prolog' + filenames '*.pro', '*.P', '*.prolog', '*.pl' + mimetypes 'text/x-prolog' + + start { push :bol } + + state :bol do + rule %r/#.*/, Comment::Single + rule(//) { pop! } + end + + state :basic do + rule %r/\s+/, Text + rule %r/%.*/, Comment::Single + rule %r/\/\*/, Comment::Multiline, :nested_comment + + rule %r/[\[\](){}|.,;!]/, Punctuation + rule %r/:-|-->/, Punctuation + + rule %r/"[^"]*"/, Str::Double + + rule %r/\d+\.\d+/, Num::Float + rule %r/\d+/, Num + end + + state :atoms do + rule %r/[[:lower:]]([[:word:]])*/, Str::Symbol + rule %r/'[^']*'/, Str::Symbol + end + + state :operators do + rule %r/(<|>|=<|>=|==|=:=|=|\/|\/\/|\*|\+|-)(?=\s|[a-zA-Z0-9\[])/, + Operator + rule %r/is/, Operator + rule %r/(mod|div|not)/, Operator + rule %r/[#&*+-.\/:<=>?@^~]+/, Operator + end + + state :variables do + rule %r/[A-Z]+\w*/, Name::Variable + rule %r/_[[:word:]]*/, Name::Variable + end + + state :root do + mixin :basic + mixin :atoms + mixin :variables + mixin :operators + end + + state :nested_comment do + rule %r(/\*), Comment::Multiline, :push + rule %r/\s*\*[^*\/]+/, Comment::Multiline + rule %r(\*/), Comment::Multiline, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/prometheus.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/prometheus.rb new file mode 100644 index 0000000..c27f7bc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/prometheus.rb @@ -0,0 +1,122 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + class Prometheus < RegexLexer + desc 'prometheus' + tag 'prometheus' + aliases 'prometheus' + filenames '*.prometheus' + + mimetypes 'text/x-prometheus', 'application/x-prometheus' + + def self.functions + @functions ||= Set.new %w( + abs absent ceil changes clamp_max clamp_min count_scalar day_of_month + day_of_week days_in_month delta deriv drop_common_labels exp floor + histogram_quantile holt_winters hour idelta increase irate label_replace + ln log2 log10 month predict_linear rate resets round scalar sort + sort_desc sqrt time vector year avg_over_time min_over_time + max_over_time sum_over_time count_over_time quantile_over_time + stddev_over_time stdvar_over_time + ) + end + + state :root do + mixin :strings + mixin :whitespace + + rule %r/-?\d+\.\d+/, Num::Float + rule %r/-?\d+[smhdwy]?/, Num::Integer + + mixin :operators + + rule %r/(ignoring|on)(\()/ do + groups Keyword::Pseudo, Punctuation + push :label_list + end + rule %r/(group_left|group_right)(\()/ do + groups Keyword::Type, Punctuation + end + rule %r/(bool|offset)\b/, Keyword + rule %r/(without|by)\b/, Keyword, :label_list + rule %r/[\w:]+/ do |m| + if self.class.functions.include?(m[0]) + token Name::Builtin + else + token Name + end + end + + mixin :metrics + end + + state :metrics do + rule %r/[a-zA-Z0-9_-]+/, Name + + rule %r/[\(\)\]:.,]/, Punctuation + rule %r/\{/, Punctuation, :filters + rule %r/\[/, Punctuation + end + + state :strings do + rule %r/"/, Str::Double, :double_string_escaped + rule %r/'/, Str::Single, :single_string_escaped + rule %r/`.*`/, Str::Backtick + end + + [ + [:double, Str::Double, '"'], + [:single, Str::Single, "'"] + ].each do |name, tok, fin| + state :"#{name}_string_escaped" do + rule %r/\\[\\abfnrtv#{fin}]/, Str::Escape + rule %r/[^\\#{fin}]+/m, tok + rule %r/#{fin}/, tok, :pop! + end + end + + state :filters do + mixin :inline_whitespace + rule %r/,/, Punctuation + mixin :labels + mixin :filter_matching_operators + mixin :strings + rule %r/}/, Punctuation, :pop! + end + + state :label_list do + rule %r/\(/, Punctuation + rule %r/[a-zA-Z0-9_:-]+/, Name::Attribute + rule %r/,/, Punctuation + mixin :whitespace + rule %r/\)/, Punctuation, :pop! + end + + state :labels do + rule %r/[a-zA-Z0-9_:-]+/, Name::Attribute + end + + state :operators do + rule %r([+\-\*/%\^]), Operator # Arithmetic + rule %r(=|==|!=|<|>|<=|>=), Operator # Comparison + rule %r/and|or|unless/, Operator # Logical/Set + rule %r/(sum|min|max|avg|stddev|stdvar|count|count_values|bottomk|topk)\b/, Name::Function + end + + state :filter_matching_operators do + rule %r/!(=|~)|=~?/, Operator + end + + state :inline_whitespace do + rule %r/[ \t\r]+/, Text + end + + state :whitespace do + mixin :inline_whitespace + rule %r/\n\s*/m, Text + rule %r/#.*?$/, Comment + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/properties.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/properties.rb new file mode 100644 index 0000000..12ec807 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/properties.rb @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Properties < RegexLexer + title ".properties" + desc '.properties config files for Java' + tag 'properties' + + filenames '*.properties' + mimetypes 'text/x-java-properties' + + identifier = /[\w.-]+/ + + state :basic do + rule %r/[!#].*?\n/, Comment + rule %r/\s+/, Text + rule %r/\\\n/, Str::Escape + end + + state :root do + mixin :basic + + rule %r/(#{identifier})(\s*)([=:])/ do + groups Name::Property, Text, Punctuation + push :value + end + end + + state :value do + rule %r/\n/, Text, :pop! + mixin :basic + rule %r/"/, Str, :dq + rule %r/'.*?'/, Str + mixin :esc_str + rule %r/[^\\\n]+/, Str + end + + state :dq do + rule %r/"/, Str, :pop! + mixin :esc_str + rule %r/[^\\"]+/m, Str + end + + state :esc_str do + rule %r/\\u[0-9]{4}/, Str::Escape + rule %r/\\./m, Str::Escape + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/protobuf.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/protobuf.rb new file mode 100644 index 0000000..9ac6c97 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/protobuf.rb @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Protobuf < RegexLexer + title 'Protobuf' + desc 'Google\'s language-neutral, platform-neutral, extensible mechanism for serializing structured data' + tag 'protobuf' + aliases 'proto' + filenames '*.proto' + mimetypes 'text/x-proto' + + kw = /\b(ctype|default|extensions|import|max|oneof|option|optional|packed|repeated|required|returns|rpc|to)\b/ + datatype = /\b(bool|bytes|double|fixed32|fixed64|float|int32|int64|sfixed32|sfixed64|sint32|sint64|string|uint32|uint64)\b/ + + state :root do + rule %r/[\s]+/, Text + rule %r/[,;{}\[\]()]/, Punctuation + rule %r/\/(\\\n)?\/($|(.|\n)*?[^\\]$)/, Comment::Single + rule %r/\/(\\\n)?\*(.|\n)*?\*(\\\n)?\//, Comment::Multiline + rule kw, Keyword + rule datatype, Keyword::Type + rule %r/true|false/, Keyword::Constant + rule %r/(package)(\s+)/ do + groups Keyword::Namespace, Text + push :package + end + + rule %r/(message|extend)(\s+)/ do + groups Keyword::Declaration, Text + push :message + end + + rule %r/(enum|group|service)(\s+)/ do + groups Keyword::Declaration, Text + push :type + end + + rule %r/".*?"/, Str + rule %r/'.*?'/, Str + rule %r/(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*/, Num::Float + rule %r/(\d+\.\d*|\.\d+|\d+[fF])[fF]?/, Num::Float + rule %r/(\-?(inf|nan))\b/, Num::Float + rule %r/0x[0-9a-fA-F]+[LlUu]*/, Num::Hex + rule %r/0[0-7]+[LlUu]*/, Num::Oct + rule %r/\d+[LlUu]*/, Num::Integer + rule %r/[+-=]/, Operator + rule %r/([a-zA-Z_][\w.]*)([ \t]*)(=)/ do + groups Name::Attribute, Text, Operator + end + rule %r/[a-zA-Z_][\w.]*/, Name + end + + state :package do + rule %r/[a-zA-Z_]\w*/, Name::Namespace, :pop! + rule(//) { pop! } + end + + state :message do + rule %r/[a-zA-Z_]\w*/, Name::Class, :pop! + rule(//) { pop! } + end + + state :type do + rule %r/[a-zA-Z_]\w*/, Name, :pop! + rule(//) { pop! } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/puppet.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/puppet.rb new file mode 100644 index 0000000..9726bd9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/puppet.rb @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Puppet < RegexLexer + title "Puppet" + desc 'The Puppet configuration management language (puppetlabs.org)' + tag 'puppet' + aliases 'pp' + filenames '*.pp' + + def self.detect?(text) + return true if text.shebang? 'puppet-apply' + return true if text.shebang? 'puppet' + end + + def self.keywords + @keywords ||= Set.new %w( + and case class default define else elsif if in import inherits + node unless + ) + end + + def self.constants + @constants ||= Set.new %w( + false true undef + ) + end + + def self.metaparameters + @metaparameters ||= Set.new %w( + before require notify subscribe + ) + end + + id = /[a-z]\w*/ + cap_id = /[A-Z]\w*/ + qualname = /(::)?(#{id}::)*\w+/ + + state :whitespace do + rule %r/\s+/m, Text + rule %r/#.*?\n/, Comment + end + + state :root do + mixin :whitespace + + rule %r/[$]#{qualname}/, Name::Variable + rule %r/(#{id})(?=\s*[=+]>)/m do |m| + if self.class.metaparameters.include? m[0] + token Keyword::Pseudo + else + token Name::Property + end + end + + rule %r/(#{qualname})(?=\s*[(])/m, Name::Function + rule cap_id, Name::Class + + rule %r/[+=|~-]>|<[|~-]/, Punctuation + rule %r/[|:}();\[\]]/, Punctuation + + # HACK for case statements and selectors + rule %r/{/, Punctuation, :regex_allowed + rule %r/,/, Punctuation, :regex_allowed + + rule %r/(in|and|or)\b/, Operator::Word + rule %r/[=!<>]=/, Operator + rule %r/[=!]~/, Operator, :regex_allowed + rule %r([.=<>!+*/-]), Operator + + rule %r/(class|include)(\s*)(#{qualname})/ do + groups Keyword, Text, Name::Class + end + + rule %r/node\b/, Keyword, :regex_allowed + + rule %r/'(\\[\\']|[^'])*'/m, Str::Single + rule %r/"/, Str::Double, :dquotes + + rule %r/\d+([.]\d+)?(e[+-]\d+)?/, Num + + # a valid regex. TODO: regexes are only allowed + # in certain places in puppet. + rule qualname do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.constants.include? m[0] + token Keyword::Constant + else + token Name + end + end + end + + state :regex_allowed do + mixin :whitespace + rule %r(/), Str::Regex, :regex + + rule(//) { pop! } + end + + state :regex do + rule %r(/), Str::Regex, :pop! + rule %r/\\./, Str::Escape + rule %r/[(){}]/, Str::Interpol + rule %r/\[/, Str::Interpol, :regex_class + rule %r/./, Str::Regex + end + + state :regex_class do + rule %r/\]/, Str::Interpol, :pop! + rule %r/(?<!\[)-(?=\])/, Str::Regex + rule %r/-/, Str::Interpol + rule %r/\\./, Str::Escape + rule %r/[^\\\]-]+/, Str::Regex + end + + state :dquotes do + rule %r/"/, Str::Double, :pop! + rule %r/[^$\\"]+/m, Str::Double + rule %r/\\./m, Str::Escape + rule %r/[$]#{qualname}/, Name::Variable + rule %r/[$][{]#{qualname}[}]/, Name::Variable + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/python.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/python.rb new file mode 100644 index 0000000..1733758 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/python.rb @@ -0,0 +1,268 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Python < RegexLexer + title "Python" + desc "The Python programming language (python.org)" + tag 'python' + aliases 'py' + filenames '*.py', '*.pyi', '*.pyw', '*.sc', 'SConstruct', 'SConscript', + '*.tac', '*.bzl', 'BUCK', 'BUILD', 'BUILD.bazel', 'WORKSPACE' + mimetypes 'text/x-python', 'application/x-python' + + def self.detect?(text) + return true if text.shebang?(/pythonw?(?:[23](?:\.\d+)?)?/) + end + + def self.keywords + @keywords ||= %w( + assert break continue del elif else except exec + finally for global if lambda pass print raise + return try while yield as with from import yield + async await nonlocal + ) + end + + def self.builtins + @builtins ||= %w( + __import__ abs all any apply ascii basestring bin bool buffer + bytearray bytes callable chr classmethod cmp coerce compile + complex delattr dict dir divmod enumerate eval execfile exit + file filter float format frozenset getattr globals hasattr hash hex id + input int intern isinstance issubclass iter len list locals + long map max memoryview min next object oct open ord pow property range + raw_input reduce reload repr reversed round set setattr slice + sorted staticmethod str sum super tuple type unichr unicode + vars xrange zip + ) + end + + def self.builtins_pseudo + @builtins_pseudo ||= %w(None Ellipsis NotImplemented False True) + end + + def self.exceptions + @exceptions ||= %w( + ArithmeticError AssertionError AttributeError + BaseException BlockingIOError BrokenPipeError BufferError + BytesWarning ChildProcessError ConnectionAbortedError + ConnectionError ConnectionRefusedError ConnectionResetError + DeprecationWarning EOFError EnvironmentError + Exception FileExistsError FileNotFoundError + FloatingPointError FutureWarning GeneratorExit IOError + ImportError ImportWarning IndentationError IndexError + InterruptedError IsADirectoryError KeyError KeyboardInterrupt + LookupError MemoryError ModuleNotFoundError NameError + NotADirectoryError NotImplemented NotImplementedError OSError + OverflowError OverflowWarning PendingDeprecationWarning + ProcessLookupError RecursionError ReferenceError ResourceWarning + RuntimeError RuntimeWarning StandardError StopAsyncIteration + StopIteration SyntaxError SyntaxWarning SystemError SystemExit + TabError TimeoutError TypeError UnboundLocalError UnicodeDecodeError + UnicodeEncodeError UnicodeError UnicodeTranslateError + UnicodeWarning UserWarning ValueError VMSError Warning + WindowsError ZeroDivisionError + ) + end + + identifier = /[[:alpha:]_][[:alnum:]_]*/ + dotted_identifier = /[[:alpha:]_.][[:alnum:]_.]*/ + + def current_string + @string_register ||= StringRegister.new + end + + state :root do + rule %r/\n+/m, Text + rule %r/^(:)(\s*)([ru]{,2}""".*?""")/mi do + groups Punctuation, Text, Str::Doc + end + + rule %r/\.\.\.\B$/, Name::Builtin::Pseudo + + rule %r/[^\S\n]+/, Text + rule %r(#(.*)?\n?), Comment::Single + rule %r/[\[\]{}:(),;.]/, Punctuation + rule %r/\\\n/, Text + rule %r/\\/, Text + + rule %r/@#{dotted_identifier}/i, Name::Decorator + + rule %r/(in|is|and|or|not)\b/, Operator::Word + rule %r/(<<|>>|\/\/|\*\*)=?/, Operator + rule %r/[-~+\/*%=<>&^|@]=?|!=/, Operator + + rule %r/(from)((?:\\\s|\s)+)(#{dotted_identifier})((?:\\\s|\s)+)(import)/ do + groups Keyword::Namespace, + Text, + Name, + Text, + Keyword::Namespace + end + + rule %r/(import)(\s+)(#{dotted_identifier})/ do + groups Keyword::Namespace, Text, Name + end + + rule %r/(def)((?:\s|\\\s)+)/ do + groups Keyword, Text + push :funcname + end + + rule %r/(class)((?:\s|\\\s)+)/ do + groups Keyword, Text + push :classname + end + + rule %r/([a-z_]\w*)[ \t]*(?=(\(.*\)))/m, Name::Function + rule %r/([A-Z_]\w*)[ \t]*(?=(\(.*\)))/m, Name::Class + + # TODO: not in python 3 + rule %r/`.*?`/, Str::Backtick + rule %r/([rfbu]{0,2})('''|"""|['"])/i do |m| + groups Str::Affix, Str::Heredoc + current_string.register type: m[1].downcase, delim: m[2] + push :generic_string + end + + # using negative lookbehind so we don't match property names + rule %r/(?<!\.)#{identifier}/ do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.exceptions.include? m[0] + token Name::Builtin + elsif self.class.builtins.include? m[0] + token Name::Builtin + elsif self.class.builtins_pseudo.include? m[0] + token Name::Builtin::Pseudo + else + token Name + end + end + + rule identifier, Name + + digits = /[0-9](_?[0-9])*/ + decimal = /((#{digits})?\.#{digits}|#{digits}\.)/ + exponent = /e[+-]?#{digits}/i + rule %r/#{decimal}(#{exponent})?j?/i, Num::Float + rule %r/#{digits}#{exponent}j?/i, Num::Float + rule %r/#{digits}j/i, Num::Float + + rule %r/0b(_?[0-1])+/i, Num::Bin + rule %r/0o(_?[0-7])+/i, Num::Oct + rule %r/0x(_?[a-f0-9])+/i, Num::Hex + rule %r/\d+L/, Num::Integer::Long + rule %r/([1-9](_?[0-9])*|0(_?0)*)/, Num::Integer + end + + state :funcname do + rule identifier, Name::Function, :pop! + end + + state :classname do + rule identifier, Name::Class, :pop! + end + + state :raise do + rule %r/from\b/, Keyword + rule %r/raise\b/, Keyword + rule %r/yield\b/, Keyword + rule %r/\n/, Text, :pop! + rule %r/;/, Punctuation, :pop! + mixin :root + end + + state :yield do + mixin :raise + end + + state :generic_string do + rule %r/^\s*(>>>|\.\.\.)\B/, Generic::Prompt, :doctest + rule %r/[^'"\\{]+?/, Str + rule %r/{{/, Str + + rule %r/'''|"""|['"]/ do |m| + token Str::Heredoc + if current_string.delim? m[0] + current_string.remove + pop! + end + end + + rule %r/(?=\\)/, Str, :generic_escape + + rule %r/{/ do |m| + if current_string.type? "f" + token Str::Interpol + push :generic_interpol + else + token Str + end + end + end + + state :generic_escape do + rule %r(\\ + ( [\\abfnrtv"'] + | \n + | newline + | N{[a-zA-Z][a-zA-Z ]+[a-zA-Z]} + | u[a-fA-F0-9]{4} + | U[a-fA-F0-9]{8} + | x[a-fA-F0-9]{2} + | [0-7]{1,3} + ) + )x do + current_string.type?("r") ? token(Str) : token(Str::Escape) + pop! + end + + rule %r/\\./, Str, :pop! + end + + state :doctest do + rule %r/\n\n/, Text, :pop! + + rule %r/'''|"""/ do + token Str::Heredoc + pop!(2) if in_state?(:generic_string) # pop :doctest and :generic_string + end + + mixin :root + end + + state :generic_interpol do + rule %r/[^{}!:]+/ do |m| + recurse m[0] + end + rule %r/![asr]/, Str::Interpol + rule %r/:/, Str::Interpol + rule %r/{/, Str::Interpol, :generic_interpol + rule %r/}/, Str::Interpol, :pop! + end + + class StringRegister < Array + def delim?(delim) + self.last[1] == delim + end + + def register(type: "u", delim: "'") + self.push [type, delim] + end + + def remove + self.pop + end + + def type?(type) + self.last[0].include? type + end + end + + private_constant :StringRegister + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/q.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/q.rb new file mode 100644 index 0000000..b0d49c5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/q.rb @@ -0,0 +1,125 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + class Q < RegexLexer + title 'Q' + desc 'The Q programming language (kx.com)' + tag 'q' + aliases 'kdb+' + filenames '*.q' + mimetypes 'text/x-q', 'application/x-q' + + identifier = /\.?[a-z][a-z0-9_.]*/i + + def self.keywords + @keywords ||= %w[do if while select update delete exec from by] + end + + def self.word_operators + @word_operators ||= %w[ + and or except inter like each cross vs sv within where in asof bin binr cor cov cut ej fby + div ij insert lj ljf mavg mcount mdev mmax mmin mmu mod msum over prior peach pj scan scov setenv ss + sublist uj union upsert wavg wsum xasc xbar xcol xcols xdesc xexp xgroup xkey xlog xprev xrank + ] + end + + def self.builtins + @builtins ||= %w[ + first enlist value type get set count string key max min sum prd last flip distinct raze neg + desc differ dsave dev eval exit exp fills fkeys floor getenv group gtime hclose hcount hdel hopen hsym + iasc idesc inv keys load log lsq ltime ltrim maxs md5 med meta mins next parse plist prds prev rand rank ratios + read0 read1 reciprocal reverse rload rotate rsave rtrim save sdev show signum sin sqrt ssr sums svar system + tables tan til trim txf ungroup var view views wj wj1 ww + ] + end + + state :root do + # q allows a file to start with a shebang + rule %r/#!(.*?)$/, Comment::Preproc, :top + rule %r//, Text, :top + end + + state :top do + # indented lines at the top of the file are ignored by q + rule %r/^[ \t\r]+.*$/, Comment::Special + rule %r/\n+/, Text + rule %r//, Text, :base + end + + state :base do + rule %r/\n+/m, Text + rule(/^.\)/, Keyword::Declaration) + + # Identifiers, word operators, etc. + rule %r/#{identifier}/ do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.word_operators.include? m[0] + token Operator::Word + elsif self.class.builtins.include? m[0] + token Name::Builtin + elsif /^\.[zQqho]\./ =~ m[0] + token Name::Constant + else + token Name + end + end + + # White space and comments + rule(%r{\s+/.*}, Comment::Single) + rule(/[ \t\r]+/, Text::Whitespace) + rule(%r{^/$.*?^\\$}m, Comment::Multiline) + rule(%r{^\/[^\n]*$(\n[^\S\n]+.*$)*}, Comment::Multiline) + # til EOF comment + rule(/^\\$/, Comment, :bottom) + rule(/^\\\\\s+/, Keyword, :bottom) + + # Literals + ## strings + rule(/"/, Str, :string) + ## timespan/stamp constants + rule(/(?:\d+D|\d{4}\.[01]\d\.[0123]\d[DT])(?:[012]\d:[0-5]\d(?::[0-5]\d(?:\.\d+)?)?|([012]\d)?)[zpn]?\b/, + Literal::Date) + ## time/minute/second constants + rule(/[012]\d:[0-5]\d(?::[0-5]\d(\.\d+)?)?[uvtpn]?\b/, Literal::Date) + ## date constants + rule(/\d{4}\.[01]\d\.[0-3]\d[dpnzm]?\b/, Literal::Date) + ## special values + rule(/0[nNwW][hijefcpmdznuvt]?/, Keyword::Constant) + + # operators to match before numbers + rule(%r{'|\/:|\\:|':|\\|\/|0:|1:|2:}, Operator) + + ## numbers + rule(/(\d+[.]\d*|[.]\d+)(e[+-]?\d+)?[ef]?/, Num::Float) + rule(/\d+e[+-]?\d+[ef]?/, Num::Float) + rule(/\d+[ef]/, Num::Float) + rule(/0x[0-9a-f]+/i, Num::Hex) + rule(/[01]+b/, Num::Bin) + rule(/[0-9]+[hij]?/, Num::Integer) + ## symbols and paths + rule(%r{(`:[:a-z0-9._\/]*|`(?:[a-z0-9.][:a-z0-9._]*)?)}i, Str::Symbol) + rule(/(?:<=|>=|<>|::)|[?:$%&|@._#*^\-+~,!><=]:?/, Operator) + + rule %r/[{}\[\]();]/, Punctuation + + # commands + rule(/\\.*\n/, Text) + + end + + state :string do + rule %r/\\"/, Str + rule %r/"/, Str, :pop! + rule %r/\\([\\nr]|[01][0-7]{2})/, Str::Escape + rule %r/[^\\"\n]+/, Str + rule %r/\\/, Str # stray backslash + end + + state :bottom do + rule %r/.+\z/m, Comment::Multiline + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/qml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/qml.rb new file mode 100644 index 0000000..577939f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/qml.rb @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'javascript.rb' + + class Qml < Javascript + title "QML" + desc 'QML, a UI markup language' + tag 'qml' + aliases 'qml' + filenames '*.qml' + + mimetypes 'application/x-qml', 'text/x-qml' + + id_with_dots = /[$a-zA-Z_][a-zA-Z0-9_.]*/ + + prepend :root do + rule %r/(#{id_with_dots})(\s*)({)/ do + groups Keyword::Type, Text, Punctuation + push :type_block + end + rule %r/(#{id_with_dots})(\s+)(on)(\s+)(#{id_with_dots})(\s*)({)/ do + groups Keyword::Type, Text, Keyword, Text, Name::Label, Text, Punctuation + push :type_block + end + + rule %r/[{]/, Punctuation, :push + end + + state :type_block do + rule %r/(id)(\s*)(:)(\s*)(#{id_with_dots})/ do + groups Name::Label, Text, Punctuation, Text, Keyword::Declaration + end + + rule %r/(#{id_with_dots})(\s*)(:)/ do + groups Name::Label, Text, Punctuation + push :expr_start + end + + rule %r/(signal)(\s+)(#{id_with_dots})/ do + groups Keyword::Declaration, Text, Name::Label + push :signal + end + + rule %r/(property)(\s+)(#{id_with_dots})(\s+)(#{id_with_dots})(\s*)(:?)/ do + groups Keyword::Declaration, Text, Keyword::Type, Text, Name::Label, Text, Punctuation + push :expr_start + end + + rule %r/[}]/, Punctuation, :pop! + mixin :root + end + + state :signal do + mixin :comments_and_whitespace + rule %r/\(/ do + token Punctuation + goto :signal_args + end + rule %r//, Text, :pop! + end + + state :signal_args do + mixin :comments_and_whitespace + rule %r/(#{id_with_dots})(\s+)(#{id_with_dots})(\s*)(,?)/ do + groups Keyword::Type, Text, Name, Text, Punctuation + end + rule %r/\)/ , Punctuation, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/r.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/r.rb new file mode 100644 index 0000000..dc500e6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/r.rb @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class R < RegexLexer + title "R" + desc 'The R statistics language (r-project.org)' + tag 'r' + aliases 'r', 'R', 's', 'S' + filenames '*.R', '*.r', '.Rhistory', '.Rprofile' + mimetypes 'text/x-r-source', 'text/x-r', 'text/x-R' + + mimetypes 'text/x-r', 'application/x-r' + + KEYWORDS = %w(if else for while repeat in next break function) + + KEYWORD_CONSTANTS = %w( + NULL Inf TRUE FALSE NaN NA + NA_integer_ NA_real_ NA_complex_ NA_character_ + ) + + BUILTIN_CONSTANTS = %w(LETTERS letters month.abb month.name pi T F) + + # These are all the functions in `base` that are implemented as a + # `.Primitive`, minus those functions that are also keywords. + PRIMITIVE_FUNCTIONS = %w( + abs acos acosh all any anyNA Arg as.call as.character + as.complex as.double as.environment as.integer as.logical + as.null.default as.numeric as.raw asin asinh atan atanh attr + attributes baseenv browser c call ceiling class Conj cos cosh + cospi cummax cummin cumprod cumsum digamma dim dimnames + emptyenv exp expression floor forceAndCall gamma gc.time + globalenv Im interactive invisible is.array is.atomic is.call + is.character is.complex is.double is.environment is.expression + is.finite is.function is.infinite is.integer is.language + is.list is.logical is.matrix is.na is.name is.nan is.null + is.numeric is.object is.pairlist is.raw is.recursive is.single + is.symbol lazyLoadDBfetch length lgamma list log max min + missing Mod names nargs nzchar oldClass on.exit pos.to.env + proc.time prod quote range Re rep retracemem return round + seq_along seq_len seq.int sign signif sin sinh sinpi sqrt + standardGeneric substitute sum switch tan tanh tanpi tracemem + trigamma trunc unclass untracemem UseMethod xtfrm + ) + + def self.detect?(text) + return true if text.shebang? 'Rscript' + end + + state :root do + rule %r/#'.*?$/, Comment::Doc + rule %r/#.*?$/, Comment::Single + rule %r/\s+/m, Text::Whitespace + + rule %r/`[^`]+?`/, Name + rule %r/'(\\.|.)*?'/m, Str::Single + rule %r/"(\\.|.)*?"/m, Str::Double + + rule %r/%[^%]*?%/, Operator + + rule %r/0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?/, Num::Hex + rule %r/[+-]?(\d+([.]\d+)?|[.]\d+)([eE][+-]?\d+)?[Li]?/, Num + + # Only recognize built-in functions when they are actually used as a + # function call, i.e. followed by an opening parenthesis. + # `Name::Builtin` would be more logical, but is usually not + # highlighted specifically; thus use `Name::Function`. + rule %r/\b(?<!.)(#{PRIMITIVE_FUNCTIONS.join('|')})(?=\()/, Name::Function + + rule %r/(?:(?:[[:alpha:]]|[.][._[:alpha:]])[._[:alnum:]]*)|[.]/ do |m| + if KEYWORDS.include? m[0] + token Keyword + elsif KEYWORD_CONSTANTS.include? m[0] + token Keyword::Constant + elsif BUILTIN_CONSTANTS.include? m[0] + token Name::Builtin + else + token Name + end + end + + rule %r/[\[\]{}();,]/, Punctuation + + rule %r([-<>?*+^/!=~$@:%&|]), Operator + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/racket.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/racket.rb new file mode 100644 index 0000000..a005439 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/racket.rb @@ -0,0 +1,568 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Racket < RegexLexer + title "Racket" + desc "Racket is a Lisp descended from Scheme (racket-lang.org)" + + tag 'racket' + filenames '*.rkt', '*.rktd', '*.rktl' + mimetypes 'text/x-racket', 'application/x-racket' + + def self.detect?(text) + text =~ /\A#lang\s*(.*?)$/ + lang_attr = $1 + return false unless lang_attr + return true if lang_attr =~ /racket|scribble/ + end + + def self.keywords + @keywords ||= Set.new %w( + ... and begin begin-for-syntax begin0 case case-lambda cond + datum->syntax-object define define-for-syntax define-logger + define-struct define-syntax define-syntax-rule + define-syntaxes define-values define-values-for-syntax delay + do expand-path fluid-let force hash-table-copy + hash-table-count hash-table-for-each hash-table-get + hash-table-iterate-first hash-table-iterate-key + hash-table-iterate-next hash-table-iterate-value + hash-table-map hash-table-put! hash-table-remove! + hash-table? if lambda let let* let*-values let-struct + let-syntax let-syntaxes let-values let/cc let/ec letrec + letrec-syntax letrec-syntaxes letrec-syntaxes+values + letrec-values list-immutable make-hash-table + make-immutable-hash-table make-namespace module module* + module-identifier=? module-label-identifier=? + module-template-identifier=? module-transformer-identifier=? + namespace-transformer-require or parameterize parameterize* + parameterize-break promise? prop:method-arity-error provide + provide-for-label provide-for-syntax quasiquote quasisyntax + quasisyntax/loc quote quote-syntax quote-syntax/prune + require require-for-label require-for-syntax + require-for-template set! set!-values syntax syntax-case + syntax-case* syntax-id-rules syntax-object->datum + syntax-rules syntax/loc tcp-abandon-port tcp-accept + tcp-accept-evt tcp-accept-ready? tcp-accept/enable-break + tcp-addresses tcp-close tcp-connect tcp-connect/enable-break + tcp-listen tcp-listener? tcp-port? time transcript-off + transcript-on udp-addresses udp-bind! udp-bound? udp-close + udp-connect! udp-connected? udp-multicast-interface + udp-multicast-join-group! udp-multicast-leave-group! + udp-multicast-loopback? udp-multicast-set-interface! + udp-multicast-set-loopback! udp-multicast-set-ttl! + udp-multicast-ttl udp-open-socket udp-receive! udp-receive!* + udp-receive!-evt udp-receive!/enable-break + udp-receive-ready-evt udp-send udp-send* udp-send-evt + udp-send-ready-evt udp-send-to udp-send-to* udp-send-to-evt + udp-send-to/enable-break udp-send/enable-break udp? unless + unquote unquote-splicing unsyntax unsyntax-splicing when + with-continuation-mark with-handlers with-handlers* + with-syntax λ) + end + + def self.builtins + @builtins ||= Set.new %w( + * + - / < <= = > >= + abort-current-continuation abs absolute-path? acos add1 + alarm-evt always-evt andmap angle append apply + arithmetic-shift arity-at-least arity-at-least-value + arity-at-least? asin assoc assq assv atan banner bitwise-and + bitwise-bit-field bitwise-bit-set? bitwise-ior bitwise-not + bitwise-xor boolean? bound-identifier=? box box-cas! + box-immutable box? break-enabled break-thread build-path + build-path/convention-type byte-pregexp byte-pregexp? + byte-ready? byte-regexp byte-regexp? byte? bytes + bytes->immutable-bytes bytes->list bytes->path + bytes->path-element bytes->string/latin-1 + bytes->string/locale bytes->string/utf-8 bytes-append + bytes-close-converter bytes-convert bytes-convert-end + bytes-converter? bytes-copy bytes-copy! + bytes-environment-variable-name? bytes-fill! bytes-length + bytes-open-converter bytes-ref bytes-set! bytes-utf-8-index + bytes-utf-8-length bytes-utf-8-ref bytes<? bytes=? bytes>? + bytes? caaaar caaadr caaar caadar caaddr caadr caar cadaar + cadadr cadar caddar cadddr caddr cadr call-in-nested-thread + call-with-break-parameterization + call-with-composable-continuation + call-with-continuation-barrier call-with-continuation-prompt + call-with-current-continuation + call-with-default-reading-parameterization + call-with-escape-continuation call-with-exception-handler + call-with-immediate-continuation-mark call-with-input-file + call-with-output-file call-with-parameterization + call-with-semaphore call-with-semaphore/enable-break + call-with-values call/cc call/ec car cdaaar cdaadr cdaar + cdadar cdaddr cdadr cdar cddaar cddadr cddar cdddar cddddr + cdddr cddr cdr ceiling channel-get channel-put + channel-put-evt channel-put-evt? channel-try-get channel? + chaperone-box chaperone-continuation-mark-key chaperone-evt + chaperone-hash chaperone-of? chaperone-procedure + chaperone-prompt-tag chaperone-struct chaperone-struct-type + chaperone-vector chaperone? char->integer char-alphabetic? + char-blank? char-ci<=? char-ci<? char-ci=? char-ci>=? + char-ci>? char-downcase char-foldcase char-general-category + char-graphic? char-iso-control? char-lower-case? + char-numeric? char-punctuation? char-ready? char-symbolic? + char-title-case? char-titlecase char-upcase char-upper-case? + char-utf-8-length char-whitespace? char<=? char<? char=? + char>=? char>? char? check-duplicate-identifier + checked-procedure-check-and-extract choice-evt cleanse-path + close-input-port close-output-port collect-garbage + collection-file-path collection-path compile + compile-allow-set!-undefined + compile-context-preservation-enabled + compile-enforce-module-constants compile-syntax + compiled-expression? compiled-module-expression? + complete-path? complex? cons continuation-mark-key? + continuation-mark-set->context continuation-mark-set->list + continuation-mark-set->list* continuation-mark-set-first + continuation-mark-set? continuation-marks + continuation-prompt-available? continuation-prompt-tag? + continuation? copy-file cos current-break-parameterization + current-code-inspector current-command-line-arguments + current-compile current-compiled-file-roots + current-continuation-marks current-custodian + current-directory current-directory-for-user current-drive + current-environment-variables current-error-port + current-eval current-evt-pseudo-random-generator + current-gc-milliseconds current-get-interaction-input-port + current-inexact-milliseconds current-input-port + current-inspector current-library-collection-paths + current-load current-load-extension + current-load-relative-directory current-load/use-compiled + current-locale current-memory-use current-milliseconds + current-module-declare-name current-module-declare-source + current-module-name-resolver current-module-path-for-load + current-namespace current-output-port + current-parameterization + current-preserved-thread-cell-values current-print + current-process-milliseconds current-prompt-read + current-pseudo-random-generator current-read-interaction + current-reader-guard current-readtable current-seconds + current-security-guard current-subprocess-custodian-mode + current-thread current-thread-group + current-thread-initial-stack-size + current-write-relative-directory custodian-box-value + custodian-box? custodian-limit-memory custodian-managed-list + custodian-memory-accounting-available? + custodian-require-memory custodian-shutdown-all custodian? + custom-print-quotable-accessor custom-print-quotable? + custom-write-accessor custom-write? date date* + date*-nanosecond date*-time-zone-name date*? date-day + date-dst? date-hour date-minute date-month date-second + date-time-zone-offset date-week-day date-year date-year-day + date? datum-intern-literal default-continuation-prompt-tag + delete-directory delete-file denominator directory-exists? + directory-list display displayln dump-memory-stats + dynamic-require dynamic-require-for-syntax dynamic-wind + environment-variables-copy environment-variables-names + environment-variables-ref environment-variables-set! + environment-variables? eof eof-object? ephemeron-value + ephemeron? eprintf eq-hash-code eq? equal-hash-code + equal-secondary-hash-code equal? equal?/recur eqv-hash-code + eqv? error error-display-handler error-escape-handler + error-print-context-length error-print-source-location + error-print-width error-value->string-handler eval + eval-jit-enabled eval-syntax even? evt? exact->inexact + exact-integer? exact-nonnegative-integer? + exact-positive-integer? exact? executable-yield-handler exit + exit-handler exn exn-continuation-marks exn-message + exn:break exn:break-continuation exn:break:hang-up + exn:break:hang-up? exn:break:terminate exn:break:terminate? + exn:break? exn:fail exn:fail:contract + exn:fail:contract:arity exn:fail:contract:arity? + exn:fail:contract:continuation + exn:fail:contract:continuation? + exn:fail:contract:divide-by-zero + exn:fail:contract:divide-by-zero? + exn:fail:contract:non-fixnum-result + exn:fail:contract:non-fixnum-result? + exn:fail:contract:variable exn:fail:contract:variable-id + exn:fail:contract:variable? exn:fail:contract? + exn:fail:filesystem exn:fail:filesystem:errno + exn:fail:filesystem:errno-errno exn:fail:filesystem:errno? + exn:fail:filesystem:exists exn:fail:filesystem:exists? + exn:fail:filesystem:missing-module + exn:fail:filesystem:missing-module-path + exn:fail:filesystem:missing-module? + exn:fail:filesystem:version exn:fail:filesystem:version? + exn:fail:filesystem? exn:fail:network exn:fail:network:errno + exn:fail:network:errno-errno exn:fail:network:errno? + exn:fail:network? exn:fail:out-of-memory + exn:fail:out-of-memory? exn:fail:read exn:fail:read-srclocs + exn:fail:read:eof exn:fail:read:eof? exn:fail:read:non-char + exn:fail:read:non-char? exn:fail:read? exn:fail:syntax + exn:fail:syntax-exprs exn:fail:syntax:missing-module + exn:fail:syntax:missing-module-path + exn:fail:syntax:missing-module? exn:fail:syntax:unbound + exn:fail:syntax:unbound? exn:fail:syntax? + exn:fail:unsupported exn:fail:unsupported? exn:fail:user + exn:fail:user? exn:fail? exn:missing-module-accessor + exn:missing-module? exn:srclocs-accessor exn:srclocs? exn? + exp expand expand-once expand-syntax expand-syntax-once + expand-syntax-to-top-form expand-to-top-form + expand-user-path explode-path expt file-exists? + file-or-directory-identity file-or-directory-modify-seconds + file-or-directory-permissions file-position file-position* + file-size file-stream-buffer-mode file-stream-port? + file-truncate filesystem-change-evt + filesystem-change-evt-cancel filesystem-change-evt? + filesystem-root-list find-executable-path + find-library-collection-paths find-system-path fixnum? + floating-point-bytes->real flonum? floor flush-output + for-each format fprintf free-identifier=? gcd + generate-temporaries gensym get-output-bytes + get-output-string getenv global-port-print-handler guard-evt + handle-evt handle-evt? hash hash-equal? hash-eqv? + hash-has-key? hash-placeholder? hash-ref! hasheq hasheqv + identifier-binding identifier-binding-symbol + identifier-label-binding identifier-prune-lexical-context + identifier-prune-to-source-module + identifier-remove-from-definition-context + identifier-template-binding identifier-transformer-binding + identifier? imag-part immutable? impersonate-box + impersonate-continuation-mark-key impersonate-hash + impersonate-procedure impersonate-prompt-tag + impersonate-struct impersonate-vector impersonator-ephemeron + impersonator-of? impersonator-prop:application-mark + impersonator-property-accessor-procedure? + impersonator-property? impersonator? inexact->exact + inexact-real? inexact? input-port? inspector? integer->char + integer->integer-bytes integer-bytes->integer integer-length + integer-sqrt integer-sqrt/remainder integer? + internal-definition-context-seal + internal-definition-context? keyword->string keyword<? + keyword? kill-thread lcm length liberal-define-context? + link-exists? list list* list->bytes list->string + list->vector list-ref list-tail list? load load-extension + load-on-demand-enabled load-relative load-relative-extension + load/cd load/use-compiled local-expand + local-expand/capture-lifts local-transformer-expand + local-transformer-expand/capture-lifts + locale-string-encoding log log-max-level magnitude + make-arity-at-least make-bytes make-channel + make-continuation-mark-key make-continuation-prompt-tag + make-custodian make-custodian-box make-date make-date* + make-derived-parameter make-directory + make-environment-variables make-ephemeron make-exn + make-exn:break make-exn:break:hang-up + make-exn:break:terminate make-exn:fail + make-exn:fail:contract make-exn:fail:contract:arity + make-exn:fail:contract:continuation + make-exn:fail:contract:divide-by-zero + make-exn:fail:contract:non-fixnum-result + make-exn:fail:contract:variable make-exn:fail:filesystem + make-exn:fail:filesystem:errno + make-exn:fail:filesystem:exists + make-exn:fail:filesystem:missing-module + make-exn:fail:filesystem:version make-exn:fail:network + make-exn:fail:network:errno make-exn:fail:out-of-memory + make-exn:fail:read make-exn:fail:read:eof + make-exn:fail:read:non-char make-exn:fail:syntax + make-exn:fail:syntax:missing-module + make-exn:fail:syntax:unbound make-exn:fail:unsupported + make-exn:fail:user make-file-or-directory-link + make-hash-placeholder make-hasheq-placeholder make-hasheqv + make-hasheqv-placeholder make-immutable-hasheqv + make-impersonator-property make-input-port make-inspector + make-known-char-range-list make-output-port make-parameter + make-phantom-bytes make-pipe make-placeholder make-polar + make-prefab-struct make-pseudo-random-generator + make-reader-graph make-readtable make-rectangular + make-rename-transformer make-resolved-module-path + make-security-guard make-semaphore make-set!-transformer + make-shared-bytes make-sibling-inspector + make-special-comment make-srcloc make-string + make-struct-field-accessor make-struct-field-mutator + make-struct-type make-struct-type-property + make-syntax-delta-introducer make-syntax-introducer + make-thread-cell make-thread-group make-vector make-weak-box + make-weak-hasheqv make-will-executor map max mcar mcdr mcons + member memq memv min module->exports module->imports + module->language-info module->namespace + module-compiled-cross-phase-persistent? + module-compiled-exports module-compiled-imports + module-compiled-language-info module-compiled-name + module-compiled-submodules module-declared? + module-path-index-join module-path-index-resolve + module-path-index-split module-path-index-submodule + module-path-index? module-path? module-predefined? + module-provide-protected? modulo mpair? nack-guard-evt + namespace-attach-module namespace-attach-module-declaration + namespace-base-phase namespace-mapped-symbols + namespace-module-identifier namespace-module-registry + namespace-require namespace-require/constant + namespace-require/copy namespace-require/expansion-time + namespace-set-variable-value! namespace-symbol->identifier + namespace-syntax-introduce namespace-undefine-variable! + namespace-unprotect-module namespace-variable-value + namespace? negative? never-evt newline normal-case-path not + null null? number->string number? numerator object-name odd? + open-input-bytes open-input-file open-input-output-file + open-input-string open-output-bytes open-output-file + open-output-string ormap output-port? pair? + parameter-procedure=? parameter? parameterization? + path->bytes path->complete-path path->directory-path + path->string path-add-suffix path-convention-type + path-element->bytes path-element->string + path-for-some-system? path-list-string->path-list + path-replace-suffix path-string? path? peek-byte + peek-byte-or-special peek-bytes peek-bytes! + peek-bytes-avail! peek-bytes-avail!* + peek-bytes-avail!/enable-break peek-char + peek-char-or-special peek-string peek-string! phantom-bytes? + pipe-content-length placeholder-get placeholder-set! + placeholder? poll-guard-evt port-closed-evt port-closed? + port-commit-peeked port-count-lines! + port-count-lines-enabled port-counts-lines? + port-display-handler port-file-identity port-file-unlock + port-next-location port-print-handler port-progress-evt + port-provides-progress-evts? port-read-handler + port-try-file-lock? port-write-handler port-writes-atomic? + port-writes-special? port? positive? prefab-key->struct-type + prefab-key? prefab-struct-key pregexp pregexp? + primitive-closure? primitive-result-arity primitive? print + print-as-expression print-boolean-long-form print-box + print-graph print-hash-table print-mpair-curly-braces + print-pair-curly-braces print-reader-abbreviations + print-struct print-syntax-width print-unreadable + print-vector-length printf procedure->method procedure-arity + procedure-arity-includes? procedure-arity? + procedure-closure-contents-eq? procedure-extract-target + procedure-reduce-arity procedure-rename + procedure-struct-type? procedure? progress-evt? + prop:arity-string prop:checked-procedure + prop:custom-print-quotable prop:custom-write prop:equal+hash + prop:evt prop:exn:missing-module prop:exn:srclocs + prop:impersonator-of prop:input-port + prop:liberal-define-context prop:output-port prop:procedure + prop:rename-transformer prop:set!-transformer + pseudo-random-generator->vector + pseudo-random-generator-vector? pseudo-random-generator? + putenv quotient quotient/remainder raise + raise-argument-error raise-arguments-error raise-arity-error + raise-mismatch-error raise-range-error raise-result-error + raise-syntax-error raise-type-error raise-user-error random + random-seed rational? rationalize read read-accept-bar-quote + read-accept-box read-accept-compiled read-accept-dot + read-accept-graph read-accept-infix-dot read-accept-lang + read-accept-quasiquote read-accept-reader read-byte + read-byte-or-special read-bytes read-bytes! + read-bytes-avail! read-bytes-avail!* + read-bytes-avail!/enable-break read-bytes-line + read-case-sensitive read-char read-char-or-special + read-curly-brace-as-paren read-decimal-as-inexact + read-eval-print-loop read-language read-line + read-on-demand-source read-square-bracket-as-paren + read-string read-string! read-syntax read-syntax/recursive + read/recursive readtable-mapping readtable? + real->double-flonum real->floating-point-bytes + real->single-flonum real-part real? regexp regexp-match + regexp-match-peek regexp-match-peek-immediate + regexp-match-peek-positions + regexp-match-peek-positions-immediate + regexp-match-peek-positions-immediate/end + regexp-match-peek-positions/end regexp-match-positions + regexp-match-positions/end regexp-match/end regexp-match? + regexp-max-lookbehind regexp-replace regexp-replace* regexp? + relative-path? remainder rename-file-or-directory + rename-transformer-target rename-transformer? reroot-path + resolve-path resolved-module-path-name resolved-module-path? + reverse round seconds->date security-guard? + semaphore-peek-evt semaphore-peek-evt? semaphore-post + semaphore-try-wait? semaphore-wait + semaphore-wait/enable-break semaphore? + set!-transformer-procedure set!-transformer? set-box! + set-mcar! set-mcdr! set-phantom-bytes! + set-port-next-location! shared-bytes shell-execute + simplify-path sin single-flonum? sleep special-comment-value + special-comment? split-path sqrt srcloc srcloc->string + srcloc-column srcloc-line srcloc-position srcloc-source + srcloc-span srcloc? string string->bytes/latin-1 + string->bytes/locale string->bytes/utf-8 + string->immutable-string string->keyword string->list + string->number string->path string->path-element + string->symbol string->uninterned-symbol + string->unreadable-symbol string-append string-ci<=? + string-ci<? string-ci=? string-ci>=? string-ci>? string-copy + string-copy! string-downcase + string-environment-variable-name? string-fill! + string-foldcase string-length string-locale-ci<? + string-locale-ci=? string-locale-ci>? string-locale-downcase + string-locale-upcase string-locale<? string-locale=? + string-locale>? string-normalize-nfc string-normalize-nfd + string-normalize-nfkc string-normalize-nfkd string-ref + string-set! string-titlecase string-upcase + string-utf-8-length string<=? string<? string=? string>=? + string>? string? struct->vector struct-accessor-procedure? + struct-constructor-procedure? struct-info + struct-mutator-procedure? struct-predicate-procedure? + struct-type-info struct-type-make-constructor + struct-type-make-predicate + struct-type-property-accessor-procedure? + struct-type-property? struct-type? struct:arity-at-least + struct:date struct:date* struct:exn struct:exn:break + struct:exn:break:hang-up struct:exn:break:terminate + struct:exn:fail struct:exn:fail:contract + struct:exn:fail:contract:arity + struct:exn:fail:contract:continuation + struct:exn:fail:contract:divide-by-zero + struct:exn:fail:contract:non-fixnum-result + struct:exn:fail:contract:variable struct:exn:fail:filesystem + struct:exn:fail:filesystem:errno + struct:exn:fail:filesystem:exists + struct:exn:fail:filesystem:missing-module + struct:exn:fail:filesystem:version struct:exn:fail:network + struct:exn:fail:network:errno struct:exn:fail:out-of-memory + struct:exn:fail:read struct:exn:fail:read:eof + struct:exn:fail:read:non-char struct:exn:fail:syntax + struct:exn:fail:syntax:missing-module + struct:exn:fail:syntax:unbound struct:exn:fail:unsupported + struct:exn:fail:user struct:srcloc struct? sub1 subbytes + subprocess subprocess-group-enabled subprocess-kill + subprocess-pid subprocess-status subprocess-wait subprocess? + substring symbol->string symbol-interned? symbol-unreadable? + symbol? sync sync/enable-break sync/timeout + sync/timeout/enable-break syntax->list syntax-arm + syntax-column syntax-disarm syntax-e syntax-line + syntax-local-bind-syntaxes syntax-local-certifier + syntax-local-context syntax-local-expand-expression + syntax-local-get-shadower syntax-local-introduce + syntax-local-lift-context syntax-local-lift-expression + syntax-local-lift-module-end-declaration + syntax-local-lift-provide syntax-local-lift-require + syntax-local-lift-values-expression + syntax-local-make-definition-context + syntax-local-make-delta-introducer + syntax-local-module-defined-identifiers + syntax-local-module-exports + syntax-local-module-required-identifiers syntax-local-name + syntax-local-phase-level syntax-local-submodules + syntax-local-transforming-module-provides? + syntax-local-value syntax-local-value/immediate + syntax-original? syntax-position syntax-property + syntax-property-symbol-keys syntax-protect syntax-rearm + syntax-recertify syntax-shift-phase-level syntax-source + syntax-source-module syntax-span syntax-taint + syntax-tainted? syntax-track-origin + syntax-transforming-module-expression? syntax-transforming? + syntax? system-big-endian? system-idle-evt + system-language+country system-library-subpath + system-path-convention-type system-type tan terminal-port? + thread thread-cell-ref thread-cell-set! thread-cell-values? + thread-cell? thread-dead-evt thread-dead? thread-group? + thread-resume thread-resume-evt thread-rewind-receive + thread-running? thread-suspend thread-suspend-evt + thread-wait thread/suspend-to-kill thread? time-apply + truncate unbox uncaught-exception-handler + use-collection-link-paths use-compiled-file-paths + use-user-specific-search-paths values + variable-reference->empty-namespace + variable-reference->module-base-phase + variable-reference->module-declaration-inspector + variable-reference->module-path-index + variable-reference->module-source + variable-reference->namespace variable-reference->phase + variable-reference->resolved-module-path + variable-reference-constant? variable-reference? vector + vector->immutable-vector vector->list + vector->pseudo-random-generator + vector->pseudo-random-generator! vector->values vector-fill! + vector-immutable vector-length vector-ref vector-set! + vector-set-performance-stats! vector? version void void? + weak-box-value weak-box? will-execute will-executor? + will-register will-try-execute with-input-from-file + with-output-to-file wrap-evt write write-byte write-bytes + write-bytes-avail write-bytes-avail* write-bytes-avail-evt + write-bytes-avail/enable-break write-char write-special + write-special-avail* write-special-evt write-string zero? + ) + end + + # Since Racket allows identifiers to consist of nearly anything, + # it's simpler to describe what an ID is _not_. + id = /[^\s\(\)\[\]\{\}'`,.]+/i + + state :root do + # comments + rule %r/;.*$/, Comment::Single + rule %r/#!.*/, Comment::Single + rule %r/#\|/, Comment::Multiline, :block_comment + rule %r/#;/, Comment::Multiline, :sexp_comment + rule %r/\s+/m, Text + + rule %r/[+-]inf[.][f0]/, Num::Float + rule %r/[+-]nan[.]0/, Num::Float + rule %r/[-]min[.]0/, Num::Float + rule %r/[+]max[.]0/, Num::Float + + rule %r/-?\d+\.\d+/, Num::Float + rule %r/-?\d+/, Num::Integer + + rule %r/#:#{id}+/, Name::Tag # keyword + + rule %r/#b[01]+/, Num::Bin + rule %r/#o[0-7]+/, Num::Oct + rule %r/#d[0-9]+/, Num::Integer + rule %r/#x[0-9a-f]+/i, Num::Hex + rule %r/#[ei][\d.]+/, Num::Other + + rule %r/"(\\\\|\\"|[^"])*"/, Str + rule %r/['`]#{id}/i, Str::Symbol + rule %r/#\\([()\/'"._!\$%& ?=+-]{1}|[a-z0-9]+)/i, + Str::Char + rule %r/#t(rue)?|#f(alse)?/i, Name::Constant + rule %r/(?:'|#|`|,@|,|\.)/, Operator + + rule %r/(['#])(\s*)(\()/m do + groups Str::Symbol, Text, Punctuation + end + + # () [] {} are all permitted as like pairs + rule %r/\(|\[|\{/, Punctuation, :command + rule %r/\)|\]|\}/, Punctuation + + rule id, Name::Variable + end + + state :block_comment do + rule %r/[^|#]+/, Comment::Multiline + rule %r/\|#/, Comment::Multiline, :pop! + rule %r/#\|/, Comment::Multiline, :block_comment + rule %r/[|#]/, Comment::Multiline + end + + state :sexp_comment do + rule %r/[({\[]/, Comment::Multiline, :sexp_comment_inner + rule %r/"(?:\\"|[^"])*?"/, Comment::Multiline, :pop! + rule %r/[^\s]+/, Comment::Multiline, :pop! + rule(//) { pop! } + end + + state :sexp_comment_inner do + rule %r/[^(){}\[\]]+/, Comment::Multiline + rule %r/[)}\]]/, Comment::Multiline, :pop! + rule %r/[({\[]/, Comment::Multiline, :sexp_comment_inner + end + + state :command do + rule id, Name::Function do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.builtins.include? m[0] + token Name::Builtin + else + token Name::Function + end + + pop! + end + + rule(//) { pop! } + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/reasonml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/reasonml.rb new file mode 100644 index 0000000..07c9f6c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/reasonml.rb @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'ocaml/common.rb' + + class ReasonML < OCamlCommon + title "ReasonML" + desc 'New syntax on top of OCaml ecosystem (reasonml.github.io)' + tag 'reasonml' + filenames '*.re', '*.rei' + mimetypes 'text/x-reasonml' + + def self.keywords + @keywords ||= super + Set.new(%w( + switch + )) + end + + state :root do + rule %r/\s+/m, Text + rule %r/false|true|[(][)]|\[\]/, Name::Builtin::Pseudo + rule %r/#{@@upper_id}(?=\s*[.])/, Name::Namespace, :dotted + rule %r/`#{@@id}/, Name::Tag + rule @@upper_id, Name::Class + rule %r(//.*), Comment::Single + rule %r(/\*), Comment::Multiline, :comment + rule @@id do |m| + match = m[0] + if self.class.keywords.include? match + token Keyword + elsif self.class.word_operators.include? match + token Operator::Word + elsif self.class.primitives.include? match + token Keyword::Type + else + token Name + end + end + + rule %r/[(){}\[\];]+/, Punctuation + rule @@operator, Operator + + rule %r/-?\d[\d_]*(.[\d_]*)?(e[+-]?\d[\d_]*)/i, Num::Float + rule %r/0x\h[\h_]*/i, Num::Hex + rule %r/0o[0-7][0-7_]*/i, Num::Oct + rule %r/0b[01][01_]*/i, Num::Bin + rule %r/\d[\d_]*/, Num::Integer + + rule %r/'(?:(\\[\\"'ntbr ])|(\\[0-9]{3})|(\\x\h{2}))'/, Str::Char + rule %r/'[^'\/]'/, Str::Char + rule %r/'/, Keyword + rule %r/"/, Str::Double, :string + rule %r/[~?]#{@@id}/, Name::Variable + end + + state :comment do + rule %r([^/*]+), Comment::Multiline + rule %r(/\*), Comment::Multiline, :comment + rule %r(\*/), Comment::Multiline, :pop! + rule %r([*/]), Comment::Multiline + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rego.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rego.rb new file mode 100644 index 0000000..6ca1a5d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rego.rb @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Rego < RegexLexer + title "Rego" + desc "The Rego open-policy-agent (OPA) policy language (openpolicyagent.org)" + tag 'rego' + filenames '*.rego' + + def self.constants + @constants ||= Set.new %w( + true false null + ) + end + + def self.operators + @operators ||= Set.new %w( + as default else import not package some with + ) + end + + state :basic do + rule %r/\s+/, Text + rule %r/#.*/, Comment::Single + + rule %r/[\[\](){}|.,;!]/, Punctuation + + rule %r/"[^"]*"/, Str::Double + + rule %r/-?\d+\.\d+([eE][+-]?\d+)?/, Num::Float + rule %r/-?\d+([eE][+-]?\d+)?/, Num + + rule %r/\\u[0-9a-fA-F]{4}/, Num::Hex + rule %r/\\["\/bfnrt]/, Str::Escape + end + + state :operators do + rule %r/(=|!=|>=|<=|>|<|\+|-|\*|%|\/|\||&|:=)/, Operator + rule %r/[\/:?@^~]+/, Operator + end + + state :root do + mixin :basic + mixin :operators + + rule %r/[[:word:]]+/ do |m| + if self.class.constants.include? m[0] + token Keyword::Constant + elsif self.class.operators.include? m[0] + token Operator::Word + else + token Name + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rescript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rescript.rb new file mode 100644 index 0000000..35daf12 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rescript.rb @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'ocaml/common.rb' + + class ReScript < OCamlCommon + title "ReScript" + desc "The ReScript programming language (rescript-lang.org)" + tag 'rescript' + filenames '*.res', '*.resi' + mimetypes 'text/x-rescript' + + def self.keywords + @keywords ||= Set.new(%w( + open let rec and as exception assert lazy if else + for in to downto while switch when external type private + mutable constraint include module of with try import export + )) + end + + def self.types + @types ||= Set.new(%w( + bool int float char string + unit list array option ref exn format + )) + end + + def self.word_operators + @word_operators ||= Set.new(%w(mod land lor lxor lsl lsr asr or)) + end + + state :root do + rule %r/\s+/m, Text + rule %r([,.:?~\\]), Text + + # Boolean Literal + rule %r/\btrue|false\b/, Keyword::Constant + + # Module chain + rule %r/#{@@upper_id}(?=\s*[.])/, Name::Namespace, :dotted + + # Decorator + rule %r/@#{@@id}(\.#{@@id})*/, Name::Decorator + + # Poly variant + rule %r/\##{@@id}/, Name::Class + + # Variant or Module + rule @@upper_id, Name::Class + + # Comments + rule %r(//.*), Comment::Single + rule %r(/\*), Comment::Multiline, :comment + + # Keywords and identifiers + rule @@id do |m| + match = m[0] + if self.class.keywords.include? match + token Keyword + elsif self.class.word_operators.include? match + token Operator::Word + elsif self.class.types.include? match + token Keyword::Type + else + token Name + end + end + + # Braces + rule %r/[(){}\[\];]+/, Punctuation + + # Operators + rule %r([;_!$%&*+/<=>@^|-]+), Operator + + # Numbers + rule %r/-?\d[\d_]*(.[\d_]*)?(e[+-]?\d[\d_]*)/i, Num::Float + rule %r/0x\h[\h_]*/i, Num::Hex + rule %r/0o[0-7][0-7_]*/i, Num::Oct + rule %r/0b[01][01_]*/i, Num::Bin + rule %r/\d[\d_]*/, Num::Integer + + # String and Char + rule %r/'(?:(\\[\\"'ntbr ])|(\\[0-9]{3})|(\\x\h{2}))'/, Str::Char + rule %r/'[^'\/]'/, Str::Char + rule %r/'/, Keyword + rule %r/"/, Str::Double, :string + + # Interpolated string + rule %r/`/ do + token Str::Double + push :interpolated_string + end + end + + state :comment do + rule %r([^/\*]+), Comment::Multiline + rule %r(/\*), Comment::Multiline, :comment + rule %r(\*/), Comment::Multiline, :pop! + rule %r([*/]), Comment::Multiline + end + + state :interpolated_string do + rule %r/[$]{/, Punctuation, :interpolated_expression + rule %r/`/, Str::Double, :pop! + rule %r/\\[$`]/, Str::Escape + rule %r/[^$`\\]+/, Str::Double + rule %r/[\\$]/, Str::Double + end + + state :interpolated_expression do + rule %r/}/, Punctuation, :pop! + mixin :root + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rml.rb new file mode 100644 index 0000000..0891470 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rml.rb @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class RML < RegexLexer + title "RML" + desc "A system agnostic domain-specific language for runtime monitoring and verification (https://rmlatdibris.github.io/)" + tag 'rml' + filenames '*.rml' + + def self.keywords + @keywords ||= Set.new %w( + matches not with empty + all if else true false + ) + end + + def self.arithmetic_keywords + @arithmetic_keywords ||= Set.new %w( + abs sin cos tan min max + ) + end + + id_char = /[a-zA-Z0-9_]/ + uppercase_id = /[A-Z]#{id_char}*/ + lowercase_id = /[a-z]#{id_char}*/ + + ellipsis = /(\.){3}/ + int = /[0-9]+/ + float = /#{int}\.#{int}/ + string = /'(\\'|[ a-zA-Z0-9_.])*'/ + + whitespace = /[ \t\r\n]+/ + comment = /\/\/[^\r\n]*/ + + state :common_rules do + rule %r/#{whitespace}/, Text + rule %r/#{comment}/, Comment::Single + rule %r/#{string}/, Literal::String + rule %r/#{float}/, Num::Float + rule %r/#{int}/, Num::Integer + end + + state :root do + mixin :common_rules + rule %r/(#{lowercase_id})(\()/ do + groups Name::Function, Operator + push :event_type_params + end + rule %r/#{lowercase_id}/ do |m| + if m[0] == 'with' + token Keyword + push :data_expression_with + elsif self.class.keywords.include? m[0] + token Keyword + else + token Name::Function + end + end + rule %r/\(|\{|\[/, Operator, :event_type_params + rule %r/[_\|]/, Operator + rule %r/#{uppercase_id}/, Name::Class, :equation_block_expression + rule %r/;/, Operator + end + + state :event_type_params do + mixin :common_rules + rule %r/\(|\{|\[/, Operator, :push + rule %r/\)|\}|\]/, Operator, :pop! + rule %r/#{lowercase_id}(?=:)/, Name::Entity + rule %r/(#{lowercase_id})/ do |m| + if self.class.keywords.include? m[0] + token Keyword + else + token Literal::String::Regex + end + end + rule %r/#{ellipsis}/, Literal::String::Symbol + rule %r/[_\|;,:]/, Operator + end + + state :equation_block_expression do + mixin :common_rules + rule %r/[<,>]/, Operator + rule %r/#{lowercase_id}/, Literal::String::Regex + rule %r/=/ do + token Operator + goto :exp + end + rule %r/;/, Operator, :pop! + end + + state :exp do + mixin :common_rules + rule %r/(if)(\()/ do + groups Keyword, Operator + push :data_expression + end + rule %r/let|var/, Keyword, :equation_block_expression + rule %r/(#{lowercase_id})(\()/ do + groups Name::Function, Operator + push :event_type_params + end + rule %r/(#{lowercase_id})/ do |m| + if self.class.keywords.include? m[0] + token Keyword + else + token Name::Function + end + end + rule %r/#{uppercase_id}(?=<)/, Name::Class, :data_expression + rule %r/#{uppercase_id}/, Name::Class + rule %r/[=(){}*+\/\\\|!>?]/, Operator + rule %r/;/, Operator, :pop! + end + + state :data_expression do + mixin :common_rules + rule %r/#{lowercase_id}/ do |m| + if (self.class.arithmetic_keywords | self.class.keywords).include? m[0] + token Keyword + else + token Literal::String::Regex + end + end + rule %r/\(/, Operator, :push + rule %r/\)/, Operator, :pop! + rule %r/(>)(?=[^A-Z;]+[A-Z;>])/, Operator, :pop! + rule %r/[*^?!%&\[\]<>\|+=:,.\/\\_-]/, Operator + rule %r/;/, Operator, :pop! + end + + state :data_expression_with do + mixin :common_rules + rule %r/>/, Operator + mixin :data_expression + + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/robot_framework.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/robot_framework.rb new file mode 100644 index 0000000..3675594 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/robot_framework.rb @@ -0,0 +1,249 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class RobotFramework < RegexLexer + tag 'robot_framework' + aliases 'robot', 'robot-framework' + + title "Robot Framework" + desc 'Robot Framework is a generic open source automation testing framework (robotframework.org)' + + filenames '*.robot' + mimetypes 'text/x-robot' + + def initialize(opts = {}) + super(opts) + @col = 0 + @next = nil + @is_template = false + end + + def self.settings_with_keywords + @settings_with_keywords ||= Set.new [ + "library", "resource", "setup", "teardown", "template", "suite setup", + "suite teardown", "task setup", "task teardown", "task template", + "test setup", "test teardown", "test template", "variables" + ] + end + + def self.settings_with_args + @settings_with_args ||= Set.new [ + "arguments", "default tags", "documentation", "force tags", + "metadata", "return", "tags", "timeout", "task timeout", + "test timeout" + ] + end + + id = %r/(?:\\|[^|$@&% \t\n])+(?: (?:\\.|[^|$@&% \t\n])+)*/ + bdd = %r/(?:Given|When|Then|And|But) /i + sep = %r/ +\| +|[ ]{2,}|\t+/ + + start do + push :prior_text + end + + state :prior_text do + rule %r/^[^*].*/, Text + rule(//) { pop! } + end + + # Mixins + + state :whitespace do + rule %r/\s+/, Text::Whitespace + end + + state :section_include do + mixin :end_section + mixin :sep + mixin :newline + end + + state :end_section do + rule(/(?=^(?:\| )?\*)/) { pop! } + end + + state :return do + rule(//) { pop! } + end + + state :sep do + rule %r/\| /, Text::Whitespace + + rule sep do + token Text::Whitespace + @col = @col + 1 + if @next + push @next + elsif @is_template + push :args + elsif @col == 1 + @next = :keyword + push :keyword + else + push :args + end + push :cell_start + end + + rule %r/\.\.\. */ do + token Text::Whitespace + @col = @col + 1 + push :args + end + + rule %r/ ?\|/, Text::Whitespace + end + + state :newline do + rule %r/\n/ do + token Text::Whitespace + @col = 0 + @next = nil + push :cell_start + end + end + + # States + + state :root do + mixin :whitespace + + rule %r/^(?:\| )?\*[* ]*([A-Z]+(?: [A-Z]+)?).*/i do |m| + token Generic::Heading, m[0] + case m[1].chomp("s").downcase + when "setting" then push :section_settings + when "test case" then push :section_tests + when "task" then push :section_tasks + when "keyword" then push :section_keywords + when "variable" then push :section_variables + end + end + end + + state :section_settings do + mixin :section_include + + rule %r/([A-Z]+(?: [A-Z]+)?)(:?)/i do |m| + match = m[1].downcase + @next = if self.class.settings_with_keywords.include? match + :keyword + elsif self.class.settings_with_args.include? match + :args + end + groups Name::Builtin::Pseudo, Punctuation + end + end + + state :section_tests do + mixin :section_include + + rule %r/[$@&%{}]+/, Name::Label + rule %r/( )(?![ |])/, Name::Label + + rule id do + @is_template = false + token Name::Label + end + end + + state :section_tasks do + mixin :section_tests + end + + state :section_keywords do + mixin :section_include + + rule %r/[$@&%]\{/ do + token Name::Variable + push :var + end + + rule %r/[$@&%{}]+/, Name::Label + rule %r/( )(?![ |])/, Name::Label + + rule id, Name::Label + end + + state :section_variables do + mixin :section_include + + rule %r/[$@&%]\{/ do + token Name::Variable + @next = :args + push :var + end + end + + state :cell_start do + rule %r/#.*/, Comment + mixin :return + end + + state :keyword do + rule %r/(\[)([A-Z]+(?: [A-Z]+)?)(\])/i do |m| + groups Punctuation, Name::Builtin::Pseudo, Punctuation + + match = m[2].downcase + @is_template = true if match == "template" + if self.class.settings_with_keywords.include? match + @next = :keyword + elsif self.class.settings_with_args.include? match + @next = :args + end + + pop! + end + + rule %r/[$@&%]\{/ do + token Name::Variable + @next = :keyword unless @next.nil? + push :var + end + + rule %r/FOR/i do + token Name::Function + @next = :keyword unless @next.nil? + end + + rule %r/( )(?![ |])/, Name::Function + + rule bdd, Name::Builtin + rule id do + token Name::Function + @next = nil + end + + mixin :return + end + + state :args do + rule %r/[$@&%]\{/ do + token Name::Variable + @next = :keyword unless @next.nil? + push :var + end + + rule %r/[$@&%]+/, Str + rule %r/( )(?![ |])/, Str + rule id, Str + + mixin :return + end + + state :var do + rule %r/(\})( )(=)/ do + groups Name::Variable, Text::Whitespace, Punctuation + pop! + end + rule %r/[$@&%]\{/, Name::Variable, :var + rule %r/[{\[]/, Name::Variable, :var + rule %r/[}\]]/, Name::Variable, :pop! + rule %r/[^$@&%{}\[\]]+/, Name::Variable + rule %r/\}\[/, Name::Variable + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ruby.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ruby.rb new file mode 100644 index 0000000..c3a77ec --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ruby.rb @@ -0,0 +1,455 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Ruby < RegexLexer + title "Ruby" + desc "The Ruby programming language (ruby-lang.org)" + tag 'ruby' + aliases 'rb' + filenames '*.rb', '*.ruby', '*.rbw', '*.rake', '*.gemspec', '*.podspec', + 'Rakefile', 'Guardfile', 'Gemfile', 'Capfile', 'Podfile', + 'Vagrantfile', '*.ru', '*.prawn', 'Berksfile', '*.arb', + 'Dangerfile', 'Fastfile', 'Deliverfile', 'Appfile', '*.thor', 'Thorfile' + + mimetypes 'text/x-ruby', 'application/x-ruby' + + def self.detect?(text) + return true if text.shebang? 'ruby' + end + + state :symbols do + # symbols + rule %r( + : # initial : + @{0,2} # optional ivar, for :@foo and :@@foo + [\p{Ll}_]\p{Word}*[!?]? # the symbol + )xi, Str::Symbol + + # special symbols + rule %r(:(?:\*\*|[-+]@|[/\%&\|^`~]|\[\]=?|<<|>>|<=?>|<=?|===?)), + Str::Symbol + + rule %r/:'(\\\\|\\'|[^'])*'/, Str::Symbol + rule %r/:"/, Str::Symbol, :simple_sym + end + + state :sigil_strings do + # %-sigiled strings + # %(abc), %[abc], %<abc>, %.abc., %r.abc., etc + delimiter_map = { '{' => '}', '[' => ']', '(' => ')', '<' => '>' } + rule %r/%([rqswQWxiI])?([^\p{Word}\s])/ do |m| + open = Regexp.escape(m[2]) + close = Regexp.escape(delimiter_map[m[2]] || m[2]) + interp = /[rQWxI]/ === m[1] || !m[1] + toktype = Str::Other + + puts " open: #{open.inspect}" if @debug + puts " close: #{close.inspect}" if @debug + + # regexes + if m[1] == 'r' + toktype = Str::Regex + push :regex_flags + end + + token toktype + + push do + uniq_chars = [open, close].uniq.join + uniq_chars = '' if open == close && open == "\\#" + rule %r/\\[##{uniq_chars}\\]/, Str::Escape + # nesting rules only with asymmetric delimiters + if open != close + rule %r/#{open}/ do + token toktype + push + end + end + rule %r/#{close}/, toktype, :pop! + + if interp + mixin :string_intp_escaped + rule %r/#/, toktype + else + rule %r/[\\#]/, toktype + end + + rule %r/[^##{uniq_chars}\\]+/m, toktype + end + end + end + + state :strings do + mixin :symbols + rule %r/\b[\p{Ll}_]\p{Word}*?[?!]?:\s+/, Str::Symbol, :expr_start + rule %r/'(\\\\|\\'|[^'])*'/, Str::Single + rule %r/"/, Str::Double, :simple_string + rule %r/(?<!\.)`/, Str::Backtick, :simple_backtick + end + + state :regex_flags do + rule %r/[mixounse]*/, Str::Regex, :pop! + end + + # double-quoted string and symbol + [[:string, Str::Double, '"'], + [:sym, Str::Symbol, '"'], + [:backtick, Str::Backtick, '`']].each do |name, tok, fin| + state :"simple_#{name}" do + mixin :string_intp_escaped + rule %r/[^\\#{fin}#]+/m, tok + rule %r/[\\#]/, tok + rule %r/#{fin}/, tok, :pop! + end + end + + keywords = %w( + BEGIN END alias begin break case defined\? do else elsif end + ensure for if in next redo rescue raise retry return super then + undef unless until when while yield + ) + + keywords_pseudo = %w( + loop include extend raise + alias_method attr catch throw private module_function + public protected true false nil __FILE__ __LINE__ + ) + + builtins_g = %w( + attr_reader attr_writer attr_accessor + + __id__ __send__ abort ancestors at_exit autoload binding callcc + caller catch chomp chop class_eval class_variables clone + const_defined\? const_get const_missing const_set constants + display dup eval exec exit extend fail fork format freeze + getc gets global_variables gsub hash id included_modules + inspect instance_eval instance_method instance_methods + instance_variable_get instance_variable_set instance_variables + lambda load local_variables loop method method_missing + methods module_eval name object_id open p print printf + private_class_method private_instance_methods private_methods proc + protected_instance_methods protected_methods public_class_method + public_instance_methods public_methods putc puts raise rand + readline readlines require require_relative scan select self send set_trace_func + singleton_methods sleep split sprintf srand sub syscall system + taint test throw to_a to_s trace_var trap untaint untrace_var warn + ) + + builtins_q = %w( + autoload block_given const_defined eql equal frozen + include instance_of is_a iterator kind_of method_defined + nil private_method_defined protected_method_defined + public_method_defined respond_to tainted + ) + + builtins_b = %w(chomp chop exit gsub sub) + + start do + push :expr_start + @heredoc_queue = [] + end + + state :whitespace do + mixin :inline_whitespace + rule %r/\n\s*/m, Text, :expr_start + rule %r/#.*$/, Comment::Single + + rule %r(=begin\b.*?\n=end\b)m, Comment::Multiline + end + + state :inline_whitespace do + rule %r/[ \t\r]+/, Text + end + + state :root do + mixin :whitespace + rule %r/__END__/, Comment::Preproc, :end_part + + rule %r/0_?[0-7]+(?:_[0-7]+)*/, Num::Oct + rule %r/0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/, Num::Hex + rule %r/0b[01]+(?:_[01]+)*/, Num::Bin + + decimal = %r/[\d]+(?:_\d+)*/ + exp = %r/e[+-]?\d+/i + rule %r/#{decimal}(?:\.#{decimal}#{exp}?|#{exp})/, Num::Float + rule decimal, Num::Integer + + # names + rule %r/@@[\p{Ll}_]\p{Word}*/i, Name::Variable::Class + rule %r/@[\p{Ll}_]\p{Word}*/i, Name::Variable::Instance + rule %r/\$\p{Word}+/, Name::Variable::Global + rule %r(\$[!@&`'+~=/\\,;.<>_*\$?:"]), Name::Variable::Global + rule %r/\$-[0adFiIlpvw]/, Name::Variable::Global + rule %r/::/, Operator + + mixin :strings + + rule %r/(?:#{keywords.join('|')})(?=\W|$)/, Keyword, :expr_start + rule %r/(?:#{keywords_pseudo.join('|')})\b/, Keyword::Pseudo, :expr_start + rule %r/(not|and|or)\b/, Operator::Word, :expr_start + + rule %r( + (module) + (\s+) + ([\p{L}_][\p{L}0-9_]*(::[\p{L}_][\p{L}0-9_]*)*) + )x do + groups Keyword, Text, Name::Namespace + end + + rule %r/(def\b)(\s*)/ do + groups Keyword, Text + push :funcname + end + + rule %r/(class\b)(\s*)/ do + groups Keyword, Text + push :classname + end + + rule %r/(?:#{builtins_q.join('|')})[?]/, Name::Builtin, :expr_start + rule %r/(?:#{builtins_b.join('|')})!/, Name::Builtin, :expr_start + rule %r/(?<!\.)(?:#{builtins_g.join('|')})\b/, + Name::Builtin, :method_call + + mixin :has_heredocs + + # `..` and `...` for ranges must have higher priority than `.` + # Otherwise, they will be parsed as :method_call + rule %r/\.{2,3}/, Operator, :expr_start + + rule %r/[\p{Lu}][\p{L}0-9_]*/, Name::Constant, :method_call + rule %r/(\.|::)(\s*)([\p{Ll}_]\p{Word}*[!?]?|[*%&^`~+-\/\[<>=])/ do + groups Punctuation, Text, Name::Function + push :method_call + end + + rule %r/[\p{L}_]\p{Word}*[?!]/, Name, :expr_start + rule %r/[\p{L}_]\p{Word}*/, Name, :method_call + rule %r/\*\*|<<?|>>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\./, + Operator, :expr_start + rule %r/[-+\/*%=<>&!^|~]=?/, Operator, :expr_start + rule(/[?]/) { token Punctuation; push :ternary; push :expr_start } + rule %r<[\[({,:\\;/]>, Punctuation, :expr_start + rule %r<[\])}]>, Punctuation + end + + state :has_heredocs do + rule %r/(?<!\p{Word})(<<[-~]?)(["`']?)([\p{L}_]\p{Word}*)(\2)/ do |m| + token Operator, m[1] + token Name::Constant, "#{m[2]}#{m[3]}#{m[4]}" + @heredoc_queue << [['<<-', '<<~'].include?(m[1]), m[3]] + push :heredoc_queue unless state? :heredoc_queue + end + + rule %r/(<<[-~]?)(["'])(\2)/ do |m| + token Operator, m[1] + token Name::Constant, "#{m[2]}#{m[3]}#{m[4]}" + @heredoc_queue << [['<<-', '<<~'].include?(m[1]), ''] + push :heredoc_queue unless state? :heredoc_queue + end + end + + state :heredoc_queue do + rule %r/(?=\n)/ do + goto :resolve_heredocs + end + + mixin :root + end + + state :resolve_heredocs do + mixin :string_intp_escaped + + rule %r/\n/, Str::Heredoc, :test_heredoc + rule %r/[#\\\n]/, Str::Heredoc + rule %r/[^#\\\n]+/, Str::Heredoc + end + + state :test_heredoc do + rule %r/[^#\\\n]*$/ do |m| + tolerant, heredoc_name = @heredoc_queue.first + check = tolerant ? m[0].strip : m[0].rstrip + + # check if we found the end of the heredoc + puts " end heredoc check #{check.inspect} = #{heredoc_name.inspect}" if @debug + if check == heredoc_name + @heredoc_queue.shift + # if there's no more, we're done looking. + pop! if @heredoc_queue.empty? + token Name::Constant + else + token Str::Heredoc + end + + pop! + end + + rule(//) { pop! } + end + + state :funcname do + rule %r/\s+/, Text + rule %r/\(/, Punctuation, :defexpr + rule %r( + (?:([\p{L}_]\p{Word}*)(\.))? + ( + [\p{L}_]\p{Word}*[!?]? | + \*\*? | [-+]@? | [/%&\|^`~] | \[\]=? | + <<? | >>? | <=>? | >= | ===? + ) + )x do |m| + puts "matches: #{[m[0], m[1], m[2], m[3]].inspect}" if @debug + groups Name::Class, Operator, Name::Function + pop! + end + + rule(//) { pop! } + end + + state :classname do + rule %r/\s+/, Text + rule %r/\p{Word}+(::\p{Word}+)+/, Name::Class + + rule %r/\(/ do + token Punctuation + push :defexpr + push :expr_start + end + + # class << expr + rule %r/<</ do + token Operator + goto :expr_start + end + + rule %r/[\p{Lu}_]\p{Word}*/, Name::Class, :pop! + + rule(//) { pop! } + end + + state :ternary do + rule %r/(:)(\s+)/ do + groups Punctuation, Text + goto :expr_start + end + + rule %r/:(?![^#\n]*?[:\\])/ do + token Punctuation + goto :expr_start + end + + mixin :root + end + + state :defexpr do + rule %r/(\))(\.|::)?/ do + groups Punctuation, Operator + pop! + end + rule %r/\(/ do + token Punctuation + push :defexpr + push :expr_start + end + + mixin :root + end + + state :in_interp do + rule %r/}/, Str::Interpol, :pop! + mixin :root + end + + state :string_intp do + rule %r/[#][{]/, Str::Interpol, :in_interp + rule %r/#(@@?|\$)[\p{Ll}_]\p{Word}*/i, Str::Interpol + end + + state :string_intp_escaped do + mixin :string_intp + rule %r/\\([\\abefnrstv#"']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})/, + Str::Escape + rule %r/\\./, Str::Escape + end + + state :method_call do + rule %r(/|%) do + token Operator + goto :expr_start + end + + rule(/(?=\n)/) { pop! } + + rule(//) { goto :method_call_spaced } + end + + state :method_call_spaced do + mixin :whitespace + + rule %r([%/]=) do + token Operator + goto :expr_start + end + + rule %r((/)(?=\S|\s*/)) do + token Str::Regex + goto :slash_regex + end + + mixin :sigil_strings + + rule(%r((?=\s*/))) { pop! } + + rule(/\s+/) { token Text; goto :expr_start } + rule(//) { pop! } + end + + state :expr_start do + mixin :inline_whitespace + + rule %r(/) do + token Str::Regex + goto :slash_regex + end + + # char operator. ?x evaulates to "x", unless there's a digit + # beforehand like x>=0?n[x]:"" + rule %r( + [?](\\[MC]-)* # modifiers + (\\([\\abefnrstv\#"']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S) + (?!\p{Word}) + )x, Str::Char, :pop! + + # special case for using a single space. Ruby demands that + # these be in a single line, otherwise it would make no sense. + rule %r/(\s*)(%[rqswQWxiI]? \S* )/ do + groups Text, Str::Other + pop! + end + + mixin :sigil_strings + + rule(//) { pop! } + end + + state :slash_regex do + mixin :string_intp + rule %r(\\\\), Str::Regex + rule %r(\\/), Str::Regex + rule %r([\\#]), Str::Regex + rule %r([^\\/#]+)m, Str::Regex + rule %r(/) do + token Str::Regex + goto :regex_flags + end + end + + state :end_part do + # eat up the rest of the stream as Comment::Preproc + rule %r/.+/m, Comment::Preproc, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rust.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rust.rb new file mode 100644 index 0000000..4f0aa8f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/rust.rb @@ -0,0 +1,260 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Rust < RegexLexer + title "Rust" + desc 'The Rust programming language (rust-lang.org)' + tag 'rust' + aliases 'rs', + # So that directives from https://github.com/budziq/rust-skeptic + # do not prevent highlighting. + 'rust,no_run', 'rs,no_run', + 'rust,ignore', 'rs,ignore', + 'rust,should_panic', 'rs,should_panic' + filenames '*.rs' + mimetypes 'text/x-rust' + + def self.detect?(text) + return true if text.shebang? 'rustc' + end + + def self.keywords + @keywords ||= %w( + as async await break const continue crate dyn else enum extern false + fn for if impl in let log loop match mod move mut pub ref return self + Self static struct super trait true type unsafe use where while + abstract become box do final macro + override priv typeof unsized virtual + yield try + union + ) + end + + def self.builtins + @builtins ||= Set.new %w( + Add BitAnd BitOr BitXor bool c_char c_double c_float char + c_int clock_t c_long c_longlong Copy c_schar c_short + c_uchar c_uint c_ulong c_ulonglong c_ushort c_void dev_t DIR + dirent Div Eq Err f32 f64 FILE float fpos_t + i16 i32 i64 i8 isize Index ino_t int intptr_t mode_t Mul + Neg None off_t Ok Option Ord Owned pid_t ptrdiff_t + Send Shl Shr size_t Some ssize_t str Sub time_t + u16 u32 u64 u8 usize uint uintptr_t + Box Vec String Rc Arc + u128 i128 Result Sync Pin Unpin Sized Drop drop Fn FnMut FnOnce + Clone PartialEq PartialOrd AsMut AsRef From Into Default + DoubleEndedIterator ExactSizeIterator Extend IntoIterator Iterator + FromIterator ToOwned ToString TryFrom TryInto + ) + end + + def macro_closed? + @macro_delims.values.all?(&:zero?) + end + + start { + @macro_delims = { ']' => 0, ')' => 0, '}' => 0 } + push :bol + } + + delim_map = { '[' => ']', '(' => ')', '{' => '}' } + + id = /[\p{XID_Start}_]\p{XID_Continue}*/ + hex = /[0-9a-f]/i + escapes = %r( + \\ ([nrt'"\\0] | x#{hex}{2} | u\{(#{hex}_*){1,6}\}) + )x + size = /8|16|32|64|128|size/ + + # Although not officially part of Rust, the rustdoc tool allows code in + # comments to begin with `#`. Code like this will be evaluated but not + # included in the HTML output produced by rustdoc. So that code intended + # for these comments can be higlighted with Rouge, the Rust lexer needs + # to check if the beginning of the line begins with a `# `. + state :bol do + mixin :whitespace + rule %r/#\s[^\n]*/, Comment::Special + rule(//) { pop! } + end + + state :attribute do + mixin :whitespace + mixin :has_literals + rule %r/[(,)=:]/, Name::Decorator + rule %r/\]/, Name::Decorator, :pop! + rule id, Name::Decorator + end + + state :whitespace do + rule %r/\s+/, Text + mixin :comments + end + + state :comments do + # Only 3 slashes are doc comments, `////` and beyond become normal + # comments again (for some reason), so match this before the + # doc line comments rather than figure out a + rule %r(////+[^\n]*), Comment::Single + # doc line comments — either inner (`//!`), or outer (`///`). + rule %r(//[/!][^\n]*), Comment::Doc + # otherwise, `//` is just a plain line comme + rule %r(//[^\n]*), Comment::Single + # /**/ and /***/ are self-closing block comments, not doc. Because this + # is self-closing, it doesn't enter the states for nested comments + rule %r(/\*\*\*?/), Comment::Multiline + # 3+ stars and it's a normal non-doc block comment. + rule %r(/\*\*\*+), Comment::Multiline, :nested_plain_block + # `/*!` and `/**` begin doc comments. These nest and can have internal + # block/doc comments, but they're still part of the documentation + # inside. + rule %r(/[*][*!]), Comment::Doc, :nested_doc_block + # any other /* is a plain multiline comment + rule %r(/[*]), Comment::Multiline, :nested_plain_block + end + + # Multiline/block comments fully nest. This is true for ones that are + # marked as documentation too. The behavior here is: + # + # - Anything inside a block doc comment is still included in the + # documentation, even if it's a nested non-doc block comment. For + # example: `/** /* still docs */ */` + # - Anything inside of a block non-doc comment is still just a normal + # comment, even if it's a nested block documentation comment. For + # example: `/* /** not docs */ */` + # + # This basically means: if (on the outermost level) the comment starts as + # one kind of block comment (either doc/non-doc), then everything inside + # of it, including nested block comments of the opposite type, needs to + # stay that type. + # + # Also note that single line comments do nothing anywhere inside of block + # comments, thankfully. + # + # We just define this as two states, because this seems easier than + # tracking it with instance vars. + [ + [:nested_plain_block, Comment::Multiline], + [:nested_doc_block, Comment::Doc] + ].each do |state_name, comment_token| + state state_name do + rule %r(\*/), comment_token, :pop! + rule %r(/\*), comment_token, state_name + # We only want to eat at most one `[*/]` at a time, + # but we can skip past non-`[*/]` in bulk. + rule %r([^*/]+|[*/]), comment_token + end + end + + state :root do + rule %r/\n/, Text, :bol + mixin :whitespace + rule %r/#!?\[/, Name::Decorator, :attribute + rule %r/\b(?:#{Rust.keywords.join('|')})\b/, Keyword + mixin :has_literals + + rule %r([=-]>), Keyword + rule %r(<->), Keyword + rule %r/[()\[\]{}|,:;]/, Punctuation + rule %r/[*\/!@~&+%^<>=\?-]|\.{2,3}/, Operator + + rule %r/([.]\s*)?#{id}(?=\s*[(])/m, Name::Function + rule %r/[.]\s*await\b/, Keyword + rule %r/[.]\s*#{id}/, Name::Property + rule %r/[.]\s*\d+/, Name::Attribute + rule %r/(#{id})(::)/m do + groups Name::Namespace, Punctuation + end + + # macros + rule %r/\bmacro_rules!/, Name::Decorator, :macro_rules + rule %r/#{id}!/, Name::Decorator, :macro + + rule %r/'static\b/, Keyword + rule %r/'#{id}/, Name::Variable + rule %r/#{id}/ do |m| + name = m[0] + if self.class.builtins.include? name + token Name::Builtin + else + token Name + end + end + end + + state :macro do + mixin :has_literals + + rule %r/[\[{(]/ do |m| + @macro_delims[delim_map[m[0]]] += 1 + puts " macro_delims: #{@macro_delims.inspect}" if @debug + token Punctuation + end + + rule %r/[\]})]/ do |m| + @macro_delims[m[0]] -= 1 + puts " macro_delims: #{@macro_delims.inspect}" if @debug + pop! if macro_closed? + token Punctuation + end + + # same as the rule in root, but don't push another macro state + rule %r/#{id}!/, Name::Decorator + mixin :root + + # No syntax errors in macros + rule %r/./, Text + end + + state :macro_rules do + rule %r/[$]#{id}(:#{id})?/, Name::Variable + rule %r/[$]/, Name::Variable + + mixin :macro + end + + state :has_literals do + # constants + rule %r/\b(?:true|false)\b/, Keyword::Constant + + # characters/bytes + rule %r( + b?' (?: #{escapes} | [^\\] ) ' + )x, Str::Char + + rule %r/b?"/, Str, :string + rule %r/b?r(#*)".*?"\1/m, Str + + # numbers + dot = /[.][0-9][0-9_]*/ + exp = /[eE][-+]?[0-9_]+/ + flt = /f32|f64/ + + rule %r( + [0-9][0-9_]* + (#{dot} #{exp}? #{flt}? + |#{dot}? #{exp} #{flt}? + |#{dot}? #{exp}? #{flt} + |[.](?![._\p{XID_Start}]) + ) + )x, Num::Float + + rule %r( + ( 0b[10_]+ + | 0x[0-9a-fA-F_]+ + | 0o[0-7_]+ + | [0-9][0-9_]* + ) (u#{size}?|i#{size})? + )x, Num::Integer + + end + + state :string do + rule %r/"/, Str, :pop! + rule escapes, Str::Escape + rule %r/[^"\\]+/m, Str + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sas.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sas.rb new file mode 100644 index 0000000..6095854 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sas.rb @@ -0,0 +1,563 @@ +# -*- coding: utf-8 -*- # + +module Rouge + module Lexers + class SAS < RegexLexer + title "SAS" + desc "SAS (Statistical Analysis Software)" + tag 'sas' + filenames '*.sas' + mimetypes 'application/x-sas', 'application/x-stat-sas', 'application/x-sas-syntax' + + def self.data_step_statements + # from Data step statements - SAS 9.4 Statements reference + # http://support.sas.com/documentation/cdl/en/lestmtsref/68024/PDF/default/lestmtsref.pdf + @data_step_statements ||= Set.new %w( + ABORT ARRAY ATTRIB BY CALL CARDS CARDS4 CATNAME CHECKPOINT + EXECUTE_ALWAYS CONTINUE DATA DATALINES DATALINES4 DELETE DESCRIBE + DISPLAY DM DO UNTIL WHILE DROP END ENDSAS ERROR EXECUTE FILE FILENAME + FOOTNOTE FORMAT GO TO IF THEN ELSE INFILE INFORMAT INPUT + KEEP LABEL LEAVE LENGTH LIBNAME LINK LIST LOCK LOSTCARD MERGE + MISSING MODIFY OPTIONS OUTPUT PAGE PUT PUTLOG REDIRECT REMOVE RENAME + REPLACE RESETLINE RETAIN RETURN RUN SASFILE SELECT SET SKIP STOP + SYSECHO TITLE UPDATE WHERE WINDOW X + ) + # label: + # Sum + end + + def self.sas_functions + # from SAS 9.4 Functions and CALL Routines reference + # http://support.sas.com/documentation/cdl/en/lefunctionsref/67960/PDF/default/lefunctionsref.pdf + @sas_functions ||= Set.new %w( + ABS ADDR ADDRLONG AIRY ALLCOMB ALLPERM ANYALNUM ANYALPHA ANYCNTRL + ANYDIGIT ANYFIRST ANYGRAPH ANYLOWER ANYNAME ANYPRINT ANYPUNCT + ANYSPACE ANYUPPER ANYXDIGIT ARCOS ARCOSH ARSIN ARSINH ARTANH ATAN + ATAN2 ATTRC ATTRN BAND BETA BETAINV BLACKCLPRC BLACKPTPRC + BLKSHCLPRC BLKSHPTPRC BLSHIFT BNOT BOR BRSHIFT BXOR BYTE CAT CATQ + CATS CATT CATX CDF CEIL CEILZ CEXIST CHAR CHOOSEC CHOOSEN CINV + CLOSE CMISS CNONCT COALESCE COALESCEC COLLATE COMB COMPARE COMPBL + COMPFUZZ COMPGED COMPLEV COMPOUND COMPRESS CONSTANT CONVX CONVXP + COS COSH COT COUNT COUNTC COUNTW CSC CSS CUMIPMT CUMPRINC CUROBS + CV DACCDB DACCDBSL DACCSL DACCSYD DACCTAB DAIRY DATDIF DATE + DATEJUL DATEPART DATETIME DAY DCLOSE DCREATE DEPDB DEPDBSL DEPSL + DEPSYD DEPTAB DEQUOTE DEVIANCE DHMS DIF DIGAMMA DIM DINFO DIVIDE + DNUM DOPEN DOPTNAME DOPTNUM DOSUBL DREAD DROPNOTE DSNAME + DSNCATLGD DUR DURP EFFRATE ENVLEN ERF ERFC EUCLID EXIST EXP FACT + FAPPEND FCLOSE FCOL FCOPY FDELETE FETCH FETCHOBS FEXIST FGET + FILEEXIST FILENAME FILEREF FINANCE FIND FINDC FINDW FINFO FINV + FIPNAME FIPNAMEL FIPSTATE FIRST FLOOR FLOORZ FMTINFO FNONCT FNOTE + FOPEN FOPTNAME FOPTNUM FPOINT FPOS FPUT FREAD FREWIND FRLEN FSEP + FUZZ FWRITE GAMINV GAMMA GARKHCLPRC GARKHPTPRC GCD GEODIST + GEOMEAN GEOMEANZ GETOPTION GETVARC GETVARN GRAYCODE HARMEAN + HARMEANZ HBOUND HMS HOLIDAY HOLIDAYCK HOLIDAYCOUNT HOLIDAYNAME + HOLIDAYNX HOLIDAYNY HOLIDAYTEST HOUR HTMLDECODE HTMLENCODE + IBESSEL IFC IFN INDEX INDEXC INDEXW INPUT INPUTC INPUTN INT + INTCINDEX INTCK INTCYCLE INTFIT INTFMT INTGET INTINDEX INTNX + INTRR INTSEAS INTSHIFT INTTEST INTZ IORCMSG IPMT IQR IRR JBESSEL + JULDATE JULDATE7 KURTOSIS LAG LARGEST LBOUND LCM LCOMB LEFT + LENGTH LENGTHC LENGTHM LENGTHN LEXCOMB LEXCOMBI LEXPERK LEXPERM + LFACT LGAMMA LIBNAME LIBREF LOG LOG1PX LOG10 LOG2 LOGBETA LOGCDF + LOGISTIC LOGPDF LOGSDF LOWCASE LPERM LPNORM MAD MARGRCLPRC + MARGRPTPRC MAX MD5 MDY MEAN MEDIAN MIN MINUTE MISSING MOD + MODEXIST MODULE MODULEC MODULEN MODZ MONTH MOPEN MORT MSPLINT + MVALID N NETPV NLITERAL NMISS NOMRATE NORMAL NOTALNUM NOTALPHA + NOTCNTRL NOTDIGIT NOTE NOTFIRST NOTGRAPH NOTLOWER NOTNAME + NOTPRINT NOTPUNCT NOTSPACE NOTUPPER NOTXDIGIT NPV NVALID NWKDOM + OPEN ORDINAL PATHNAME PCTL PDF PEEK PEEKC PEEKCLONG PEEKLONG PERM + PMT POINT POISSON PPMT PROBBETA PROBBNML PROBBNRM PROBCHI PROBF + PROBGAM PROBHYPR PROBIT PROBMC PROBNEGB PROBNORM PROBT PROPCASE + PRXCHANGE PRXMATCH PRXPAREN PRXPARSE PRXPOSN PTRLONGADD PUT PUTC + PUTN PVP QTR QUANTILE QUOTE RANBIN RANCAU RAND RANEXP RANGAM + RANGE RANK RANNOR RANPOI RANTBL RANTRI RANUNI RENAME REPEAT + RESOLVE REVERSE REWIND RIGHT RMS ROUND ROUNDE ROUNDZ SAVING + SAVINGS SCAN SDF SEC SECOND SHA256 SHA256HEX SHA256HMACHEX SIGN + SIN SINH SKEWNESS SLEEP SMALLEST SOAPWEB SOAPWEBMETA + SOAPWIPSERVICE SOAPWIPSRS SOAPWS SOAPWSMETA SOUNDEX SPEDIS SQRT + SQUANTILE STD STDERR STFIPS STNAME STNAMEL STRIP SUBPAD SUBSTR + SUBSTRN SUM SUMABS SYMEXIST SYMGET SYMGLOBL SYMLOCAL SYSEXIST + SYSGET SYSMSG SYSPARM SYSPROCESSID SYSPROCESSNAME SYSPROD SYSRC + SYSTEM TAN TANH TIME TIMEPART TIMEVALUE TINV TNONCT TODAY + TRANSLATE TRANSTRN TRANWRD TRIGAMMA TRIM TRIMN TRUNC TSO TYPEOF + TZONEID TZONENAME TZONEOFF TZONES2U TZONEU2S UNIFORM UPCASE + URLDECODE URLENCODE USS UUIDGEN VAR VARFMT VARINFMT VARLABEL + VARLEN VARNAME VARNUM VARRAY VARRAYX VARTYPE VERIFY VFORMAT + VFORMATD VFORMATDX VFORMATN VFORMATNX VFORMATW VFORMATWX VFORMATX + VINARRAY VINARRAYX VINFORMAT VINFORMATD VINFORMATDX VINFORMATN + VINFORMATNX VINFORMATW VINFORMATWX VINFORMATX VLABEL VLABELX + VLENGTH VLENGTHX VNAME VNAMEX VTYPE VTYPEX VVALUE VVALUEX WEEK + WEEKDAY WHICHC WHICHN WTO YEAR YIELDP YRDIF YYQ ZIPCITY + ZIPCITYDISTANCE ZIPFIPS ZIPNAME ZIPNAMEL ZIPSTATE + ) + end + + def self.sas_macro_statements + # from SAS 9.4 Macro Language Reference + # Chapter 12 + @sas_macro_statements ||= Set.new %w( + %COPY %DISPLAY %GLOBAL %INPUT %LET %MACRO %PUT %SYMDEL %SYSCALL + %SYSEXEC %SYSLPUT %SYSMACDELETE %SYSMSTORECLEAR %SYSRPUT %WINDOW + %ABORT %DO %TO %UNTIL %WHILE %END %GOTO %IF %THEN %ELSE %LOCAL + %RETURN + %INCLUDE %LIST %RUN + ) + # Omitted: + # %label: Identifies the destination of a %GOTO statement. + # %MEND + end + + def self.sas_macro_functions + # from SAS 9.4 Macro Language Reference + # Chapter 12 + + @sas_macro_functions ||= Set.new %w( + %BQUOTE %NRBQUOTE %EVAL %INDEX %LENGTH %QUOTE %NRQUOTE %SCAN + %QSCAN %STR %NRSTR %SUBSTR %QSUBSTR %SUPERQ %SYMEXIST %SYMGLOBL + %SYMLOCAL %SYSEVALF %SYSFUNC %QSYSFUNC %SYSGET %SYSMACEXEC + %SYSMACEXIST %SYSMEXECDEPTH %SYSMEXECNAME %SYSPROD %UNQUOTE + %UPCASE %QUPCASE + ) + end + + def self.sas_auto_macro_vars + # from SAS 9.4 Macro Language Reference + # Chapter 12 + + @sas_auto_macro_vars ||= Set.new %w( + &SYSADDRBITS &SYSBUFFR &SYSCC &SYSCHARWIDTH &SYSCMD &SYSDATASTEPPHASE &SYSDATE + &SYSDATE9 &SYSDAY &SYSDEVIC &SYSDMG &SYSDSN &SYSENCODING &SYSENDIAN &SYSENV + &SYSERR &SYSERRORTEXT &SYSFILRC &SYSHOSTINFOLONG &SYSHOSTNAME &SYSINDEX + &SYSINFO &SYSJOBID &SYSLAST &SYSLCKRC &SYSLIBRC &SYSLOGAPPLNAME &SYSMACRONAME + &SYSMENV &SYSMSG &SYSNCPU &SYSNOBS &SYSODSESCAPECHAR &SYSODSPATH &SYSPARM + &SYSPBUFF &SYSPRINTTOLIST &SYSPRINTTOLOG &SYSPROCESSID &SYSPROCESSMODE + &SYSPROCESSNAME &SYSPROCNAME &SYSRC &SYSSCP &SYSSCPL &SYSSITE &SYSSIZEOFLONG + &SYSSIZEOFPTR &SYSSIZEOFUNICODE &SYSSTARTID &SYSSTARTNAME &SYSTCPIPHOSTNAME + &SYSTIME &SYSTIMEZONE &SYSTIMEZONEIDENT &SYSTIMEZONEOFFSET &SYSUSERID &SYSVER + &SYSVLONG &SYSVLONG4 &SYSWARNINGTEXT + ) + end + + def self.proc_keywords + # Create a hash with keywords for common PROCs, keyed by PROC name + @proc_keywords ||= {} + + @proc_keywords["SQL"] ||= Set.new %w( + ALTER TABLE CONNECT CREATE INDEX VIEW DELETE DESCRIBE DISCONNECT DROP EXECUTE + INSERT RESET SELECT UPDATE VALIDATE ADD CONSTRAINT DROP FOREIGN KEY PRIMARY + MODIFY LIKE AS ORDER BY USING FROM INTO SET VALUES RESET DISTINCT UNIQUE + WHERE GROUP HAVING LEFT RIGHT INNER JOIN ON + ) + # from SAS 9.4 SQL Procedure User's Guide + + @proc_keywords["MEANS"] ||= Set.new %w( + BY CLASS FREQ ID OUTPUT OUT TYPES VAR WAYS WEIGHT + ATTRIB FORMAT LABEL WHERE + DESCENDING NOTSORTED + NOTHREADS NOTRAP PCTLDEF SUMSIZE THREADS CLASSDATA COMPLETETYPES + EXCLUSIVE MISSING FW MAXDEC NONOBS NOPRINT ORDER FORMATTED FREQ + UNFORMATTED PRINT PRINTALLTYPES PRINTIDVARS STACKODSOUTPUT + CHARTYPE DESCENDTYPES IDMIN + ALPHA EXCLNPWGT QMARKERS QMETHOD QNTLDEF VARDEF + CLM CSS CV KURTOSIS KURT LCLM MAX MEAN MIN MODE N + NMISS RANGE SKEWNESS SKEW STDDEV STD STDERR SUM SUMWGT UCLM USS VAR + MEDIAN P50 Q1 P25 Q3 P75 P1 P90 P5 P95 P10 P99 P20 P30 P40 P60 P70 + P80 QRANGE + PROBT PRT T + ASCENDING GROUPINTERNAL MLF PRELOADFMT + MAXID AUTOLABEL AUTONAME KEEPLEN LEVELS NOINHERIT + ) + # from BASE SAS 9.4 Procedures Guide, Fifth Edition + + @proc_keywords["DATASETS"] ||= Set.new %w( + AGE APPEND ATTRIB AUDIT CHANGE CONTENTS COPY DELETE EXCHANGE + EXCLUDE FORMAT IC CREATE DELETE REACTIVATE INDEX CENTILES INFORMAT + INITIATE LABEL LOG MODIFY REBUILD RENAME REPAIR RESUME SAVE SELECT + SUSPEND TERMINATE USER_VAR XATTR ADD OPTIONS REMOVE SET + ) + # from BASE SAS 9.4 Procedures Guide, Fifth Edition + + @proc_keywords["SORT"] ||= Set.new %w( + BY DESCENDING KEY ASCENDING ASC DESC DATECOPY FORCE OVERWRITE + PRESORTED SORTSIZE TAGSORT DUPOUT OUT UNIQUEOUT NODUPKEY NOUNIQUEKEY + NOTHREADS THREADS EQUALS NOEQUALS + ATTRIB FORMAT LABEL WHERE + ) + # from BASE SAS 9.4 Procedures Guide, Fifth Edition + + @proc_keywords["PRINT"] ||= Set.new %w( + BY DESCENDING NOTSORTED PAGEBY SUMBY ID STYLE SUM VAR CONTENTS DATA + GRANDTOTAL_LABEL HEADING LABEL SPLIT SUMLABEL NOSUMLABEL + BLANKLINE COUNT DOUBLE N NOOBS OBS ROUND + ROWS UNIFORM WIDTH + ATTRIB FORMAT LABEL WHERE + ) + # from BASE SAS 9.4 Procedures Guide, Fifth Edition + + @proc_keywords["APPEND"] ||= Set.new %w( + BASE APPENDVER DATA ENCRYPTKEY FORCE GETSORT NOWARN + ATTRIB FORMAT LABEL WHERE + ) + # from BASE SAS 9.4 Procedures Guide, Fifth Edition + + @proc_keywords["TRANSPOSE"] ||= Set.new %w( + DELIMITER LABEL LET NAME OUT PREFIX SUFFIX BY DESCENDING NOTSORTED + COPY ID IDLABEL VAR INDB + ATTRIB FORMAT LABEL WHERE + ) + # from BASE SAS 9.4 Procedures Guide, Fifth Edition + + @proc_keywords["FREQ"] ||= Set.new %w( + BY EXACT OUTPUT TABLES TEST WEIGHT + COMPRESS DATA FORMCHAR NLEVELS NOPRINT ORDER PAGE FORMATTED FREQ + INTERNAL + AGREE BARNARD BINOMIAL BIN CHISQ COMOR EQOR ZELEN FISHER JT KAPPA + KENTB TAUB LRCHI MCNEM MEASURES MHCHI OR ODDSRATIO PCHI PCORR RELRISK + RISKDIFF SCORR SMDCR SMDRC STUTC TAUC TREND WTKAP WTKAPPA + OUT AJCHI ALL BDCHI CMH CMH1 CMH2 CMHCOR CMHGA CMHRMS COCHQ CONTGY + CRAMV EQKAP EQWKP GAMMA GS GAILSIMON LAMCR LAMDAS LAMRC LGOR LGRRC1 + LGRRC2 MHOR MHRRC1 MHRRC2 N NMISS PHI PLCORR RDIF1 RDIF2 RISKDIFF1 + RISKDIFF2 RRC1 RELRISK1 RRC2 RELRISK2 RSK1 RISK1 RSK11 RISK11 RSK12 + RISK12 RSK21 RISK21 RSK22 RISK22 TSYMM BOWKER U UCR URC + CELLCHI2 CUMCOL DEVIATION EXPECTED MISSPRINT PEARSONREF PRINTWKTS + SCOROUT SPARSE STDRES TOTPCT + CONTENTS CROSSLIST FORMAT LIST MAXLEVELS NOCOL NOCUM NOFREQ NOPERCENT + NOPRINT NOROW NOSPARSE NOWARN PLOTS OUT OUTCUM OUTEXPECT OUTPCT + ZEROS + ) + # from Base SAS 9.4 Procedures Guide: Statistical Procedures, Fourth Edition + + @proc_keywords["CORR"] ||= Set.new %w( + BY FREQ ID PARTIAL VAR WEIGHT WITH + DATA OUTH OUTK OUTP OUTPLC OUTPLS OUTS + EXCLNPWGHT FISHER HOEFFDING KENDALL NOMISS PEARSON POLYCHORIC + POLYSERIAL ALPHA COV CSSCP SINGULAR SSCP VARDEF PLOTS MATRIX SCATTER + BEST NOCORR NOPRINT NOPROB NOSIMPLE RANK + ) + # from Base SAS 9.4 Procedures Guide: Statistical Procedures, Fourth Edition + + @proc_keywords["REPORT"] ||= Set.new %w( + BREAK BY DESCENDING NOTSORTED COLUMN COMPUTE STYLE LINE ENDCOMP + CALL DEFINE _ROW_ FREQ RBREAK WEIGHT + ATTRIB FORMAT LABEL WHERE + DATA NOALIAS NOCENTER NOCOMPLETECOLS NOCOMPLETEROWS NOTHREADS + NOWINDOWS OUT PCTLDEF THREADS WINDOWS COMPLETECOLS NOCOMPLETECOLS + COMPLETEROWS NOCOMPLETEROWS CONTENTS SPANROWS COMMAND HELP PROMPT + BOX BYPAGENO CENTER NOCENTER COLWIDTH FORMCHAR LS MISSING PANELS PS + PSPACE SHOWALL SPACING WRAP EXCLNPWGT QMARKERS QMETHOD QNTLDEF VARDEF + NAMED NOHEADER SPLIT HEADLINE HEADSKIP LIST NOEXEC OUTREPT PROFILE + REPORT + COLOR DOL DUL OL PAGE SKIP SUMMARIZE SUPPRESS UL + BLINK COMMAND HIGHLIGHT RVSVIDEO MERGE REPLACE URL URLBP URLP + AFTER BEFORE _PAGE_ LEFT RIGHT CHARACTER LENGTH + EXCLUSIVE MISSING MLF ORDER DATA FORMATTED FREQ INTERNAL PRELOADFMT + WIDTH + ACROSS ANALYSIS COMPUTED DISPLAY GROUP ORDER + CONTENTS FLOW ID NOPRINT NOZERO PAGE + CSS CV MAX MEAN MIN MODE N NMISS PCTN PCTSUM RANGE STD STDERR SUM + SUMWGT USS VAR + MEDIAN P50 Q1 P25 Q3 P75 P1 P90 P5 P95 P10 P99 P20 P30 P40 P60 P70 + P80 QRANGE + PROBT PRT T + ) + # from BASE SAS 9.4 Procedures Guide, Fifth Edition + + @proc_keywords["METALIB"] ||= Set.new %w( + OMR DBAUTH DBUSER DBPASSWORD EXCLUDE SELECT READ FOLDER FOLDERID + IMPACT_LIMIT NOEXEC PREFIX REPORT UPDATE_RULE DELETE NOADD NODELDUP + NOUPDATE + LIBID LIBRARY LIBURI + TYPE DETAIL SUMMARY + ) + # from SAS 9.4 Language Interfaces to Metadata, Third Edition + + @proc_keywords["GCHART"] ||= Set.new %w( + DATA ANNOTATE GOUT IMAGEMAP BLOCK HBAR HBAR3D VBAR VBAR3D PIE PIE3D + DONUT STAR ANNO + BY NOTE FORMAT LABEL WHERE + BLOCKMAX CAXIS COUTLINE CTEXT LEGEND NOHEADING NOLEGEND PATTERNID + GROUP MIDPOINT SUBGROUP WOUTLINE DESCRIPTION NAME DISCRETE LEVELS + OLD MISSING HTML_LEGEND HTML URL FREQ G100 SUMVAR TYPE + CAUTOREF CERROR CFRAME CLM CREF FRAME NOFRAME GSPACE IFRAME + IMAGESTYLE TILE FIT LAUTOREF NOSYMBOL PATTERNID SHAPE SPACE + SUBOUTSIDE WAUTOREF WIDTH WOUTLINE WREF + ASCENDING AUTOREF CLIPREF DESCENDING FRONTREF GAXIS MAXIS MINOR + NOAXIS NOBASEREF NOZERO RANGE AXIS REF CFREQ CFREQLABEL NONE CPERCENT + CPERCENTLABEL ERRORBAR BARS BOTH TOP FREQLABEL INSIDE MEAN MEANLABEL + NOSTATS OUTSIDE PERCENT PERCENTLABEL PERCENTSUM SUM + CFILL COUTLINE DETAIL_RADIUS EXPLODE FILL SOLID X INVISIBLE NOHEADING + RADIUS WOUTLINE DETAIL_THRESHOLD DETAIL_PERCENT DETAIL_SLICE + DETAIL_VALUE DONUTPCT LABEL ACROSS DOWN GROUP NOGROUPHEADING SUBGROUP + MATCHCOLOR OTHERCOLOR OTHERLABEL PERCENT ARROW PLABEL PPERCENT SLICE + VALUE + ANGLE ASCENDING CLOCKWISE DESCENDING JSTYLE + NOCONNECT STARMAX STARMIN + ) + # from SAS GRAPH 9.4 Reference, Fourth Edition + + @proc_keywords["GPLOT"] ||= Set.new %w( + DATA ANNOTATE GOUT IMAGEMAP UNIFORM BUBBLE BUBBLE2 PLOT PLOT2 + BCOLOR BFILL BFONT BLABEL BSCALE AREA RADIUS BSIZE DESCRIPTION NAME + AUTOHREF CAUTOHREF CHREF HAXIS HMINOR HREF HREVERSE HZERO LAUTOHREF + LHREF WAUTOHREF WHREF HTML URL + CAXIS CFRAME CTEXT DATAORDER FRAME NOFRAME FRONTREF GRID IFRAME + IMAGESTYLE TILE FIT NOAXIS + AUTOVREF CAUTOVREF CVREF LAUTOVREF LVREF VAXIS VMINOR VREF VREVERSE + VZERO WAUTOVREF WVREF + CBASELINE COUTLINE + AREAS GRID LEGEND NOLASTAREA NOLEGEND OVERLAY REGEQN SKIPMISS + ) + # from SAS GRAPH 9.4 Reference, Fourth Edition + + @proc_keywords["REG"] ||= Set.new %w( + MODEL BY FREQ ID VAR WEIGHT ADD CODE DELETE MTEST OUTPUT PAINT + PLOT PRINT REFIT RESTRICT REWEIGHT STORE TEST + ) + # from SAS/STAT 15.1 User's Guide + + @proc_keywords["SGPLOT"] ||= Set.new %w( + STYLEATTRS BAND X Y UPPER LOWER BLOCK BUBBLE DENSITY DOT DROPLINE + ELLIPSE ELLIPSEPARM FRINGE GRADLEGEND HBAR HBARBASIC HBARPARM + HBOX HEATMAP HEATMAPPARM HIGHLOW HISTOGRAM HLINE INSET KEYLEGEND + LINEPARM LOESS NEEDLE PBSPLINE POLYGON REFLINE REG SCATTER SERIES + SPLINE STEP SYMBOLCHAR SYMBOLIMAGE TEXT VBAR VBARBASIC VBARPARM + VBOX VECTOR VLINE WATERFALL XAXIS X2AXIS XAXISTABLE YAXIS Y2AXIS + YAXISTABLE + ) + # from ODS Graphics: Procedures Guide, Sixth Edition + return @proc_keywords + end + + def self.sas_proc_names + # from SAS Procedures by Name + # http://support.sas.com/documentation/cdl/en/allprodsproc/68038/HTML/default/viewer.htm#procedures.htm + + @sas_proc_names ||= Set.new %w( + ACCESS ACECLUS ADAPTIVEREG ALLELE ANOM ANOVA APPEND APPSRV ARIMA + AUTHLIB AUTOREG BCHOICE BOM BOXPLOT BTL BUILD CALENDAR CALIS CALLRFC + CANCORR CANDISC CAPABILITY CASECONTROL CATALOG CATMOD CDISC CDISC + CHART CIMPORT CLP CLUSTER COMPARE COMPILE COMPUTAB CONTENTS CONVERT + COPULA COPY CORR CORRESP COUNTREG CPM CPORT CUSUM CV2VIEW DATEKEYS + DATASETS DATASOURCE DB2EXT DB2UTIL DBCSTAB DBF DBLOAD DELETE DIF + DISCRIM DISPLAY DISTANCE DMSRVADM DMSRVDATASVC DMSRVPROCESSSVC + DOCUMENT DOWNLOAD DQLOCLST DQMATCH DQSCHEME DS2 DTREE ENTROPY ESM + EXPAND EXPLODE EXPORT FACTEX FACTOR FAMILY FASTCLUS FCMP FEDSQL FMM + FONTREG FORECAST FORMAT FORMS FREQ FSBROWSE FSEDIT FSLETTER FSLIST + FSVIEW G3D G3GRID GA GAM GAMPL GANNO GANTT GAREABAR GBARLINE GCHART + GCONTOUR GDEVICE GEE GENESELECT GENMOD GEOCODE GFONT GINSIDE GIS GKPI + GLIMMIX GLM GLMMOD GLMPOWER GLMSELECT GMAP GOPTIONS GPLOT GPROJECT + GRADAR GREDUCE GREMOVE GREPLAY GROOVY GSLIDE GTILE HADOOP HAPLOTYPE + HDMD HPBIN HPCANDISC HPCDM HPCOPULA HPCORR HPCOUNTREG HPDMDB HPDS2 + HPFMM HPGENSELECT HPIMPUTE HPLMIXED HPLOGISTIC HPMIXED HPNLMOD + HPPANEL HPPLS HPPRINCOMP HPQUANTSELECT HPQLIM HPREG HPSAMPLE + HPSEVERITY HPSPLIT HPSUMMARY HTSNP HTTP ICLIFETEST ICPHREG IML IMPORT + IMSTAT IMXFER INBREED INFOMAPS INTPOINT IOMOPERATE IRT ISHIKAWA ITEMS + JAVAINFO JSON KDE KRIGE2D LASR LATTICE LIFEREG LIFETEST LOAN + LOCALEDATA LOESS LOGISTIC LP LUA MACONTROL MAPIMPORT MCMC MDC MDDB + MDS MEANS METADATA METALIB METAOPERATE MI MIANALYZE MIGRATE MIXED + MODECLUS MODEL MSCHART MULTTEST MVPDIAGNOSE MVPMODEL MVPMONITOR + NESTED NETDRAW NETFLOW NLIN NLMIXED NLP NPAR1WAY ODSLIST ODSTABLE + ODSTEXT OLAP OLAPCONTENTS OLAPOPERATE OPERATE OPTEX OPTGRAPH OPTIONS + OPTLOAD OPTLP OPTLSO OPTMILP OPTMODEL OPTNET OPTQP OPTSAVE ORTHOREG + PANEL PARETO PDLREG PDS PDSCOPY PHREG PLAN PLM PLOT PLS PM PMENU + POWER PRESENV PRINCOMP PRINQUAL PRINT PRINTTO PROBIT PROTO PRTDEF + PRTEXP PSMOOTH PWENCODE QDEVICE QLIM QUANTLIFE QUANTREG QUANTSELECT + QUEST RANK RAREEVENTS RDC RDPOOL RDSEC RECOMMEND REG REGISTRY RELEASE + RELIABILITY REPORT RISK ROBUSTREG RSREG SCAPROC SCORE SEQDESIGN + SEQTEST SERVER SEVERITY SGDESIGN SGPANEL SGPLOT SGRENDER SGSCATTER + SHEWHART SIM2D SIMILARITY SIMLIN SIMNORMAL SOAP SORT SOURCE SPECTRA + SPP SQL SQOOP SSM STANDARD STATESPACE STDIZE STDRATE STEPDISC STP + STREAM SUMMARY SURVEYFREQ SURVEYIMPUTE SURVEYLOGISTIC SURVEYMEANS + SURVEYPHREG SURVEYREG SURVEYSELECT SYSLIN TABULATE TAPECOPY TAPELABEL + TEMPLATE TIMEDATA TIMEID TIMEPLOT TIMESERIES TPSPLINE TRANSPOSE + TRANSREG TRANTAB TREE TSCSREG TTEST UCM UNIVARIATE UPLOAD VARCLUS + VARCOMP VARIOGRAM VARMAX VASMP X11 X12 X13 XSL + ) + end + + state :basics do + # Rules to be parsed before the keywords (which are different depending + # on the context) + + rule %r/\s+/m, Text + + # Single-line comments (between * and ;) - these can actually go onto multiple lines + # case 1 - where it starts a line + rule %r/^\s*%?\*[^;]*;/m, Comment::Single + # case 2 - where it follows the previous statement on the line (after a semicolon) + rule %r/(;)(\s*)(%?\*[^;]*;)/m do + groups Punctuation, Text, Comment::Single + end + + # True multiline comments! + rule %r(/[*].*?[*]/)m, Comment::Multiline + + # date/time constants (Language Reference pp91-2) + rule %r/'[0-9a-z]+?'d/i, Literal::Date + rule %r/'.+?'dt/i, Literal::Date + rule %r/'[0-9:]+?([a|p]m)?'t/i, Literal::Date + + rule %r/'/, Str::Single, :single_string + rule %r/"/, Str::Double, :double_string + rule %r/&[a-z0-9_&.]+/i, Name::Variable + + # numeric constants (Language Reference p91) + rule %r/\d[0-9a-f]*x/i, Num::Hex + rule %r/\d[0-9e\-.]+/i, Num # scientific notation + + # auto variables from DATA step (Language Reference p46, p37) + rule %r/\b(_n_|_error_|_file_|_infile_|_msg_|_iorc_|_cmd_)\b/i, Name::Builtin::Pseudo + + # auto variable list names + rule %r/\b(_character_|_numeric_|_all_)\b/i, Name::Builtin + + # datalines/cards etc + rule %r/\b(datalines|cards)(\s*)(;)/i do + groups Keyword, Text, Punctuation + push :datalines + end + rule %r/\b(datalines4|cards4)(\s*)(;)/i do + groups Keyword, Text, Punctuation + push :datalines4 + end + + + # operators (Language Reference p96) + rule %r(\*\*|[\*/\+-]), Operator + rule %r/[^¬~]?=:?|[<>]=?:?/, Operator + rule %r/\b(eq|ne|gt|lt|ge|le|in)\b/i, Operator::Word + rule %r/[&|!¦¬∘~]/, Operator + rule %r/\b(and|or|not)\b/i, Operator::Word + rule %r/(<>|><)/, Operator # min/max + rule %r/\|\|/, Operator # concatenation + + # The OF operator should also be highlighted (Language Reference p49) + rule %r/\b(of)\b/i, Operator::Word + rule %r/\b(like)\b/i, Operator::Word # Language Ref p181 + + rule %r/\d+/, Num::Integer + + rule %r/\$/, Keyword::Type + + # Macro definitions + rule %r/(%macro|%mend)(\s*)(\w+)/i do + groups Keyword, Text, Name::Function + end + rule %r/%mend/, Keyword + + rule %r/%\w+/ do |m| + if self.class.sas_macro_statements.include? m[0].upcase + token Keyword + elsif self.class.sas_macro_functions.include? m[0].upcase + token Keyword + else + token Name + end + end + end + + state :basics2 do + # Rules to be parsed after the keywords (which are different depending + # on the context) + + # Missing values (Language Reference p81) + rule %r/\s\.[;\s]/, Keyword::Constant # missing + rule %r/\s\.[a-z_]/, Name::Constant # user-defined missing + + rule %r/[\(\),;:\{\}\[\]\\\.]/, Punctuation + + rule %r/@/, Str::Symbol # line hold specifiers + rule %r/\?/, Str::Symbol # used for format modifiers + + rule %r/[^\s]+/, Text # Fallback for anything we haven't matched so far + end + + state :root do + mixin :basics + + # PROC definitions + rule %r!(proc)(\s+)(\w+)!ix do |m| + @proc_name = m[3].upcase + puts " proc name: #{@proc_name}" if @debug + if self.class.sas_proc_names.include? @proc_name + groups Keyword, Text, Keyword + else + groups Keyword, Text, Name + end + + push :proc + end + + # Data step definitions + rule %r/(data)(\s+)([\w\.]+)/i do + groups Keyword, Text, Name::Variable + end + # Libname definitions + rule %r/(libname)(\s+)(\w+)/i do + groups Keyword, Text, Name::Variable + end + + rule %r/\w+/ do |m| + if self.class.data_step_statements.include? m[0].upcase + token Keyword + elsif self.class.sas_functions.include? m[0].upcase + token Keyword + else + token Name + end + end + + mixin :basics2 + end + + + state :single_string do + rule %r/''/, Str::Escape + rule %r/'/, Str::Single, :pop! + rule %r/[^']+/, Str::Single + end + + state :double_string do + rule %r/&[a-z0-9_&]+\.?/i, Str::Interpol + rule %r/""/, Str::Escape + rule %r/"/, Str::Double, :pop! + + rule %r/[^&"]+/, Str::Double + # Allow & to be used as character if not already matched as macro variable + rule %r/&/, Str::Double + end + + state :datalines do + rule %r/[^;]/, Literal::String::Heredoc + rule %r/;/, Punctuation, :pop! + end + + state :datalines4 do + rule %r/;{4}/, Punctuation, :pop! + rule %r/[^;]/, Literal::String::Heredoc + rule %r/;{,3}/, Literal::String::Heredoc + end + + + # PROCS + state :proc do + rule %r/(quit|run)/i, Keyword, :pop! + + mixin :basics + rule %r/\w+/ do |m| + if self.class.data_step_statements.include? m[0].upcase + token Keyword + elsif self.class.sas_functions.include? m[0].upcase + token Keyword + elsif self.class.proc_keywords.has_key?(@proc_name) and self.class.proc_keywords[@proc_name].include? m[0].upcase + token Keyword + else + token Name + end + end + + mixin :basics2 + end + + end #class SAS + end #module Lexers +end #module Rouge diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sass.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sass.rb new file mode 100644 index 0000000..7758beb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sass.rb @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'sass/common.rb' + + class Sass < SassCommon + include Indentation + + title "Sass" + desc 'The Sass stylesheet language language (sass-lang.com)' + + tag 'sass' + filenames '*.sass' + mimetypes 'text/x-sass' + + id = /[\w-]+/ + + state :root do + rule %r/[ \t]*\n/, Text + rule(/[ \t]*/) { |m| token Text; indentation(m[0]) } + end + + state :content do + # block comments + rule %r(//.*?$) do + token Comment::Single + pop!; starts_block :single_comment + end + + rule %r(/[*].*?\n) do + token Comment::Multiline + pop!; starts_block :multi_comment + end + + rule %r/@import\b/, Keyword, :import + + mixin :content_common + + rule %r(=#{id}), Name::Function, :value + rule %r([+]#{id}), Name::Decorator, :value + + rule %r/:/, Name::Attribute, :old_style_attr + + rule(/(?=[^\[\n]+?:([^a-z]|$))/) { push :attribute } + + rule(//) { push :selector } + end + + state :single_comment do + rule %r/.*?$/, Comment::Single, :pop! + end + + state :multi_comment do + rule %r/.*?\n/, Comment::Multiline, :pop! + end + + state :import do + rule %r/[ \t]+/, Text + rule %r/\S+/, Str + rule %r/\n/, Text, :pop! + end + + state :old_style_attr do + mixin :attr_common + rule(//) { pop!; push :value } + end + + state :end_section do + rule(/\n/) { token Text; reset_stack } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sass/common.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sass/common.rb new file mode 100644 index 0000000..68b0095 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sass/common.rb @@ -0,0 +1,182 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + # shared states with SCSS + class SassCommon < RegexLexer + id = /[\w-]+/ + + state :content_common do + rule %r/@for\b/, Keyword, :for + rule %r/@(debug|warn|if|each|while|else|return|media)/, Keyword, :value + + rule %r/(@mixin)(\s+)(#{id})/ do + groups Keyword, Text, Name::Function + push :value + end + + rule %r/(@function)(\s+)(#{id})/ do + groups Keyword, Text, Name::Function + push :value + end + + rule %r/@extend\b/, Keyword, :selector + + rule %r/(@include)(\s+)(#{id})/ do + groups Keyword, Text, Name::Decorator + push :value + end + + rule %r/@#{id}/, Keyword, :selector + rule %r/&/, Keyword, :selector + + # $variable: assignment + rule %r/([$]#{id})([ \t]*)(:)/ do + groups Name::Variable, Text, Punctuation + push :value + end + end + + state :value do + mixin :end_section + rule %r/[ \t]+/, Text + rule %r/[$]#{id}/, Name::Variable + rule %r/url[(]/, Str::Other, :string_url + rule %r/#{id}(?=\s*[(])/, Name::Function + rule %r/%#{id}/, Name::Decorator + + # named literals + rule %r/(true|false)\b/, Name::Builtin::Pseudo + rule %r/(and|or|not)\b/, Operator::Word + + # colors and numbers + rule %r/#[a-z0-9]{1,6}/i, Num::Hex + rule %r/-?\d+(%|[a-z]+)?/, Num + rule %r/-?\d*\.\d+(%|[a-z]+)?/, Num::Integer + + mixin :has_strings + mixin :has_interp + + rule %r/[~^*!&%<>\|+=@:,.\/?-]+/, Operator + rule %r/[\[\]()]+/, Punctuation + rule %r(/[*]), Comment::Multiline, :inline_comment + rule %r(//[^\n]*), Comment::Single + + # identifiers + rule(id) do |m| + if CSS.builtins.include? m[0] + token Name::Builtin + elsif CSS.constants.include? m[0] + token Name::Constant + else + token Name + end + end + end + + state :has_interp do + rule %r/[#][{]/, Str::Interpol, :interpolation + end + + state :has_strings do + rule %r/"/, Str::Double, :dq + rule %r/'/, Str::Single, :sq + end + + state :interpolation do + rule %r/}/, Str::Interpol, :pop! + mixin :value + end + + state :selector do + mixin :end_section + + mixin :has_strings + mixin :has_interp + rule %r/[ \t]+/, Text + rule %r/:/, Name::Decorator, :pseudo_class + rule %r/[.]/, Name::Class, :class + rule %r/#/, Name::Namespace, :id + rule %r/%/, Name::Variable, :placeholder + rule id, Name::Tag + rule %r/&/, Keyword + rule %r/[~^*!&\[\]()<>\|+=@:;,.\/?-]/, Operator + end + + state :dq do + rule %r/"/, Str::Double, :pop! + mixin :has_interp + rule %r/(\\.|#(?![{])|[^\n"#])+/, Str::Double + end + + state :sq do + rule %r/'/, Str::Single, :pop! + mixin :has_interp + rule %r/(\\.|#(?![{])|[^\n'#])+/, Str::Single + end + + state :string_url do + rule %r/[)]/, Str::Other, :pop! + rule %r/(\\.|#(?![{])|[^\n)#])+/, Str::Other + mixin :has_interp + end + + state :selector_piece do + mixin :has_interp + rule(//) { pop! } + end + + state :pseudo_class do + rule id, Name::Decorator + mixin :selector_piece + end + + state :class do + rule id, Name::Class + mixin :selector_piece + end + + state :id do + rule id, Name::Namespace + mixin :selector_piece + end + + state :placeholder do + rule id, Name::Variable + mixin :selector_piece + end + + state :for do + rule %r/(from|to|through)/, Operator::Word + mixin :value + end + + state :attr_common do + mixin :has_interp + rule id do |m| + if CSS.properties.include? m[0] + token Name::Label + else + token Name::Attribute + end + end + end + + state :attribute do + mixin :attr_common + + rule %r/([ \t]*)(:)/ do + groups Text, Punctuation + push :value + end + end + + state :inline_comment do + rule %r/(\\#|#(?=[^\n{])|\*(?=[^\n\/])|[^\n#*])+/, Comment::Multiline + mixin :has_interp + rule %r([*]/), Comment::Multiline, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/scala.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/scala.rb new file mode 100644 index 0000000..0758699 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/scala.rb @@ -0,0 +1,172 @@ +# -*- coding: utf-8 # +# frozen_string_literal: true + +module Rouge + module Lexers + class Scala < RegexLexer + title "Scala" + desc "The Scala programming language (scala-lang.org)" + tag 'scala' + aliases 'scala' + filenames '*.scala', '*.sbt' + + mimetypes 'text/x-scala', 'application/x-scala' + + # As documented in the ENBF section of the scala specification + # https://scala-lang.org/files/archive/spec/2.13/13-syntax-summary.html + # https://en.wikipedia.org/wiki/Unicode_character_property#General_Category + whitespace = /\p{Space}/ + letter = /[\p{L}$_]/ + upper = /[\p{Lu}$_]/ + digits = /[0-9]/ + parens = /[(){}\[\]]/ + delims = %r([‘’".;,]) + + # negative lookahead to filter out other classes + op = %r( + (?!#{whitespace}|#{letter}|#{digits}|#{parens}|#{delims}) + [-!#%&*/:?@\\^\p{Sm}\p{So}] + )x + # manually removed +<=>|~ from regexp because they're in property Sm + # pp CHRS:(0x00..0x7f).map(&:chr).grep(/\p{Sm}/) + + idrest = %r(#{letter}(?:#{letter}|#{digits})*(?:(?<=_)#{op}+)?)x + + keywords = %w( + abstract case catch def do else extends final finally for forSome + if implicit lazy match new override private protected requires return + sealed super this throw try val var while with yield + ) + + state :root do + rule %r/(class|trait|object)(\s+)/ do + groups Keyword, Text + push :class + end + rule %r/'#{idrest}(?!')/, Str::Symbol + rule %r/[^\S\n]+/, Text + + rule %r(//.*), Comment::Single + rule %r(/\*), Comment::Multiline, :comment + + rule %r/@#{idrest}/, Name::Decorator + + rule %r/(def)(\s+)(#{idrest}|#{op}+|`[^`]+`)(\s*)/ do + groups Keyword, Text, Name::Function, Text + end + + rule %r/(val)(\s+)(#{idrest}|#{op}+|`[^`]+`)(\s*)/ do + groups Keyword, Text, Name::Variable, Text + end + + rule %r/(this)(\n*)(\.)(#{idrest})/ do + groups Keyword, Text, Operator, Name::Property + end + + rule %r/(#{idrest}|_)(\n*)(\.)(#{idrest})/ do + groups Name::Variable, Text, Operator, Name::Property + end + + rule %r/#{upper}#{idrest}\b/, Name::Class + + rule %r/(#{idrest})(#{whitespace}*)(\()/ do + groups Name::Function, Text, Operator + end + + rule %r/(\.)(#{idrest})/ do + groups Operator, Name::Property + end + + rule %r( + (#{keywords.join("|")})\b| + (<[%:-]|=>|>:|[#=@_\u21D2\u2190])(\b|(?=\s)|$) + )x, Keyword + rule %r/:(?!#{op})/, Keyword, :type + rule %r/(true|false|null)\b/, Keyword::Constant + rule %r/(import|package)(\s+)/ do + groups Keyword, Text + push :import + end + + rule %r/(type)(\s+)/ do + groups Keyword, Text + push :type + end + + rule %r/""".*?"""(?!")/m, Str + rule %r/"(\\\\|\\"|[^"])*"/, Str + rule %r/'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'/, Str::Char + + rule idrest, Name + rule %r/`[^`]+`/, Name + + rule %r/\[/, Operator, :typeparam + rule %r/[\(\)\{\};,.#]/, Operator + rule %r/#{op}+/, Operator + + rule %r/([0-9][0-9]*\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?/, Num::Float + rule %r/([0-9][0-9]*[fFdD])/, Num::Float + rule %r/0x[0-9a-fA-F]+/, Num::Hex + rule %r/[0-9]+L?/, Num::Integer + rule %r/\n/, Text + end + + state :class do + rule %r/(#{idrest}|#{op}+|`[^`]+`)(\s*)(\[)/ do + groups Name::Class, Text, Operator + push :typeparam + end + + rule %r/\s+/, Text + rule %r/{/, Operator, :pop! + rule %r/\(/, Operator, :pop! + rule %r(//.*), Comment::Single, :pop! + rule %r(#{idrest}|#{op}+|`[^`]+`), Name::Class, :pop! + end + + state :type do + rule %r/\s+/, Text + rule %r/<[%:]|>:|[#_\u21D2]|forSome|type/, Keyword + rule %r/([,\);}]|=>|=)(\s*)/ do + groups Operator, Text + pop! + end + rule %r/[\(\{]/, Operator, :type + + typechunk = /(?:#{idrest}|#{op}+\`[^`]+`)/ + rule %r/(#{typechunk}(?:\.#{typechunk})*)(\s*)(\[)/ do + groups Keyword::Type, Text, Operator + pop! + push :typeparam + end + + rule %r/(#{typechunk}(?:\.#{typechunk})*)(\s*)$/ do + groups Keyword::Type, Text + pop! + end + + rule %r(//.*), Comment::Single, :pop! + rule %r/\.|#{idrest}|#{op}+|`[^`]+`/, Keyword::Type + end + + state :typeparam do + rule %r/[\s,]+/, Text + rule %r/<[%:]|=>|>:|[#_\u21D2]|forSome|type/, Keyword + rule %r/([\]\)\}])/, Operator, :pop! + rule %r/[\(\[\{]/, Operator, :typeparam + rule %r/\.|#{idrest}|#{op}+|`[^`]+`/, Keyword::Type + end + + state :comment do + rule %r([^/\*]+), Comment::Multiline + rule %r(/\*), Comment::Multiline, :comment + rule %r(\*/), Comment::Multiline, :pop! + rule %r([*/]), Comment::Multiline + end + + state :import do + rule %r((#{idrest}|\.)+), Name::Namespace, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/scheme.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/scheme.rb new file mode 100644 index 0000000..96965d9 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/scheme.rb @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Scheme < RegexLexer + title "Scheme" + desc "The Scheme variant of Lisp" + + tag 'scheme' + filenames '*.scm', '*.ss' + mimetypes 'text/x-scheme', 'application/x-scheme' + + def self.keywords + @keywords ||= Set.new %w( + lambda define if else cond and or case let let* letrec begin + do delay set! => quote quasiquote unquote unquote-splicing + define-syntax let-syntax letrec-syntax syntax-rules + ) + end + + def self.builtins + @builtins ||= Set.new %w( + * + - / < <= = > >= abs acos angle append apply asin + assoc assq assv atan boolean? caaaar caaadr caaar caadar + caaddr caadr caar cadaar cadadr cadar caddar cadddr caddr + cadr call-with-current-continuation call-with-input-file + call-with-output-file call-with-values call/cc car cdaaar cdaadr + cdaar cdadar cdaddr cdadr cdar cddaar cddadr cddar cdddar cddddr + cdddr cddr cdr ceiling char->integer char-alphabetic? char-ci<=? + char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase + char-lower-case? char-numeric? char-ready? char-upcase + char-upper-case? char-whitespace? char<=? char<? char=? char>=? + char>? char? close-input-port close-output-port complex? cons + cos current-input-port current-output-port denominator + display dynamic-wind eof-object? eq? equal? eqv? eval + even? exact->inexact exact? exp expt floor for-each force gcd + imag-part inexact->exact inexact? input-port? integer->char + integer? interaction-environment lcm length list list->string + list->vector list-ref list-tail list? load log magnitude + make-polar make-rectangular make-string make-vector map + max member memq memv min modulo negative? newline not + null-environment null? number->string number? numerator odd? + open-input-file open-output-file output-port? pair? peek-char + port? positive? procedure? quotient rational? rationalize + read read-char real-part real? remainder reverse round + scheme-report-environment set-car! set-cdr! sin sqrt string + string->list string->number string->symbol string-append + string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? + string-copy string-fill! string-length string-ref + string-set! string<=? string<? string=? string>=? + string>? string? substring symbol->string symbol? + tan transcript-off transcript-on truncate values vector + vector->list vector-fill! vector-length vector-ref + vector-set! vector? with-input-from-file with-output-to-file + write write-char zero? + ) + end + + id = /[a-z0-9!$\%&*+,\/:<=>?@^_~|-]+/i + + state :root do + # comments + rule %r/;.*$/, Comment::Single + rule %r/\s+/m, Text + rule %r/-?\d+\.\d+/, Num::Float + rule %r/-?\d+/, Num::Integer + + # Racket infinitites + rule %r/[+-]inf[.][f0]/, Num + + rule %r/#b[01]+/, Num::Bin + rule %r/#o[0-7]+/, Num::Oct + rule %r/#d[0-9]+/, Num::Integer + rule %r/#x[0-9a-f]+/i, Num::Hex + rule %r/#[ei][\d.]+/, Num::Other + + rule %r/"(\\\\|\\"|[^"])*"/, Str + rule %r/'#{id}/i, Str::Symbol + rule %r/#\\([()\/'"._!\$%& ?=+-]{1}|[a-z0-9]+)/i, + Str::Char + rule %r/#t|#f/, Name::Constant + rule %r/(?:'|#|`|,@|,|\.)/, Operator + + rule %r/(['#])(\s*)(\()/m do + groups Str::Symbol, Text, Punctuation + end + + rule %r/\(|\[/, Punctuation, :command + rule %r/\)|\]/, Punctuation + + rule id, Name::Variable + end + + state :command do + rule id, Name::Function do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.builtins.include? m[0] + token Name::Builtin + else + token Name::Function + end + + pop! + end + + rule(//) { pop! } + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/scss.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/scss.rb new file mode 100644 index 0000000..7cf178c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/scss.rb @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'sass/common.rb' + + class Scss < SassCommon + title "SCSS" + desc "SCSS stylesheets (sass-lang.com)" + tag 'scss' + filenames '*.scss' + mimetypes 'text/x-scss' + + state :root do + rule %r/\s+/, Text + rule %r(//.*?$), Comment::Single + rule %r(/[*].*?[*]/)m, Comment::Multiline + rule %r/@import\b/, Keyword, :value + + mixin :content_common + + rule(/(?=[^;{}][;}])/) { push :attribute } + rule(/(?=[^;{}:\[]+:[^a-z])/) { push :attribute } + + rule(//) { push :selector } + end + + state :end_section do + rule %r/\n/, Text + rule(/[;{}]/) { token Punctuation; reset_stack } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sed.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sed.rb new file mode 100644 index 0000000..b3efe50 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sed.rb @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Sed < RegexLexer + title "sed" + desc 'sed, the ultimate stream editor' + + tag 'sed' + filenames '*.sed' + mimetypes 'text/x-sed' + + def self.detect?(text) + return true if text.shebang? 'sed' + end + + class Regex < RegexLexer + state :root do + rule %r/\\./, Str::Escape + rule %r/\[/, Punctuation, :brackets + rule %r/[$^.*]/, Operator + rule %r/[()]/, Punctuation + rule %r/./, Str::Regex + end + + state :brackets do + rule %r/\^/ do + token Punctuation + goto :brackets_int + end + + rule(//) { goto :brackets_int } + end + + state :brackets_int do + # ranges + rule %r/.-./, Name::Variable + rule %r/\]/, Punctuation, :pop! + rule %r/./, Str::Regex + end + end + + class Replacement < RegexLexer + state :root do + rule %r/\\./m, Str::Escape + rule %r/&/, Operator + rule %r/[^\\&]+/m, Text + end + end + + def regex + @regex ||= Regex.new(options) + end + + def replacement + @replacement ||= Replacement.new(options) + end + + start { regex.reset!; replacement.reset! } + + state :whitespace do + rule %r/\s+/m, Text + rule(/#.*?\n/) { token Comment; reset_stack } + rule(/\n/) { token Text; reset_stack } + rule(/;/) { token Punctuation; reset_stack } + end + + state :root do + mixin :addr_range + end + + edot = /\\.|./m + + state :command do + mixin :whitespace + + # subst and transliteration + rule %r/(s)(.)(#{edot}*?)(\2)(#{edot}*?)(\2)/m do |m| + token Keyword, m[1] + token Punctuation, m[2] + delegate regex, m[3] + token Punctuation, m[4] + delegate replacement, m[5] + token Punctuation, m[6] + + + goto :flags + end + + rule %r/(y)(.)(#{edot}*?)(\2)(#{edot}*?)(\2)/m do |m| + token Keyword, m[1] + token Punctuation, m[2] + delegate replacement, m[3] + token Punctuation, m[4] + delegate replacement, m[5] + token Punctuation, m[6] + + pop! + end + + # commands that take a text segment as an argument + rule %r/([aic])(\s*)/ do + groups Keyword, Text; goto :text + end + + rule %r/[pd]/, Keyword + + # commands that take a number argument + rule %r/([qQl])(\s+)(\d+)/i do + groups Keyword, Text, Num + pop! + end + + # no-argument commands + rule %r/[={}dDgGhHlnpPqx]/, Keyword, :pop! + + # commands that take a filename argument + rule %r/([rRwW])(\s+)(\S+)/ do + groups Keyword, Text, Name + pop! + end + + # commands that take a label argument + rule %r/([:btT])(\s+)(\S+)/ do + groups Keyword, Text, Name::Label + pop! + end + end + + state :addr_range do + mixin :whitespace + + ### address ranges ### + addr_tok = Keyword::Namespace + rule %r/\d+/, addr_tok + rule %r/[$,~+!]/, addr_tok + + rule %r((/)((?:\\.|.)*?)(/)) do |m| + token addr_tok, m[1]; delegate regex, m[2]; token addr_tok, m[3] + end + + # alternate regex rage delimiters + rule %r((\\)(.)((?:\\.|.)*?)(\2)) do |m| + token addr_tok, m[1] + m[2] + delegate regex, m[3] + token addr_tok, m[4] + end + + rule(//) { push :command } + end + + state :text do + rule %r/[^\\\n]+/, Str + rule %r/\\\n/, Str::Escape + rule %r/\\/, Str + rule %r/\n/, Text, :pop! + end + + state :flags do + rule %r/[gp]+/, Keyword, :pop! + + # writing to a file with the subst command. + # who'da thunk...? + rule %r/([wW])(\s+)(\S+)/ do + token Keyword; token Text; token Name + end + + rule(//) { pop! } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/shell.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/shell.rb new file mode 100644 index 0000000..3704066 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/shell.rb @@ -0,0 +1,205 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Shell < RegexLexer + title "shell" + desc "Various shell languages, including sh and bash" + + tag 'shell' + aliases 'bash', 'zsh', 'ksh', 'sh' + filenames '*.sh', '*.bash', '*.zsh', '*.ksh', '.bashrc', + '.kshrc', '.profile', + '.zshenv', '.zprofile', '.zshrc', '.zlogin', '.zlogout', + 'zshenv', 'zprofile', 'zshrc', 'zlogin', 'zlogout', + 'APKBUILD', 'PKGBUILD', '*.ebuild', + '*.eclass', '*.exheres-0', '*.exlib' + + mimetypes 'application/x-sh', 'application/x-shellscript', 'text/x-sh', + 'text/x-shellscript' + + def self.detect?(text) + return true if text.shebang?(/(ba|z|k)?sh/) + return true if text.start_with?('#compdef', '#autoload') + end + + KEYWORDS = %w( + if fi else while do done for then return function + select continue until esac elif in + ).join('|') + + BUILTINS = %w( + alias bg bind break builtin caller cd command compgen + complete declare dirs disown enable eval exec exit + export false fc fg getopts hash help history jobs let + local logout mapfile popd pushd pwd read readonly set + shift shopt source suspend test time times trap true type + typeset ulimit umask unalias unset wait + + cat tac nl od base32 base64 fmt pr fold head tail split csplit + wc sum cksum b2sum md5sum sha1sum sha224sum sha256sum sha384sum + sha512sum sort shuf uniq comm ptx tsort cut paste join tr expand + unexpand ls dir vdir dircolors cp dd install mv rm shred link ln + mkdir mkfifo mknod readlink rmdir unlink chown chgrp chmod touch + df du stat sync truncate echo printf yes expr tee basename dirname + pathchk mktemp realpath pwd stty printenv tty id logname whoami + groups users who date arch nproc uname hostname hostid uptime chcon + runcon chroot env nice nohup stdbuf timeout kill sleep factor numfmt + seq tar grep sudo awk sed gzip gunzip + ).join('|') + + state :basic do + rule %r/#.*$/, Comment + + rule %r/\b(#{KEYWORDS})\s*\b/, Keyword + rule %r/\bcase\b/, Keyword, :case + + rule %r/\b(#{BUILTINS})\s*\b(?!(\.|-))/, Name::Builtin + rule %r/[.](?=\s)/, Name::Builtin + + rule %r/(\b\w+)(=)/ do + groups Name::Variable, Operator + end + + rule %r/[\[\]{}()!=>]/, Operator + rule %r/&&|\|\|/, Operator + + # here-string + rule %r/<<</, Operator + + rule %r/(<<-?)(\s*)(['"]?)(\\?)(\w+)(\3)/ do |m| + groups Operator, Text, Str::Heredoc, Str::Heredoc, Name::Constant, Str::Heredoc + @heredocstr = Regexp.escape(m[5]) + push :heredoc + end + end + + state :heredoc do + rule %r/\n/, Str::Heredoc, :heredoc_nl + rule %r/[^$\n\\]+/, Str::Heredoc + mixin :interp + rule %r/[$]/, Str::Heredoc + end + + state :heredoc_nl do + rule %r/\s*(\w+)\s*\n/ do |m| + if m[1] == @heredocstr + token Name::Constant + pop! 2 + else + token Str::Heredoc + end + end + + rule(//) { pop! } + end + + + state :double_quotes do + # NB: "abc$" is literally the string abc$. + # Here we prevent :interp from interpreting $" as a variable. + rule %r/(?:\$#?)?"/, Str::Double, :pop! + mixin :interp + rule %r/[^"`\\$]+/, Str::Double + end + + state :ansi_string do + rule %r/\\./, Str::Escape + rule %r/[^\\']+/, Str::Single + mixin :single_quotes + end + + state :single_quotes do + rule %r/'/, Str::Single, :pop! + rule %r/[^']+/, Str::Single + end + + state :data do + rule %r/\s+/, Text + rule %r/\\./, Str::Escape + rule %r/\$?"/, Str::Double, :double_quotes + rule %r/\$'/, Str::Single, :ansi_string + + # single quotes are much easier than double quotes - we can + # literally just scan until the next single quote. + # POSIX: Enclosing characters in single-quotes ( '' ) + # shall preserve the literal value of each character within the + # single-quotes. A single-quote cannot occur within single-quotes. + rule %r/'/, Str::Single, :single_quotes + + rule %r/\*/, Keyword + + rule %r/;/, Punctuation + + rule %r/--?[\w-]+/, Name::Tag + rule %r/[^=\*\s{}()$"'`;\\<]+/, Text + rule %r/\d+(?= |\Z)/, Num + rule %r/</, Text + mixin :interp + end + + state :curly do + rule %r/}/, Keyword, :pop! + rule %r/:-/, Keyword + rule %r/[a-zA-Z0-9_]+/, Name::Variable + rule %r/[^}:"`'$]+/, Punctuation + mixin :root + end + + # the state inside $(...) + state :paren_interp do + rule %r/\)/, Str::Interpol, :pop! + rule %r/\(/, Operator, :paren_inner + mixin :root + end + + # used to balance parentheses inside interpolation + state :paren_inner do + rule %r/\(/, Operator, :push + rule %r/\)/, Operator, :pop! + mixin :root + end + + state :math do + rule %r/\)\)/, Keyword, :pop! + rule %r([-+*/%^|&!]|\*\*|\|\|), Operator + rule %r/\d+(#\w+)?/, Num + mixin :root + end + + state :case do + rule %r/\besac\b/, Keyword, :pop! + rule %r/\|/, Punctuation + rule %r/\)/, Punctuation, :case_stanza + mixin :root + end + + state :case_stanza do + rule %r/;;/, Punctuation, :pop! + mixin :root + end + + state :backticks do + rule %r/`/, Str::Backtick, :pop! + mixin :root + end + + state :interp do + rule %r/\\$/, Str::Escape # line continuation + rule %r/\\./, Str::Escape + rule %r/\$\(\(/, Keyword, :math + rule %r/\$\(/, Str::Interpol, :paren_interp + rule %r/\${#?/, Keyword, :curly + rule %r/`/, Str::Backtick, :backticks + rule %r/\$#?(\w+|.)/, Name::Variable + rule %r/\$[*@]/, Name::Variable + end + + state :root do + mixin :basic + mixin :data + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sieve.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sieve.rb new file mode 100644 index 0000000..08d6032 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sieve.rb @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Sieve < RegexLexer + title "Sieve" + desc "mail filtering language" + + tag 'sieve' + filenames '*.sieve' + + id = /:?[a-zA-Z_][a-zA-Z0-9_]*/ + + # control commands (rfc5228 § 3) + def self.controls + @controls ||= %w(if elsif else require stop) + end + + def self.actions + @actions ||= Set.new( + # action commands (rfc5228 § 2.9) + %w(keep fileinto redirect discard) + + # Editheader Extension (rfc5293) + %w(addheader deleteheader) + + # Reject and Extended Reject Extensions (rfc5429) + %w(reject ereject) + + # Extension for Notifications (rfc5435) + %w(notify) + + # Imap4flags Extension (rfc5232) + %w(setflag addflag removeflag) + + # Vacation Extension (rfc5230) + %w(vacation) + + # MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure (rfc5703) + %w(replace enclose extracttext) + ) + end + + def self.tests + @tests ||= Set.new( + # test commands (rfc5228 § 5) + %w(address allof anyof exists false header not size true) + + # Body Extension (rfc5173) + %w(body) + + # Imap4flags Extension (rfc5232) + %w(hasflag) + + # Spamtest and Virustest Extensions (rfc5235) + %w(spamtest virustest) + + # Date and Index Extensions (rfc5260) + %w(date currentdate) + + # Extension for Notifications (rfc5435) + %w(valid_notify_method notify_method_capability) + + # Extensions for Checking Mailbox Status and Accessing Mailbox + # Metadata (rfc5490) + %w(mailboxexists metadata metadataexists servermetadata servermetadataexists) + ) + end + + state :comments_and_whitespace do + rule %r/\s+/, Text + rule %r(#.*), Comment::Single + rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline + end + + state :string do + rule %r/\\./, Str::Escape + rule %r/"/, Str::Double, :pop! + # Variables Extension (rfc5229) + rule %r/\${(?:[0-9][.0-9]*|[a-zA-Z_][.a-zA-Z0-9_]*)}/, Str::Interpol + rule %r/./, Str::Double + end + + state :root do + mixin :comments_and_whitespace + + rule %r/[\[\](),;{}]/, Punctuation + + rule id do |m| + if self.class.controls.include? m[0] + token Keyword + elsif self.class.tests.include? m[0] + token Name::Variable + elsif self.class.actions.include? m[0] + token Name::Function + elsif m[0] =~ /^:/ # tags like :contains, :matches etc. + token Operator + else + token Name::Other + end + end + + rule %r/"/, Str::Double, :string + rule %r/[0-9]+[KMG]/, Num::Integer + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/slice.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/slice.rb new file mode 100644 index 0000000..f2739cb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/slice.rb @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'c.rb' + + class Slice < C + tag 'slice' + filenames '*.ice' + mimetypes 'text/slice' + + title "Slice" + desc "Specification Language for Ice (doc.zeroc.com)" + + def self.keywords + @keywords ||= Set.new %w( + extends implements enum interface struct class module dictionary + const optional out throws exception local idempotent sequence + + Object LocalObject Value + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + bool string byte long float double int void short + ) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/slim.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/slim.rb new file mode 100644 index 0000000..2df5be5 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/slim.rb @@ -0,0 +1,229 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + # A lexer for the Slim tempalte language + # @see http://slim-lang.org + class Slim < RegexLexer + include Indentation + + title "Slim" + desc 'The Slim template language' + + tag 'slim' + + filenames '*.slim' + + # Ruby identifier characters + ruby_chars = /[\w\!\?\@\$]/ + + # Since you are allowed to wrap lines with a backslash, include \\\n in characters + dot = /(\\\n|.)/ + + def ruby + @ruby ||= Ruby.new(options) + end + + def html + @html ||= HTML.new(options) + end + + def filters + @filters ||= { + 'ruby' => ruby, + 'erb' => ERB.new(options), + 'javascript' => Javascript.new(options), + 'css' => CSS.new(options), + 'coffee' => Coffeescript.new(options), + 'markdown' => Markdown.new(options), + 'scss' => Scss.new(options), + 'sass' => Sass.new(options) + } + end + + start { ruby.reset!; html.reset! } + + state :root do + rule %r/\s*\n/, Text + rule(/\s*/) { |m| token Text; indentation(m[0]) } + end + + state :content do + mixin :css + + rule %r/\/#{dot}*/, Comment, :indented_block + + rule %r/(doctype)(\s+)(.*)/ do + groups Name::Namespace, Text::Whitespace, Text + pop! + end + + # filters, shamelessly ripped from HAML + rule %r/(\w*):\s*\n/ do |m| + token Name::Decorator + pop! + starts_block :filter_block + + filter_name = m[1].strip + + @filter_lexer = self.filters[filter_name] + @filter_lexer.reset! unless @filter_lexer.nil? + + puts " slim: filter #{filter_name.inspect} #{@filter_lexer.inspect}" if @debug + end + + # Text + rule %r([\|'](?=\s)) do + token Punctuation + pop! + starts_block :plain_block + goto :plain_block + end + + rule %r/-|==|=/, Punctuation, :ruby_line + + # Dynamic tags + rule %r/(\*)(#{ruby_chars}+\(.*?\))/ do |m| + token Punctuation, m[1] + delegate ruby, m[2] + push :tag + end + + rule %r/(\*)(#{ruby_chars}+)/ do |m| + token Punctuation, m[1] + delegate ruby, m[2] + push :tag + end + + #rule %r/<\w+(?=.*>)/, Keyword::Constant, :tag # Maybe do this, look ahead and stuff + rule %r((</?[\w\s\=\'\"]+?/?>)) do |m| # Dirty html + delegate html, m[1] + pop! + end + + # Ordinary slim tags + rule %r/\w+/, Name::Tag, :tag + + end + + state :tag do + mixin :css + mixin :indented_block + mixin :interpolation + + # Whitespace control + rule %r/[<>]/, Punctuation + + # Trim whitespace + rule %r/\s+?/, Text::Whitespace + + # Splats, these two might be mergable? + rule %r/(\*)(#{ruby_chars}+)/ do |m| + token Punctuation, m[1] + delegate ruby, m[2] + end + + rule %r/(\*)(\{#{dot}+?\})/ do |m| + token Punctuation, m[1] + delegate ruby, m[2] + end + + # Attributes + rule %r/([\w\-]+)(\s*)(\=)/ do |m| + token Name::Attribute, m[1] + token Text::Whitespace, m[2] + token Punctuation, m[3] + push :html_attr + end + + # Ruby value + rule %r/(\=)(#{dot}+)/ do |m| + token Punctuation, m[1] + #token Keyword::Constant, m[2] + delegate ruby, m[2] + end + + # HTML Entities + rule(/&\S*?;/, Name::Entity) + + rule %r/#{dot}+?/, Text + + rule %r/\s*\n/, Text::Whitespace, :pop! + end + + state :css do + rule(/\.[\w-]*/) { token Name::Class; goto :tag } + rule(/#[a-zA-Z][\w:-]*/) { token Name::Function; goto :tag } + end + + state :html_attr do + # Strings, double/single quoted + rule(/\s*(['"])#{dot}*?\1/, Literal::String, :pop!) + + # Ruby stuff + rule(/(#{ruby_chars}+\(.*?\))/) { |m| delegate ruby, m[1]; pop! } + rule(/(#{ruby_chars}+)/) { |m| delegate ruby, m[1]; pop! } + + rule %r/\s+/, Text::Whitespace + end + + state :ruby_line do + # Need at top + mixin :indented_block + + rule(/[,\\]\s*\n/) { delegate ruby } + rule %r/[ ]\|[ \t]*\n/, Str::Escape + rule(/.*?(?=([,\\]$| \|)?[ \t]*$)/) { delegate ruby } + end + + state :filter_block do + rule %r/([^#\n]|#[^{\n]|(\\\\)*\\#\{)+/ do + if @filter_lexer + delegate @filter_lexer + else + token Name::Decorator + end + end + + mixin :interpolation + mixin :indented_block + end + + state :plain_block do + mixin :interpolation + + rule %r((</?[\w\s\=\'\"]+?/?>)) do |m| # Dirty html + delegate html, m[1] + end + + # HTML Entities + rule(/&\S*?;/, Name::Entity) + + #rule %r/([^#\n]|#[^{\n]|(\\\\)*\\#\{)+/ do + rule %r/#{dot}+?/, Text + + mixin :indented_block + end + + state :interpolation do + rule %r/#[{]/, Str::Interpol, :ruby_interp + end + + state :ruby_interp do + rule %r/[}]/, Str::Interpol, :pop! + mixin :ruby_interp_inner + end + + state :ruby_interp_inner do + rule(/[{]/) { delegate ruby; push :ruby_interp_inner } + rule(/[}]/) { delegate ruby; pop! } + rule(/[^{}]+/) { delegate ruby } + end + + state :indented_block do + rule(/(?<!\\)\n/) { token Text; reset_stack } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/smalltalk.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/smalltalk.rb new file mode 100644 index 0000000..8beed2c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/smalltalk.rb @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Smalltalk < RegexLexer + title "Smalltalk" + desc 'The Smalltalk programming language' + + tag 'smalltalk' + aliases 'st', 'squeak' + filenames '*.st' + mimetypes 'text/x-smalltalk' + + ops = %r([-+*/\\~<>=|&!?,@%]) + + state :root do + rule %r/(<)(\w+:)(.*?)(>)/ do + groups Punctuation, Keyword, Text, Punctuation + end + + # mixin :squeak_fileout + mixin :whitespaces + mixin :method_definition + rule %r/([|])([\w\s]*)([|])/ do + groups Punctuation, Name::Variable, Punctuation + end + mixin :objects + rule %r/\^|:=|_/, Operator + + rule %r/[)}\]]/, Punctuation, :after_object + rule %r/[({\[!]/, Punctuation + end + + state :method_definition do + rule %r/([a-z]\w*:)(\s*)(\w+)/i do + groups Name::Function, Text, Name::Variable + end + + rule %r/^(\s*)(\b[a-z]\w*\b)(\s*)$/i do + groups Text, Name::Function, Text + end + + rule %r(^(\s*)(#{ops}+)(\s*)(\w+)(\s*)$) do + groups Text, Name::Function, Text, Name::Variable, Text + end + end + + state :block_variables do + mixin :whitespaces + rule %r/(:)(\s*)(\w+)/ do + groups Operator, Text, Name::Variable + end + + rule %r/[|]/, Punctuation, :pop! + + rule(//) { pop! } + end + + state :literals do + rule %r/'(''|.)*?'/m, Str, :after_object + rule %r/[$]./, Str::Char, :after_object + rule %r/#[(]/, Str::Symbol, :parenth + rule %r/(\d+r)?-?\d+(\.\d+)?(e-?\d+)?/, + Num, :after_object + rule %r/#("[^"]*"|#{ops}+|[\w:]+)/, + Str::Symbol, :after_object + end + + state :parenth do + rule %r/[)]/ do + token Str::Symbol + goto :after_object + end + + mixin :inner_parenth + end + + state :inner_parenth do + rule %r/#[(]/, Str::Symbol, :inner_parenth + rule %r/[)]/, Str::Symbol, :pop! + mixin :whitespaces + mixin :literals + rule %r/(#{ops}|[\w:])+/, Str::Symbol + end + + state :whitespaces do + rule %r/! !$/, Keyword # squeak chunk delimiter + rule %r/\s+/m, Text + rule %r/".*?"/m, Comment + end + + state :objects do + rule %r/\[/, Punctuation, :block_variables + rule %r/(self|super|true|false|nil|thisContext)\b/, + Name::Builtin::Pseudo, :after_object + rule %r/[A-Z]\w*(?!:)\b/, Name::Class, :after_object + rule %r/[a-z]\w*(?!:)\b/, Name::Variable, :after_object + mixin :literals + end + + state :after_object do + mixin :whitespaces + rule %r/(ifTrue|ifFalse|whileTrue|whileFalse|timesRepeat):/, + Name::Builtin, :pop! + rule %r/new(?!:)\b/, Name::Builtin + rule %r/:=|_/, Operator, :pop! + rule %r/[a-z]+\w*:/i, Name::Function, :pop! + rule %r/[a-z]+\w*/i, Name::Function + rule %r/#{ops}+/, Name::Function, :pop! + rule %r/[.]/, Punctuation, :pop! + rule %r/;/, Punctuation + rule(//) { pop! } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/smarty.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/smarty.rb new file mode 100644 index 0000000..9870e8b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/smarty.rb @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Smarty < TemplateLexer + title "Smarty" + desc 'Smarty Template Engine' + tag 'smarty' + aliases 'smarty' + filenames '*.tpl', '*.smarty' + mimetypes 'application/x-smarty', 'text/x-smarty' + + def self.builtins + @builtins ||= %w( + append assign block call capture config_load debug extends + for foreach foreachelse break continue function if elseif + else include include_php insert ldelim rdelim literal nocache + php section sectionelse setfilter strip while + counter cycle eval fetch html_checkboxes html_image html_options + html_radios html_select_date html_select_time html_table + mailto math textformat + capitalize cat count_characters count_paragraphs + count_sentences count_words date_format default escape + from_charset indent lower nl2br regex_replace replace spacify + string_format strip strip_tags to_charset truncate unescape + upper wordwrap + ) + end + + + state :root do + rule(/\{\s+/) { delegate parent } + + # block comments + rule %r/\{\*.*?\*\}/m, Comment + + rule %r/\{\/?(?![\s*])/ do + token Keyword + push :smarty + end + + + rule(/.+?(?={[\/a-zA-Z0-9$#*"'])/m) { delegate parent } + rule(/.+/m) { delegate parent } + end + + state :comment do + rule(/{\*/) { token Comment; push } + rule(/\*}/) { token Comment; pop! } + rule(/[^{}]+/m) { token Comment } + end + + state :smarty do + # allow nested tags + rule %r/\{\/?(?![\s*])/ do + token Keyword + push :smarty + end + + rule %r/}/, Keyword, :pop! + rule %r/\s+/m, Text + rule %r([~!%^&*()+=|\[\]:;,.<>/@?-]), Operator + rule %r/#[a-zA-Z_]\w*#/, Name::Variable + rule %r/\$[a-zA-Z_]\w*(\.\w+)*/, Name::Variable + rule %r/(true|false|null)\b/, Keyword::Constant + rule %r/[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?/, Num + rule %r/"(\\.|.)*?"/, Str::Double + rule %r/'(\\.|.)*?'/, Str::Single + + rule %r/([a-zA-Z_]\w*)/ do |m| + if self.class.builtins.include? m[0] + token Name::Builtin + else + token Name::Attribute + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sml.rb new file mode 100644 index 0000000..08ed1bf --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sml.rb @@ -0,0 +1,345 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class SML < RegexLexer + title "SML" + desc 'Standard ML' + tag 'sml' + aliases 'ml' + filenames '*.sml', '*.sig', '*.fun' + + mimetypes 'text/x-standardml', 'application/x-standardml' + + def self.keywords + @keywords ||= Set.new %w( + abstype and andalso as case datatype do else end exception + fn fun handle if in infix infixr let local nonfix of op open + orelse raise rec then type val with withtype while + eqtype functor include sharing sig signature struct structure + where + ) + end + + def self.symbolic_reserved + @symbolic_reserved ||= Set.new %w(: | = => -> # :>) + end + + id = /[\w']+/i + symbol = %r([!%&$#/:<=>?@\\~`^|*+-]+) + + state :whitespace do + rule %r/\s+/m, Text + rule %r/[(][*]/, Comment, :comment + end + + state :delimiters do + rule %r/[(\[{]/, Punctuation, :main + rule %r/[)\]}]/, Punctuation, :pop! + + rule %r/\b(let|if|local)\b(?!')/ do + token Keyword::Reserved + push; push + end + + rule %r/\b(struct|sig|while)\b(?!')/ do + token Keyword::Reserved + push + end + + rule %r/\b(do|else|end|in|then)\b(?!')/, Keyword::Reserved, :pop! + end + + def token_for_id_with_dot(id) + if self.class.keywords.include? id + Error + else + Name::Namespace + end + end + + def token_for_final_id(id) + if self.class.keywords.include? id or self.class.symbolic_reserved.include? id + Error + else + Name + end + end + + def token_for_id(id) + if self.class.keywords.include? id + Keyword::Reserved + elsif self.class.symbolic_reserved.include? id + Punctuation + else + Name + end + end + + state :core do + rule %r/[()\[\]{},;_]|[.][.][.]/, Punctuation + rule %r/#"/, Str::Char, :char + rule %r/"/, Str::Double, :string + rule %r/~?0x[0-9a-fA-F]+/, Num::Hex + rule %r/0wx[0-9a-fA-F]+/, Num::Hex + rule %r/0w\d+/, Num::Integer + rule %r/~?\d+([.]\d+)?[eE]~?\d+/, Num::Float + rule %r/~?\d+[.]\d+/, Num::Float + rule %r/~?\d+/, Num::Integer + + rule %r/#\s*[1-9][0-9]*/, Name::Label + rule %r/#\s*#{id}/, Name::Label + rule %r/#\s+#{symbol}/, Name::Label + + rule %r/\b(datatype|abstype)\b(?!')/, Keyword::Reserved, :dname + rule(/(?=\bexception\b(?!'))/) { push :ename } + rule %r/\b(functor|include|open|signature|structure)\b(?!')/, + Keyword::Reserved, :sname + rule %r/\b(type|eqtype)\b(?!')/, Keyword::Reserved, :tname + + rule %r/'#{id}/, Name::Decorator + rule %r/(#{id})([.])/ do |m| + groups(token_for_id_with_dot(m[1]), Punctuation) + push :dotted + end + + rule id do |m| + token token_for_id(m[0]) + end + + rule symbol do |m| + token token_for_id(m[0]) + end + end + + state :dotted do + rule %r/(#{id})([.])/ do |m| + groups(token_for_id_with_dot(m[1]), Punctuation) + end + + rule id do |m| + token token_for_id(m[0]) + pop! + end + + rule symbol do |m| + token token_for_id(m[0]) + pop! + end + end + + state :root do + rule %r/#!.*?\n/, Comment::Preproc + rule(//) { push :main } + end + + state :main do + mixin :whitespace + + rule %r/\b(val|and)\b(?!')/, Keyword::Reserved, :vname + rule %r/\b(fun)\b(?!')/ do + token Keyword::Reserved + goto :main_fun + push :fname + end + + mixin :delimiters + mixin :core + end + + state :main_fun do + mixin :whitespace + rule %r/\b(fun|and)\b(?!')/, Keyword::Reserved, :fname + rule %r/\bval\b(?!')/ do + token Keyword::Reserved + goto :main + push :vname + end + + rule %r/[|]/, Punctuation, :fname + rule %r/\b(case|handle)\b(?!')/ do + token Keyword::Reserved + goto :main + end + + mixin :delimiters + mixin :core + end + + state :has_escapes do + rule %r/\\[\\"abtnvfr]/, Str::Escape + rule %r/\\\^[\x40-\x5e]/, Str::Escape + rule %r/\\[0-9]{3}/, Str::Escape + rule %r/\\u\h{4}/, Str::Escape + rule %r/\\\s+\\/, Str::Interpol + end + + state :string do + rule %r/[^"\\]+/, Str::Double + rule %r/"/, Str::Double, :pop! + mixin :has_escapes + end + + state :char do + rule %r/[^"\\]+/, Str::Char + rule %r/"/, Str::Char, :pop! + mixin :has_escapes + end + + state :breakout do + rule %r/(?=\b(#{SML.keywords.to_a.join('|')})\b(?!'))/ do + pop! + end + end + + state :sname do + mixin :whitespace + mixin :breakout + rule id, Name::Namespace + rule(//) { pop! } + end + + state :has_annotations do + rule %r/'[\w']*/, Name::Decorator + rule %r/[(]/, Punctuation, :tyvarseq + end + + state :fname do + mixin :whitespace + mixin :has_annotations + + rule id, Name::Function, :pop! + rule symbol, Name::Function, :pop! + end + + state :vname do + mixin :whitespace + mixin :has_annotations + + rule %r/(#{id})(\s*)(=(?!#{symbol}))/m do + groups Name::Variable, Text, Punctuation + pop! + end + + rule %r/(#{symbol})(\s*)(=(?!#{symbol}))/m do + groups Name::Variable, Text, Punctuation + end + + rule id, Name::Variable, :pop! + rule symbol, Name::Variable, :pop! + + rule(//) { pop! } + end + + state :tname do + mixin :whitespace + mixin :breakout + mixin :has_annotations + + rule %r/'[\w']*/, Name::Decorator + rule %r/[(]/, Punctuation, :tyvarseq + + rule %r(=(?!#{symbol})) do + token Punctuation + goto :typbind + end + + rule id, Keyword::Type + rule symbol, Keyword::Type + end + + state :typbind do + mixin :whitespace + + rule %r/\b(and)\b(?!')/ do + token Keyword::Reserved + goto :tname + end + + mixin :breakout + mixin :core + end + + state :dname do + mixin :whitespace + mixin :breakout + mixin :has_annotations + + rule %r/(=)(\s*)(datatype)\b/ do + groups Punctuation, Text, Keyword::Reserved + pop! + end + + rule %r(=(?!#{symbol})) do + token Punctuation + goto :datbind + push :datcon + end + + rule id, Keyword::Type + rule symbol, Keyword::Type + end + + state :datbind do + mixin :whitespace + rule %r/\b(and)\b(?!')/ do + token Keyword::Reserved; goto :dname + end + rule %r/\b(withtype)\b(?!')/ do + token Keyword::Reserved; goto :tname + end + rule %r/\bof\b(?!')/, Keyword::Reserved + rule %r/([|])(\s*)(#{id})/ do + groups(Punctuation, Text, Name::Class) + end + + rule %r/([|])(\s+)(#{symbol})/ do + groups(Punctuation, Text, Name::Class) + end + + mixin :breakout + mixin :core + end + + state :ename do + mixin :whitespace + rule %r/(exception|and)(\s+)(#{id})/ do + groups Keyword::Reserved, Text, Name::Class + end + + rule %r/(exception|and)(\s*)(#{symbol})/ do + groups Keyword::Reserved, Text, Name::Class + end + + rule %r/\b(of)\b(?!')/, Keyword::Reserved + mixin :breakout + mixin :core + end + + state :datcon do + mixin :whitespace + rule id, Name::Class, :pop! + rule symbol, Name::Class, :pop! + end + + state :tyvarseq do + mixin :whitespace + rule %r/'[\w']*/, Name::Decorator + rule id, Name + rule %r/,/, Punctuation + rule %r/[)]/, Punctuation, :pop! + rule symbol, Name + end + + state :comment do + rule %r/[^(*)]+/, Comment::Multiline + rule %r/[(][*]/ do + token Comment::Multiline; push + end + rule %r/[*][)]/, Comment::Multiline, :pop! + rule %r/[(*)]/, Comment::Multiline + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sparql.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sparql.rb new file mode 100644 index 0000000..77b664f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sparql.rb @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class SPARQL < RegexLexer + title "SPARQL" + desc "Semantic Query Language, for RDF data" + tag 'sparql' + filenames '*.rq' + mimetypes 'application/sparql-query' + + def self.builtins + @builtins = Set.new %w[ + ABS AVG BNODE BOUND CEIL COALESCE CONCAT CONTAINS COUNT DATATYPE DAY + ENCODE_FOR_URI FLOOR GROUP_CONCAT HOURS IF IRI isBLANK isIRI + isLITERAL isNUMERIC isURI LANG LANGMATCHES LCASE MAX MD5 MIN MINUTES + MONTH NOW RAND REGEX REPLACE ROUND SAMETERM SAMPLE SECONDS SEPARATOR + SHA1 SHA256 SHA384 SHA512 STR STRAFTER STRBEFORE STRDT STRENDS + STRLANG STRLEN STRSTARTS STRUUID SUBSTR SUM TIMEZONE TZ UCASE URI + UUID YEAR + ] + end + + def self.keywords + @keywords = Set.new %w[ + ADD ALL AS ASC ASK BASE BIND BINDINGS BY CLEAR CONSTRUCT COPY CREATE + DATA DEFAULT DELETE DESC DESCRIBE DISTINCT DROP EXISTS FILTER FROM + GRAPH GROUP BY HAVING IN INSERT LIMIT LOAD MINUS MOVE NAMED NOT + OFFSET OPTIONAL ORDER PREFIX SELECT REDUCED SERVICE SILENT TO UNDEF + UNION USING VALUES WHERE WITH + ] + end + + state :root do + rule %r(\s+)m, Text::Whitespace + rule %r(#.*), Comment::Single + + rule %r("""), Str::Double, :string_double_literal + rule %r("), Str::Double, :string_double + rule %r('''), Str::Single, :string_single_literal + rule %r('), Str::Single, :string_single + + rule %r([$?][[:word:]]+), Name::Variable + rule %r(([[:word:]-]*)(:)([[:word:]-]+)?) do |m| + token Name::Namespace, m[1] + token Operator, m[2] + token Str::Symbol, m[3] + end + rule %r(<[^>]*>), Name::Namespace + rule %r(true|false)i, Keyword::Constant + rule %r/a\b/, Keyword + + rule %r([A-Z][[:word:]]+\b)i do |m| + if self.class.builtins.include? m[0].upcase + token Name::Builtin + elsif self.class.keywords.include? m[0].upcase + token Keyword + else + token Error + end + end + + rule %r([+\-]?(?:\d+\.\d*|\.\d+)(?:[e][+\-]?[0-9]+)?)i, Num::Float + rule %r([+\-]?\d+), Num::Integer + rule %r([\]\[(){}.,;=]), Punctuation + rule %r([/?*+=!<>]|&&|\|\||\^\^), Operator + end + + state :string_double_common do + mixin :string_escapes + rule %r(\\), Str::Double + rule %r([^"\\]+), Str::Double + end + + state :string_double do + rule %r(") do + token Str::Double + goto :string_end + end + mixin :string_double_common + end + + state :string_double_literal do + rule %r(""") do + token Str::Double + goto :string_end + end + rule %r("), Str::Double + mixin :string_double_common + end + + state :string_single_common do + mixin :string_escapes + rule %r(\\), Str::Single + rule %r([^'\\]+), Str::Single + end + + state :string_single do + rule %r(') do + token Str::Single + goto :string_end + end + mixin :string_single_common + end + + state :string_single_literal do + rule %r(''') do + token Str::Single + goto :string_end + end + rule %r('), Str::Single + mixin :string_single_common + end + + state :string_escapes do + rule %r(\\[tbnrf"'\\]), Str::Escape + rule %r(\\u\h{4}), Str::Escape + rule %r(\\U\h{8}), Str::Escape + end + + state :string_end do + rule %r((@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)) do + groups Operator, Name::Property + end + rule %r(\^\^), Operator + rule(//) { pop! } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sqf.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sqf.rb new file mode 100644 index 0000000..331dafc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sqf.rb @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class SQF < RegexLexer + tag "sqf" + filenames "*.sqf" + + title "SQF" + desc "Status Quo Function, a Real Virtuality engine scripting language" + + def self.wordoperators + @wordoperators ||= Set.new %w( + and or not + ) + end + + def self.initializers + @initializers ||= Set.new %w( + private param params + ) + end + + def self.controlflow + @controlflow ||= Set.new %w( + if then else exitwith switch do case default while for from to step + foreach + ) + end + + def self.constants + @constants ||= Set.new %w( + true false player confignull controlnull displaynull grpnull + locationnull netobjnull objnull scriptnull tasknull teammembernull + ) + end + + def self.namespaces + @namespaces ||= Set.new %w( + currentnamespace missionnamespace parsingnamespace profilenamespace + uinamespace + ) + end + + def self.diag_commands + @diag_commands ||= Set.new %w( + diag_activemissionfsms diag_activesqfscripts diag_activesqsscripts + diag_activescripts diag_captureframe diag_captureframetofile + diag_captureslowframe diag_codeperformance diag_drawmode diag_enable + diag_enabled diag_fps diag_fpsmin diag_frameno diag_lightnewload + diag_list diag_log diag_logslowframe diag_mergeconfigfile + diag_recordturretlimits diag_setlightnew diag_ticktime diag_toggle + ) + end + + def self.commands + Kernel::load File.join(Lexers::BASE_DIR, "sqf/keywords.rb") + commands + end + + state :root do + # Whitespace + rule %r"\s+", Text + + # Preprocessor instructions + rule %r"/\*.*?\*/"m, Comment::Multiline + rule %r"//.*", Comment::Single + rule %r"#(define|undef|if(n)?def|else|endif|include)", Comment::Preproc + rule %r"\\\r?\n", Comment::Preproc + rule %r"__(EVAL|EXEC|LINE__|FILE__)", Name::Builtin + + # Literals + rule %r"\".*?\"", Literal::String + rule %r"'.*?'", Literal::String + rule %r"(\$|0x)[0-9a-fA-F]+", Literal::Number::Hex + rule %r"[0-9]+(\.)?(e[0-9]+)?", Literal::Number::Float + + # Symbols + rule %r"[\!\%\&\*\+\-\/\<\=\>\^\|\#]", Operator + rule %r"[\(\)\{\}\[\]\,\:\;]", Punctuation + + # Identifiers (variables and functions) + rule %r"[a-zA-Z0-9_]+" do |m| + name = m[0].downcase + if self.class.wordoperators.include? name + token Operator::Word + elsif self.class.initializers.include? name + token Keyword::Declaration + elsif self.class.controlflow.include? name + token Keyword::Reserved + elsif self.class.constants.include? name + token Keyword::Constant + elsif self.class.namespaces.include? name + token Keyword::Namespace + elsif self.class.diag_commands.include? name + token Name::Function + elsif self.class.commands.include? name + token Name::Function + elsif %r"_.+" =~ name + token Name::Variable + else + token Name::Variable::Global + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sqf/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sqf/keywords.rb new file mode 100644 index 0000000..c390dd6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sqf/keywords.rb @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class SQF + def self.commands + @commands ||= Set.new ["abs", "acos", "actionids", "actionkeys", "actionkeysimages", "actionkeysnames", "actionkeysnamesarray", "actionname", "activateaddons", "activatekey", "add3denconnection", "add3deneventhandler", "addcamshake", "addforcegeneratorrtd", "additempool", "addmagazinepool", "addmissioneventhandler", "addmusiceventhandler", "addswitchableunit", "addtoremainscollector", "addweaponpool", "admin", "agent", "agltoasl", "aimpos", "airdensityrtd", "airplanethrottle", "airportside", "aisfinishheal", "alive", "allcontrols", "allmissionobjects", "allsimpleobjects", "allturrets", "allturrets", "allvariables", "allvariables", "allvariables", "allvariables", "allvariables", "allvariables", "allvariables", "animationnames", "animationstate", "asin", "asltoagl", "asltoatl", "assert", "assignedcargo", "assignedcommander", "assigneddriver", "assignedgunner", "assigneditems", "assignedtarget", "assignedteam", "assignedvehicle", "assignedvehiclerole", "atan", "atg", "atltoasl", "attachedobject", "attachedobjects", "attachedto", "attackenabled", "backpack", "backpackcargo", "backpackcontainer", "backpackitems", "backpackmagazines", "behaviour", "binocular", "boundingbox", "boundingboxreal", "boundingcenter", "breakout", "breakto", "buldozer_enableroaddiag", "buldozer_loadnewroads", "buttonaction", "buttonaction", "buttonsetaction", "calculatepath", "calculateplayervisibilitybyfriendly", "call", "camcommitted", "camdestroy", "cameraeffectenablehud", "camerainterest", "campreloaded", "camtarget", "camusenvg", "cancelsimpletaskdestination", "canfire", "canmove", "canstand", "cantriggerdynamicsimulation", "canunloadincombat", "captive", "captivenum", "case", "cbchecked", "ceil", "channelenabled", "checkaifeature", "classname", "clear3deninventory", "clearallitemsfrombackpack", "clearbackpackcargo", "clearbackpackcargoglobal", "cleargroupicons", "clearitemcargo", "clearitemcargoglobal", "clearmagazinecargo", "clearmagazinecargoglobal", "clearoverlay", "clearweaponcargo", "clearweaponcargoglobal", "closedialog", "closeoverlay", "collapseobjecttree", "collect3denhistory", "collectivertd", "combatmode", "commander", "commandgetout", "commandstop", "comment", "commitoverlay", "compile", "compilefinal", "completedfsm", "composetext", "confighierarchy", "configname", "configproperties", "configsourceaddonlist", "configsourcemod", "configsourcemodlist", "copytoclipboard", "cos", "count", "count", "count", "create3dencomposition", "create3denentity", "createagent", "createcenter", "createdialog", "creatediarylink", "creategeardialog", "creategroup", "createguardedpoint", "createlocation", "createmarker", "createmarkerlocal", "createmine", "createsimpleobject", "createsoundsource", "createteam", "createtrigger", "createvehicle", "createvehiclecrew", "crew", "ctaddheader", "ctaddrow", "ctclear", "ctcursel", "ctheadercount", "ctrlactivate", "ctrlangle", "ctrlautoscrolldelay", "ctrlautoscrollrewind", "ctrlautoscrollspeed", "ctrlchecked", "ctrlclassname", "ctrlcommitted", "ctrldelete", "ctrlenable", "ctrlenabled", "ctrlenabled", "ctrlfade", "ctrlhtmlloaded", "ctrlidc", "ctrlidd", "ctrlmapanimclear", "ctrlmapanimcommit", "ctrlmapanimdone", "ctrlmapmouseover", "ctrlmapscale", "ctrlmodel", "ctrlmodeldirandup", "ctrlmodelscale", "ctrlparent", "ctrlparentcontrolsgroup", "ctrlposition", "ctrlscale", "ctrlsetfocus", "ctrlsettext", "ctrlshow", "ctrlshown", "ctrltext", "ctrltext", "ctrltextheight", "ctrltextsecondary", "ctrltextwidth", "ctrltype", "ctrlvisible", "ctrowcount", "curatoraddons", "curatorcameraarea", "curatorcameraareaceiling", "curatoreditableobjects", "curatoreditingarea", "curatoreditingareatype", "curatorpoints", "curatorregisteredobjects", "curatorwaypointcost", "currentcommand", "currentmagazine", "currentmagazinedetail", "currentmuzzle", "currentpilot", "currenttask", "currenttasks", "currentthrowable", "currentvisionmode", "currentwaypoint", "currentweapon", "currentweaponmode", "currentzeroing", "cutobj", "cutrsc", "cuttext", "damage", "datetonumber", "deactivatekey", "debriefingtext", "debuglog", "decaygraphvalues", "default", "deg", "delete3denentities", "deletecenter", "deletecollection", "deletegroup", "deleteidentity", "deletelocation", "deletemarker", "deletemarkerlocal", "deletesite", "deletestatus", "deleteteam", "deletevehicle", "deletewaypoint", "detach", "detectedmines", "diag_captureframe", "diag_captureframetofile", "diag_captureslowframe", "diag_codeperformance", "diag_dynamicsimulationend", "diag_lightnewload", "diag_log", "diag_logslowframe", "diag_setlightnew", "didjipowner", "difficultyenabled", "difficultyoption", "direction", "direction", "disablemapindicators", "disableremotesensors", "disableuserinput", "displayparent", "dissolveteam", "do3denaction", "dogetout", "dostop", "drawicon3d", "drawline3d", "driver", "drop", "dynamicsimulationdistance", "dynamicsimulationdistancecoef", "dynamicsimulationenabled", "dynamicsimulationenabled", "echo", "edit3denmissionattributes", "effectivecommander", "enableaudiofeature", "enablecamshake", "enablecaustics", "enabledebriefingstats", "enablediaglegend", "enabledynamicsimulationsystem", "enableengineartillery", "enableenvironment", "enableradio", "enablesatnormalondetail", "enablesaving", "enablesentences", "enablestressdamage", "enableteamswitch", "enabletraffic", "enableweapondisassembly", "endmission", "enginesisonrtd", "enginespowerrtd", "enginesrpmrtd", "enginestorquertd", "entities", "entities", "estimatedtimeleft", "everybackpack", "everycontainer", "execfsm", "execvm", "exp", "expecteddestination", "exportjipmessages", "eyedirection", "eyepos", "face", "faction", "failmission", "fillweaponsfrompool", "finddisplay", "finite", "firstbackpack", "flag", "flaganimationphase", "flagowner", "flagside", "flagtexture", "fleeing", "floor", "for", "for", "forceatpositionrtd", "forcegeneratorrtd", "forcemap", "forcerespawn", "format", "formation", "formation", "formationdirection", "formationleader", "formationmembers", "formationposition", "formationtask", "formattext", "formleader", "fromeditor", "fuel", "fullcrew", "fullcrew", "gearidcammocount", "gearslotammocount", "gearslotdata", "get3denactionstate", "get3denconnections", "get3denentity", "get3denentityid", "get3dengrid", "get3denlayerentities", "get3denselected", "getaimingcoef", "getallenvsoundcontrollers", "getallhitpointsdamage", "getallownedmines", "getallsoundcontrollers", "getammocargo", "getanimaimprecision", "getanimspeedcoef", "getarray", "getartilleryammo", "getassignedcuratorlogic", "getassignedcuratorunit", "getbackpackcargo", "getbleedingremaining", "getburningvalue", "getcameraviewdirection", "getcenterofmass", "getconnecteduav", "getcontainermaxload", "getcustomaimcoef", "getcustomsoundcontroller", "getcustomsoundcontrollercount", "getdammage", "getdescription", "getdir", "getdirvisual", "getdiverstate", "getdlcassetsusagebyname", "getdlcs", "getdlcusagetime", "geteditorcamera", "geteditormode", "getenginetargetrpmrtd", "getfatigue", "getfieldmanualstartpage", "getforcedflagtexture", "getfuelcargo", "getgraphvalues", "getgroupiconparams", "getgroupicons", "getitemcargo", "getmagazinecargo", "getmarkercolor", "getmarkerpos", "getmarkerpos", "getmarkersize", "getmarkertype", "getmass", "getmissionconfig", "getmissionconfigvalue", "getmissionlayerentities", "getmissionpath", "getmodelinfo", "getnumber", "getobjectdlc", "getobjectfov", "getobjectmaterials", "getobjecttextures", "getobjecttype", "getoxygenremaining", "getpersonuseddlcs", "getpilotcameradirection", "getpilotcameraposition", "getpilotcamerarotation", "getpilotcameratarget", "getplatenumber", "getplayerchannel", "getplayerscores", "getplayeruid", "getpos", "getpos", "getposasl", "getposaslvisual", "getposaslw", "getposatl", "getposatlvisual", "getposvisual", "getposworld", "getposworldvisual", "getpylonmagazines", "getrepaircargo", "getrotorbrakertd", "getshotparents", "getslingload", "getstamina", "getstatvalue", "getsuppression", "getterrainheightasl", "gettext", "gettrimoffsetrtd", "getunitloadout", "getunitloadout", "getunitloadout", "getusermfdtext", "getusermfdvalue", "getvehiclecargo", "getweaponcargo", "getweaponsway", "getwingsorientationrtd", "getwingspositionrtd", "getwppos", "goggles", "goto", "group", "groupfromnetid", "groupid", "groupowner", "groupselectedunits", "gunner", "handgunitems", "handgunmagazine", "handgunweapon", "handshit", "haspilotcamera", "hcallgroups", "hcleader", "hcremoveallgroups", "hcselected", "hcshowbar", "headgear", "hidebody", "hideobject", "hideobjectglobal", "hint", "hintc", "hintcadet", "hintsilent", "hmd", "hostmission", "if", "image", "importallgroups", "importance", "incapacitatedstate", "inflamed", "infopanel", "infopanels", "ingameuiseteventhandler", "inheritsfrom", "inputaction", "isabletobreathe", "isagent", "isaimprecisionenabled", "isarray", "isautohoveron", "isautonomous", "isautostartupenabledrtd", "isautotrimonrtd", "isbleeding", "isburning", "isclass", "iscollisionlighton", "iscopilotenabled", "isdamageallowed", "isdlcavailable", "isengineon", "isforcedwalk", "isformationleader", "isgroupdeletedwhenempty", "ishidden", "isinremainscollector", "iskeyactive", "islaseron", "islighton", "islocalized", "ismanualfire", "ismarkedforcollection", "isnil", "isnull", "isnull", "isnull", "isnull", "isnull", "isnull", "isnull", "isnull", "isnull", "isnumber", "isobjecthidden", "isobjectrtd", "isonroad", "isplayer", "isrealtime", "isshowing3dicons", "issimpleobject", "issprintallowed", "isstaminaenabled", "istext", "istouchingground", "isturnedout", "isuavconnected", "isvehiclecargo", "isvehicleradaron", "iswalking", "isweapondeployed", "isweaponrested", "itemcargo", "items", "itemswithmagazines", "keyimage", "keyname", "landresult", "lasertarget", "lbadd", "lbclear", "lbclear", "lbcolor", "lbcolorright", "lbcursel", "lbcursel", "lbdata", "lbdelete", "lbpicture", "lbpictureright", "lbselection", "lbsetcolor", "lbsetcolorright", "lbsetcursel", "lbsetdata", "lbsetpicture", "lbsetpicturecolor", "lbsetpicturecolordisabled", "lbsetpicturecolorselected", "lbsetpictureright", "lbsetselectcolor", "lbsetselectcolorright", "lbsettext", "lbsettooltip", "lbsetvalue", "lbsize", "lbsize", "lbsort", "lbsort", "lbsort", "lbsortbyvalue", "lbsortbyvalue", "lbtext", "lbtextright", "lbvalue", "leader", "leader", "leader", "leaderboarddeinit", "leaderboardgetrows", "leaderboardinit", "leaderboardrequestrowsfriends", "leaderboardrequestrowsglobal", "leaderboardrequestrowsglobalarounduser", "leaderboardsrequestuploadscore", "leaderboardsrequestuploadscorekeepbest", "leaderboardstate", "lifestate", "lightdetachobject", "lightison", "linearconversion", "lineintersects", "lineintersectsobjs", "lineintersectssurfaces", "lineintersectswith", "list", "listremotetargets", "listvehiclesensors", "ln", "lnbaddarray", "lnbaddcolumn", "lnbaddrow", "lnbclear", "lnbclear", "lnbcolor", "lnbcolorright", "lnbcurselrow", "lnbcurselrow", "lnbdata", "lnbdeletecolumn", "lnbdeleterow", "lnbgetcolumnsposition", "lnbgetcolumnsposition", "lnbpicture", "lnbpictureright", "lnbsetcolor", "lnbsetcolorright", "lnbsetcolumnspos", "lnbsetcurselrow", "lnbsetdata", "lnbsetpicture", "lnbsetpicturecolor", "lnbsetpicturecolorright", "lnbsetpicturecolorselected", "lnbsetpicturecolorselectedright", "lnbsetpictureright", "lnbsettext", "lnbsettextright", "lnbsettooltip", "lnbsetvalue", "lnbsize", "lnbsize", "lnbsort", "lnbsortbyvalue", "lnbtext", "lnbtextright", "lnbvalue", "load", "loadabs", "loadbackpack", "loadfile", "loaduniform", "loadvest", "local", "local", "localize", "locationposition", "locked", "lockeddriver", "lockidentity", "log", "lognetwork", "lognetworkterminate", "magazinecargo", "magazines", "magazinesallturrets", "magazinesammo", "magazinesammocargo", "magazinesammofull", "magazinesdetail", "magazinesdetailbackpack", "magazinesdetailuniform", "magazinesdetailvest", "mapanimadd", "mapcenteroncamera", "mapgridposition", "markeralpha", "markerbrush", "markercolor", "markerdir", "markerpos", "markerpos", "markershape", "markersize", "markertext", "markertype", "matrixtranspose", "members", "menuaction", "menuadd", "menuchecked", "menuclear", "menuclear", "menucollapse", "menudata", "menudelete", "menuenable", "menuenabled", "menuexpand", "menuhover", "menuhover", "menupicture", "menusetaction", "menusetcheck", "menusetdata", "menusetpicture", "menusetvalue", "menushortcut", "menushortcuttext", "menusize", "menusort", "menutext", "menuurl", "menuvalue", "mineactive", "missiletarget", "missiletargetpos", "modparams", "moonphase", "morale", "move3dencamera", "moveout", "movetime", "movetocompleted", "movetofailed", "name", "name", "namesound", "nearestbuilding", "nearestbuilding", "nearestlocation", "nearestlocations", "nearestlocationwithdubbing", "nearestobject", "nearestobjects", "nearestterrainobjects", "needreload", "netid", "netid", "nextmenuitemindex", "not", "numberofenginesrtd", "numbertodate", "objectcurators", "objectfromnetid", "objectparent", "onbriefinggroup", "onbriefingnotes", "onbriefingplan", "onbriefingteamswitch", "oncommandmodechanged", "oneachframe", "ongroupiconclick", "ongroupiconoverenter", "ongroupiconoverleave", "onhcgroupselectionchanged", "onmapsingleclick", "onplayerconnected", "onplayerdisconnected", "onpreloadfinished", "onpreloadstarted", "onteamswitch", "opendlcpage", "openmap", "openmap", "opensteamapp", "openyoutubevideo", "owner", "param", "params", "parsenumber", "parsenumber", "parsesimplearray", "parsetext", "pickweaponpool", "pitch", "playableslotsnumber", "playersnumber", "playmission", "playmusic", "playmusic", "playscriptedmission", "playsound", "playsound", "playsound3d", "position", "position", "positioncameratoworld", "ppeffectcommitted", "ppeffectcommitted", "ppeffectcreate", "ppeffectdestroy", "ppeffectdestroy", "ppeffectenabled", "precision", "preloadcamera", "preloadsound", "preloadtitleobj", "preloadtitlersc", "preprocessfile", "preprocessfilelinenumbers", "primaryweapon", "primaryweaponitems", "primaryweaponmagazine", "priority", "private", "processdiarylink", "progressloadingscreen", "progressposition", "publicvariable", "publicvariableserver", "putweaponpool", "queryitemspool", "querymagazinepool", "queryweaponpool", "rad", "radiochannelcreate", "random", "random", "rank", "rankid", "rating", "rectangular", "registeredtasks", "reload", "reloadenabled", "remoteexec", "remoteexeccall", "remove3denconnection", "remove3deneventhandler", "remove3denlayer", "removeall3deneventhandlers", "removeallactions", "removeallassigneditems", "removeallcontainers", "removeallcuratoraddons", "removeallcuratorcameraareas", "removeallcuratoreditingareas", "removeallhandgunitems", "removeallitems", "removeallitemswithmagazines", "removeallmissioneventhandlers", "removeallmusiceventhandlers", "removeallownedmines", "removeallprimaryweaponitems", "removeallweapons", "removebackpack", "removebackpackglobal", "removefromremainscollector", "removegoggles", "removeheadgear", "removemissioneventhandler", "removemusiceventhandler", "removeswitchableunit", "removeuniform", "removevest", "requiredversion", "resetsubgroupdirection", "resources", "restarteditorcamera", "reverse", "roadat", "roadsconnectedto", "roledescription", "ropeattachedobjects", "ropeattachedto", "ropeattachenabled", "ropecreate", "ropecut", "ropedestroy", "ropeendposition", "ropelength", "ropes", "ropeunwind", "ropeunwound", "rotorsforcesrtd", "rotorsrpmrtd", "round", "save3deninventory", "saveoverlay", "savevar", "scopename", "score", "scoreside", "screenshot", "screentoworld", "scriptdone", "scriptname", "scudstate", "secondaryweapon", "secondaryweaponitems", "secondaryweaponmagazine", "selectbestplaces", "selectededitorobjects", "selectionnames", "selectmax", "selectmin", "selectplayer", "selectrandom", "selectrandomweighted", "sendaumessage", "sendudpmessage", "servercommand", "servercommandavailable", "servercommandexecutable", "set3denattributes", "set3dengrid", "set3deniconsvisible", "set3denlinesvisible", "set3denmissionattributes", "set3denmodelsvisible", "set3denselected", "setacctime", "setaperture", "setaperturenew", "setarmorypoints", "setcamshakedefparams", "setcamshakeparams", "setcompassoscillation", "setcurrentchannel", "setcustommissiondata", "setcustomsoundcontroller", "setdate", "setdefaultcamera", "setdetailmapblendpars", "setgroupiconsselectable", "setgroupiconsvisible", "sethorizonparallaxcoef", "sethudmovementlevels", "setinfopanel", "setlocalwindparams", "setmouseposition", "setmusiceventhandler", "setobjectviewdistance", "setobjectviewdistance", "setplayable", "setplayerrespawntime", "setshadowdistance", "setsimulweatherlayers", "setstaminascheme", "setstatvalue", "setsystemofunits", "setterraingrid", "settimemultiplier", "settrafficdensity", "settrafficdistance", "settrafficgap", "settrafficspeed", "setviewdistance", "setwind", "setwinddir", "showchat", "showcinemaborder", "showcommandingmenu", "showcompass", "showcuratorcompass", "showgps", "showhud", "showhud", "showmap", "showpad", "showradio", "showscoretable", "showsubtitles", "showuavfeed", "showwarrant", "showwatch", "showwaypoints", "side", "side", "side", "simpletasks", "simulationenabled", "simulclouddensity", "simulcloudocclusion", "simulinclouds", "sin", "size", "sizeof", "skill", "skiptime", "sleep", "sliderposition", "sliderposition", "sliderrange", "sliderrange", "slidersetposition", "slidersetrange", "slidersetspeed", "sliderspeed", "sliderspeed", "soldiermagazines", "someammo", "speaker", "speed", "speedmode", "sqrt", "squadparams", "stance", "startloadingscreen", "stopenginertd", "stopped", "str", "supportinfo", "surfaceiswater", "surfacenormal", "surfacetype", "switch", "switchcamera", "synchronizedobjects", "synchronizedtriggers", "synchronizedwaypoints", "synchronizedwaypoints", "systemchat", "tan", "taskalwaysvisible", "taskchildren", "taskcompleted", "taskcustomdata", "taskdescription", "taskdestination", "taskhint", "taskmarkeroffset", "taskparent", "taskresult", "taskstate", "tasktype", "teammember", "teamname", "teamtype", "terminate", "terrainintersect", "terrainintersectasl", "terrainintersectatasl", "text", "text", "textlog", "textlogformat", "tg", "throw", "titlecut", "titlefadeout", "titleobj", "titlersc", "titletext", "toarray", "tofixed", "tolower", "toloweransi", "tostring", "toupper", "toupperansi", "triggeractivated", "triggeractivation", "triggerammo", "triggerarea", "triggerattachedvehicle", "triggerstatements", "triggertext", "triggertimeout", "triggertimeoutcurrent", "triggertype", "try", "tvadd", "tvclear", "tvclear", "tvcollapse", "tvcollapseall", "tvcollapseall", "tvcount", "tvcursel", "tvcursel", "tvdata", "tvdelete", "tvexpand", "tvexpandall", "tvexpandall", "tvpicture", "tvpictureright", "tvsetcursel", "tvsetdata", "tvsetpicture", "tvsetpicturecolor", "tvsetpictureright", "tvsetpicturerightcolor", "tvsettext", "tvsettooltip", "tvsetvalue", "tvsort", "tvsortbyvalue", "tvtext", "tvtooltip", "tvvalue", "type", "type", "typename", "typeof", "uavcontrol", "uisleep", "unassigncurator", "unassignteam", "unassignvehicle", "underwater", "uniform", "uniformcontainer", "uniformitems", "uniformmagazines", "unitaddons", "unitaimposition", "unitaimpositionvisual", "unitbackpack", "unitisuav", "unitpos", "unitready", "unitrecoilcoefficient", "units", "units", "unlockachievement", "updateobjecttree", "useaiopermapobstructiontest", "useaisteeringcomponent", "vectordir", "vectordirvisual", "vectorlinearconversion", "vectormagnitude", "vectormagnitudesqr", "vectornormalized", "vectorup", "vectorupvisual", "vehicle", "vehiclecargoenabled", "vehiclereceiveremotetargets", "vehiclereportownposition", "vehiclereportremotetargets", "vehiclevarname", "velocity", "velocitymodelspace", "verifysignature", "vest", "vestcontainer", "vestitems", "vestmagazines", "visibleposition", "visiblepositionasl", "waituntil", "waypointattachedobject", "waypointattachedvehicle", "waypointbehaviour", "waypointcombatmode", "waypointcompletionradius", "waypointdescription", "waypointforcebehaviour", "waypointformation", "waypointhouseposition", "waypointloiterradius", "waypointloitertype", "waypointname", "waypointposition", "waypoints", "waypointscript", "waypointsenableduav", "waypointshow", "waypointspeed", "waypointstatements", "waypointtimeout", "waypointtimeoutcurrent", "waypointtype", "waypointvisible", "weaponcargo", "weaponinertia", "weaponlowered", "weapons", "weaponsitems", "weaponsitemscargo", "weaponstate", "weaponstate", "weightrtd", "wfsidetext", "wfsidetext", "wfsidetext", "while", "wingsforcesrtd", "with", "worldtoscreen", "action", "actionparams", "add3denlayer", "addaction", "addbackpack", "addbackpackcargo", "addbackpackcargoglobal", "addbackpackglobal", "addcuratoraddons", "addcuratorcameraarea", "addcuratoreditableobjects", "addcuratoreditingarea", "addcuratorpoints", "addeditorobject", "addeventhandler", "addforce", "addgoggles", "addgroupicon", "addhandgunitem", "addheadgear", "additem", "additemcargo", "additemcargoglobal", "additemtobackpack", "additemtouniform", "additemtovest", "addlivestats", "addmagazine", "addmagazine", "addmagazineammocargo", "addmagazinecargo", "addmagazinecargoglobal", "addmagazineglobal", "addmagazines", "addmagazineturret", "addmenu", "addmenuitem", "addmpeventhandler", "addownedmine", "addplayerscores", "addprimaryweaponitem", "addpublicvariableeventhandler", "addpublicvariableeventhandler", "addrating", "addresources", "addscore", "addscoreside", "addsecondaryweaponitem", "addteammember", "addtorque", "adduniform", "addvehicle", "addvest", "addwaypoint", "addweapon", "addweaponcargo", "addweaponcargoglobal", "addweaponglobal", "addweaponitem", "addweaponturret", "addweaponwithattachmentscargo", "addweaponwithattachmentscargoglobal", "aimedattarget", "allow3dmode", "allowcrewinimmobile", "allowcuratorlogicignoreareas", "allowdamage", "allowdammage", "allowfileoperations", "allowfleeing", "allowgetin", "allowsprint", "ammo", "ammoonpylon", "and", "and", "animate", "animatebay", "animatedoor", "animatepylon", "animatesource", "animationphase", "animationsourcephase", "append", "apply", "arrayintersect", "assignascargo", "assignascargoindex", "assignascommander", "assignasdriver", "assignasgunner", "assignasturret", "assigncurator", "assignitem", "assignteam", "assigntoairport", "atan2", "attachobject", "attachto", "backpackspacefor", "bezierinterpolation", "boundingbox", "boundingboxreal", "breakout", "buildingexit", "buildingpos", "buttonsetaction", "call", "callextension", "callextension", "camcommand", "camcommit", "camcommitprepared", "camconstuctionsetparams", "camcreate", "cameraeffect", "campreload", "campreparebank", "campreparedir", "campreparedive", "campreparefocus", "campreparefov", "campreparefovrange", "campreparepos", "campreparerelpos", "campreparetarget", "campreparetarget", "camsetbank", "camsetdir", "camsetdive", "camsetfocus", "camsetfov", "camsetfovrange", "camsetpos", "camsetrelpos", "camsettarget", "camsettarget", "canadd", "canadditemtobackpack", "canadditemtouniform", "canadditemtovest", "canslingload", "canvehiclecargo", "catch", "cbsetchecked", "checkaifeature", "checkvisibility", "clear3denattribute", "closedisplay", "commandartilleryfire", "commandchat", "commandfire", "commandfollow", "commandfsm", "commandmove", "commandradio", "commandsuppressivefire", "commandtarget", "commandwatch", "commandwatch", "configclasses", "confirmsensortarget", "connectterminaltouav", "controlsgroupctrl", "copywaypoints", "count", "countenemy", "countfriendly", "countside", "counttype", "countunknown", "create3denentity", "creatediaryrecord", "creatediarysubject", "createdisplay", "createmenu", "createmissiondisplay", "createmissiondisplay", "creatempcampaigndisplay", "createsimpletask", "createsite", "createtask", "createunit", "createunit", "createvehicle", "createvehiclelocal", "ctdata", "ctfindheaderrows", "ctfindrowheader", "ctheadercontrols", "ctremoveheaders", "ctremoverows", "ctrladdeventhandler", "ctrlanimatemodel", "ctrlanimationphasemodel", "ctrlchecked", "ctrlcommit", "ctrlcreate", "ctrlenable", "ctrlmapanimadd", "ctrlmapcursor", "ctrlmapscreentoworld", "ctrlmapworldtoscreen", "ctrlremovealleventhandlers", "ctrlremoveeventhandler", "ctrlsetactivecolor", "ctrlsetangle", "ctrlsetautoscrolldelay", "ctrlsetautoscrollrewind", "ctrlsetautoscrollspeed", "ctrlsetbackgroundcolor", "ctrlsetchecked", "ctrlsetchecked", "ctrlsetdisabledcolor", "ctrlseteventhandler", "ctrlsetfade", "ctrlsetfont", "ctrlsetfonth1", "ctrlsetfonth1b", "ctrlsetfonth2", "ctrlsetfonth2b", "ctrlsetfonth3", "ctrlsetfonth3b", "ctrlsetfonth4", "ctrlsetfonth4b", "ctrlsetfonth5", "ctrlsetfonth5b", "ctrlsetfonth6", "ctrlsetfonth6b", "ctrlsetfontheight", "ctrlsetfontheighth1", "ctrlsetfontheighth2", "ctrlsetfontheighth3", "ctrlsetfontheighth4", "ctrlsetfontheighth5", "ctrlsetfontheighth6", "ctrlsetfontheightsecondary", "ctrlsetfontp", "ctrlsetfontp", "ctrlsetfontpb", "ctrlsetfontsecondary", "ctrlsetforegroundcolor", "ctrlsetmodel", "ctrlsetmodeldirandup", "ctrlsetmodelscale", "ctrlsetpixelprecision", "ctrlsetpixelprecision", "ctrlsetposition", "ctrlsetpositionh", "ctrlsetpositionw", "ctrlsetpositionx", "ctrlsetpositiony", "ctrlsetscale", "ctrlsetstructuredtext", "ctrlsettext", "ctrlsettextcolor", "ctrlsettextcolorsecondary", "ctrlsettextsecondary", "ctrlsettooltip", "ctrlsettooltipcolorbox", "ctrlsettooltipcolorshade", "ctrlsettooltipcolortext", "ctrlshow", "ctrowcontrols", "ctsetcursel", "ctsetdata", "ctsetheadertemplate", "ctsetrowtemplate", "ctsetvalue", "ctvalue", "curatorcoef", "currentmagazinedetailturret", "currentmagazineturret", "currentweaponturret", "customchat", "customradio", "cutfadeout", "cutfadeout", "cutobj", "cutobj", "cutrsc", "cutrsc", "cuttext", "cuttext", "debugfsm", "deleteat", "deleteeditorobject", "deletegroupwhenempty", "deleterange", "deleteresources", "deletevehiclecrew", "diarysubjectexists", "directsay", "disableai", "disablecollisionwith", "disableconversation", "disablenvgequipment", "disabletiequipment", "disableuavconnectability", "displayaddeventhandler", "displayctrl", "displayremovealleventhandlers", "displayremoveeventhandler", "displayseteventhandler", "distance", "distance", "distance", "distance", "distance2d", "distancesqr", "distancesqr", "distancesqr", "distancesqr", "do", "do", "do", "do", "doartilleryfire", "dofire", "dofollow", "dofsm", "domove", "doorphase", "dosuppressivefire", "dotarget", "dowatch", "dowatch", "drawarrow", "drawellipse", "drawicon", "drawline", "drawlink", "drawlocation", "drawpolygon", "drawrectangle", "drawtriangle", "editobject", "editorseteventhandler", "else", "emptypositions", "enableai", "enableaifeature", "enableaifeature", "enableaimprecision", "enableattack", "enableautostartuprtd", "enableautotrimrtd", "enablechannel", "enablechannel", "enablecollisionwith", "enablecopilot", "enabledynamicsimulation", "enabledynamicsimulation", "enablefatigue", "enablegunlights", "enableinfopanelcomponent", "enableirlasers", "enablemimics", "enablepersonturret", "enablereload", "enableropeattach", "enablesimulation", "enablesimulationglobal", "enablestamina", "enableuavconnectability", "enableuavwaypoints", "enablevehiclecargo", "enablevehiclesensor", "enableweapondisassembly", "engineon", "evalobjectargument", "exec", "execeditorscript", "execfsm", "execvm", "exitwith", "fademusic", "faderadio", "fadesound", "fadespeech", "find", "find", "findcover", "findeditorobject", "findeditorobject", "findemptyposition", "findemptypositionready", "findif", "findnearestenemy", "fire", "fire", "fireattarget", "flyinheight", "flyinheightasl", "forceadduniform", "forceflagtexture", "forcefollowroad", "forcespeed", "forcewalk", "forceweaponfire", "foreach", "foreachmember", "foreachmemberagent", "foreachmemberteam", "forgettarget", "from", "get3denattribute", "get3denattribute", "get3denattribute", "get3denattribute", "get3denattribute", "get3denmissionattribute", "getartilleryeta", "getcargoindex", "getcompatiblepylonmagazines", "getcompatiblepylonmagazines", "getdir", "geteditorobjectscope", "getenvsoundcontroller", "getfriend", "getfsmvariable", "getgroupicon", "gethidefrom", "gethit", "gethitindex", "gethitpointdamage", "getobjectargument", "getobjectchildren", "getobjectproxy", "getpos", "getreldir", "getrelpos", "getsoundcontroller", "getsoundcontrollerresult", "getspeed", "getunittrait", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "getvariable", "glanceat", "globalchat", "globalradio", "groupchat", "groupradio", "groupselectunit", "hasweapon", "hcgroupparams", "hcremovegroup", "hcselectgroup", "hcsetgroup", "hideobject", "hideobjectglobal", "hideselection", "hintc", "hintc", "hintc", "htmlload", "in", "in", "in", "in", "inarea", "inarea", "inarea", "inarea", "inarea", "inareaarray", "inareaarray", "inareaarray", "inareaarray", "inflame", "infopanelcomponentenabled", "infopanelcomponents", "inpolygon", "inrangeofartillery", "inserteditorobject", "intersect", "isequalto", "isequaltype", "isequaltypeall", "isequaltypeany", "isequaltypearray", "isequaltypeparams", "isflashlighton", "isflatempty", "isirlaseron", "iskindof", "iskindof", "iskindof", "issensortargetconfirmed", "isuavconnectable", "isuniformallowed", "isvehiclesensorenabled", "join", "joinas", "joinassilent", "joinsilent", "joinstring", "kbadddatabase", "kbadddatabasetargets", "kbaddtopic", "kbhastopic", "kbreact", "kbremovetopic", "kbtell", "kbwassaid", "knowsabout", "knowsabout", "land", "landat", "lbadd", "lbcolor", "lbcolorright", "lbdata", "lbdelete", "lbisselected", "lbpicture", "lbpictureright", "lbsetcolor", "lbsetcolorright", "lbsetcursel", "lbsetdata", "lbsetpicture", "lbsetpicturecolor", "lbsetpicturecolordisabled", "lbsetpicturecolorselected", "lbsetpictureright", "lbsetpicturerightcolor", "lbsetpicturerightcolordisabled", "lbsetpicturerightcolorselected", "lbsetselectcolor", "lbsetselectcolorright", "lbsetselected", "lbsettext", "lbsettextright", "lbsettooltip", "lbsetvalue", "lbtext", "lbtextright", "lbvalue", "leavevehicle", "leavevehicle", "lightattachobject", "limitspeed", "linkitem", "listobjects", "lnbaddcolumn", "lnbaddrow", "lnbcolor", "lnbcolorright", "lnbdata", "lnbdeletecolumn", "lnbdeleterow", "lnbpicture", "lnbpictureright", "lnbsetcolor", "lnbsetcolorright", "lnbsetcolumnspos", "lnbsetcurselrow", "lnbsetdata", "lnbsetpicture", "lnbsetpicturecolor", "lnbsetpicturecolorright", "lnbsetpicturecolorselected", "lnbsetpicturecolorselectedright", "lnbsetpictureright", "lnbsettext", "lnbsettextright", "lnbsettooltip", "lnbsetvalue", "lnbsort", "lnbsortbyvalue", "lnbtext", "lnbtextright", "lnbvalue", "loadidentity", "loadmagazine", "loadoverlay", "loadstatus", "lock", "lock", "lockcamerato", "lockcargo", "lockcargo", "lockdriver", "lockedcargo", "lockedturret", "lockturret", "lockwp", "lookat", "lookatpos", "magazinesturret", "magazineturretammo", "mapcenteroncamera", "matrixmultiply", "max", "menuaction", "menuadd", "menuchecked", "menucollapse", "menudata", "menudelete", "menuenable", "menuenabled", "menuexpand", "menupicture", "menusetaction", "menusetcheck", "menusetdata", "menusetpicture", "menusetvalue", "menushortcut", "menushortcuttext", "menusize", "menusort", "menutext", "menuurl", "menuvalue", "min", "minedetectedby", "mod", "modeltoworld", "modeltoworldvisual", "modeltoworldvisualworld", "modeltoworldworld", "move", "moveinany", "moveincargo", "moveincargo", "moveincommander", "moveindriver", "moveingunner", "moveinturret", "moveobjecttoend", "moveto", "nearentities", "nearestobject", "nearestobject", "nearobjects", "nearobjectsready", "nearroads", "nearsupplies", "neartargets", "newoverlay", "nmenuitems", "objstatus", "ondoubleclick", "onmapsingleclick", "onshownewobject", "or", "or", "ordergetin", "param", "params", "playaction", "playactionnow", "playgesture", "playmove", "playmovenow", "posscreentoworld", "posworldtoscreen", "ppeffectadjust", "ppeffectadjust", "ppeffectcommit", "ppeffectcommit", "ppeffectcommit", "ppeffectenable", "ppeffectenable", "ppeffectenable", "ppeffectforceinnvg", "preloadobject", "progresssetposition", "publicvariableclient", "pushback", "pushbackunique", "radiochanneladd", "radiochannelremove", "radiochannelsetcallsign", "radiochannelsetlabel", "random", "registertask", "remotecontrol", "remoteexec", "remoteexeccall", "removeaction", "removealleventhandlers", "removeallmpeventhandlers", "removecuratoraddons", "removecuratorcameraarea", "removecuratoreditableobjects", "removecuratoreditingarea", "removediaryrecord", "removediarysubject", "removedrawicon", "removedrawlinks", "removeeventhandler", "removegroupicon", "removehandgunitem", "removeitem", "removeitemfrombackpack", "removeitemfromuniform", "removeitemfromvest", "removeitems", "removemagazine", "removemagazineglobal", "removemagazines", "removemagazinesturret", "removemagazineturret", "removemenuitem", "removemenuitem", "removempeventhandler", "removeownedmine", "removeprimaryweaponitem", "removesecondaryweaponitem", "removesimpletask", "removeteammember", "removeweapon", "removeweaponattachmentcargo", "removeweaponcargo", "removeweaponglobal", "removeweaponturret", "reportremotetarget", "resize", "respawnvehicle", "reveal", "reveal", "revealmine", "ropeattachto", "ropedetach", "saveidentity", "savestatus", "say", "say", "say2d", "say2d", "say3d", "say3d", "select", "select", "select", "select", "select", "select", "selectdiarysubject", "selecteditorobject", "selectionposition", "selectleader", "selectrandomweighted", "selectweapon", "selectweaponturret", "sendsimplecommand", "sendtask", "sendtaskresult", "servercommand", "set", "set3denattribute", "set3denlayer", "set3denlogictype", "set3denmissionattribute", "set3denobjecttype", "setactualcollectivertd", "setairplanethrottle", "setairportside", "setammo", "setammocargo", "setammoonpylon", "setanimspeedcoef", "setattributes", "setautonomous", "setbehaviour", "setbehaviourstrong", "setbleedingremaining", "setbrakesrtd", "setcamerainterest", "setcamuseti", "setcaptive", "setcenterofmass", "setcollisionlight", "setcombatmode", "setcombatmode", "setconvoyseparation", "setcuratorcameraareaceiling", "setcuratorcoef", "setcuratoreditingareatype", "setcuratorwaypointcost", "setcurrenttask", "setcurrentwaypoint", "setcustomaimcoef", "setcustomweightrtd", "setdamage", "setdammage", "setdebriefingtext", "setdestination", "setdiaryrecordtext", "setdir", "setdirection", "setdrawicon", "setdriveonpath", "setdropinterval", "setdynamicsimulationdistance", "setdynamicsimulationdistancecoef", "seteditormode", "seteditorobjectscope", "seteffectcondition", "seteffectivecommander", "setenginerpmrtd", "setface", "setfaceanimation", "setfatigue", "setfeaturetype", "setflaganimationphase", "setflagowner", "setflagside", "setflagtexture", "setfog", "setforcegeneratorrtd", "setformation", "setformation", "setformationtask", "setformdir", "setfriend", "setfromeditor", "setfsmvariable", "setfuel", "setfuelcargo", "setgroupicon", "setgroupiconparams", "setgroupid", "setgroupidglobal", "setgroupowner", "setgusts", "sethidebehind", "sethit", "sethitindex", "sethitpointdamage", "setidentity", "setimportance", "setleader", "setlightambient", "setlightattenuation", "setlightbrightness", "setlightcolor", "setlightdaylight", "setlightflaremaxdistance", "setlightflaresize", "setlightintensity", "setlightnings", "setlightuseflare", "setmagazineturretammo", "setmarkeralpha", "setmarkeralphalocal", "setmarkerbrush", "setmarkerbrushlocal", "setmarkercolor", "setmarkercolorlocal", "setmarkerdir", "setmarkerdirlocal", "setmarkerpos", "setmarkerposlocal", "setmarkershape", "setmarkershapelocal", "setmarkersize", "setmarkersizelocal", "setmarkertext", "setmarkertextlocal", "setmarkertype", "setmarkertypelocal", "setmass", "setmimic", "setmissiletarget", "setmissiletargetpos", "setmusiceffect", "setname", "setname", "setname", "setnamesound", "setobjectarguments", "setobjectmaterial", "setobjectmaterialglobal", "setobjectproxy", "setobjecttexture", "setobjecttextureglobal", "setovercast", "setowner", "setoxygenremaining", "setparticlecircle", "setparticleclass", "setparticlefire", "setparticleparams", "setparticlerandom", "setpilotcameradirection", "setpilotcamerarotation", "setpilotcameratarget", "setpilotlight", "setpipeffect", "setpitch", "setplatenumber", "setpos", "setposasl", "setposasl2", "setposaslw", "setposatl", "setposition", "setposworld", "setpylonloadout", "setpylonspriority", "setradiomsg", "setrain", "setrainbow", "setrandomlip", "setrank", "setrectangular", "setrepaircargo", "setrotorbrakertd", "setshotparents", "setside", "setsimpletaskalwaysvisible", "setsimpletaskcustomdata", "setsimpletaskdescription", "setsimpletaskdestination", "setsimpletasktarget", "setsimpletasktype", "setsize", "setskill", "setskill", "setslingload", "setsoundeffect", "setspeaker", "setspeech", "setspeedmode", "setstamina", "setsuppression", "settargetage", "settaskmarkeroffset", "settaskresult", "settaskstate", "settext", "settitleeffect", "settriggeractivation", "settriggerarea", "settriggerstatements", "settriggertext", "settriggertimeout", "settriggertype", "settype", "setunconscious", "setunitability", "setunitloadout", "setunitloadout", "setunitloadout", "setunitpos", "setunitposweak", "setunitrank", "setunitrecoilcoefficient", "setunittrait", "setunloadincombat", "setuseractiontext", "setusermfdtext", "setusermfdvalue", "setvariable", "setvariable", "setvariable", "setvariable", "setvariable", "setvariable", "setvariable", "setvariable", "setvectordir", "setvectordirandup", "setvectorup", "setvehicleammo", "setvehicleammodef", "setvehiclearmor", "setvehiclecargo", "setvehicleid", "setvehiclelock", "setvehicleposition", "setvehicleradar", "setvehiclereceiveremotetargets", "setvehiclereportownposition", "setvehiclereportremotetargets", "setvehicletipars", "setvehiclevarname", "setvelocity", "setvelocitymodelspace", "setvelocitytransformation", "setvisibleiftreecollapsed", "setwantedrpmrtd", "setwaves", "setwaypointbehaviour", "setwaypointcombatmode", "setwaypointcompletionradius", "setwaypointdescription", "setwaypointforcebehaviour", "setwaypointformation", "setwaypointhouseposition", "setwaypointloiterradius", "setwaypointloitertype", "setwaypointname", "setwaypointposition", "setwaypointscript", "setwaypointspeed", "setwaypointstatements", "setwaypointtimeout", "setwaypointtype", "setwaypointvisible", "setweaponreloadingtime", "setwinddir", "setwindforce", "setwindstr", "setwingforcescalertd", "setwppos", "show3dicons", "showlegend", "showneweditorobject", "showwaypoint", "sidechat", "sideradio", "skill", "skillfinal", "slidersetposition", "slidersetrange", "slidersetspeed", "sort", "spawn", "splitstring", "step", "stop", "suppressfor", "swimindepth", "switchaction", "switchcamera", "switchgesture", "switchlight", "switchmove", "synchronizeobjectsadd", "synchronizeobjectsremove", "synchronizetrigger", "synchronizewaypoint", "synchronizewaypoint", "targetknowledge", "targets", "targetsaggregate", "targetsquery", "then", "then", "throw", "to", "tofixed", "triggerattachobject", "triggerattachvehicle", "triggerdynamicsimulation", "try", "turretlocal", "turretowner", "turretunit", "tvadd", "tvcollapse", "tvcount", "tvdata", "tvdelete", "tvexpand", "tvpicture", "tvpictureright", "tvsetcolor", "tvsetcursel", "tvsetdata", "tvsetpicture", "tvsetpicturecolor", "tvsetpicturecolordisabled", "tvsetpicturecolorselected", "tvsetpictureright", "tvsetpicturerightcolor", "tvsetpicturerightcolordisabled", "tvsetpicturerightcolorselected", "tvsetselectcolor", "tvsettext", "tvsettooltip", "tvsetvalue", "tvsort", "tvsortbyvalue", "tvtext", "tvtooltip", "tvvalue", "unassignitem", "unitsbelowheight", "unitsbelowheight", "unlinkitem", "unregistertask", "updatedrawicon", "updatemenuitem", "useaudiotimeformoves", "vectoradd", "vectorcos", "vectorcrossproduct", "vectordiff", "vectordistance", "vectordistancesqr", "vectordotproduct", "vectorfromto", "vectormodeltoworld", "vectormodeltoworldvisual", "vectormultiply", "vectorworldtomodel", "vectorworldtomodelvisual", "vehiclechat", "vehicleradio", "waypointattachobject", "waypointattachvehicle", "weaponaccessories", "weaponaccessoriescargo", "weapondirection", "weaponsturret", "worldtomodel", "worldtomodelvisual", "acctime", "activatedaddons", "agents", "airdensitycurvertd", "all3denentities", "allairports", "allcurators", "allcutlayers", "alldead", "alldeadmen", "alldisplays", "allgroups", "allmapmarkers", "allmines", "allplayers", "allsites", "allunits", "allunitsuav", "armorypoints", "benchmark", "blufor", "briefingname", "buldozer_isenabledroaddiag", "buldozer_reloadopermap", "cadetmode", "cameraon", "cameraview", "campaignconfigfile", "cansuspend", "cheatsenabled", "civilian", "clearforcesrtd", "clearitempool", "clearmagazinepool", "clearradio", "clearweaponpool", "clientowner", "commandingmenu", "configfile", "confignull", "controlnull", "copyfromclipboard", "curatorcamera", "curatormouseover", "curatorselected", "current3denoperation", "currentchannel", "currentnamespace", "cursorobject", "cursortarget", "customwaypointposition", "date", "daytime", "diag_activemissionfsms", "diag_activescripts", "diag_activesqfscripts", "diag_activesqsscripts", "diag_deltatime", "diag_fps", "diag_fpsmin", "diag_frameno", "diag_ticktime", "dialog", "didjip", "difficulty", "difficultyenabledrtd", "disabledebriefingstats", "disableserialization", "displaynull", "distributionregion", "dynamicsimulationsystemenabled", "east", "enableenddialog", "endl", "endloadingscreen", "environmentenabled", "estimatedendservertime", "exit", "false", "finishmissioninit", "fog", "fogforecast", "fogparams", "forcedmap", "forceend", "forceweatherchange", "freelook", "get3dencamera", "get3deniconsvisible", "get3denlinesvisible", "get3denmouseover", "getartillerycomputersettings", "getaudiooptionvolumes", "getcalculateplayervisibilitybyfriendly", "getclientstate", "getclientstatenumber", "getcursorobjectparams", "getdlcassetsusage", "getelevationoffset", "getmissiondlcs", "getmissionlayers", "getmouseposition", "getmusicplayedtime", "getobjectviewdistance", "getremotesensorsdisabled", "getresolution", "getshadowdistance", "getsubtitleoptions", "getterraingrid", "gettotaldlcusagetime", "groupiconselectable", "groupiconsvisible", "grpnull", "gusts", "halt", "hasinterface", "hcshownbar", "hudmovementlevels", "humidity", "independent", "initambientlife", "is3den", "is3denmultiplayer", "isactionmenuvisible", "isautotest", "isdedicated", "isfilepatchingenabled", "isgamefocused", "isgamepaused", "isinstructorfigureenabled", "ismultiplayer", "ismultiplayersolo", "ispipenabled", "isremoteexecuted", "isremoteexecutedjip", "isserver", "issteammission", "isstreamfriendlyuienabled", "isstressdamageenabled", "istuthintsenabled", "isuicontext", "language", "librarycredits", "librarydisclaimers", "lightnings", "linebreak", "loadgame", "locationnull", "logentities", "mapanimclear", "mapanimcommit", "mapanimdone", "markasfinishedonsteam", "missionconfigfile", "missiondifficulty", "missionname", "missionnamespace", "missionstart", "missionversion", "moonintensity", "musicvolume", "netobjnull", "nextweatherchange", "nil", "objnull", "opencuratorinterface", "opfor", "overcast", "overcastforecast", "parsingnamespace", "particlesquality", "pi", "pixelgrid", "pixelgridbase", "pixelgridnouiscale", "pixelh", "pixelw", "playableunits", "player", "playerrespawntime", "playerside", "productversion", "profilename", "profilenamespace", "profilenamesteam", "radiovolume", "rain", "rainbow", "remoteexecutedowner", "resetcamshake", "resistance", "reversedmousey", "runinitscript", "safezoneh", "safezonew", "safezonewabs", "safezonex", "safezonexabs", "safezoney", "savegame", "savejoysticks", "saveprofilenamespace", "savingenabled", "scriptnull", "selectnoplayer", "servername", "servertime", "shownartillerycomputer", "shownchat", "showncompass", "showncuratorcompass", "showngps", "shownhud", "shownmap", "shownpad", "shownradio", "shownscoretable", "shownuavfeed", "shownwarrant", "shownwatch", "sideambientlife", "sideempty", "sideenemy", "sidefriendly", "sidelogic", "sideunknown", "simulweathersync", "slingloadassistantshown", "soundvolume", "sunormoon", "switchableunits", "systemofunits", "tasknull", "teammembernull", "teams", "teamswitch", "teamswitchenabled", "time", "timemultiplier", "true", "uinamespace", "userinputdisabled", "vehicles", "viewdistance", "visiblecompass", "visiblegps", "visiblemap", "visiblescoretable", "visiblewatch", "waves", "west", "wind", "winddir", "windrtd", "windstr", "worldname", "worldsize"] + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sql.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sql.rb new file mode 100644 index 0000000..ff5c8a7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/sql.rb @@ -0,0 +1,161 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class SQL < RegexLexer + title "SQL" + desc "Structured Query Language, for relational databases" + tag 'sql' + filenames '*.sql' + mimetypes 'text/x-sql' + + def self.keywords + @keywords ||= Set.new %w( + ABORT ABS ABSOLUTE ACCESS ADA ADD ADMIN AFTER AGGREGATE ALIAS + ALL ALLOCATE ALTER ANALYSE ANALYZE AND ANY ARE AS ASC ASENSITIVE + ASSERTION ASSIGNMENT ASYMMETRIC AT ATOMIC AUTHORIZATION + AVG BACKWARD BEFORE BEGIN BETWEEN BITVAR BIT_LENGTH BOTH + BREADTH BY C CACHE CALL CALLED CARDINALITY CASCADE CASCADED + CASE CAST CATALOG CATALOG_NAME CHAIN CHARACTERISTICS + CHARACTER_LENGTH CHARACTER_SET_CATALOG CHARACTER_SET_NAME + CHARACTER_SET_SCHEMA CHAR_LENGTH CHECK CHECKED CHECKPOINT + CLASS CLASS_ORIGIN CLOB CLOSE CLUSTER COALSECE COBOL COLLATE + COLLATION COLLATION_CATALOG COLLATION_NAME COLLATION_SCHEMA + COLUMN COLUMN_NAME COMMAND_FUNCTION COMMAND_FUNCTION_CODE + COMMENT COMMIT COMMITTED COMPLETION CONDITION_NUMBER + CONNECT CONNECTION CONNECTION_NAME CONSTRAINT CONSTRAINTS + CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_SCHEMA + CONSTRUCTOR CONTAINS CONTINUE CONVERSION CONVERT COPY + CORRESPONTING COUNT CREATE CREATEDB CREATEUSER CROSS CUBE + CURRENT CURRENT_DATE CURRENT_PATH CURRENT_ROLE CURRENT_TIME + CURRENT_TIMESTAMP CURRENT_USER CURSOR CURSOR_NAME CYCLE DATA + DATABASE DATETIME_INTERVAL_CODE DATETIME_INTERVAL_PRECISION + DAY DEALLOCATE DECLARE DEFAULT DEFAULTS DEFERRABLE DEFERRED + DEFINED DEFINER DELETE DELIMITER DELIMITERS DEREF DESC DESCRIBE + DESCRIPTOR DESTROY DESTRUCTOR DETERMINISTIC DIAGNOSTICS + DICTIONARY DISCONNECT DISPATCH DISTINCT DO DOMAIN DROP + DYNAMIC DYNAMIC_FUNCTION DYNAMIC_FUNCTION_CODE EACH ELSE + ENCODING ENCRYPTED END END-EXEC EQUALS ESCAPE EVERY EXCEPT + ESCEPTION EXCLUDING EXCLUSIVE EXEC EXECUTE EXISTING EXISTS + EXPLAIN EXTERNAL EXTRACT FALSE FETCH FINAL FIRST FOLLOWING FOR + FORCE FOREIGN FORTRAN FORWARD FOUND FREE FREEZE FROM FULL FUNCTION + G GENERAL GENERATED GET GLOBAL GO GOTO GRANT GRANTED GROUP + GROUPING HANDLER HAVING HIERARCHY HOLD HOST IDENTITY IGNORE + ILIKE IMMEDIATE IMMUTABLE IMPLEMENTATION IMPLICIT IN INCLUDING + INCREMENT INDEX INDITCATOR INFIX INHERITS INITIALIZE INITIALLY + INNER INOUT INPUT INSENSITIVE INSERT INSTANTIABLE INSTEAD + INTERSECT INTO INVOKER IS ISNULL ISOLATION ITERATE JOIN KEY + KEY_MEMBER KEY_TYPE LANCOMPILER LANGUAGE LARGE LAST LATERAL + LEADING LEFT LENGTH LESS LEVEL LIKE LIMIT LISTEN LOAD LOCAL + LOCALTIME LOCALTIMESTAMP LOCATION LOCATOR LOCK LOWER MAP MATCH + MAX MAXVALUE MESSAGE_LENGTH MESSAGE_OCTET_LENGTH MESSAGE_TEXT + METHOD MIN MINUTE MINVALUE MOD MODE MODIFIES MODIFY MONTH + MORE MOVE MUMPS NAMES NATURAL NCLOB NEW NEXT + NO NOCREATEDB NOCREATEUSER NONE NOT NOTHING NOTIFY NOTNULL + NULL NULLABLE NULLIF OBJECT OCTET_LENGTH OF OFF OFFSET OIDS + OLD ON ONLY OPEN OPERATION OPERATOR OPTION OPTIONS OR ORDER + ORDINALITY OUT OUTER OUTPUT OVERLAPS OVERLAY OVERRIDING + OWNER PAD PARAMETER PARAMETERS PARAMETER_MODE PARAMATER_NAME + PARAMATER_ORDINAL_POSITION PARAMETER_SPECIFIC_CATALOG + PARAMETER_SPECIFIC_NAME PARAMATER_SPECIFIC_SCHEMA PARTIAL PARTITION + PASCAL PENDANT PLACING PLI POSITION POSTFIX PREFIX PRECEDING PREORDER + PREPARE PRESERVE PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE + PUBLIC RANGE READ READS RECHECK RECURSIVE REF REFERENCES REFERENCING + REINDEX RELATIVE RENAME REPEATABLE REPLACE RESET RESTART + RESTRICT RESULT RETURN RETURNED_LENGTH RETURNED_OCTET_LENGTH + RETURNED_SQLSTATE RETURNS REVOKE RIGHT ROLE ROLLBACK ROLLUP + ROUTINE ROUTINE_CATALOG ROUTINE_NAME ROUTINE_SCHEMA ROW ROWS + ROW_COUNT RULE SAVE_POINT SCALE SCHEMA SCHEMA_NAME SCOPE SCROLL + SEARCH SECOND SECURITY SELECT SELF SENSITIVE SERIALIZABLE + SERVER_NAME SESSION SESSION_USER SET SETOF SETS SHARE SHOW + SIMILAR SIMPLE SIZE SOME SOURCE SPACE SPECIFIC SPECIFICTYPE + SPECIFIC_NAME SQL SQLCODE SQLERROR SQLEXCEPTION SQLSTATE + SQLWARNINIG STABLE START STATE STATEMENT STATIC STATISTICS + STDIN STDOUT STORAGE STRICT STRUCTURE STYPE SUBCLASS_ORIGIN + SUBLIST SUBSTRING SUM SYMMETRIC SYSID SYSTEM SYSTEM_USER + TABLE TABLE_NAME TEMP TEMPLATE TEMPORARY TERMINATE THAN THEN + TIMEZONE_HOUR TIMEZONE_MINUTE TO TOAST TRAILING + TRANSATION TRANSACTIONS_COMMITTED TRANSACTIONS_ROLLED_BACK + TRANSATION_ACTIVE TRANSFORM TRANSFORMS TRANSLATE TRANSLATION + TREAT TRIGGER TRIGGER_CATALOG TRIGGER_NAME TRIGGER_SCHEMA TRIM + TRUE TRUNCATE TRUSTED TYPE UNCOMMITTED UNDER UNENCRYPTED UNION + UNIQUE UNKNOWN UNLISTEN UNNAMED UNNEST UNTIL UPDATE UPPER + USAGE USER USER_DEFINED_TYPE_CATALOG USER_DEFINED_TYPE_NAME + USER_DEFINED_TYPE_SCHEMA USING VACUUM VALID VALIDATOR VALUES + VARIABLE VERBOSE VERSION VIEW VOLATILE WHEN WHENEVER WHERE + WINDOW WITH WITHOUT WORK WRITE ZONE + ) + end + + def self.keywords_type + # sources: + # https://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html + # https://dev.mysql.com/doc/refman/5.7/en/date-and-time-type-overview.html + # https://dev.mysql.com/doc/refman/5.7/en/string-type-overview.html + @keywords_type ||= Set.new(%w( + ZEROFILL UNSIGNED SIGNED SERIAL BIT TINYINT BOOL BOOLEAN SMALLINT + MEDIUMINT INT INTEGER BIGINT DECIMAL DEC NUMERIC FIXED FLOAT DOUBLE + PRECISION REAL + DATE DATETIME TIMESTAMP TIME YEAR + NATIONAL CHAR CHARACTER NCHAR BYTE + VARCHAR VARYING BINARY VARBINARY TINYBLOB TINYTEXT BLOB TEXT + MEDIUMBLOB MEDIUMTEXT LONGBLOB LONGTEXT ENUM + )) + end + + state :root do + rule %r/\s+/m, Text + rule %r/--.*/, Comment::Single + rule %r(/\*), Comment::Multiline, :multiline_comments + rule %r/\d+/, Num::Integer + rule %r/'/, Str::Single, :single_string + # A double-quoted string refers to a database object in our default SQL + # dialect, which is apropriate for e.g. MS SQL and PostgreSQL. + rule %r/"/, Name::Variable, :double_string + rule %r/`/, Name::Variable, :backtick + + rule %r/\w+/ do |m| + if self.class.keywords_type.include? m[0].upcase + token Name::Builtin + elsif self.class.keywords.include? m[0].upcase + token Keyword + else + token Name + end + end + + rule %r([+*/<>=~!@#%&|?^-]), Operator + rule %r/[;:()\[\]\{\},.]/, Punctuation + end + + state :multiline_comments do + rule %r(/[*]), Comment::Multiline, :multiline_comments + rule %r([*]/), Comment::Multiline, :pop! + rule %r([^/*]+), Comment::Multiline + rule %r([/*]), Comment::Multiline + end + + state :backtick do + rule %r/\\./, Str::Escape + rule %r/``/, Str::Escape + rule %r/`/, Name::Variable, :pop! + rule %r/[^\\`]+/, Name::Variable + end + + state :single_string do + rule %r/\\./, Str::Escape + rule %r/''/, Str::Escape + rule %r/'/, Str::Single, :pop! + rule %r/[^\\']+/, Str::Single + end + + state :double_string do + rule %r/\\./, Str::Escape + rule %r/""/, Str::Escape + rule %r/"/, Name::Variable, :pop! + rule %r/[^\\"]+/, Name::Variable + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ssh.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ssh.rb new file mode 100644 index 0000000..11369e6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ssh.rb @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class SSH < RegexLexer + tag 'ssh' + + title "SSH Config File" + desc 'A lexer for SSH configuration files' + filenames 'ssh_config' + + state :root do + rule %r/[a-z0-9]+/i, Keyword, :statement + mixin :base + end + + state :statement do + rule %r/\n/, Text, :pop! + rule %r/(?:yes|no|confirm|ask|always|auto|none|force)\b/, Name::Constant + + rule %r/\d+/, Num + rule %r/[^#\s;{}$\\]+/, Text + mixin :base + end + + state :base do + rule %r/\s+/, Text + rule %r/#.*/, Comment::Single + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/stan.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/stan.rb new file mode 100644 index 0000000..8208aee --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/stan.rb @@ -0,0 +1,451 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Stan < RegexLexer + title "Stan" + desc 'Stan Modeling Language (mc-stan.org)' + tag 'stan' + filenames '*.stan', '*.stanfunctions' + + # optional comment or whitespace + WS = %r((?:\s|//.*?\n|/[*].*?[*]/)+) + ID = /[a-zA-Z_][a-zA-Z0-9_]*/ + RT = /(?:(?:[a-z_]\s*(?:\[[0-9, ]\])?)\s+)*/ + OP = Regexp.new([ + # Assigment operators + "=", + + # Comparison operators + "<", "<=", ">", ">=", "==", "!=", + + # Boolean operators + "!", "&&", "\\|\\|", + + # Real-valued arithmetic operators + "\\+", "-", "\\*", "/", "\\^", + + # Transposition operator + "'", + + # Elementwise functions + "\\.\\+", "\\.-", "\\.\\*", "\\./", "\\.\\^", + + # Matrix division operators + "\\\\", + + # Compound assigment operators + "\\+=", "-=", "\\*=", "/=", "\\.\\*=", "\\./=", + + # Sampling + "~", + + # Conditional operator + "\\?", ":" + ].join("|")) + + def self.keywords + @keywords ||= Set.new %w( + if else while for break continue print reject return + ) + end + + def self.types + @types ||= Set.new %w( + int real vector ordered positive_ordered simplex unit_vector + row_vector matrix cholesky_factor_corr cholesky_factor_cov corr_matrix + cov_matrix data void complex array + ) + end + + def self.reserved + @reserved ||= Set.new [ + # Reserved words from Stan language + "for", "in", "while", "repeat", "until", "if", "then", "else", "true", + "false", "target", "functions", "model", "data", "parameters", + "quantities", "transformed", "generated", + + # Reserved names from Stan implementation + "var", "fvar", "STAN_MAJOR", "STAN_MINOR", "STAN_PATCH", + "STAN_MATH_MAJOR", "STAN_MATH_MINOR", "STAN_MATH_PATCH", + + # Reserved names from C++ + "alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand", + "bitor", "bool", "break", "case", "catch", "char", "char16_t", + "char32_t", "class", "compl", "const", "constexpr", "const_cast", + "continue", "decltype", "default", "delete", "do", "double", + "dynamic_cast", "else", "enum", "explicit", "export", "extern", + "false", "float", "for", "friend", "goto", "if", "inline", "int", + "long", "mutable", "namespace", "new", "noexcept", "not", "not_eq", + "nullptr", "operator", "or", "or_eq", "private", "protected", + "public", "register", "reinterpret_cast", "return", "short", "signed", + "sizeof", "static", "static_assert", "static_cast", "struct", + "switch", "template", "this", "thread_local", "throw", "true", "try", + "typedef", "typeid", "typename", "union", "unsigned", "using", + "virtual", "void", "volatile", "wchar_t", "while", "xor", "xor_eq" + ] + end + + def self.builtin_functions + @builtin_functions ||= Set.new [ + # Integer-Valued Basic Functions + + ## Absolute functions + "abs", "int_step", + + ## Bound functions + "min", "max", + + ## Size functions + "size", + + # Real-Valued Basic Functions + + ## Log probability function + "target", "get_lp", + + ## Logical functions + "step", "is_inf", "is_nan", + + ## Step-like functions + "fabs", "fdim", "fmin", "fmax", "fmod", "floor", "ceil", "round", + "trunc", + + ## Power and logarithm functions + "sqrt", "cbrt", "square", "exp", "exp2", "log", "log2", "log10", + "pow", "inv", "inv_sqrt", "inv_square", + + ## Trigonometric functions + "hypot", "cos", "sin", "tan", "acos", "asin", "atan", "atan2", + + ## Hyperbolic trigonometric functions + "cosh", "sinh", "tanh", "acosh", "asinh", "atanh", + + ## Link functions + "logit", "inv_logit", "inv_cloglog", + + ## Probability-related functions + "erf", "erfc", "Phi", "inv_Phi", "Phi_approx", "binary_log_loss", + "owens_t", + + ## Combinatorial functions + "beta", "inc_beta", "lbeta", "tgamma", "lgamma", "digamma", + "trigamma", "lmgamma", "gamma_p", "gamma_q", + "binomial_coefficient_log", "choose", "bessel_first_kind", + "bessel_second_kind", "modified_bessel_first_kind", + "log_modified_bessel_first_kind", "modified_bessel_second_kind", + "falling_factorial", "lchoose", "log_falling_factorial", + "rising_factorial", "log_rising_factorial", + + ## Composed functions + "expm1", "fma", "multiply_log", "ldexp", "lmultiply", "log1p", + "log1m", "log1p_exp", "log1m_exp", "log_diff_exp", "log_mix", + "log_sum_exp", "log_inv_logit", "log_inv_logit_diff", + "log1m_inv_logit", + + ## Special functions + "lambert_w0", "lambert_wm1", + + # Complex-Valued Basic Functions + + ## Complex constructors and accessors + "to_complex", "get_real", "get_imag", + + ## Complex special functions + "arg", "norm", "conj", "proj", "polar", + + # Array Operations + + ## Reductions + "sum", "prod", "log_sum_exp", "mean", "variance", "sd", "distance", + "squared_distance", "quantile", + + ## Array size and dimension function + "dims", "num_elements", + + ## Array broadcasting + "rep_array", + + ## Array concatenation + "append_array", + + ## Sorting functions + "sort_asc", "sort_desc", "sort_indices_asc", "sort_indices_desc", + "rank", + + ## Reversing functions + "reverse", + + # Matrix Operations + + ## Integer-valued matrix size functions + "num_elements", "rows", "cols", + + ## Dot products and specialized products + "dot_product", "columns_dot_product", "rows_dot_product", "dot_self", + "columns_dot_self", "rows_dot_self", "tcrossprod", "crossprod", + "quad_form", "quad_form_diag", "quad_form_sym", "trace_quad_form", + "trace_gen_quad_form", "multiply_lower_tri_self_transpose", + "diag_pre_multiply", "diag_post_multiply", + + ## Broadcast functions + "rep_vector", "rep_row_vector", "rep_matrix", + "symmetrize_from_lower_tri", + + ## Diagonal matrix functions + "add_diag", "diagonal", "diag_matrix", "identity_matrix", + + ## Container construction functions + "linspaced_array", "linspaced_int_array", "linspaced_vector", + "linspaced_row_vector", "one_hot_int_array", "one_hot_array", + "one_hot_vector", "one_hot_row_vector", "ones_int_array", + "ones_array", "ones_vector", "ones_row_vector", "zeros_int_array", + "zeros_array", "zeros_vector", "zeros_row_vector", "uniform_simplex", + + ## Slicing and blocking functions + "col", "row", "block", "sub_col", "sub_row", "head", "tail", + "segment", + + ## Matrix concatenation + "append_col", "append_row", + + ## Special matrix functions + "softmax", "log_softmax", "cumulative_sum", + + ## Covariance functions + "cov_exp_quad", + + ## Linear algebra functions and solvers + "mdivide_left_tri_low", "mdivide_right_tri_low", "mdivide_left_spd", + "mdivide_right_spd", "matrix_exp", "matrix_exp_multiply", + "scale_matrix_exp_multiply", "matrix_power", "trace", "determinant", + "log_determinant", "inverse", "inverse_spd", "chol2inv", + "generalized_inverse", "eigenvalues_sym", "eigenvectors_sym", + "qr_thin_Q", "qr_thin_R", "qr_Q", "qr_R", "cholseky_decompose", + "singular_values", "svd_U", "svd_V", + + # Sparse Matrix Operations + + ## Conversion functions + "csr_extract_w", "csr_extract_v", "csr_extract_u", + "csr_to_dense_matrix", + + ## Sparse matrix arithmetic + "csr_matrix_times_vector", + + # Mixed Operations + "to_matrix", "to_vector", "to_row_vector", "to_array_2d", + "to_array_1d", + + # Higher-Order Functions + + ## Algebraic equation solver + "algebra_solver", "algebra_solver_newton", + + ## Ordinary differential equation + "ode_rk45", "ode_rk45_tol", "ode_ckrk", "ode_ckrk_tol", "ode_adams", + "ode_adams_tol", "ode_bdf", "ode_bdf_tol", "ode_adjoint_tol_ctl", + + ## 1D integrator + "integrate_1d", + + ## Reduce-sum function + "reduce_sum", "reduce_sum_static", + + ## Map-rect function + "map_rect", + + # Deprecated Functions + "integrate_ode_rk45", "integrate_ode", "integrate_ode_adams", + "integrate_ode_bdf", + + # Hidden Markov Models + "hmm_marginal", "hmm_latent_rng", "hmm_hidden_state_prob" + ] + end + + def self.distributions + @distributions ||= Set.new( + [ + # Discrete Distributions + + ## Binary Distributions + "bernoulli", "bernoulli_logit", "bernoulli_logit_glm", + + ## Bounded Discrete Distributions + "binomial", "binomial_logit", "beta_binomial", "hypergeometric", + "categorical", "categorical_logit_glm", "discrete_range", + "ordered_logistic", "ordered_logistic_glm", "ordered_probit", + + ## Unbounded Discrete Distributions + "neg_binomial", "neg_binomial_2", "neg_binomial_2_log", + "neg_binomial_2_log_glm", "poisson", "poisson_log", + "poisson_log_glm", + + ## Multivariate Discrete Distributions + "multinomial", "multinomial_logit", + + # Continuous Distributions + + ## Unbounded Continuous Distributions + "normal", "std_normal", "normal_id_glm", "exp_mod_normal", + "skew_normal", "student_t", "cauchy", "double_exponential", + "logistic", "gumbel", "skew_double_exponential", + + ## Positive Continuous Distributions + "lognormal", "chi_square", "inv_chi_square", + "scaled_inv_chi_square", "exponential", "gamma", "inv_gamma", + "weibull", "frechet", "rayleigh", + + ## Positive Lower-Bounded Distributions + "pareto", "pareto_type_2", "wiener", + + ## Continuous Distributions on [0, 1] + "beta", "beta_proportion", + + ## Circular Distributions + "von_mises", + + ## Bounded Continuous Distributions + "uniform", + + ## Distributions over Unbounded Vectors + "multi_normal", "multi_normal_prec", "multi_normal_cholesky", + "multi_gp", "multi_gp_cholesky", "multi_student_t", + "gaussian_dlm_obs", + + ## Simplex Distributions + "dirichlet", + + ## Correlation Matrix Distributions + "lkj_corr", "lkj_corr_cholesky", + + ## Covariance Matrix Distributions + "wishart", "inv_wishart" + ].product([ + "", "_lpmf", "_lupmf", "_lpdf", "_lcdf", "_lccdf", "_rng", "_log", + "_cdf_log", "_ccdf_log" + ]).map {|s| "#{s[0]}#{s[1]}"} + ) + end + + def self.constants + @constants ||= Set.new [ + # Mathematical constants + "pi", "e", "sqrt2", "log2", "log10", + + # Special values + "not_a_number", "positive_infinity", "negative_infinity", + "machine_precision" + ] + end + + state :root do + mixin :whitespace + rule %r/#include/, Comment::Preproc, :include + rule %r/#.*$/, Generic::Deleted + rule %r( + functions + |(?:transformed\s+)?data + |(?:transformed\s+)?parameters + |model + |generated\s+quantities + )x, Name::Namespace + rule %r(\{), Punctuation, :bracket_scope + mixin :scope + end + + state :include do + rule %r((\s+)(\S+)(\s*)) do |m| + token Text, m[1] + token Comment::PreprocFile, m[2] + token Text, m[3] + pop! + end + end + + state :whitespace do + rule %r(\n+)m, Text + rule %r(//(\\.|.)*?$), Comment::Single + mixin :inline_whitespace + end + + state :inline_whitespace do + rule %r([ \t\r]+), Text + rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline + end + + state :statements do + mixin :whitespace + rule %r/#include/, Comment::Preproc, :include + rule %r/#.*$/, Generic::Deleted + rule %r("), Str, :string + rule %r( + ( + ((\d+[.]\d*|[.]?\d+)e[+-]?\d+|\d*[.]\d+|\d+) + (#{WS})[+-](#{WS}) + ((\d+[.]\d*|[.]?\d+)e[+-]?\d+|\d*[.]\d+|\d+)i + ) + |((\d+[.]\d*|[.]?\d+)e[+-]?\d+|\d*[.]\d+|\d+)i + |((\d+[.]\d*|[.]?\d+)e[+-]?\d+|\d*[.]\d+) + )mx, Num::Float + rule %r/\d+/, Num::Integer + rule %r(\*/), Error + rule OP, Operator + rule %r([\[\],.;]), Punctuation + rule %r([|](?![|])), Punctuation + rule %r(T\b), Keyword::Reserved + rule %r((lower|upper)\b), Name::Attribute + rule ID do |m| + name = m[0] + + if self.class.keywords.include? name + token Keyword + elsif self.class.types.include? name + token Keyword::Type + elsif self.class.reserved.include? name + token Keyword::Reserved + else + token Name::Variable + end + end + end + + state :scope do + mixin :whitespace + rule %r( + (#{RT}) # Return type + (#{ID}) # Function name + (?=\([^;]*?\)) # Signature or arguments + )mx do |m| + recurse m[1] + + name = m[2] + if self.class.builtin_functions.include? name + token Name::Builtin, name + elsif self.class.distributions.include? name + token Name::Builtin, name + elsif self.class.constants.include? name + token Keyword::Constant + else + token Name::Function, name + end + end + rule %r(\{), Punctuation, :bracket_scope + rule %r(\(), Punctuation, :parens_scope + mixin :statements + end + + state :bracket_scope do + mixin :scope + rule %r(\}), Punctuation, :pop! + end + + state :parens_scope do + mixin :scope + rule %r(\)), Punctuation, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/stata.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/stata.rb new file mode 100644 index 0000000..d002316 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/stata.rb @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Stata < RegexLexer + title "Stata" + desc "The Stata programming language (www.stata.com)" + tag 'stata' + filenames '*.do', '*.ado' + mimetypes 'application/x-stata', 'text/x-stata' + + ### + # Stata reference manual is available online at: https://www.stata.com/features/documentation/ + ### + + # Partial list of common programming and estimation commands, as of Stata 16 + # Note: not all abbreviations are included + KEYWORDS = %w( + do run include clear assert set mata log + by bys bysort cap capt capture char class classutil which cdir confirm new existence creturn + _datasignature discard di dis disp displ displa display ereturn error _estimates exit file open read write seek close query findfile fvexpand + gettoken java home heapmax java_heapmax icd9 icd9p icd10 icd10cm icd10pcs initialize javacall levelsof + tempvar tempname tempfile macro shift uniq dups retokenize clean sizeof posof + makecns matcproc marksample mark markout markin svymarkout matlist + accum define dissimilarity eigenvalues get rowjoinbyname rownames score svd symeigen dir list ren rename + more pause plugin call postfile _predict preserve restore program define drop end python qui quietly noi noisily _return return _rmcoll rmsg _robust + serset locale_functions locale_ui signestimationsample checkestimationsample sleep syntax sysdir adopath adosize + tabdisp timer tokenize trace unab unabcmd varabbrev version viewsource + window fopen fsave manage menu push stopbox + net from cd link search install sj stb ado update uninstall pwd ssc ls + using insheet outsheet mkmat svmat sum summ summarize + graph gr_edit twoway histogram kdensity spikeplot + mi miss missing var varname order compress append + gen gene gener genera generat generate egen replace duplicates + estimates nlcom lincom test testnl predict suest + _regress reg regr regre regres regress probit logit ivregress logistic svy gmm ivprobit ivtobit + bsample assert codebook collapse compare contract copy count cross datasignature d ds desc describe destring tostring + drawnorm edit encode decode erase expand export filefilter fillin format frame frget frlink gsort + import dbase delimited excel fred haver sas sasxport5 sasxport8 spss infile infix input insobs inspect ipolate isid + joinby label language labelbook lookfor memory mem merge mkdir mvencode notes obs odbc order outfile + pctile xtile _pctile putmata range recast recode rename group reshape rm rmdir sample save saveold separate shell snapshot sort split splitsample stack statsby sysuse + type unicode use varmanage vl webuse xpose zipfile + number keep tab table tabulate stset stcox tsset xtset + ) + + # Complete list of functions by name, as of Stata 16 + PRIMITIVE_FUNCTIONS = %w( + abbrev abs acos acosh age age_frac asin asinh atan atan2 atanh autocode + betaden binomial binomialp binomialtail binormal birthday bofd byteorder + c _caller cauchy cauchyden cauchytail Cdhms ceil char chi2 chi2den chi2tail Chms + chop cholesky clip Clock clock clockdiff cloglog Cmdyhms Cofc cofC Cofd cofd coleqnumb + collatorlocale collatorversion colnfreeparms colnumb colsof comb cond corr cos cosh + daily date datediff datediff_frac day det dgammapda dgammapdada dgammapdadx dgammapdxdx dhms + diag diag0cnt digamma dofb dofC dofc dofh dofm dofq dofw dofy dow doy dunnettprob e el epsdouble + epsfloat exp expm1 exponential exponentialden exponentialtail + F Fden fileexists fileread filereaderror filewrite float floor fmtwidth frval _frval Ftail + fammaden gammap gammaptail get hadamard halfyear halfyearly has_eprop hh hhC hms hofd hours + hypergeometric hypergeometricp + I ibeta ibetatail igaussian igaussianden igaussiantail indexnot inlist inrange int inv invbinomial invbinomialtail + invcauchy invcauchytail invchi2 invchi2tail invcloglog invdunnettprob invexponential invexponentialtail invF + invFtail invgammap invgammaptail invibeta invibetatail invigaussian invigaussiantail invlaplace invlaplacetail + invlogistic invlogistictail invlogit invnbinomial invnbinomialtail invnchi2 invnchi2tail invnF invnFtail invnibeta invnormal invnt invnttail + invpoisson invpoissontail invsym invt invttail invtukeyprob invweibull invweibullph invweibullphtail invweibulltail irecode islepyear issymmetric + J laplace laplaceden laplacetail ln ln1m ln1p lncauchyden lnfactorial lngamma lnigammaden lnigaussianden lniwishartden lnlaplaceden lnmvnormalden + lnnormal lnnormalden lnnormalden lnnormalden lnwishartden log log10 log1m log1p logistic logisticden logistictail logit + matmissing matrix matuniform max maxbyte maxdouble maxfloat maxint maxlong mdy mdyhms mi min minbyte mindouble minfloat minint minlong minutes + missing mm mmC mod mofd month monthly mreldif msofhours msofminutes msofseconds + nbetaden nbinomial nbinomialp nbinomialtail nchi2 nchi2den nchi2tail nextbirthday nextleapyear nF nFden nFtail nibeta + normal normalden npnchi2 npnF npnt nt ntden nttail nullmat + plural poisson poissonp poissontail previousbirthday previousleapyear qofd quarter quarterly r rbeta rbinomial rcauchy rchi2 recode + real regexm regexr regexs reldif replay return rexponential rgamma rhypergeometric rigaussian rlaplace rlogistic rnormal + round roweqnumb rownfreeparms rownumb rowsof rpoisson rt runiform runiformint rweibull rweibullph + s scalar seconds sign sin sinh smallestdouble soundex soundex_nara sqrt ss ssC strcat strdup string stritrim strlen strlower + strltrim strmatch strofreal strpos strproper strreverse strrpos strrtrim strtoname strtrim strupper subinstr subinword substr sum sweep + t tan tanh tC tc td tden th tin tm tobytes tq trace trigamma trunc ttail tukeyprob tw twithin + uchar udstrlen udsubstr uisdigit uisletter uniform ustrcompare ustrcompareex ustrfix ustrfrom ustrinvalidcnt ustrleft ustrlen ustrlower + ustrltrim ustrnormalize ustrpos ustrregexm ustrregexra ustrregexrf ustrregexs ustrreverse ustrright ustrrpos ustrrtrim ustrsortkey + ustrsortkeyex ustrtitle ustrto ustrtohex ustrtoname ustrtrim ustrunescape ustrupper ustrword ustrwordcount usubinstr usubstr + vec vecdiag week weekly weibull weibullden weibullph weibullphden weibullphtail weibulltail wofd word wordbreaklocale wordcount + year yearly yh ym yofd yq yw + ) + + # Note: types `str1-str2045` handled separately below + def self.type_keywords + @type_keywords ||= Set.new %w(byte int long float double str strL numeric string integer scalar matrix local global numlist varlist newlist) + end + + # Stata commands used with braces. Includes all valid abbreviations for 'forvalues'. + def self.reserved_keywords + @reserved_keywords ||= Set.new %w(if else foreach forv forva forval forvalu forvalue forvalues to while in of continue break nobreak) + end + + ### + # Lexer state and rules + ### + state :root do + + # Pre-processor commands: # + rule %r/^\s*#.*$/, Comment::Preproc + + # Hashbang comments: *! + rule %r/^\*!.*$/, Comment::Hashbang + + # Single-line comment: * + rule %r/^\s*\*.*$/, Comment::Single + + # Keywords: recognize only when they are the first word + rule %r/^\s*(#{KEYWORDS.join('|')})\b/, Keyword + + # Whitespace. Classify `\n` as `Text` to avoid interference with `Comment` and `Keyword` above + rule(/[ \t]+/, Text::Whitespace) + rule(/[\n\r]+/, Text) + + # In-line comment: // + rule %r/\/\/.*?$/, Comment::Single + + # Multi-line comment: /* and */ + rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline + + # Strings indicated by compound double-quotes (`""') and double-quotes ("") + rule %r/`"(\\.|.)*?"'/, Str::Double + rule %r/"(\\.|.)*?"/, Str::Double + + # Format locals (`') and globals ($) as strings + rule %r/`(\\.|.)*?'/, Str::Double + rule %r/(?<!\w)\$\w+/, Str::Double + + # Display formats + rule %r/\%\S+/, Name::Property + + # Additional string types: str1-str2045 + rule %r/\bstr(204[0-5]|20[0-3][0-9]|[01][0-9][0-9][0-9]|[0-9][0-9][0-9]|[0-9][0-9]|[1-9])\b/, Keyword::Type + + # Only recognize primitive functions when they are actually used as a function call, i.e. followed by an opening parenthesis + # `Name::Builtin` would be more logical, but is not usually highlighted, so use `Name::Function` instead + rule %r/\b(#{PRIMITIVE_FUNCTIONS.join('|')})(?=\()/, Name::Function + + # Matrix operator `..` (declare here instead of with other operators, in order to avoid conflict with numbers below) + rule %r/\.\.(?=.*\])/, Operator + + # Numbers + rule %r/[+-]?(\d+([.]\d+)?|[.]\d+)([eE][+-]?\d+)?/, Num + + # Factor variable and time series operators + rule %r/\b[ICOicoLFDSlfds]\w*\./, Operator + rule %r/\b[ICOicoLFDSlfds]\w*(?=\(.*\)\.)/, Operator + + rule %r/\w+/ do |m| + if self.class.reserved_keywords.include? m[0] + token Keyword::Reserved + elsif self.class.type_keywords.include? m[0] + token Keyword::Type + else + token Name + end + end + + rule %r/[\[\]{}();,]/, Punctuation + + rule %r([-<>?*+'^/\\!#.=~:&|]), Operator + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/supercollider.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/supercollider.rb new file mode 100644 index 0000000..b2831a3 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/supercollider.rb @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class SuperCollider < RegexLexer + tag 'supercollider' + filenames '*.sc', '*.scd' + + title "SuperCollider" + desc 'A cross-platform interpreted programming language for sound synthesis, algorithmic composition, and realtime performance' + + def self.keywords + @keywords ||= Set.new %w( + var arg classvar const super this + ) + end + + # these aren't technically keywords, but we treat + # them as such because it makes things clearer 99% + # of the time + def self.reserved + @reserved ||= Set.new %w( + case do for forBy loop if while new newCopyArgs + ) + end + + def self.constants + @constants ||= Set.new %w( + true false nil inf thisThread + thisMethod thisFunction thisProcess + thisFunctionDef currentEnvironment + topEnvironment + ) + end + + state :whitespace do + rule %r/\s+/m, Text + end + + state :comments do + rule %r(//.*?$), Comment::Single + rule %r(/[*]) do + token Comment::Multiline + push :nested_comment + end + end + + state :nested_comment do + rule %r(/[*]), Comment::Multiline, :nested_comment + rule %r([*]/), Comment::Multiline, :pop! + rule %r([^*/]+)m, Comment::Multiline + rule %r/./, Comment::Multiline + end + + state :root do + mixin :whitespace + mixin :comments + + rule %r/[\-+]?0[xX]\h+/, Num::Hex + + # radix float + rule %r/[\-+]?\d+r[0-9a-zA-Z]*(\.[0-9A-Z]*)?/, Num::Float + + # normal float + rule %r/[\-+]?((\d+(\.\d+)?([eE][\-+]?\d+)?(pi)?)|pi)/, Num::Float + + rule %r/[\-+]?\d+/, Num::Integer + + rule %r/\$(\\.|.)/, Str::Char + + rule %r/"([^\\"]|\\.)*"/, Str + + # symbols (single-quote notation) + rule %r/'([^\\']|\\.)*'/, Str::Other + + # symbols (backslash notation) + rule %r/\\\w+/, Str::Other + + # symbol arg + rule %r/[A-Za-z_]\w*:/, Name::Label + + rule %r/[A-Z]\w*/, Name::Class + + # primitive + rule %r/_\w+/, Name::Function + + # main identifiers section + rule %r/[a-z]\w*/ do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.constants.include? m[0] + token Keyword::Constant + elsif self.class.reserved.include? m[0] + token Keyword::Reserved + else + token Name + end + end + + # environment variables + rule %r/~\w+/, Name::Variable::Global + + rule %r/[\{\}()\[\];,\.]/, Punctuation + + # operators. treat # (array unpack) as an operator + rule %r/[\+\-\*\/&\|%<>=]+/, Operator + rule %r/[\^:#]/, Operator + + # treat curry argument as a special operator + rule %r/\b_\b/, Name::Builtin + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/svelte.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/svelte.rb new file mode 100644 index 0000000..733a23c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/svelte.rb @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'html.rb' + + class Svelte < HTML + desc 'Svelte single-file components (https://svelte.dev/)' + tag 'svelte' + filenames '*.svelte' + mimetypes 'text/x-svelte', 'application/x-svelte' + + def initialize(*) + super + # todo add support for typescript script blocks + @js = Javascript.new(options) + end + + # Shorthand syntax for passing attributes - ex, `{src}` instead of `src={src}` + prepend :tag do + rule %r/(\{)\s*([a-zA-Z0-9_]+)\s*(})/m do + groups Str::Interpol, Name::Variable, Str::Interpol + pop! + end + end + + prepend :attr do + # Duplicate template_start mixin here with a pop! + # Because otherwise we'll never exit the attr state + rule %r/\{/ do + token Str::Interpol + pop! + push :template + end + end + + # handle templates within attribute single/double quotes + prepend :dq do + mixin :template_start + end + + prepend :sq do + mixin :template_start + end + + prepend :root do + # detect curly braces within HTML text (outside of tags/attributes) + rule %r/([^<&{]*)(\{)(\s*)/ do + groups Text, Str::Interpol, Text + push :template + end + end + + state :template_start do + # open template + rule %r/\s*\{\s*/, Str::Interpol, :template + end + + state :template do + # template end + rule %r/}/, Str::Interpol, :pop! + + # Allow JS lexer to handle matched curly braces within template + rule(/(?<=^|[^\\])\{+.*?(?<=^|[^\\])\}+/) do + delegate @js + end + + # keywords + rule %r/@(debug|html)\b/, Keyword + rule %r/(#await)(.*)(then|catch)(\s+)(\w+)/ do |m| + token Keyword, m[1] + delegate @js, m[2] + token Keyword, m[3] + token Text, m[4] + delegate @js, m[5] + end + rule %r/([#\/])(await|each|if|key)\b/, Keyword + rule %r/(:else)(\s+)(if)?\b/ do + groups Keyword, Text, Keyword + end + rule %r/:?(catch|then)\b/, Keyword + + # allow JS parser to handle anything that's not a curly brace + rule %r/[^{}]+/ do + delegate @js + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/swift.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/swift.rb new file mode 100644 index 0000000..96b85c1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/swift.rb @@ -0,0 +1,202 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Swift < RegexLexer + tag 'swift' + filenames '*.swift' + + title "Swift" + desc 'Multi paradigm, compiled programming language developed by Apple for iOS and OS X development. (developer.apple.com/swift)' + + id_head = /_|(?!\p{Mc})\p{Alpha}|[^\u0000-\uFFFF]/ + id_rest = /[\p{Alnum}_]|[^\u0000-\uFFFF]/ + id = /#{id_head}#{id_rest}*/ + + keywords = Set.new %w( + autoreleasepool await break case catch consume continue default defer discard do each else fallthrough guard if in for repeat return switch throw try where while + + as dynamicType is new super self Self Type + + associativity async didSet get infix inout isolated left mutating none nonmutating operator override postfix precedence precedencegroup prefix rethrows right set throws unowned weak willSet + ) + + declarations = Set.new %w( + actor any associatedtype borrowing class consuming deinit distributed dynamic enum convenience extension fileprivate final func import indirect init internal lazy let macro nonisolated open optional package private protocol public required some static struct subscript typealias var + ) + + constants = Set.new %w( + true false nil + ) + + start do + push :bol + @re_delim = "" # multi-line regex delimiter + end + + # beginning of line + state :bol do + rule %r/#(?![#"\/]).*/, Comment::Preproc + + mixin :inline_whitespace + + rule(//) { pop! } + end + + state :inline_whitespace do + rule %r/\s+/m, Text + mixin :has_comments + end + + state :whitespace do + rule %r/\n+/m, Text, :bol + rule %r(\/\/.*?$), Comment::Single, :bol + mixin :inline_whitespace + end + + state :has_comments do + rule %r(/[*]), Comment::Multiline, :nested_comment + end + + state :nested_comment do + mixin :has_comments + rule %r([*]/), Comment::Multiline, :pop! + rule %r([^*/]+)m, Comment::Multiline + rule %r/./, Comment::Multiline + end + + state :root do + mixin :whitespace + + rule %r/\$(([1-9]\d*)?\d)/, Name::Variable + rule %r/\$#{id}/, Name + rule %r/~Copyable\b/, Keyword::Type + + rule %r{[()\[\]{}:;,?\\]}, Punctuation + rule %r{(#*)/(?!\s).*(?<![\s\\])/\1}, Str::Regex + rule %r([-/=+*%<>!&|^.~]+), Operator + rule %r/@?"/, Str, :dq + rule %r/'(\\.|.)'/, Str::Char + rule %r/(\d+(?:_\d+)*\*|(?:\d+(?:_\d+)*)*\.\d+(?:_\d)*)(e[+-]?\d+(?:_\d)*)?/i, Num::Float + rule %r/\d+e[+-]?[0-9]+/i, Num::Float + rule %r/0o?[0-7]+(?:_[0-7]+)*/, Num::Oct + rule %r/0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*((\.[0-9A-F]+(?:_[0-9A-F]+)*)?p[+-]?\d+)?/, Num::Hex + rule %r/0b[01]+(?:_[01]+)*/, Num::Bin + rule %r{[\d]+(?:_\d+)*}, Num::Integer + + rule %r/@#{id}/, Keyword::Declaration + rule %r/##{id}/, Keyword + + rule %r/(private|internal)(\([ ]*)(\w+)([ ]*\))/ do |m| + if m[3] == 'set' + token Keyword::Declaration + else + groups Keyword::Declaration, Keyword::Declaration, Error, Keyword::Declaration + end + end + + rule %r/(unowned\([ ]*)(\w+)([ ]*\))/ do |m| + if m[2] == 'safe' || m[2] == 'unsafe' + token Keyword::Declaration + else + groups Keyword::Declaration, Error, Keyword::Declaration + end + end + + rule %r/(let|var)\b(\s*)(#{id})/ do + groups Keyword, Text, Name::Variable + end + + rule %r/(let|var)\b(\s*)([(])/ do + groups Keyword, Text, Punctuation + push :tuple + end + + rule %r/(?!\b(if|while|for|private|internal|unowned|switch|case)\b)\b#{id}(?=(\?|!)?\s*[(])/ do |m| + if m[0] =~ /^[[:upper:]]/ + token Keyword::Type + else + token Name::Function + end + end + + rule %r/as[?!]?(?=\s)/, Keyword + rule %r/try[!]?(?=\s)/, Keyword + + rule %r/(#?(?!default)(?![[:upper:]])#{id})(\s*)(:)/ do + groups Name::Variable, Text, Punctuation + end + + rule id do |m| + if keywords.include? m[0] + token Keyword + elsif declarations.include? m[0] + token Keyword::Declaration + elsif constants.include? m[0] + token Keyword::Constant + elsif m[0] =~ /^[[:upper:]]/ + token Keyword::Type + else + token Name + end + end + + rule %r/(`)(#{id})(`)/ do + groups Punctuation, Name::Variable, Punctuation + end + + rule %r{(#+)/\n} do |m| + @re_delim = m[1] + token Str::Regex + push :re_multi + end + end + + state :tuple do + rule %r/(#{id})/, Name::Variable + rule %r/(`)(#{id})(`)/ do + groups Punctuation, Name::Variable, Punctuation + end + rule %r/,/, Punctuation + rule %r/[(]/, Punctuation, :push + rule %r/[)]/, Punctuation, :pop! + mixin :inline_whitespace + end + + state :dq do + rule %r/\\[\\0tnr'"]/, Str::Escape + rule %r/\\[(]/, Str::Escape, :interp + rule %r/\\u\{\h{1,8}\}/, Str::Escape + rule %r/[^\\"]+/, Str + rule %r/"""/, Str, :pop! + rule %r/"/, Str, :pop! + end + + state :interp do + rule %r/[(]/, Punctuation, :interp_inner + rule %r/[)]/, Str::Escape, :pop! + mixin :root + end + + state :interp_inner do + rule %r/[(]/, Punctuation, :push + rule %r/[)]/, Punctuation, :pop! + mixin :root + end + + state :re_multi do + rule %r{^\s*/#+} do |m| + token Str::Regex + if m[0].end_with?("/#{@re_delim}") + @re_delim = "" + pop! + end + end + + rule %r/#.*/, Comment::Single + rule %r/./m, Str::Regex + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/systemd.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/systemd.rb new file mode 100644 index 0000000..b414abf --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/systemd.rb @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class SystemD < RegexLexer + tag 'systemd' + aliases 'unit-file' + filenames '*.service' + mimetypes 'text/x-systemd-unit' + desc 'A lexer for systemd unit files' + + state :root do + rule %r/\s+/, Text + rule %r/[;#].*/, Comment + rule %r/\[.*?\]$/, Keyword + rule %r/(.*?)(=)(.*)(\\\n)/ do + groups Name::Tag, Punctuation, Text, Str::Escape + push :continuation + end + rule %r/(.*?)(=)(.*)/ do + groups Name::Tag, Punctuation, Text + end + end + + state :continuation do + rule %r/(.*?)(\\\n)/ do + groups Text, Str::Escape + end + rule %r/(.*)'?/, Text, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/syzlang.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/syzlang.rb new file mode 100644 index 0000000..dbaea03 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/syzlang.rb @@ -0,0 +1,316 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Syzlang < RegexLexer + title "Syzlang" + desc "Syscall description language used by syzkaller" + tag 'syzlang' + + def self.keywords + @keywords ||= Set.new %w( + align breaks_returns dec define disabled hex ignore_return in incdir + include inet inout oct opt out packed parent prog_timeout pseudo + resource size syscall timeout type varlen + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + array bitsize bool16 bool32 bool64 bool8 boolptr buffer bytesize + bytesize2 bytesize4 bytesize8 const csum filename fileoff flags fmt + int16 int16be int32 int32be int64 int64be int8 int8be intptr len + offsetof optional proc ptr ptr64 string stringnoz text vma vma64 void + ) + end + + comment = /#.*$/ + inline_spaces = /[ \t]+/ + spaces = /\s+/ + + state :inline_break do + rule inline_spaces, Text + rule %r//, Text, :pop! + end + + state :space_break do + rule spaces, Text + rule comment, Comment + rule %r//, Text, :pop! + end + + id = /[a-zA-Z_][a-zA-Z0-9_]*/ + num_id = /[a-zA-Z0-9_]+/ + + state :mixin_name do + rule id, Name + end + + state :mixin_number do + rule %r/-?0x[\da-f]+/i, Num::Hex + rule %r/-?\d+/, Num::Integer + rule %r/'[^']?'/, Str::Char + end + + state :mixin_string do + rule %r/"[^"]*"/, Str::Double + rule %r/`[^`]*`/, Str::Backtick + end + + state :mixin_term do + mixin :mixin_number + mixin :mixin_string + + # Keywords. + rule id do |m| + if self.class.keywords.include?(m[0]) + token Keyword + elsif self.class.keywords_type.include?(m[0]) + token Keyword::Type + else + token Name + end + end + + # Ranges. + rule %r/:/, Punctuation + + # "struct$type" struct name format. + rule %r/\$/, Name + end + + state :term_list do + rule spaces, Text + rule comment, Comment + mixin :mixin_term + rule %r/\[/, Punctuation, :term_list + rule %r/,/, Punctuation + rule %r/[\]\)]/, Punctuation, :pop! + end + + state :arg_type do + mixin :mixin_term + rule %r/\[/, Punctuation, :term_list + rule %r//, Text, :pop! + end + + state :include do + rule %r/(<)([^>]+)(>)/ do |m| + groups Punctuation, Str, Punctuation + end + rule %r//, Text, :pop! + end + + state :define_name do + mixin :mixin_name + rule %r//, Text, :pop! + end + + state :define_exp do + mixin :mixin_name + mixin :mixin_number + mixin :mixin_string + rule %r/[~!%\^&\*\-\+\/\|<>\?:]/, Operator + rule %r/[\(\){}\[\];,]/, Punctuation + rule inline_spaces, Text + rule %r//, Text, :pop! + end + + state :resource_name do + mixin :mixin_name + rule %r//, Text, :pop! + end + + state :resource_type do + rule %r/\[/, Punctuation, :arg_type + rule %r/\]/, Punctuation, :pop! + end + + state :resource_values do + rule %r/:/ do + token Punctuation + push :resource_values_list + push :space_break + end + rule %r//, Text, :pop! + end + + state :resource_values_list do + rule inline_spaces, Text + mixin :mixin_name + mixin :mixin_number + mixin :mixin_string + rule %r/,/, Punctuation, :space_break + rule %r//, Text, :pop! + end + + state :flags_list do + rule inline_spaces, Text + rule %r/\./, Punctuation + mixin :mixin_name + mixin :mixin_number + mixin :mixin_string + rule %r/,/, Punctuation, :space_break + rule %r//, Punctuation, :pop! + end + + state :syscall_args do + rule spaces, Text + rule comment, Comment + rule %r/\./, Punctuation + rule id do + token Name + push :arg_type + push :space_break + end + rule %r/,/, Punctuation + rule %r/\)/, Punctuation, :pop! + end + + state :syscall_retval do + mixin :mixin_name + rule %r//, Text, :pop! + end + + state :syscall_mods do + rule %r/\(/, Punctuation, :term_list + rule %r//, Text, :pop! + end + + state :struct_fields do + rule id do + token Name + push :space_break + push :struct_field_mods + push :inline_break + push :arg_type + push :space_break + end + rule %r/[}\]]/, Punctuation, :pop! + end + + state :struct_field_mods do + rule %r/\(/, Punctuation, :term_list + rule %r//, Text, :pop! + end + + state :struct_mods do + rule %r/\[/, Punctuation, :term_list + rule %r//, Text, :pop! + end + + state :type_name do + mixin :mixin_name + rule %r//, Text, :pop! + end + + state :type_args do + rule %r/\[/, Punctuation, :type_args_list + rule %r//, Text, :pop! + end + + state :type_args_list do + rule spaces, Text + rule comment, Comment + mixin :mixin_name + rule %r/,/, Punctuation + rule %r/\]/, Punctuation, :pop! + end + + state :type_body do + rule %r/[{\[]/ do + token Punctuation + pop! + push :space_break + push :struct_mods + push :inline_break + push :struct_fields + push :space_break + end + rule %r// do + pop! + push :arg_type + end + end + + state :root do + # Whitespace. + rule spaces, Text + + # Comments. + rule comment, Comment + + # Includes. + rule %r/(include|incdir)/ do + token Keyword + push :include + push :space_break + end + + # Defines. + rule %r/define/ do + token Keyword + push :define_exp + push :space_break + push :define_name + push :space_break + end + + # Resources. + rule %r/resource/ do + token Keyword + push :resource_values + push :inline_break + push :resource_type + push :inline_break + push :resource_name + push :space_break + end + + # Flags and strings. + rule %r/(#{id}|_)(#{spaces})(=)/ do |m| + if m[1] == "_" + groups Keyword, Text, Punctuation + else + groups Name, Text, Punctuation + end + push :flags_list + push :space_break + end + + # Syscalls. + rule %r/(#{id})(\$)?(#{num_id})?(#{spaces})?(\()/ do |m| + groups Name::Function, Punctuation, Name::Function::Magic, Text, Punctuation + push :syscall_mods + push :inline_break + push :syscall_retval + push :inline_break + push :syscall_args + push :space_break + end + + # Structs and unions. + rule %r/(#{id}|#{id}\$#{num_id})(#{spaces})?([{\[])/ do |m| + groups Name, Text, Punctuation + push :inline_break + push :struct_mods + push :inline_break + push :struct_fields + push :space_break + end + + # Types. + rule %r/type/ do + token Keyword + push :type_body + push :space_break + push :type_args + push :type_name + push :space_break + end + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/syzprog.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/syzprog.rb new file mode 100644 index 0000000..8cbcace --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/syzprog.rb @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Syzprog < RegexLexer + title "Syzprog" + desc "Program description language used by syzkaller" + tag 'syzprog' + + def self.keywords + @keywords ||= Set.new %w( + ANY ANYBLOB ANYPTR ANYPTR64 ANYPTRS ANYRES16 ANYRES32 ANYRES64 + ANYRESDEC ANYRESHEX ANYRESOCT ANYUNION AUTO false nil true void + async fail_nth rerun + ) + end + + comment = /#.*$/ + inline_spaces = /[ \t]+/ + eol_spaces = /[\n\r]+/ + spaces = /\s+/ + + id = /[a-zA-Z_][a-zA-Z0-9_]*/ + num_id = /[a-zA-Z0-9_]+/ + res_id = /r[0-9]+/ + + state :inline_break do + rule inline_spaces, Text + rule %r//, Text, :pop! + end + + state :eol_break do + rule eol_spaces, Text + rule comment, Comment + rule %r//, Text, :pop! + end + + state :space_break do + rule spaces, Text + rule comment, Comment + rule %r//, Text, :pop! + end + + state :mixin_number do + rule %r/-?0x[\da-f]+/i, Num::Hex + rule %r/-?\d+/, Num::Integer + end + + state :mixin_string do + rule %r/"[^"]*"/, Str::Double + rule %r/`[^`]*`/, Str::Backtick + rule %r/'[^']*'/, Str::Single + end + + state :mixin_term do + mixin :mixin_number + mixin :mixin_string + + rule %r/#{res_id}/, Keyword::Pseudo + rule id do |m| + if self.class.keywords.include?(m[0]) + token Keyword + else + token Name + end + end + end + + state :mods_list do + rule spaces, Text + rule comment, Comment + mixin :mixin_term + rule %r/[,:]/, Punctuation + rule %r/\)/, Punctuation, :pop! + end + + state :syscall_mods do + rule %r/\(/, Punctuation, :mods_list + rule %r//, Text, :pop! + end + + state :syscall_args do + rule spaces, Text + rule comment, Comment + mixin :mixin_term + mixin :mixin_number + mixin :mixin_string + # This punctuation is a part of the syntax: + rule %r/[@&=,<>{}\[\]]/, Punctuation + # This punctuation is not, highlight just in case: + rule %r/[!#\$%\^\*\-\+\/\|~:;.\?]/, Punctuation + rule %r/\(/, Punctuation, :syscall_args + rule %r/\)/, Punctuation, :pop! + end + + state :root do + # Whitespace. + rule spaces, Text + + # Comments. + rule comment, Comment + + # Return values. + rule %r/(#{res_id})(#{spaces})(=)/ do + groups Keyword::Pseudo, Text, Punctuation + end + + # Syscalls. + rule %r/(#{id})(\$)?(#{num_id})?(#{spaces})?(\()/ do |m| + groups Name::Function, Punctuation, Name::Function::Magic, Text, Punctuation + push :syscall_mods + push :inline_break + push :syscall_args + push :space_break + end + + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tap.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tap.rb new file mode 100644 index 0000000..5fab7fa --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tap.rb @@ -0,0 +1,88 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + class Tap < RegexLexer + title 'TAP' + desc 'Test Anything Protocol' + tag 'tap' + aliases 'tap' + filenames '*.tap' + + mimetypes 'text/x-tap', 'application/x-tap' + + state :root do + # A TAP version may be specified. + rule %r/^TAP version \d+\n/, Name::Namespace + + # Specify a plan with a plan line. + rule %r/^1\.\.\d+/, Keyword::Declaration, :plan + + # A test failure + rule %r/^(not ok)([^\S\n]*)(\d*)/ do + groups Generic::Error, Text, Literal::Number::Integer + push :test + end + + # A test success + rule %r/^(ok)([^\S\n]*)(\d*)/ do + groups Keyword::Reserved, Text, Literal::Number::Integer + push :test + end + + # Diagnostics start with a hash. + rule %r/^#.*\n/, Comment + + # TAP's version of an abort statement. + rule %r/^Bail out!.*\n/, Generic::Error + + # # TAP ignores any unrecognized lines. + rule %r/^.*\n/, Text + end + + state :plan do + # Consume whitespace (but not newline). + rule %r/[^\S\n]+/, Text + + # A plan may have a directive with it. + rule %r/#/, Comment, :directive + + # Or it could just end. + rule %r/\n/, Comment, :pop! + + # Anything else is wrong. + rule %r/.*\n/, Generic::Error, :pop! + end + + state :test do + # Consume whitespace (but not newline). + rule %r/[^\S\n]+/, Text + + # A test may have a directive with it. + rule %r/#/, Comment, :directive + + rule %r/\S+/, Text + + rule %r/\n/, Text, :pop! + end + + state :directive do + # Consume whitespace (but not newline). + rule %r/[^\S\n]+/, Comment + + # Extract todo items. + rule %r/(?i)\bTODO\b/, Comment::Preproc + + # Extract skip items. + rule %r/(?i)\bSKIP\S*/, Comment::Preproc + + rule %r/\S+/, Comment + + rule %r/\n/ do + token Comment + pop! 2 + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tcl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tcl.rb new file mode 100644 index 0000000..1bc6c86 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tcl.rb @@ -0,0 +1,198 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class TCL < RegexLexer + title "Tcl" + desc "The Tool Command Language (tcl.tk)" + tag 'tcl' + filenames '*.tcl' + mimetypes 'text/x-tcl', 'text/x-script.tcl', 'application/x-tcl' + + def self.detect?(text) + return true if text.shebang? 'tclsh' + return true if text.shebang? 'wish' + return true if text.shebang? 'jimsh' + end + + KEYWORDS = %w( + after apply array break catch continue elseif else error + eval expr for foreach global if namespace proc rename return + set switch then trace unset update uplevel upvar variable + vwait while + ) + + BUILTINS = %w( + append bgerror binary cd chan clock close concat dde dict + encoding eof exec exit fblocked fconfigure fcopy file + fileevent flush format gets glob history http incr info interp + join lappend lassign lindex linsert list llength load loadTk + lrange lrepeat lreplace lreverse lsearch lset lsort mathfunc + mathop memory msgcat open package pid pkg::create pkg_mkIndex + platform platform::shell puts pwd re_syntax read refchan + regexp registry regsub scan seek socket source split string + subst tell time tm unknown unload + ) + + OPEN = %w| \( \[ \{ " | + CLOSE = %w| \) \] \} | + ALL = OPEN + CLOSE + END_LINE = CLOSE + %w(; \n) + END_WORD = END_LINE + %w(\r \t \v) + + CHARS = lambda { |list| Regexp.new %/[#{list.join}]/ } + NOT_CHARS = lambda { |list| Regexp.new %/[^#{list.join}]/ } + + state :word do + rule %r/\{\*\}/, Keyword + + mixin :brace_abort + mixin :interp + rule %r/\{/, Punctuation, :brace + rule %r/\(/, Punctuation, :paren + rule %r/"/, Str::Double, :string + rule %r/#{NOT_CHARS[END_WORD]}+?(?=#{CHARS[OPEN+['\\\\']]})/, Text + end + + def self.gen_command_state(name='') + state(:"command#{name}") do + rule %r/#/, Comment, :comment + + mixin :word + + rule %r/(?=#{CHARS[END_WORD]})/ do + push :"params#{name}" + end + + rule %r/#{NOT_CHARS[END_WORD]}+/ do |m| + if KEYWORDS.include? m[0] + token Keyword + elsif BUILTINS.include? m[0] + token Name::Builtin + else + token Text + end + end + + mixin :whitespace + end + end + + def self.gen_delimiter_states(name, close, opts={}) + gen_command_state("_in_#{name}") + + state :"params_in_#{name}" do + rule close do + token Punctuation + pop! 2 + end + + # mismatched delimiters. Braced strings with mismatched + # closing delimiters should be okay, since this is standard + # practice, like {]]]]} + if opts[:strict] + rule CHARS[CLOSE - [close]], Error + else + rule CHARS[CLOSE - [close]], Text + end + + mixin :params + end + + state name do + rule close, Punctuation, :pop! + mixin :"command_in_#{name}" + end + end + + + # tcl is freaking impossible. If we're in braces and we encounter + # a close brace, we have to drop everything and close the brace. + # This is so silly things like {abc"def} and {abc]def} don't b0rk + # everything after them. + + # TODO: TCL seems to have this aborting behavior quite a lot. + # such things as [ abc" ] are a runtime error, but will still + # parse. Currently something like this will muck up the lex. + state :brace_abort do + rule %r/}/ do + if in_state? :brace + pop! until state? :brace + pop! + token Punctuation + else + token Error + end + end + end + + state :params do + rule %r/;/, Punctuation, :pop! + rule %r/\n/, Text, :pop! + rule %r/else|elseif|then/, Keyword + mixin :word + mixin :whitespace + rule %r/#{NOT_CHARS[END_WORD]}+/, Text + end + + gen_delimiter_states :brace, /\}/, :strict => false + gen_delimiter_states :paren, /\)/, :strict => true + gen_delimiter_states :bracket, /\]/, :strict => true + gen_command_state + + state :root do + mixin :command + end + + state :whitespace do + # not a multiline regex because we want to capture \n sometimes + rule %r/\s+/, Text + end + + state :interp do + rule %r/\[/, Punctuation, :bracket + rule %r/\$[a-z0-9.:-]+/, Name::Variable + rule %r/\$\{.*?\}/m, Name::Variable + rule %r/\$/, Text + + # escape sequences + rule %r/\\[0-7]{3}/, Str::Escape + rule %r/\\x[0-9a-f]{2}/i, Str::Escape + rule %r/\\u[0-9a-f]{4}/i, Str::Escape + rule %r/\\./m, Str::Escape + end + + state :comment do + rule %r/.*[^\\]\n/, Comment, :pop! + rule %r/.*\\\n/, Comment + end + + state :string do + rule %r/"/, Str::Double, :pop! + mixin :interp + rule %r/[^\\\[\$"{}]+/m, Str::Double + + # strings have to keep count of their internal braces, to support + # for example { "{ }" }. + rule %r/{/ do + @brace_count ||= 0 + @brace_count += 1 + + token Str::Double + end + + rule %r/}/ do + if in_state? :brace and @brace_count.to_i == 0 + pop! until state? :brace + pop! + token Punctuation + else + @brace_count -= 1 + token Str::Double + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/terraform.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/terraform.rb new file mode 100644 index 0000000..2a26a6d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/terraform.rb @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'hcl.rb' + + class Terraform < Hcl + title "Terraform" + desc "Terraform HCL Interpolations" + + tag 'terraform' + aliases 'tf' + filenames '*.tf' + + def self.keywords + @keywords ||= Set.new %w( + terraform module provider variable resource data provisioner output + ) + end + + def self.declarations + @declarations ||= Set.new %w( + var local + ) + end + + def self.reserved + @reserved ||= Set.new %w() + end + + def self.constants + @constants ||= Set.new %w(true false null) + end + + def self.builtins + @builtins ||= %w() + end + + state :strings do + rule %r/\\./, Str::Escape + rule %r/(\$[\$]+|%[%]+)(\{)/, Str + rule %r/\$\{/ do + token Punctuation + push :interpolation + end + end + + state :dq do + rule %r/[^\\"\$]+/, Str::Double + mixin :strings + rule %r/"/, Str::Double, :pop! + end + + state :sq do + rule %r/[^\\'\$]+/, Str::Single + mixin :strings + rule %r/'/, Str::Single, :pop! + end + + state :heredoc do + rule %r/\n/, Str::Heredoc, :heredoc_nl + rule %r/[^$\n]+/, Str::Heredoc + rule %r/[$]/, Str::Heredoc + mixin :strings + end + + state :interpolation do + rule %r/\}/ do + token Punctuation + pop! + end + + mixin :expression + end + + state :regexps do + rule %r/"\// do + token Str::Delimiter + goto :regexp_inner + end + end + + state :regexp_inner do + rule %r/[^"\/\\]+/, Str::Regex + rule %r/\\./, Str::Regex + rule %r/\/"/, Str::Delimiter, :pop! + rule %r/["\/]/, Str::Regex + end + + id = /[$a-z_\-][a-z0-9_\-]*/io + + state :expression do + mixin :regexps + mixin :primitives + rule %r/\s+/, Text + + rule %r(\+\+ | -- | ~ | && | \|\| | \\(?=\n) | << | >>>? | == | != )x, Operator + rule %r([-<>+*%&|\^/!=?:]=?), Operator + rule %r/[(\[,]/, Punctuation + rule %r/[)\].]/, Punctuation + + rule id do |m| + if self.class.keywords.include? m[0] + token Keyword + elsif self.class.declarations.include? m[0] + token Keyword::Declaration + elsif self.class.reserved.include? m[0] + token Keyword::Reserved + elsif self.class.constants.include? m[0] + token Keyword::Constant + elsif self.class.builtins.include? m[0] + token Name::Builtin + else + token Name::Other + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tex.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tex.rb new file mode 100644 index 0000000..52f4f58 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tex.rb @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class TeX < RegexLexer + title "TeX" + desc "The TeX typesetting system" + tag 'tex' + aliases 'TeX', 'LaTeX', 'latex' + + filenames '*.tex', '*.aux', '*.toc', '*.sty', '*.cls' + mimetypes 'text/x-tex', 'text/x-latex' + + def self.detect?(text) + return true if text =~ /\A\s*\\(documentclass|input|documentstyle|relax|ProvidesPackage|ProvidesClass)/ + end + + command = /\\([a-z]+|\s+|.)/i + + state :general do + rule %r/%.*$/, Comment + rule %r/[{}&_^]/, Punctuation + end + + state :root do + rule %r/\\\[/, Punctuation, :displaymath + rule %r/\\\(/, Punctuation, :inlinemath + rule %r/\$\$/, Punctuation, :displaymath + rule %r/\$/, Punctuation, :inlinemath + rule %r/\\(begin|end)\{.*?\}/, Name::Tag + + rule %r/(\\verb)\b(\S)(.*?)(\2)/ do + groups Name::Builtin, Keyword::Pseudo, Str::Other, Keyword::Pseudo + end + + rule command, Keyword, :command + mixin :general + rule %r/[^\\$%&_^{}]+/, Text + end + + state :math do + rule command, Name::Variable + mixin :general + rule %r/[0-9]+/, Num + rule %r/[-=!+*\/()\[\]]/, Operator + rule %r/[^=!+*\/()\[\]\\$%&_^{}0-9-]+/, Name::Builtin + end + + state :inlinemath do + rule %r/\\\)/, Punctuation, :pop! + rule %r/\$/, Punctuation, :pop! + mixin :math + end + + state :displaymath do + rule %r/\\\]/, Punctuation, :pop! + rule %r/\$\$/, Punctuation, :pop! + rule %r/\$/, Name::Builtin + mixin :math + end + + state :command do + rule %r/\[.*?\]/, Name::Attribute + rule %r/\*/, Keyword + rule(//) { pop! } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/toml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/toml.rb new file mode 100644 index 0000000..a3e5ae1 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/toml.rb @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class TOML < RegexLexer + title "TOML" + desc 'the TOML configuration format (https://github.com/toml-lang/toml)' + tag 'toml' + + filenames '*.toml', 'Pipfile', 'poetry.lock' + mimetypes 'text/x-toml' + + # bare keys and quoted keys + identifier = %r/(?:\S+|"[^"]+"|'[^']+')/ + + state :basic do + rule %r/\s+/, Text + rule %r/#.*?$/, Comment + rule %r/(true|false)/, Keyword::Constant + + rule %r/(#{identifier})(\s*)(=)(\s*)(\{)/ do + groups Name::Property, Text, Operator, Text, Punctuation + push :inline + end + end + + state :root do + mixin :basic + + rule %r/(?<!=)\s*\[.*?\]+/, Name::Namespace + + rule %r/(#{identifier})(\s*)(=)/ do + groups Name::Property, Text, Punctuation + push :value + end + end + + state :value do + rule %r/\n/, Text, :pop! + mixin :content + end + + state :content do + mixin :basic + + rule %r/(#{identifier})(\s*)(=)/ do + groups Name::Property, Text, Punctuation + end + + rule %r/\d{4}-\d{2}-\d{2}(?:[Tt ]\d{2}:\d{2}:\d{2}(?:[Zz]|[+-]\d{2}:\d{2})?)?/, Literal::Date + rule %r/\d{2}:\d{2}:\d{2}/, Literal::Date + + rule %r/[+-]?\d+(?:_\d+)*\.\d+(?:_\d+)*(?:[eE][+-]?\d+(?:_\d+)*)?/, Num::Float + rule %r/[+-]?\d+(?:_\d+)*[eE][+-]?\d+(?:_\d+)*/, Num::Float + rule %r/[+-]?(?:nan|inf)/, Num::Float + + rule %r/0x\h+(?:_\h+)*/, Num::Hex + rule %r/0o[0-7]+(?:_[0-7]+)*/, Num::Oct + rule %r/0b[01]+(?:_[01]+)*/, Num::Bin + rule %r/[+-]?\d+(?:_\d+)*/, Num::Integer + + rule %r/"""/, Str, :mdq + rule %r/"/, Str, :dq + rule %r/'''/, Str, :msq + rule %r/'/, Str, :sq + mixin :esc_str + rule %r/\,/, Punctuation + rule %r/\[/, Punctuation, :array + end + + state :dq do + rule %r/"/, Str, :pop! + rule %r/\n/, Error, :pop! + mixin :esc_str + rule %r/[^\\"\n]+/, Str + end + + state :mdq do + rule %r/"""/, Str, :pop! + mixin :esc_str + rule %r/[^\\"]+/, Str + rule %r/"+/, Str + end + + state :sq do + rule %r/'/, Str, :pop! + rule %r/\n/, Error, :pop! + rule %r/[^'\n]+/, Str + end + + state :msq do + rule %r/'''/, Str, :pop! + rule %r/[^']+/, Str + rule %r/'+/, Str + end + + state :esc_str do + rule %r/\\[0t\tn\n "\\r]/, Str::Escape + end + + state :array do + mixin :content + rule %r/\]/, Punctuation, :pop! + end + + state :inline do + mixin :content + + rule %r/\}/, Punctuation, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tsx.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tsx.rb new file mode 100644 index 0000000..e003bfb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tsx.rb @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'jsx.rb' + load_lexer 'typescript/common.rb' + + class TSX < JSX + extend TypescriptCommon + + title 'TSX' + desc 'TypeScript-compatible JSX (www.typescriptlang.org/docs/handbook/jsx.html)' + + tag 'tsx' + filenames '*.tsx' + + prepend :element_name do + rule %r/(\w+)(,)/ do + groups Name::Other, Punctuation + pop! 3 + end + + rule %r/</, Punctuation, :type + end + + state :type do + mixin :object + rule %r/>/, Punctuation, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ttcn3.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ttcn3.rb new file mode 100644 index 0000000..6ccac4e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/ttcn3.rb @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class TTCN3 < RegexLexer + title "TTCN3" + desc "The TTCN3 programming language (ttcn-3.org)" + + tag 'ttcn3' + filenames '*.ttcn', '*.ttcn3' + mimetypes 'text/x-ttcn3', 'text/x-ttcn' + + def self.keywords + @keywords ||= %w( + module import group type port component signature external + execute const template function altstep testcase var timer if + else select case for while do label goto start stop return + break int2char int2unichar int2bit int2enum int2hex int2oct + int2str int2float float2int char2int char2oct unichar2int + unichar2oct bit2int bit2hex bit2oct bit2str hex2int hex2bit + hex2oct hex2str oct2int oct2bit oct2hex oct2str oct2char + oct2unichar str2int str2hex str2oct str2float enum2int + any2unistr lengthof sizeof ispresent ischosen isvalue isbound + istemplatekind regexp substr replace encvalue decvalue + encvalue_unichar decvalue_unichar encvalue_o decvalue_o + get_stringencoding remove_bom rnd hostid send receive + setverdict + ) + end + + def self.reserved + @reserved ||= %w( + all alt apply assert at configuration conjunct const control + delta deterministic disjunct duration fail finished fuzzy from + history implies inconc inv lazy mod mode notinv now omit + onentry onexit par pass prev realtime seq setstate static + stepsize stream timestamp until values wait + ) + end + + def self.types + @types ||= %w( + anytype address boolean bitstring charstring hexstring octetstring + component enumerated float integer port record set of union universal + ) + end + + id = /[a-zA-Z_]\w*/ + digit = /\d_+\d|\d/ + bin_digit = /[01]_+[01]|[01]/ + oct_digit = /[0-7]_+[0-7]|[0-7]/ + hex_digit = /\h_+\h|\h/ + + state :statements do + rule %r/\n+/m, Text + rule %r/[ \t\r]+/, Text + rule %r/\\\n/, Text # line continuation + + rule %r(//(\\.|.)*?$), Comment::Single + rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline + + rule %r/"/, Str, :string + rule %r/'(?:\\.|[^\\]|\\u[0-9a-f]{4})'/, Str::Char + + rule %r/#{digit}+\.#{digit}+([eE]#{digit}+)?[fd]?/i, Num::Float + rule %r/'#{bin_digit}+'B/i, Num::Bin + rule %r/'#{hex_digit}+'H/i, Num::Hex + rule %r/'#{oct_digit}+'O/i, Num::Oct + rule %r/#{digit}+/i, Num::Integer + + rule %r([~!%^&*+:=\|?<>/-]), Operator + rule %r/[()\[\]{},.;:]/, Punctuation + + rule %r/(?:true|false|null)\b/, Name::Builtin + + rule id do |m| + name = m[0] + if self.class.keywords.include? name + token Keyword + elsif self.class.types.include? name + token Keyword::Type + elsif self.class.reserved.include? name + token Keyword::Reserved + else + token Name + end + end + end + + state :root do + rule %r/module\b/, Keyword::Declaration, :module + rule %r/import\b/, Keyword::Namespace, :import + + mixin :statements + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape + rule %r/[^\\"\n]+/, Str + rule %r/\\\n/, Str + rule %r/\\/, Str # stray backslash + end + + state :module do + rule %r/\s+/m, Text + rule id, Name::Class, :pop! + end + + state :import do + rule %r/\s+/m, Text + rule %r/[\w.]+\*?/, Name::Namespace, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tulip.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tulip.rb new file mode 100644 index 0000000..9767bcb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/tulip.rb @@ -0,0 +1,107 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + class Tulip < RegexLexer + desc 'the tulip programming language (twitter.com/tuliplang)' + tag 'tulip' + aliases 'tulip' + + filenames '*.tlp' + + mimetypes 'text/x-tulip', 'application/x-tulip' + + def self.detect?(text) + return true if text.shebang? 'tulip' + end + + id = /[a-z][\w-]*/i + upper_id = /[A-Z][\w-]*/ + + state :comments_and_whitespace do + rule %r/\s+/, Text + rule %r/#.*?$/, Comment + end + + state :root do + mixin :comments_and_whitespace + + rule %r/@#{id}/, Keyword + + + rule %r/(\\#{id})([{])/ do + groups Name::Function, Str + push :nested_string + end + + rule %r/([+]#{id})([{])/ do + groups Name::Decorator, Str + push :nested_string + end + + rule %r/\\#{id}/, Name::Function + rule %r/[+]#{id}/, Name::Decorator + + rule %r/"[{]/, Str, :dqi + rule %r/"/, Str, :dq + + rule %r/'{/, Str, :nested_string + rule %r/'#{id}/, Str + + rule %r/[.]#{id}/, Name::Tag + rule %r/[$]#{id}?/, Name::Variable + rule %r/-#{id}:?/, Name::Label + rule %r/%#{id}/, Name::Function + rule %r/`#{id}/, Operator::Word + + rule %r/[?~%._>,!\[\]:{}()=;\/-]/, Punctuation + + rule %r/[0-9]+([.][0-9]+)?/, Num + + rule %r/#{id}/, Name + + rule %r/</, Comment::Preproc, :angle_brackets + end + + state :dq do + rule %r/[^\\"]+/, Str + rule %r/"/, Str, :pop! + rule %r/\\./, Str::Escape + end + + state :dqi do + rule %r/[$][(]/, Str::Interpol, :interp_root + rule %r/[{]/, Str, :dqi + rule %r/[}]/, Str, :pop! + rule %r/[^{}$]+/, Str + rule %r/./, Str + end + + state :interp_root do + rule %r/[)]/, Str::Interpol, :pop! + mixin :interp + end + + state :interp do + rule %r/[(]/, Punctuation, :interp + rule %r/[)]/, Punctuation, :pop! + mixin :root + end + + state :nested_string do + rule %r/\\./, Str::Escape + rule(/{/) { token Str; push :nested_string } + rule(/}/) { token Str; pop! } + rule(/[^{}\\]+/) { token Str } + end + + state :angle_brackets do + mixin :comments_and_whitespace + rule %r/>/, Comment::Preproc, :pop! + rule %r/[*:]/, Punctuation + rule %r/#{upper_id}/, Keyword::Type + rule %r/#{id}/, Name::Variable + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/turtle.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/turtle.rb new file mode 100644 index 0000000..46d5f4c --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/turtle.rb @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Turtle < RegexLexer + title "Turtle/TriG" + desc "Terse RDF Triple Language, TriG" + tag 'turtle' + filenames '*.ttl', '*.trig' + mimetypes 'text/turtle', 'application/trig' + + state :root do + rule %r/@base\b/, Keyword::Declaration + rule %r/@prefix\b/, Keyword::Declaration + rule %r/true\b/, Keyword::Constant + rule %r/false\b/, Keyword::Constant + + rule %r/""".*?"""/m, Literal::String + rule %r/"([^"\\]|\\.)*"/, Literal::String + rule %r/'''.*?'''/m, Literal::String + rule %r/'([^'\\]|\\.)*'/, Literal::String + + rule %r/#.*$/, Comment::Single + + rule %r/@[^\s,.;]+/, Name::Attribute + + rule %r/[+-]?[0-9]+\.[0-9]*E[+-]?[0-9]+/, Literal::Number::Float + rule %r/[+-]?\.[0-9]+E[+-]?[0-9]+/, Literal::Number::Float + rule %r/[+-]?[0-9]+E[+-]?[0-9]+/, Literal::Number::Float + + rule %r/[+-]?[0-9]*\.[0-9]+?/, Literal::Number::Float + + rule %r/[+-]?[0-9]+/, Literal::Number::Integer + + rule %r/\./, Punctuation + rule %r/,/, Punctuation + rule %r/;/, Punctuation + rule %r/\(/, Punctuation + rule %r/\)/, Punctuation + rule %r/\{/, Punctuation + rule %r/\}/, Punctuation + rule %r/\[/, Punctuation + rule %r/\]/, Punctuation + rule %r/\^\^/, Punctuation + + rule %r/<[^>]*>/, Name::Label + + rule %r/base\b/i, Keyword::Declaration + rule %r/prefix\b/i, Keyword::Declaration + rule %r/GRAPH\b/, Keyword + rule %r/a\b/, Keyword + + rule %r/\s+/, Text::Whitespace + + rule %r/[^:;<>#\@"\(\).\[\]\{\} ]*:/, Name::Namespace + rule %r/[^:;<>#\@"\(\).\[\]\{\} ]+/, Name + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/twig.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/twig.rb new file mode 100644 index 0000000..036ee38 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/twig.rb @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'jinja.rb' + + class Twig < Jinja + title "Twig" + desc "Twig template engine (twig.sensiolabs.org)" + + tag "twig" + + filenames '*.twig' + + mimetypes 'application/x-twig', 'text/html+twig' + + def self.keywords + @keywords ||= %w(as do extends flush from import include use else starts + ends with without autoescape endautoescape block + endblock embed endembed filter endfilter for endfor + if endif macro endmacro sandbox endsandbox set endset + spaceless endspaceless) + end + + def self.tests + @tests ||= %w(constant defined divisibleby empty even iterable null odd + sameas) + end + + def self.pseudo_keywords + @pseudo_keywords ||= %w(true false none) + end + + def self.word_operators + @word_operators ||= %w(b-and b-or b-xor is in and or not) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/typescript.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/typescript.rb new file mode 100644 index 0000000..79a104b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/typescript.rb @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'javascript.rb' + load_lexer 'typescript/common.rb' + + class Typescript < Javascript + extend TypescriptCommon + + title "TypeScript" + desc "TypeScript, a superset of JavaScript (https://www.typescriptlang.org/)" + + tag 'typescript' + aliases 'ts' + + filenames '*.ts', '*.d.ts', '*.cts', '*.mts' + + mimetypes 'text/typescript' + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/typescript/common.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/typescript/common.rb new file mode 100644 index 0000000..ec45efc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/typescript/common.rb @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + module TypescriptCommon + def keywords + @keywords ||= super + Set.new(%w( + is namespace static private protected public + implements readonly + )) + end + + def declarations + @declarations ||= super + Set.new(%w( + type abstract + )) + end + + def reserved + @reserved ||= super + Set.new(%w( + string any void number namespace module + declare default interface keyof + )) + end + + def builtins + @builtins ||= super + %w( + Capitalize ConstructorParameters Exclude Extract InstanceType + Lowercase NonNullable Omit OmitThisParameter Parameters + Partial Pick Readonly Record Required + ReturnType ThisParameterType ThisType Uncapitalize Uppercase + ) + end + + def self.extended(base) + base.prepend :root do + rule %r/[?][.]/, base::Punctuation + rule %r/[?]{2}/, base::Operator + + # Positive Examples: + # const cat = { name: "Garfield" } satisfies Person; + # import {something as thingy} from 'module' + # export { foo as default } + # ...spreadOperator as const; + # Negative Example: + # cy.get('kitten').as('friend') + rule %r{(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))(?:(as)|(satisfies))\s+}, base::Keyword::Declaration + end + + base.prepend :statement do + rule %r/(#{Javascript.id_regex})(\??)(\s*)(:)/ do + groups base::Name::Label, base::Punctuation, base::Text, base::Punctuation + push :expr_start + end + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vala.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vala.rb new file mode 100644 index 0000000..0ad0d6f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vala.rb @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Vala < RegexLexer + tag 'vala' + filenames '*.vala', '*.vapi' + mimetypes 'text/x-vala' + + title "Vala" + desc 'A programming language similar to csharp.' + + id = /@?[_a-z]\w*/i + + keywords = %w( + abstract as async base break case catch const construct continue + default delegate delete do dynamic else ensures enum errordomain + extern false finally for foreach get global if in inline interface + internal is lock new null out override owned private protected + public ref requires return set signal sizeof static switch this + throw throws true try typeof unowned var value virtual void weak + while yield + ) + + keywords_type = %w( + bool char double float int int8 int16 int32 int64 long short size_t + ssize_t string unichar uint uint8 uint16 uint32 uint64 ulong ushort + ) + + state :whitespace do + rule %r/\s+/m, Text + rule %r(//.*?$), Comment::Single + rule %r(/[*].*?[*]/)m, Comment::Multiline + end + + state :root do + mixin :whitespace + + rule %r/^\s*\[.*?\]/, Name::Attribute + + rule %r/(<\[)\s*(#{id}:)?/, Keyword + rule %r/\]>/, Keyword + + rule %r/[~!%^&*()+=|\[\]{}:;,.<>\/?-]/, Punctuation + rule %r/@"(\\.|.)*?"/, Str + rule %r/"(\\.|.)*?["\n]/, Str + rule %r/'(\\.|.)'/, Str::Char + rule %r/0x[0-9a-f]+[lu]?/i, Num + rule %r( + [0-9] + ([.][0-9]*)? # decimal + (e[+-][0-9]+)? # exponent + [fldu]? # type + )ix, Num + rule %r/\b(#{keywords.join('|')})\b/, Keyword + rule %r/\b(#{keywords_type.join('|')})\b/, Keyword::Type + rule %r/class|struct/, Keyword, :class + rule %r/namespace|using/, Keyword, :namespace + rule %r/#{id}(?=\s*[(])/, Name::Function + rule id, Name + + rule %r/#.*/, Comment::Preproc + end + + state :class do + mixin :whitespace + rule id, Name::Class, :pop! + end + + state :namespace do + mixin :whitespace + rule %r/(?=[(])/, Text, :pop! + rule %r/(#{id}|[.])+/, Name::Namespace, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/varnish.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/varnish.rb new file mode 100644 index 0000000..07c0c67 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/varnish.rb @@ -0,0 +1,168 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Varnish < RegexLexer + title 'VCL: Varnish Configuration Language' + desc 'The configuration language for Varnish HTTP Cache (varnish-cache.org)' + + tag 'vcl' + aliases 'varnishconf', 'varnish' + filenames '*.vcl' + mimetypes 'text/x-varnish', 'text/x-vcl' + + SPACE = '[ \f\n\r\t\v]+' + + # backend acl + def self.keywords + @keywords ||= Set.new %w[ + vcl set unset include import if else elseif elif elsif director probe + backend acl + + declare local + BOOL FLOAT INTEGER IP RTIME STRING TIME + ] + end + + def self.functions + @functions ||= Set.new %w[ + ban call hash_data new regsub regsuball return rollback + std.cache_req_body std.collect std.duration std.fileread std.healthy + std.integer std.ip std.log std.port std.querysort std.random std.real + std.real2time std.rollback std.set_ip_tos std.strstr std.syslog + std.time std.time2integer std.time2real std.timestamp std.tolower + std.toupper synth synthetic + ] + end + + def self.variables + @variables ||= Set.new %w[ + bereq bereq.backend bereq.between_bytes_timeout bereq.connect_timeout + bereq.first_byte_timeout bereq.method bereq.proto bereq.retries + bereq.uncacheable bereq.url bereq.xid beresp beresp.age + beresp.backend beresp.backend.ip beresp.backend.name beresp.do_esi + beresp.do_gunzip beresp.do_gzip beresp.do_stream beresp.grace + beresp.keep beresp.proto beresp.reason beresp.status + beresp.storage_hint beresp.ttl beresp.uncacheable beresp.was_304 + client.identity client.ip local.ip now obj.age obj.grace obj.hits + obj.keep obj.proto obj.reason obj.status obj.ttl obj.uncacheable + remote.ip req req.backend_hint req.can_gzip req.esi req.esi_level + req.hash_always_miss req.hash_ignore_busy req.method req.proto + req.restarts req.ttl req.url req.xid resp resp.proto resp.reason + resp.status server.hostname server.identity server.ip + ] + end + + # This is never used + # def self.routines + # @routines ||= Set.new %w[ + # backend_error backend_fetch backend_response purge deliver fini hash + # hit init miss pass pipe recv synth + # ] + # end + + state :root do + # long strings ({" ... "}) + rule %r/\{".*?"}/m, Str::Single + + # heredoc style long strings ({xyz"..."xyz}) + rule %r/\{(\w+)".*?"(\1)\}/m, Str::Single + + # comments + rule %r'/\*.*?\*/'m, Comment::Multiline + rule %r'(?://|#).*', Comment::Single + + rule %r/true|false/, Keyword::Constant + + # "wildcard variables" + var_prefix = Regexp.union(%w(beresp bereq resp req obj)) + rule %r/(?:#{var_prefix})\.http\.[\w.-]+/ do + token Name::Variable + end + + # local variables (var.*) + rule %r/(?:var)\.[\w.-]+/ do + token Name::Variable + end + + rule %r/(sub)(#{SPACE})([\w-]+)/ do + groups Keyword, Text, Name::Function + end + + # inline C (C{ ... }C) + rule %r/C\{/ do + token Comment::Preproc + push :inline_c + end + + rule %r/\.?[a-z_][\w.-]*/i do |m| + next token Keyword if self.class.keywords.include? m[0] + next token Name::Function if self.class.functions.include? m[0] + next token Name::Variable if self.class.variables.include? m[0] + token Text + end + + ## for number literals + + decimal = %r/[0-9]+/ + hex = %r/[0-9a-f]+/i + + numeric = %r{ + (?: + 0x#{hex} + (?:\.#{hex})? + (?:p[+-]?#{hex})? + ) + | + (?: + #{decimal} + (?:\.#{decimal})? + (?:e[+-]?#{decimal})? + ) + }xi + + # duration literals + duration_suffix = Regexp.union(%w(ms s m h d w y)) + rule %r/#{numeric}#{duration_suffix}/, Num::Other + + # numeric literals (integer / float) + rule numeric do |m| + case m[0] + when /^#{decimal}$/ + token Num::Integer + when /^0x#{hex}$/ + token Num::Integer + else + token Num::Float + end + end + + # standard strings + rule %r/"/, Str::Double, :string + + rule %r'[&|+-]{2}|[<=>!*/+-]=|<<|>>|!~|[-+*/%><=!&|~]', Operator + + rule %r/[{}();.,]/, Punctuation + + rule %r/\r\n?|\n/, Text + rule %r/./, Text + end + + state :string do + rule %r/"/, Str::Double, :pop! + rule %r/\\[\\"nt]/, Str::Escape + + rule %r/\r\n?|\n/, Str::Double + rule %r/./, Str::Double + end + + state :inline_c do + rule %r/}C/, Comment::Preproc, :pop! + rule %r/.*?(?=}C)/m do + delegate C + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vb.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vb.rb new file mode 100644 index 0000000..74870ea --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vb.rb @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class VisualBasic < RegexLexer + title "Visual Basic" + desc "Visual Basic" + tag 'vb' + aliases 'visualbasic' + filenames '*.vbs', '*.vb' + mimetypes 'text/x-visualbasic', 'application/x-visualbasic' + + def self.keywords + @keywords ||= Set.new %w( + AddHandler Alias ByRef ByVal CBool CByte CChar CDate CDbl CDec + CInt CLng CObj CSByte CShort CSng CStr CType CUInt CULng CUShort + Call Case Catch Class Const Continue Declare Default Delegate + Dim DirectCast Do Each Else ElseIf End EndIf Enum Erase Error + Event Exit False Finally For Friend Function Get Global GoSub + GoTo Handles If Implements Imports Inherits Interface Let + Lib Loop Me Module MustInherit MustOverride MyBase MyClass + Namespace Narrowing New Next Not NotInheritable NotOverridable + Nothing Of On Operator Option Optional Overloads Overridable + Overrides ParamArray Partial Private Property Protected Public + RaiseEvent ReDim ReadOnly RemoveHandler Resume Return Select Set + Shadows Shared Single Static Step Stop Structure Sub SyncLock + Then Throw To True Try TryCast Using Wend When While Widening + With WithEvents WriteOnly + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + Boolean Byte Char Date Decimal Double Integer Long Object + SByte Short Single String Variant UInteger ULong UShort + ) + end + + def self.operator_words + @operator_words ||= Set.new %w( + AddressOf And AndAlso As GetType In Is IsNot Like Mod Or OrElse + TypeOf Xor + ) + end + + def self.builtins + @builtins ||= Set.new %w( + Console ConsoleColor + ) + end + + id = /[a-z_]\w*/i + upper_id = /[A-Z]\w*/ + + state :whitespace do + rule %r/\s+/, Text + rule %r/\n/, Text, :bol + rule %r/rem\b.*?$/i, Comment::Single + rule %r(%\{.*?%\})m, Comment::Multiline + rule %r/'.*$/, Comment::Single + end + + state :bol do + rule %r/\s+/, Text + rule %r/<.*?>/, Name::Attribute + rule(//) { :pop! } + end + + state :root do + mixin :whitespace + rule %r( + [#]If\b .*? \bThen + | [#]ElseIf\b .*? \bThen + | [#]End \s+ If + | [#]Const + | [#]ExternalSource .*? \n + | [#]End \s+ ExternalSource + | [#]Region .*? \n + | [#]End \s+ Region + | [#]ExternalChecksum + )x, Comment::Preproc + rule %r/[.]/, Punctuation, :dotted + rule %r/[(){}!#,:]/, Punctuation + rule %r/Option\s+(Strict|Explicit|Compare)\s+(On|Off|Binary|Text)/, + Keyword::Declaration + rule %r/End\b/, Keyword, :end + rule %r/(Dim|Const)\b/, Keyword, :dim + rule %r/(Function|Sub|Property)\b/, Keyword, :funcname + rule %r/(Class|Structure|Enum)\b/, Keyword, :classname + rule %r/(Module|Namespace|Imports)\b/, Keyword, :namespace + + rule upper_id do |m| + match = m[0] + if self.class.keywords.include? match + token Keyword + elsif self.class.keywords_type.include? match + token Keyword::Type + elsif self.class.operator_words.include? match + token Operator::Word + elsif self.class.builtins.include? match + token Name::Builtin + else + token Name + end + end + + rule( + %r(&=|[*]=|/=|\\=|\^=|\+=|-=|<<=|>>=|<<|>>|:=|<=|>=|<>|[-&*/\\^+=<>.]), + Operator + ) + + rule %r/"/, Str, :string + rule %r/#{id}[%&@!#\$]?/, Name + rule %r/#.*?#/, Literal::Date + + rule %r/(\d+\.\d*|\d*\.\d+)(f[+-]?\d+)?/i, Num::Float + rule %r/\d+([SILDFR]|US|UI|UL)?/, Num::Integer + rule %r/&H[0-9a-f]+([SILDFR]|US|UI|UL)?/, Num::Integer + rule %r/&O[0-7]+([SILDFR]|US|UI|UL)?/, Num::Integer + + rule %r/_\n/, Keyword + end + + state :dotted do + mixin :whitespace + rule id, Name, :pop! + end + + state :string do + rule %r/""/, Str::Escape + rule %r/"C?/, Str, :pop! + rule %r/[^"]+/, Str + end + + state :dim do + mixin :whitespace + rule id, Name::Variable, :pop! + rule(//) { pop! } + end + + state :funcname do + mixin :whitespace + rule id, Name::Function, :pop! + end + + state :classname do + mixin :whitespace + rule id, Name::Class, :pop! + end + + state :namespace do + mixin :whitespace + rule %r/#{id}([.]#{id})*/, Name::Namespace, :pop! + end + + state :end do + mixin :whitespace + rule %r/(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b/, + Keyword, :pop! + rule(//) { pop! } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/velocity.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/velocity.rb new file mode 100644 index 0000000..4aa23ad --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/velocity.rb @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- # + +module Rouge + module Lexers + class Velocity < TemplateLexer + title 'Velocity' + desc 'Velocity is a Java-based template engine (velocity.apache.org)' + tag 'velocity' + filenames '*.vm', '*.velocity', '*.fhtml' + mimetypes 'text/html+velocity' + + id = /[a-z_]\w*/i + + state :root do + rule %r/[^{#$]+/ do + delegate parent + end + + rule %r/(#)(\*.*?\*)(#)/m, Comment::Multiline + rule %r/(##)(.*?$)/, Comment::Single + + rule %r/(#\{?)(#{id})(\}?)(\s?\()/m do + groups Punctuation, Name::Function, Punctuation, Punctuation + push :directive_params + end + + rule %r/(#\{?)(#{id})(\}|\b)/m do + groups Punctuation, Name::Function, Punctuation + end + + rule %r/\$\{?/, Punctuation, :variable + end + + state :variable do + rule %r/#{id}/, Name::Variable + rule %r/\(/, Punctuation, :func_params + rule %r/(\.)(#{id})/ do + groups Punctuation, Name::Variable + end + rule %r/\}/, Punctuation, :pop! + rule(//) { pop! } + end + + state :directive_params do + rule %r/(&&|\|\||==?|!=?|[-<>+*%&|^\/])|\b(eq|ne|gt|lt|ge|le|not|in)\b/, Operator + rule %r/\[/, Operator, :range_operator + rule %r/\b#{id}\b/, Name::Function + mixin :func_params + end + + state :range_operator do + rule %r/[.]{2}/, Operator + mixin :func_params + rule %r/\]/, Operator, :pop! + end + + state :func_params do + rule %r/\$\{?/, Punctuation, :variable + rule %r/\s+/, Text + rule %r/,/, Punctuation + rule %r/"(\\\\|\\"|[^"])*"/, Str::Double + rule %r/'(\\\\|\\'|[^'])*'/, Str::Single + rule %r/0[xX][0-9a-fA-F]+[Ll]?/, Num::Hex + rule %r/\b[0-9]+\b/, Num::Integer + rule %r/(true|false|null)\b/, Keyword::Constant + rule %r/[(\[]/, Punctuation, :push + rule %r/[)\]}]/, Punctuation, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/verilog.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/verilog.rb new file mode 100644 index 0000000..820c435 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/verilog.rb @@ -0,0 +1,163 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Verilog < RegexLexer + title "Verilog and System Verilog" + desc "The System Verilog hardware description language" + tag 'verilog' + filenames '*.v', '*.sv', '*.svh' + mimetypes 'text/x-verilog', 'text/x-systemverilog' + + id = /[a-zA-Z_][a-zA-Z0-9_]*/ + + def self.keywords + @keywords ||= Set.new %w( + alias always always_comb always_ff always_latch assert assert_strobe + assign assume automatic attribute before begin bind bins binsof break + case casex casez clocking config constraint context continue cover + covergroup coverpoint cross deassign defparam default design dist do + else end endattribute endcase endclass endclocking endconfig + endfunction endgenerate endgroup endinterface endmodule endpackage + endprimitive endprogram endproperty endspecify endsequence endtable + endtask expect export extends extern final first_match for force + foreach fork forkjoin forever function generate genvar if iff ifnone + ignore_bins illegal_bins import incdir include initial inside instance + interface intersect join join_any join_none liblist library local + localparam matches module modport new noshowcancelled null package + parameter primitive priority program property protected + pulsestyle_onevent pulsestyle_ondetect pure rand randc randcase + randsequence release return sequence showcancelled solve specify super + table task this throughout timeprecision timeunit type typedef unique + use wait wait_order while wildcard with within + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + and bit buf bufif0 bufif1 byte cell chandle class cmos const disable + edge enum event highz0 highz1 initial inout input int integer join + logic longint macromodule medium nand negedge nmos nor not + notif0 notif1 or output packed parameter pmos posedge pull0 pull1 + pulldown pullup rcmos real realtime ref reg repeat rnmos rpmos rtran + rtranif0 rtranif1 scalared shortint shortreal signed specparam + static string strength strong0 strong1 struct supply0 supply1 tagged + time tran tranif0 tranif1 tri tri0 tri1 triand trior trireg union + unsigned uwire var vectored virtual void wait wand weak[01] wire wor + xnor xor + ) + end + + def self.keywords_system_task + @keyword_system_task ||= Set.new %w( + acos acosh asin asinh assertfailoff assertfailon assertkill + assertnonvacuouson assertoff asserton assertpassoff assertpasson + assertvacuousoff atan atan2 atanh bits bitstoreal bitstoshortreal + cast ceil changed changed_gclk changing_gclk clog2 cos cosh countones + coverage_control coverage_get coverage_get_max coverage_merge + coverage_save dimensions display displayb displayh displayo + dist_chi_square dist_erlang dist_exponential dist_normal dist_poisson + dist_t dist_uniform dumpall dumpfile dumpflush dumplimit dumpoff + dumpon dumpports dumpportsall dumpportsflush dumpportslimit + dumpportsoff dumpportson dumpvars error exit exp falling_gclk fclose + fdisplay fdisplayb fdisplayh fdisplayo fell fell_gclk feof ferror + fflush fgetc fgets finish floor fmonitor fmonitorb fmonitorh fmonitoro + fopen fread fscanf fseek fstrobe fstrobeb fstrobeh fstrobeo ftell + future_gclk fwrite fwriteb fwriteh fwriteo get_coverage high hypot + increment info isunbounded isunknown itor left ln load_coverage_db + log10 low monitor monitorb monitorh monitoro monitoroff monitoron + onehot onehot0 past past_gclk pow printtimescale q_add q_exam q_full + q_initialize q_remove random readmemb readmemh realtime realtobits + rewind right rising_gclk rose rose_gclk rtoi sampled + set_coverage_db_name sformat sformatf shortrealtobits signed sin sinh + size sqrt sscanf stable stable_gclk steady_gclk stime stop strobe + strobeb strobeh strobeo swrite swriteb swriteh swriteo system tan tanh + time timeformat typename ungetc unpacked_dimensions unsigned warning + write writeb writeh writememb writememh writeo + ) + end + + state :expr_bol do + mixin :inline_whitespace + rule %r/`define/, Comment::Preproc, :macro + + rule(//) { pop! } + end + + # :expr_bol is the same as :bol but without labels, since + # labels can only appear at the beginning of a statement. + state :bol do + rule %r/#{id}:(?!:)/, Name::Label + mixin :expr_bol + end + + state :inline_whitespace do + rule %r/[ \t\r]+/, Text + rule %r/\\\n/, Text # line continuation + rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, Comment::Multiline + end + + state :whitespace do + rule %r/\n+/m, Text, :bol + rule %r(//(\\.|.)*?$), Comment::Single, :bol + mixin :inline_whitespace + end + + state :expr_whitespace do + rule %r/\n+/m, Text, :expr_bol + mixin :whitespace + end + + state :string do + rule %r/"/, Str, :pop! + rule %r/\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape + rule %r/[^\\"\n]+/, Str + rule %r/\\\n/, Str + rule %r/\\/, Str # stray backslash + end + + state :statement do + mixin :whitespace + rule %r/L?"/, Str, :string + rule %r/([0-9_]+\.[0-9_]*|[0-9_]*\.[0-9_]+)(e[+-]?[0-9_]+)?/i, Num::Float + rule %r/[0-9_]+e[+-]?[0-9_]+/i, Num::Float + rule %r/[0-9]*'h[0-9a-fA-F_?]+/, Num::Hex + rule %r/[0-9]*'b?[01xz_?]+/, Num::Bin + rule %r/[0-9]*'d[0-9_?]+/, Num::Integer + rule %r/[0-9_]+[lu]*/i, Num::Integer + rule %r([-~!%^&*+=\|?:<>/@{}]), Operator + rule %r/[()\[\],.$\#;]/, Punctuation + rule %r/`(\w+)/, Comment::Preproc + + rule id do |m| + name = m[0] + + if self.class.keywords.include? name + token Keyword + elsif self.class.keywords_type.include? name + token Keyword::Type + elsif self.class.keywords_system_task.include? name + token Name::Builtin + else + token Name + end + end + end + + state :root do + mixin :expr_whitespace + rule(//) { push :statement } + end + + state :macro do + rule %r/\n/, Comment::Preproc, :pop! + mixin :inline_whitespace + rule %r/;/, Punctuation + rule %r/\=/, Operator + rule %r/(\w+)/, Text + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vhdl.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vhdl.rb new file mode 100644 index 0000000..38ff5fc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vhdl.rb @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class VHDL < RegexLexer + title "VHDL 2008" + desc "Very High Speed Integrated Circuit Hardware Description Language" + tag 'vhdl' + + filenames '*.vhd', '*.vhdl', '*.vho' + + mimetypes 'text/x-vhdl' + def self.keywords + @keywords ||= Set.new %w( + access after alias all architecture array assert assume assume_guarantee attribute + begin block body buffer bus case component configuration constant context cover + default disconnect downto else elsif end entity exit fairness file for force function + generate generic group guarded if impure in inertial inout is label library linkage + literal loop map new next null of on open others out package parameter port postponed + procedure process property protected pure range record register reject release report + return select sequence severity shared signal strong subtype then to transport type + unaffected units until use variable vmode vprop vunit wait when while with + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + bit bit_vector boolean boolean_vector character integer integer_vector natural positive + real real_vector severity_level signed std_logic std_logic_vector std_ulogic + std_ulogic_vector string unsigned time time_vector + ) + end + + def self.operator_words + @operator_words ||= Set.new %w( + abs and mod nand nor not or rem rol ror sla sll sra srl xnor xor + ) + end + + id = /[a-zA-Z][a-zA-Z0-9_]*/ + + state :whitespace do + rule %r/\s+/, Text + rule %r/\n/, Text + # Find Comments (VHDL doesn't support multiline comments) + rule %r/--.*$/, Comment::Single + end + + state :statements do + + # Find Numbers + rule %r/-?\d+/i, Num::Integer + rule %r/-?\d+[.]\d+/i, Num::Float + + # Find Strings + rule %r/[box]?"[^"]*"/i, Str::Single + rule %r/'[^']?'/i, Str::Char + + # Find Attributes + rule %r/'#{id}/i, Name::Attribute + + # Punctuations + rule %r/[(),:;]/, Punctuation + + # Boolean and NULL + rule %r/(?:true|false|null)\b/i, Name::Builtin + + rule id do |m| + match = m[0].downcase #convert to lower case + if self.class.keywords.include? match + token Keyword + elsif self.class.keywords_type.include? match + token Keyword::Type + elsif self.class.operator_words.include? match + token Operator::Word + else + token Name + end + end + + rule( + %r(=>|[*][*]|:=|\/=|>=|<=|<>|\?\?|\?=|\?\/=|\?>|\?<|\?>=|\?<=|<<|>>|[#&'*+-.\/:<=>\?@^]), + Operator + ) + + end + + state :root do + + mixin :whitespace + mixin :statements + + end + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/viml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/viml.rb new file mode 100644 index 0000000..9ef1776 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/viml.rb @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class VimL < RegexLexer + title "VimL" + desc "VimL, the scripting language for the Vim editor (vim.org)" + tag 'viml' + aliases 'vim', 'vimscript', 'ex' + filenames '*.vim', '*.vba', '.vimrc', '.exrc', '.gvimrc', + '_vimrc', '_exrc', '_gvimrc' # _ names for windows + + mimetypes 'text/x-vim' + + def self.keywords + Kernel::load File.join(Lexers::BASE_DIR, 'viml/keywords.rb') + self.keywords + end + + state :root do + rule %r/^(\s*)(".*?)$/ do + groups Text, Comment + end + + rule %r/^\s*\\/, Str::Escape + + rule %r/[ \t]+/, Text + + # TODO: regexes can have other delimiters + rule %r(/(\\\\|\\/|[^\n/])*/), Str::Regex + rule %r("(\\\\|\\"|[^\n"])*"), Str::Double + rule %r('(\\\\|\\'|[^\n'])*'), Str::Single + + # if it's not a string, it's a comment. + rule %r/(?<=\s)"[^-:.%#=*].*?$/, Comment + + rule %r/-?\d+/, Num + rule %r/#[0-9a-f]{6}/i, Num::Hex + rule %r/^:/, Punctuation + rule %r/[():<>+=!\[\]{}\|,~.-]/, Punctuation + rule %r/\b(let|if|else|endif|elseif|fun|function|endfunction)\b/, + Keyword + + rule %r/\b(NONE|bold|italic|underline|dark|light)\b/, Name::Builtin + + rule %r/[absg]:\w+\b/, Name::Variable + rule %r/\b\w+\b/ do |m| + name = m[0] + keywords = self.class.keywords + + if keywords[:command].include? name + token Keyword + elsif keywords[:function].include? name + token Name::Builtin + elsif keywords[:option].include? name + token Name::Builtin + elsif keywords[:auto].include? name + token Name::Builtin + else + token Text + end + end + + # no errors in VimL! + rule %r/./m, Text + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/viml/keywords.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/viml/keywords.rb new file mode 100644 index 0000000..662aa21 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/viml/keywords.rb @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# DO NOT EDIT +# This file is automatically generated by `rake builtins:viml`. +# See tasks/builtins/viml.rake for more info. + +module Rouge + module Lexers + class VimL + def self.keywords + @keywords ||= {}.tap do |kw| + kw[:command] = Set.new ["a", "ar", "args", "argl", "arglocal", "ba", "ball", "bm", "bmodified", "breaka", "breakadd", "bun", "bunload", "cabc", "cabclear", "cal", "call", "cc", "cf", "cfile", "changes", "cla", "clast", "cnf", "cnfile", "comc", "comclear", "cp", "cprevious", "cstag", "debugg", "debuggreedy", "deletl", "dep", "diffpu", "diffput", "dl", "dr", "drop", "ec", "em", "emenu", "ene", "enew", "files", "fini", "finish", "folddoc", "folddoclosed", "gr", "grep", "helpc", "helpclose", "his", "history", "il", "ilist", "isp", "isplit", "keepa", "l", "list", "laf", "lafter", "lbel", "lbelow", "lcscope", "lfdo", "lgrepa", "lgrepadd", "lma", "lo", "loadview", "lop", "lopen", "lua", "m", "move", "mes", "mkvie", "mkview", "nbc", "nbclose", "noh", "nohlsearch", "ol", "oldfiles", "pa", "packadd", "po", "pop", "prof", "profile", "pta", "ptag", "ptr", "ptrewind", "py3f", "py3file", "pythonx", "quita", "quitall", "redraws", "redrawstatus", "rew", "rewind", "rubyf", "rubyfile", "sIg", "sa", "sargument", "sba", "sball", "sbr", "sbrewind", "scl", "scscope", "sfir", "sfirst", "sgl", "sic", "sin", "sm", "smap", "snoreme", "spelld", "spelldump", "spellw", "spellwrong", "srg", "st", "stop", "stj", "stjump", "sunmenu", "syn", "tN", "tNext", "tabd", "tabdo", "tabm", "tabmove", "tabr", "tabrewind", "tch", "tchdir", "tf", "tfirst", "tlmenu", "tm", "tmenu", "to", "topleft", "tu", "tunmenu", "undol", "undolist", "up", "update", "vi", "visual", "vmapc", "vmapclear", "wa", "wall", "winp", "winpos", "wundo", "xme", "xr", "xrestore", "ab", "arga", "argadd", "argu", "argument", "bad", "badd", "bn", "bnext", "breakd", "breakdel", "bw", "bwipeout", "cabo", "cabove", "cat", "catch", "ccl", "cclose", "cfdo", "chd", "chdir", "cle", "clearjumps", "cnor", "comp", "compiler", "cpf", "cpfile", "cun", "delc", "delcommand", "deletp", "di", "display", "diffs", "diffsplit", "dli", "dlist", "ds", "dsearch", "echoe", "echoerr", "en", "endif", "eval", "filet", "fir", "first", "foldo", "foldopen", "grepa", "grepadd", "helpf", "helpfind", "i", "imapc", "imapclear", "iuna", "iunabbrev", "keepalt", "la", "last", "lan", "language", "lbo", "lbottom", "ld", "ldo", "lfir", "lfirst", "lh", "lhelpgrep", "lmak", "lmake", "loadk", "lp", "lprevious", "luado", "ma", "mark", "messages", "mod", "mode", "nbs", "nbstart", "nor", "omapc", "omapclear", "packl", "packloadall", "popu", "popup", "profd", "profdel", "ptf", "ptfirst", "pts", "ptselect", "pyx", "r", "read", "redrawt", "redrawtabline", "ri", "right", "rundo", "sIl", "sal", "sall", "sbf", "sbfirst", "sc", "scp", "se", "set", "sg", "sgn", "sie", "sip", "sme", "snoremenu", "spelli", "spellinfo", "spr", "sprevious", "sri", "sta", "stag", "stopi", "stopinsert", "sus", "suspend", "sync", "ta", "tag", "tabe", "tabedit", "tabn", "tabnext", "tabs", "tcld", "tcldo", "th", "throw", "tln", "tma", "tmap", "tp", "tprevious", "tunma", "tunmap", "unh", "unhide", "v", "vie", "view", "vne", "vnew", "wh", "while", "wn", "wnext", "wv", "wviminfo", "xmenu", "xunme", "abc", "abclear", "argd", "argdelete", "as", "ascii", "bd", "bdelete", "bo", "botright", "breakl", "breaklist", "cN", "cNext", "cad", "caddbuffer", "cb", "cbuffer", "cd", "cfir", "cfirst", "che", "checkpath", "clo", "close", "co", "copy", "con", "continue", "cq", "cquit", "cuna", "cunabbrev", "delel", "delf", "delfunction", "dif", "diffupdate", "difft", "diffthis", "do", "dsp", "dsplit", "echom", "echomsg", "endf", "endfunction", "ex", "filetype", "fix", "fixdel", "for", "gui", "helpg", "helpgrep", "ia", "in", "j", "join", "keepj", "keepjumps", "lab", "labove", "lat", "lc", "lcd", "le", "left", "lg", "lgetfile", "lhi", "lhistory", "lmapc", "lmapclear", "loadkeymap", "lpf", "lpfile", "luafile", "mak", "make", "mk", "mkexrc", "mz", "mzscheme", "new", "nore", "on", "only", "pc", "pclose", "pp", "ppop", "promptf", "promptfind", "ptj", "ptjump", "pu", "put", "py", "python", "pyxdo", "rec", "recover", "reg", "registers", "rightb", "rightbelow", "rv", "rviminfo", "sIn", "san", "sandbox", "sbl", "sblast", "scI", "scr", "scriptnames", "setf", "setfiletype", "sgI", "sgp", "sig", "sir", "smenu", "so", "source", "spellr", "spellrare", "sr", "srl", "star", "startinsert", "sts", "stselect", "sv", "sview", "syncbind", "tab", "tabf", "tabfind", "tabnew", "tags", "tclf", "tclfile", "tj", "tjump", "tlnoremenu", "tmapc", "tmapclear", "tr", "trewind", "u", "undo", "unl", "ve", "version", "vim", "vimgrep", "vs", "vsplit", "win", "winsize", "wp", "wprevious", "x", "xit", "xnoreme", "xunmenu", "abo", "aboveleft", "argdo", "au", "bel", "belowright", "bp", "bprevious", "bro", "browse", "cNf", "cNfile", "cadde", "caddexpr", "cbe", "cbefore", "cdo", "cg", "cgetfile", "checkt", "checktime", "cmapc", "cmapclear", "col", "colder", "conf", "confirm", "cr", "crewind", "cw", "cwindow", "delep", "dell", "diffg", "diffget", "dig", "digraphs", "doau", "e", "edit", "echon", "endfo", "endfor", "exi", "exit", "filt", "filter", "fo", "fold", "fu", "function", "gvim", "helpt", "helptags", "iabc", "iabclear", "inor", "ju", "jumps", "keepp", "keeppatterns", "lad", "laddexpr", "later", "lch", "lchdir", "lefta", "leftabove", "lgetb", "lgetbuffer", "ll", "lne", "lnext", "loc", "lockmarks", "lr", "lrewind", "lv", "lvimgrep", "marks", "mks", "mksession", "mzf", "mzfile", "nmapc", "nmapclear", "nos", "noswapfile", "opt", "options", "pe", "perl", "pre", "preserve", "promptr", "promptrepl", "ptl", "ptlast", "pw", "pwd", "pydo", "pyxfile", "red", "redo", "res", "resize", "ru", "runtime", "sI", "sIp", "sav", "saveas", "sbm", "sbmodified", "sce", "scripte", "scriptencoding", "setg", "setglobal", "sgc", "sgr", "sign", "sl", "sleep", "smile", "sor", "sort", "spellrepall", "srI", "srn", "startg", "startgreplace", "sun", "sunhide", "sw", "swapname", "syntime", "tabN", "tabNext", "tabfir", "tabfirst", "tabo", "tabonly", "tc", "tcl", "te", "tearoff", "tl", "tlast", "tlu", "tn", "tnext", "try", "una", "unabbreviate", "unlo", "unlockvar", "verb", "verbose", "vimgrepa", "vimgrepadd", "wN", "wNext", "winc", "wincmd", "wq", "xa", "xall", "xnoremenu", "xwininfo", "addd", "arge", "argedit", "bN", "bNext", "bf", "bfirst", "br", "brewind", "bufdo", "c", "change", "caddf", "caddfile", "cbel", "cbelow", "ce", "center", "cgetb", "cgetbuffer", "chi", "chistory", "cn", "cnext", "colo", "colorscheme", "cons", "const", "cs", "d", "delete", "deletel", "delm", "delmarks", "diffo", "diffoff", "dir", "doaut", "ea", "el", "else", "endt", "endtry", "exu", "exusage", "fin", "find", "foldc", "foldclose", "g", "h", "help", "hi", "if", "intro", "k", "lN", "lNext", "laddb", "laddbuffer", "lb", "lbuffer", "lcl", "lclose", "lex", "lexpr", "lgete", "lgetexpr", "lla", "llast", "lnew", "lnewer", "lockv", "lockvar", "ls", "lvimgrepa", "lvimgrepadd", "mat", "match", "mksp", "mkspell", "n", "next", "noa", "nu", "number", "ownsyntax", "ped", "pedit", "prev", "previous", "ps", "psearch", "ptn", "ptnext", "py3", "pyf", "pyfile", "q", "quit", "redi", "redir", "ret", "retab", "rub", "ruby", "sIc", "sIr", "sbN", "sbNext", "sbn", "sbnext", "scg", "scriptv", "scriptversion", "setl", "setlocal", "sge", "sh", "shell", "sil", "silent", "sla", "slast", "sn", "snext", "sp", "split", "spellrrare", "src", "srp", "startr", "startreplace", "sunme", "sy", "t", "tabc", "tabclose", "tabl", "tablast", "tabp", "tabprevious", "tcd", "ter", "terminal", "tlm", "tlunmenu", "tno", "tnoremap", "ts", "tselect", "undoj", "undojoin", "uns", "unsilent", "vert", "vertical", "viu", "viusage", "w", "write", "windo", "wqa", "wqall", "xmapc", "xmapclear", "xprop", "y", "yank", "al", "all", "argg", "argglobal", "b", "buffer", "bl", "blast", "brea", "break", "buffers", "ca", "caf", "cafter", "cbo", "cbottom", "cex", "cexpr", "cgete", "cgetexpr", "cl", "clist", "cnew", "cnewer", "com", "cope", "copen", "cscope", "debug", "deletep", "delp", "diffp", "diffpatch", "dj", "djump", "dp", "earlier", "elsei", "elseif", "endw", "endwhile", "f", "file", "fina", "finally", "foldd", "folddoopen", "go", "goto", "ha", "hardcopy", "hid", "hide", "ij", "ijump", "is", "isearch", "kee", "keepmarks", "lNf", "lNfile", "laddf", "laddfile", "lbe", "lbefore", "lcs", "lf", "lfile", "lgr", "lgrep", "lli", "llist", "lnf", "lnfile", "lol", "lolder", "lt", "ltag", "lw", "lwindow", "menut", "menutranslate", "mkv", "mkvimrc", "nb", "nbkey", "noautocmd", "o", "open", "p", "print", "perld", "perldo", "pro", "ptN", "ptNext", "ptp", "ptprevious", "py3do", "python3", "qa", "qall", "redr", "redraw", "retu", "return", "rubyd", "rubydo", "sIe", "sN", "sNext", "sb", "sbuffer", "sbp", "sbprevious", "sci", "scs", "sf", "sfind", "sgi", "si", "sim", "simalt", "smagic", "sno", "snomagic", "spe", "spellgood", "spellu", "spellundo", "sre", "srewind", "def", "endd", "enddef", "disa", "disassemble", "vim9", "vim9script", "imp", "import", "exp", "export"] + kw[:option] = Set.new ["acd", "ambw", "arshape", "background", "ballooneval", "bex", "bl", "brk", "buftype", "cf", "cinkeys", "cmdwinheight", "com", "completeslash", "cpoptions", "cscoperelative", "csre", "cursorcolumn", "delcombine", "digraph", "eadirection", "emo", "equalprg", "expandtab", "fdls", "fex", "fileignorecase", "fml", "foldlevel", "formatexpr", "gcr", "go", "guifontset", "helpheight", "history", "hlsearch", "imaf", "ims", "includeexpr", "infercase", "iskeyword", "keywordprg", "laststatus", "lispwords", "lrm", "magic", "maxfuncdepth", "menuitems", "mm", "modifiable", "mousemodel", "mzq", "numberwidth", "opfunc", "patchexpr", "pfn", "pp", "printfont", "pumwidth", "pythonthreehome", "redrawtime", "ri", "rs", "sb", "scroll", "sect", "sft", "shellredir", "shiftwidth", "showmatch", "signcolumn", "smarttab", "sp", "spf", "srr", "startofline", "suffixes", "switchbuf", "ta", "tagfunc", "tbi", "term", "termwintype", "tgc", "titlelen", "toolbariconsize", "ttimeout", "ttymouse", "twt", "undofile", "varsofttabstop", "verbosefile", "viminfofile", "wak", "weirdinvert", "wig", "wildoptions", "winheight", "wm", "wrapscan", "ai", "anti", "autochdir", "backspace", "balloonevalterm", "bexpr", "bo", "browsedir", "casemap", "cfu", "cino", "cmp", "comments", "concealcursor", "cpp", "cscopetag", "cst", "cursorline", "dex", "dip", "eb", "emoji", "errorbells", "exrc", "fdm", "ff", "filetype", "fmr", "foldlevelstart", "formatlistpat", "gd", "gp", "guifontwide", "helplang", "hk", "ic", "imak", "imsearch", "incsearch", "insertmode", "isp", "km", "lazyredraw", "list", "ls", "makeef", "maxmapdepth", "mfd", "mmd", "modified", "mouses", "mzquantum", "nuw", "osfiletype", "patchmode", "ph", "preserveindent", "printheader", "pvh", "pyx", "regexpengine", "rightleft", "rtp", "sbo", "scrollbind", "sections", "sh", "shellslash", "shm", "showmode", "siso", "smc", "spc", "spl", "ss", "statusline", "suffixesadd", "sws", "tabline", "taglength", "tbidi", "termbidi", "terse", "tgst", "titleold", "top", "ttimeoutlen", "ttyscroll", "tx", "undolevels", "vartabstop", "vfile", "virtualedit", "warn", "wfh", "wildchar", "wim", "winminheight", "wmh", "write", "akm", "antialias", "autoindent", "backup", "balloonexpr", "bg", "bomb", "bs", "cb", "ch", "cinoptions", "cms", "commentstring", "conceallevel", "cpt", "cscopetagorder", "csto", "cursorlineopt", "dg", "dir", "ed", "enc", "errorfile", "fcl", "fdn", "ffs", "fillchars", "fo", "foldmarker", "formatoptions", "gdefault", "grepformat", "guiheadroom", "hf", "hkmap", "icon", "imc", "imsf", "inde", "is", "isprint", "kmp", "lbr", "listchars", "lsp", "makeencoding", "maxmem", "mh", "mmp", "more", "mouseshape", "mzschemedll", "odev", "pa", "path", "pheader", "previewheight", "printmbcharset", "pvp", "pyxversion", "relativenumber", "rightleftcmd", "ru", "sbr", "scrollfocus", "secure", "shcf", "shelltemp", "shortmess", "showtabline", "sj", "smd", "spell", "splitbelow", "ssl", "stl", "sw", "sxe", "tabpagemax", "tagrelative", "tbis", "termencoding", "textauto", "thesaurus", "titlestring", "tpm", "ttm", "ttytype", "uc", "undoreload", "vb", "vi", "visualbell", "wb", "wfw", "wildcharm", "winaltkeys", "winminwidth", "wmnu", "writeany", "al", "ar", "autoread", "backupcopy", "bdir", "bh", "breakat", "bsdir", "cc", "charconvert", "cinw", "co", "compatible", "confirm", "crb", "cscopeverbose", "csverb", "cwh", "dict", "directory", "edcompatible", "encoding", "errorformat", "fcs", "fdo", "fic", "fixendofline", "foldclose", "foldmethod", "formatprg", "gfm", "grepprg", "guioptions", "hh", "hkmapp", "iconstring", "imcmdline", "imst", "indentexpr", "isf", "joinspaces", "kp", "lcs", "lm", "luadll", "makeprg", "maxmempattern", "mis", "mmt", "mouse", "mouset", "mzschemegcdll", "oft", "packpath", "pdev", "pi", "previewpopup", "printmbfont", "pvw", "qe", "remap", "rl", "rubydll", "sc", "scrolljump", "sel", "shell", "shelltype", "shortname", "shq", "slm", "sn", "spellcapcheck", "splitright", "ssop", "stmp", "swapfile", "sxq", "tabstop", "tags", "tbs", "termguicolors", "textmode", "tildeop", "tl", "tr", "tty", "tw", "udf", "updatecount", "vbs", "viewdir", "vop", "wc", "wh", "wildignore", "wincolor", "winptydll", "wmw", "writebackup", "aleph", "arab", "autowrite", "backupdir", "bdlay", "bin", "breakindent", "bsk", "ccv", "ci", "cinwords", "cocu", "complete", "copyindent", "cryptmethod", "csl", "cuc", "debug", "dictionary", "display", "ef", "endofline", "esckeys", "fdc", "fdt", "fileencoding", "fixeol", "foldcolumn", "foldminlines", "fp", "gfn", "gtl", "guipty", "hi", "hkp", "ignorecase", "imd", "imstatusfunc", "indentkeys", "isfname", "js", "langmap", "linebreak", "lmap", "lw", "mat", "maxmemtot", "mkspellmem", "mod", "mousef", "mousetime", "nf", "ofu", "para", "penc", "pm", "previewwindow", "printoptions", "pw", "quoteescape", "renderoptions", "rlc", "ruf", "scb", "scrolloff", "selection", "shellcmdflag", "shellxescape", "showbreak", "si", "sm", "so", "spellfile", "spr", "st", "sts", "swapsync", "syn", "tag", "tagstack", "tc", "termwinkey", "textwidth", "timeout", "tm", "ts", "ttybuiltin", "twk", "udir", "updatetime", "vdir", "viewoptions", "vsts", "wcm", "whichwrap", "wildignorecase", "window", "winwidth", "wop", "writedelay", "allowrevins", "arabic", "autowriteall", "backupext", "belloff", "binary", "breakindentopt", "bt", "cd", "cin", "clipboard", "cole", "completefunc", "cot", "cscopepathcomp", "cspc", "cul", "deco", "diff", "dy", "efm", "eol", "et", "fde", "fen", "fileencodings", "fk", "foldenable", "foldnestmax", "fs", "gfs", "gtt", "guitablabel", "hid", "hl", "im", "imdisable", "imstyle", "indk", "isi", "key", "langmenu", "lines", "lnr", "lz", "matchpairs", "mco", "ml", "modeline", "mousefocus", "mp", "nrformats", "omnifunc", "paragraphs", "perldll", "pmbcs", "printdevice", "prompt", "pythondll", "rdt", "report", "rnu", "ruler", "scf", "scrollopt", "selectmode", "shellpipe", "shellxquote", "showcmd", "sidescroll", "smartcase", "softtabstop", "spelllang", "sps", "sta", "su", "swb", "synmaxcol", "tagbsearch", "tal", "tcldll", "termwinscroll", "tf", "timeoutlen", "to", "tsl", "ttyfast", "tws", "ul", "ur", "ve", "vif", "vts", "wcr", "wi", "wildmenu", "winfixheight", "wiv", "wrap", "ws", "altkeymap", "arabicshape", "aw", "backupskip", "beval", "bk", "bri", "bufhidden", "cdpath", "cindent", "cm", "colorcolumn", "completeopt", "cp", "cscopeprg", "csprg", "culopt", "def", "diffexpr", "ea", "ei", "ep", "eventignore", "fdi", "fenc", "fileformat", "fkmap", "foldexpr", "foldopen", "fsync", "gfw", "guicursor", "guitabtooltip", "hidden", "hlg", "imactivatefunc", "imi", "inc", "inex", "isident", "keymap", "langnoremap", "linespace", "loadplugins", "ma", "matchtime", "mef", "mle", "modelineexpr", "mousehide", "mps", "nu", "opendevice", "paste", "pex", "pmbfn", "printencoding", "pt", "pythonhome", "re", "restorescreen", "ro", "rulerformat", "scl", "scs", "sessionoptions", "shellquote", "shiftround", "showfulltag", "sidescrolloff", "smartindent", "sol", "spellsuggest", "sr", "stal", "sua", "swf", "syntax", "tagcase", "tb", "tenc", "termwinsize", "tfu", "title", "toolbar", "tsr", "ttym", "twsl", "undodir", "ut", "verbose", "viminfo", "wa", "wd", "wic", "wildmode", "winfixwidth", "wiw", "wrapmargin", "ww", "ambiwidth", "ari", "awa", "balloondelay", "bevalterm", "bkc", "briopt", "buflisted", "cedit", "cink", "cmdheight", "columns", "completepopup", "cpo", "cscopequickfix", "csqf", "cursorbind", "define", "diffopt", "ead", "ek", "equalalways", "ex", "fdl", "fencs", "fileformats", "flp", "foldignore", "foldtext", "ft", "ghr", "guifont", "helpfile", "highlight", "hls", "imactivatekey", "iminsert", "include", "inf", "isk", "keymodel", "langremap", "lisp", "lpl", "macatsui", "maxcombine", "menc", "mls", "modelines", "mousem", "msm", "number", "operatorfunc", "pastetoggle", "pexpr", "popt", "printexpr", "pumheight", "pythonthreedll", "readonly", "revins", "rop", "runtimepath", "scr", "noacd", "noallowrevins", "noantialias", "noarabic", "noarshape", "noautoread", "noaw", "noballooneval", "nobevalterm", "nobk", "nobreakindent", "nocf", "nocindent", "nocopyindent", "nocscoperelative", "nocsre", "nocuc", "nocursorcolumn", "nodelcombine", "nodigraph", "noed", "noemo", "noeol", "noesckeys", "noexpandtab", "nofic", "nofixeol", "nofoldenable", "nogd", "nohid", "nohkmap", "nohls", "noicon", "noimc", "noimdisable", "noinfercase", "nojoinspaces", "nolangremap", "nolinebreak", "nolnr", "nolrm", "nomacatsui", "noml", "nomod", "nomodelineexpr", "nomodified", "nomousef", "nomousehide", "nonumber", "noopendevice", "nopi", "nopreviewwindow", "nopvw", "norelativenumber", "norestorescreen", "nori", "norl", "noro", "noru", "nosb", "noscb", "noscrollbind", "noscs", "nosft", "noshelltemp", "noshortname", "noshowfulltag", "noshowmode", "nosm", "nosmartindent", "nosmd", "nosol", "nosplitbelow", "nospr", "nossl", "nostartofline", "noswapfile", "nota", "notagrelative", "notbi", "notbs", "noterse", "notextmode", "notgst", "notimeout", "noto", "notr", "nottybuiltin", "notx", "noundofile", "novisualbell", "nowarn", "noweirdinvert", "nowfw", "nowildignorecase", "nowinfixheight", "nowiv", "nowrap", "nowrite", "nowritebackup", "noai", "noaltkeymap", "noar", "noarabicshape", "noautochdir", "noautowrite", "noawa", "noballoonevalterm", "nobin", "nobl", "nobri", "noci", "nocompatible", "nocp", "nocscopetag", "nocst", "nocul", "nocursorline", "nodg", "noea", "noedcompatible", "noemoji", "noequalalways", "noet", "noexrc", "nofileignorecase", "nofk", "nofs", "nogdefault", "nohidden", "nohkmapp", "nohlsearch", "noignorecase", "noimcmdline", "noincsearch", "noinsertmode", "nojs", "nolazyredraw", "nolisp", "noloadplugins", "nolz", "nomagic", "nomle", "nomodeline", "nomodifiable", "nomore", "nomousefocus", "nonu", "noodev", "nopaste", "nopreserveindent", "noprompt", "noreadonly", "noremap", "norevins", "norightleft", "nornu", "nors", "noruler", "nosc", "noscf", "noscrollfocus", "nosecure", "noshellslash", "noshiftround", "noshowcmd", "noshowmatch", "nosi", "nosmartcase", "nosmarttab", "nosn", "nospell", "nosplitright", "nosr", "nosta", "nostmp", "noswf", "notagbsearch", "notagstack", "notbidi", "notermbidi", "notextauto", "notf", "notildeop", "notitle", "notop", "nottimeout", "nottyfast", "noudf", "novb", "nowa", "nowb", "nowfh", "nowic", "nowildmenu", "nowinfixwidth", "nowmnu", "nowrapscan", "nowriteany", "nows", "noakm", "noanti", "noarab", "noari", "noautoindent", "noautowriteall", "nobackup", "nobeval", "nobinary", "nobomb", "nobuflisted", "nocin", "noconfirm", "nocrb", "nocscopeverbose", "nocsverb", "nocursorbind", "nodeco", "nodiff", "noeb", "noek", "noendofline", "noerrorbells", "noex", "nofen", "nofixendofline", "nofkmap", "nofsync", "noguipty", "nohk", "nohkp", "noic", "noim", "noimd", "noinf", "nois", "nolangnoremap", "nolbr", "nolist", "nolpl", "noma", "nomh", "invacd", "invallowrevins", "invantialias", "invarabic", "invarshape", "invautoread", "invaw", "invballooneval", "invbevalterm", "invbk", "invbreakindent", "invcf", "invcindent", "invcopyindent", "invcscoperelative", "invcsre", "invcuc", "invcursorcolumn", "invdelcombine", "invdigraph", "inved", "invemo", "inveol", "invesckeys", "invexpandtab", "invfic", "invfixeol", "invfoldenable", "invgd", "invhid", "invhkmap", "invhls", "invicon", "invimc", "invimdisable", "invinfercase", "invjoinspaces", "invlangremap", "invlinebreak", "invlnr", "invlrm", "invmacatsui", "invml", "invmod", "invmodelineexpr", "invmodified", "invmousef", "invmousehide", "invnumber", "invopendevice", "invpi", "invpreviewwindow", "invpvw", "invrelativenumber", "invrestorescreen", "invri", "invrl", "invro", "invru", "invsb", "invscb", "invscrollbind", "invscs", "invsft", "invshelltemp", "invshortname", "invshowfulltag", "invshowmode", "invsm", "invsmartindent", "invsmd", "invsol", "invsplitbelow", "invspr", "invssl", "invstartofline", "invswapfile", "invta", "invtagrelative", "invtbi", "invtbs", "invterse", "invtextmode", "invtgst", "invtimeout", "invto", "invtr", "invttybuiltin", "invtx", "invundofile", "invvisualbell", "invwarn", "invweirdinvert", "invwfw", "invwildignorecase", "invwinfixheight", "invwiv", "invwrap", "invwrite", "invwritebackup", "invai", "invaltkeymap", "invar", "invarabicshape", "invautochdir", "invautowrite", "invawa", "invballoonevalterm", "invbin", "invbl", "invbri", "invci", "invcompatible", "invcp", "invcscopetag", "invcst", "invcul", "invcursorline", "invdg", "invea", "invedcompatible", "invemoji", "invequalalways", "invet", "invexrc", "invfileignorecase", "invfk", "invfs", "invgdefault", "invhidden", "invhkmapp", "invhlsearch", "invignorecase", "invimcmdline", "invincsearch", "invinsertmode", "invjs", "invlazyredraw", "invlisp", "invloadplugins", "invlz", "invmagic", "invmle", "invmodeline", "invmodifiable", "invmore", "invmousefocus", "invnu", "invodev", "invpaste", "invpreserveindent", "invprompt", "invreadonly", "invremap", "invrevins", "invrightleft", "invrnu", "invrs", "invruler", "invsc", "invscf", "invscrollfocus", "invsecure", "invshellslash", "invshiftround", "invshowcmd", "invshowmatch", "invsi", "invsmartcase", "invsmarttab", "invsn", "invspell", "invsplitright", "invsr", "invsta", "invstmp", "invswf", "invtagbsearch", "invtagstack", "invtbidi", "invtermbidi", "invtextauto", "invtf", "invtildeop", "invtitle", "invtop", "invttimeout", "invttyfast", "invudf", "invvb", "invwa", "invwb", "invwfh", "invwic", "invwildmenu", "invwinfixwidth", "invwmnu", "invwrapscan", "invwriteany", "invws", "invakm", "invanti", "invarab", "invari", "invautoindent", "invautowriteall", "invbackup", "invbeval", "invbinary", "invbomb", "invbuflisted", "invcin", "invconfirm", "invcrb", "invcscopeverbose", "invcsverb", "invcursorbind", "invdeco", "invdiff", "inveb", "invek", "invendofline", "inverrorbells", "invex", "invfen", "invfixendofline", "invfkmap", "invfsync", "invguipty", "invhk", "invhkp", "invic", "invim", "invimd", "invinf", "invis", "invlangnoremap", "invlbr", "invlist", "invlpl", "invma", "invmh", "t_8b", "t_AB", "t_al", "t_bc", "t_BE", "t_ce", "t_cl", "t_Co", "t_Cs", "t_CV", "t_db", "t_DL", "t_EI", "t_F2", "t_F4", "t_F6", "t_F8", "t_fs", "t_IE", "t_k1", "t_k2", "t_K3", "t_K4", "t_K5", "t_K6", "t_K7", "t_K8", "t_K9", "t_kb", "t_KB", "t_kd", "t_KD", "t_ke", "t_KE", "t_KF", "t_KG", "t_kh", "t_KH", "t_kI", "t_KI", "t_KJ", "t_KK", "t_kl", "t_KL", "t_kN", "t_kP", "t_kr", "t_ks", "t_ku", "t_le", "t_mb", "t_md", "t_me", "t_mr", "t_ms", "t_nd", "t_op", "t_PE", "t_PS", "t_RB", "t_RC", "t_RF", "t_Ri", "t_RI", "t_RS", "t_RT", "t_RV", "t_Sb", "t_SC", "t_se", "t_Sf", "t_SH", "t_Si", "t_SI", "t_so", "t_sr", "t_SR", "t_ST", "t_te", "t_Te", "t_TE", "t_ti", "t_TI", "t_ts", "t_Ts", "t_u7", "t_ue", "t_us", "t_ut", "t_vb", "t_ve", "t_vi", "t_vs", "t_VS", "t_WP", "t_WS", "t_xn", "t_xs", "t_ZH", "t_ZR", "t_8f", "t_AF", "t_AL", "t_BD", "t_cd", "t_Ce", "t_cm", "t_cs", "t_CS", "t_da", "t_dl", "t_EC", "t_F1", "t_F3", "t_F5", "t_F7", "t_F9", "t_GP", "t_IS", "t_K1", "t_k3", "t_k4", "t_k5", "t_k6", "t_k7", "t_k8", "t_k9", "t_KA", "t_kB", "t_KC", "t_kD"] + kw[:auto] = Set.new ["BufAdd", "BufDelete", "BufFilePost", "BufHidden", "BufNew", "BufRead", "BufReadPost", "BufUnload", "BufWinEnter", "BufWinLeave", "BufWipeout", "BufWrite", "BufWriteCmd", "BufWritePost", "BufWritePre", "CmdlineChanged", "CmdlineEnter", "CmdlineLeave", "CmdUndefined", "CmdwinEnter", "CmdwinLeave", "ColorScheme", "ColorSchemePre", "CompleteChanged", "CompleteDone", "CompleteDonePre", "CursorHold", "CursorHoldI", "CursorMoved", "CursorMovedI", "DiffUpdated", "DirChanged", "EncodingChanged", "ExitPre", "FileAppendCmd", "FileAppendPost", "FileAppendPre", "FileChangedRO", "FileChangedShell", "FileChangedShellPost", "FileEncoding", "FileReadCmd", "FileReadPost", "FileReadPre", "FileType", "FileWriteCmd", "FileWritePost", "FileWritePre", "FilterReadPost", "FilterReadPre", "FilterWritePost", "FilterWritePre", "FocusGained", "FocusLost", "FuncUndefined", "GUIEnter", "GUIFailed", "InsertChange", "InsertCharPre", "InsertEnter", "InsertLeave", "MenuPopup", "OptionSet", "QuickFixCmdPost", "QuickFixCmdPre", "QuitPre", "RemoteReply", "SafeState", "SafeStateAgain", "SessionLoadPost", "ShellCmdPost", "ShellFilterPost", "SourceCmd", "SourcePost", "SourcePre", "SpellFileMissing", "StdinReadPost", "StdinReadPre", "SwapExists", "Syntax", "TabClosed", "TabEnter", "TabLeave", "TabNew", "TermChanged", "TerminalOpen", "TerminalWinOpen", "TermResponse", "TextChanged", "TextChangedI", "TextChangedP", "TextYankPost", "User", "VimEnter", "VimLeave", "VimLeavePre", "VimResized", "WinEnter", "WinLeave", "WinNew", "BufCreate", "BufEnter", "BufFilePre", "BufLeave", "BufNewFile", "BufReadCmd", "BufReadPre"] + kw[:function] = Set.new ["abs", "appendbufline", "asin", "assert_fails", "assert_notmatch", "balloon_gettext", "bufadd", "bufname", "byteidx", "char2nr", "ch_evalexpr", "ch_log", "ch_readraw", "cindent", "complete_check", "cosh", "deepcopy", "diff_hlID", "eval", "exists", "feedkeys", "findfile", "fnamemodify", "foldtextresult", "get", "getchar", "getcmdtype", "getenv", "getftype", "getmatches", "getreg", "gettagstack", "getwinvar", "has_key", "histget", "iconv", "inputlist", "interrupt", "isnan", "job_start", "js_encode", "libcall", "list2str", "log", "mapcheck", "matchdelete", "max", "nextnonblank", "popup_atcursor", "popup_dialog", "popup_getoptions", "popup_notification", "prevnonblank", "prop_add", "prop_type_add", "pum_getpos", "rand", "reg_recording", "remote_foreground", "remove", "round", "screencol", "searchdecl", "serverlist", "setenv", "setpos", "settagstack", "sign_define", "sign_placelist", "sin", "sound_playevent", "split", "str2list", "strftime", "strpart", "submatch", "synID", "systemlist", "taglist", "term_dumpload", "term_getcursor", "term_getstatus", "term_sendkeys", "term_setsize", "test_autochdir", "test_getvalue", "test_null_dict", "test_null_string", "test_scrollbar", "test_unknown", "timer_start", "toupper", "type", "values", "winbufnr", "win_findbuf", "winheight", "winline", "winsaveview", "winwidth", "acos", "argc", "assert_beeps", "assert_false", "assert_report", "balloon_show", "bufexists", "bufnr", "byteidxcomp", "ch_canread", "ch_evalraw", "ch_logfile", "ch_sendexpr", "clearmatches", "complete_info", "count", "delete", "echoraw", "eventhandler", "exp", "filereadable", "float2nr", "foldclosed", "foreground", "getbufinfo", "getcharmod", "getcmdwintype", "getfontname", "getimstatus", "getmousepos", "getregtype", "getwininfo", "glob", "haslocaldir", "histnr", "indent", "inputrestore", "invert", "items", "job_status", "json_decode", "libcallnr", "listener_add", "log10", "match", "matchend", "min", "nr2char", "popup_beval", "popup_filter_menu", "popup_getpos", "popup_setoptions", "printf", "prop_clear", "prop_type_change", "pumvisible", "range", "reltime", "remote_peek", "rename", "rubyeval", "screenpos", "searchpair", "setbufline", "setfperm", "setqflist", "setwinvar", "sign_getdefined", "sign_undefine", "sinh", "sound_playfile", "sqrt", "str2nr", "strgetchar", "strptime", "substitute", "synIDattr", "tabpagebuflist", "tan", "term_dumpwrite", "term_getjob", "term_gettitle", "term_setansicolors", "term_start", "test_feedinput", "test_ignore_error", "test_null_job", "test_option_not_set", "test_setmouse", "test_void", "timer_stop", "tr", "undofile", "virtcol", "wincol", "win_getid", "win_id2tabwin", "winnr", "win_screenpos", "wordcount", "add", "argidx", "assert_equal", "assert_inrange", "assert_true", "balloon_split", "buflisted", "bufwinid", "call", "ch_close", "ch_getbufnr", "ch_open", "ch_sendraw", "col", "confirm", "cscope_connection", "deletebufline", "empty", "executable", "expand", "filewritable", "floor", "foldclosedend", "funcref", "getbufline", "getcharsearch", "getcompletion", "getfperm", "getjumplist", "getpid", "gettabinfo", "getwinpos", "glob2regpat", "hasmapto", "hlexists", "index", "inputsave", "isdirectory", "job_getchannel", "job_stop", "json_encode", "line", "listener_flush", "luaeval", "matchadd", "matchlist", "mkdir", "or", "popup_clear", "popup_filter_yesno", "popup_hide", "popup_settext", "prompt_setcallback", "prop_find", "prop_type_delete", "py3eval", "readdir", "reltimefloat", "remote_read", "repeat", "screenattr", "screenrow", "searchpairpos", "setbufvar", "setline", "setreg", "sha256", "sign_getplaced", "sign_unplace", "sort", "sound_stop", "srand", "strcharpart", "stridx", "strridx", "swapinfo", "synIDtrans", "tabpagenr", "tanh", "term_getaltscreen", "term_getline", "term_gettty", "term_setapi", "term_wait", "test_garbagecollect_now", "test_null_blob", "test_null_list", "test_override", "test_settime", "timer_info", "timer_stopall", "trim", "undotree", "visualmode", "windowsversion", "win_gettype", "win_id2win", "winrestcmd", "win_splitmove", "writefile", "and", "arglistid", "assert_equalfile", "assert_match", "atan", "browse", "bufload", "bufwinnr", "ceil", "ch_close_in", "ch_getjob", "ch_read", "ch_setoptions", "complete", "copy", "cursor", "did_filetype", "environ", "execute", "expandcmd", "filter", "fmod", "foldlevel", "function", "getbufvar", "getcmdline", "getcurpos", "getfsize", "getline", "getpos", "gettabvar", "getwinposx", "globpath", "histadd", "hlID", "input", "inputsecret", "isinf", "job_info", "join", "keys", "line2byte", "listener_remove", "map", "matchaddpos", "matchstr", "mode", "pathshorten", "popup_close", "popup_findinfo", "popup_menu", "popup_show", "prompt_setinterrupt", "prop_list", "prop_type_get", "pyeval", "readfile", "reltimestr", "remote_send", "resolve", "screenchar", "screenstring", "searchpos", "setcharsearch", "setloclist", "settabvar", "shellescape", "sign_jump", "sign_unplacelist", "sound_clear", "spellbadword", "state", "strchars", "string", "strtrans", "swapname", "synstack", "tabpagewinnr", "tempname", "term_getansicolors", "term_getscrolled", "term_list", "term_setkill", "test_alloc_fail", "test_garbagecollect_soon", "test_null_channel", "test_null_partial", "test_refcount", "test_srand_seed", "timer_pause", "tolower", "trunc", "uniq", "wildmenumode", "win_execute", "win_gotoid", "winlayout", "winrestview", "win_type", "xor", "append", "argv", "assert_exception", "assert_notequal", "atan2", "browsedir", "bufloaded", "byte2line", "changenr", "chdir", "ch_info", "ch_readblob", "ch_status", "complete_add", "cos", "debugbreak", "diff_filler", "escape", "exepath", "extend", "finddir", "fnameescape", "foldtext", "garbagecollect", "getchangelist", "getcmdpos", "getcwd", "getftime", "getloclist", "getqflist", "gettabwinvar", "getwinposy", "has", "histdel", "hostname", "inputdialog", "insert", "islocked", "job_setoptions", "js_decode", "len", "lispindent", "localtime", "maparg", "matcharg", "matchstrpos", "mzeval", "perleval", "popup_create", "popup_findpreview", "popup_move", "pow", "prompt_setprompt", "prop_remove", "prop_type_list", "pyxeval", "reg_executing", "remote_expr", "remote_startserver", "reverse", "screenchars", "search", "server2client", "setcmdpos", "setmatches", "settabwinvar", "shiftwidth", "sign_place", "simplify", "soundfold", "spellsuggest", "str2float", "strdisplaywidth", "strlen", "strwidth", "synconcealed", "system", "tagfiles", "term_dumpdiff", "term_getattr", "term_getsize", "term_scrape", "term_setrestore"] + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vue.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vue.rb new file mode 100644 index 0000000..5b64f3d --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/vue.rb @@ -0,0 +1,127 @@ +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'html.rb' + + class Vue < HTML + desc 'Vue.js single-file components' + tag 'vue' + aliases 'vuejs' + filenames '*.vue' + + mimetypes 'text/x-vue', 'application/x-vue' + + def initialize(*) + super + @js = Javascript.new(options) + end + + def lookup_lang(lang) + lang.downcase! + lang = lang.gsub(/["']*/, '') + case lang + when 'html' then HTML + when 'css' then CSS + when 'javascript' then Javascript + when 'sass' then Sass + when 'scss' then Scss + when 'coffee' then Coffeescript + # TODO: add more when the lexers are done + else + PlainText + end + end + + start { @js.reset! } + + prepend :root do + rule %r/(<)(\s*)(template)/ do + groups Name::Tag, Text, Keyword + @lang = HTML + push :template + push :lang_tag + end + + rule %r/(<)(\s*)(style)/ do + groups Name::Tag, Text, Keyword + @lang = CSS + push :style + push :lang_tag + end + + rule %r/(<)(\s*)(script)/ do + groups Name::Tag, Text, Keyword + @lang = Javascript + push :script + push :lang_tag + end + end + + prepend :tag do + rule %r/[a-zA-Z0-9_:#\[\]()*.-]+\s*=\s*/m, Name::Attribute, :attr + end + + state :style do + rule %r/(<\s*\/\s*)(style)(\s*>)/ do + groups Name::Tag, Keyword, Name::Tag + pop! + end + + mixin :style_content + mixin :embed + end + + state :script do + rule %r/(<\s*\/\s*)(script)(\s*>)/ do + groups Name::Tag, Keyword, Name::Tag + pop! + end + + mixin :script_content + mixin :embed + end + + state :lang_tag do + rule %r/(lang\s*=)(\s*)("(?:\\.|[^\\])*?"|'(\\.|[^\\])*?'|[^\s>]+)/ do |m| + groups Name::Attribute, Text, Str + @lang = lookup_lang(m[3]) + end + + mixin :tag + end + + state :template do + rule %r((<\s*/\s*)(template)(\s*>)) do + groups Name::Tag, Keyword, Name::Tag + pop! + end + + rule %r/{{/ do + token Str::Interpol + push :template_interpol + @js.reset! + end + + mixin :embed + end + + state :template_interpol do + rule %r/}}/, Str::Interpol, :pop! + rule %r/}/, Error + mixin :template_interpol_inner + end + + state :template_interpol_inner do + rule(/{/) { delegate @js; push } + rule(/}/) { delegate @js; pop! } + rule(/[^{}]+/) { delegate @js } + end + + state :embed do + rule(/[^{<]+/) { delegate @lang } + rule(/[<{][^<{]*/) { delegate @lang } + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/wollok.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/wollok.rb new file mode 100644 index 0000000..5f46176 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/wollok.rb @@ -0,0 +1,107 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Wollok < RegexLexer + title 'Wollok' + desc 'Wollok lang' + tag 'wollok' + filenames '*.wlk', '*.wtest', '*.wpgm' + + keywords = %w(new super return if else var const override constructor) + + entity_name = /[a-zA-Z][a-zA-Z0-9]*/ + variable_naming = /_?#{entity_name}/ + + state :whitespaces_and_comments do + rule %r/\s+/m, Text::Whitespace + rule %r(//.*$), Comment::Single + rule %r(/\*(.|\s)*?\*/)m, Comment::Multiline + end + + state :root do + mixin :whitespaces_and_comments + rule %r/(import)(.+$)/ do + groups Keyword::Reserved, Text + end + rule %r/(class|object|mixin)/, Keyword::Reserved, :foo + rule %r/test|program/, Keyword::Reserved #, :chunk_naming + rule %r/(package)(\s+)(#{entity_name})/ do + groups Keyword::Reserved, Text::Whitespace, Name::Class + end + rule %r/{|}/, Text + mixin :keywords + mixin :symbols + mixin :objects + end + + state :foo do + mixin :whitespaces_and_comments + rule %r/inherits|mixed|with|and/, Keyword::Reserved + rule %r/#{entity_name}(?=\s*{)/ do |m| + token Name::Class + entities << m[0] + pop! + end + rule %r/#{entity_name}/ do |m| + token Name::Class + entities << m[0] + end + end + + state :keywords do + def any(expressions) + /#{expressions.map { |keyword| "#{keyword}\\b" }.join('|')}/ + end + + rule %r/self\b/, Name::Builtin::Pseudo + rule any(keywords), Keyword::Reserved + rule %r/(method)(\s+)(#{variable_naming})/ do + groups Keyword::Reserved, Text::Whitespace, Text + end + end + + state :objects do + rule variable_naming do |m| + variable = m[0] + if entities.include?(variable) || ('A'..'Z').cover?(variable[0]) + token Name::Class + else + token Keyword::Variable + end + end + rule %r/\.#{entity_name}/, Text + mixin :literals + end + + state :literals do + mixin :whitespaces_and_comments + rule %r/[0-9]+\.?[0-9]*/, Literal::Number + rule %r/"[^"]*"/m, Literal::String + rule %r/\[|\#{/, Punctuation, :lists + end + + state :lists do + rule %r/,/, Punctuation + rule %r/]|}/, Punctuation, :pop! + mixin :objects + end + + state :symbols do + rule %r/\+\+|--|\+=|-=|\*\*|!/, Operator + rule %r/\+|-|\*|\/|%/, Operator + rule %r/<=|=>|===|==|<|>/, Operator + rule %r/and\b|or\b|not\b/, Operator + rule %r/\(|\)|=/, Text + rule %r/,/, Punctuation + end + + private + + def entities + @entities ||= [] + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xml.rb new file mode 100644 index 0000000..e313e02 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xml.rb @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class XML < RegexLexer + title "XML" + desc %q(<desc for="this-lexer">XML</desc>) + tag 'xml' + filenames '*.xml', '*.xsl', '*.rss', '*.xslt', '*.xsd', '*.wsdl', '*.svg', + '*.plist' + mimetypes 'text/xml', 'application/xml', 'image/svg+xml', + 'application/rss+xml', 'application/atom+xml' + + # Documentation: https://www.w3.org/TR/xml11/#charsets and https://www.w3.org/TR/xml11/#sec-suggested-names + + def self.detect?(text) + return false if text.doctype?(/html/) + return true if text =~ /\A<\?xml\b/ + return true if text.doctype? + end + + state :root do + rule %r/[^<&]+/, Text + rule %r/&\S*?;/, Name::Entity + rule %r/<!\[CDATA\[.*?\]\]\>/, Comment::Preproc + rule %r/<!--/, Comment, :comment + rule %r/<\?.*?\?>/, Comment::Preproc + rule %r/<![^>]*>/, Comment::Preproc + + # open tags + rule %r(<\s*[\p{L}:_][\p{Word}\p{Cf}:.·-]*)m, Name::Tag, :tag + + # self-closing tags + rule %r(<\s*/\s*[\p{L}:_][\p{Word}\p{Cf}:.·-]*\s*>)m, Name::Tag + end + + state :comment do + rule %r/[^-]+/m, Comment + rule %r/-->/, Comment, :pop! + rule %r/-/, Comment + end + + state :tag do + rule %r/\s+/m, Text + rule %r/[\p{L}:_][\p{Word}\p{Cf}:.·-]*\s*=/m, Name::Attribute, :attr + rule %r(/?\s*>), Name::Tag, :pop! + end + + state :attr do + rule %r/\s+/m, Text + rule %r/".*?"|'.*?'|[^\s>]+/m, Str, :pop! + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xojo.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xojo.rb new file mode 100644 index 0000000..6c7d013 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xojo.rb @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Xojo < RegexLexer + title "Xojo" + desc "Xojo" + tag 'xojo' + aliases 'realbasic' + filenames '*.xojo_code', '*.xojo_window', '*.xojo_toolbar', '*.xojo_menu', '*.xojo_image', '*.rbbas', '*.rbfrm', '*.rbmnu', '*.rbres', '*.rbtbar' + + keywords = %w( + addhandler aggregates array asc assigns attributes begin break + byref byval call case catch class const continue color ctype declare + delegate dim do downto each else elseif end enum event exception + exit extends false finally for function global goto if + implements inherits interface lib loop mod module + new next nil object of optional paramarray + private property protected public raise raiseevent rect redim + removehandler return select shared soft static step sub super + then to true try until using var wend while + ) + + keywords_type = %w( + boolean byte cfstringref cgfloat cstring currency date datetime double int8 int16 + int32 int64 integer ostype pair pstring ptr short single + string structure variant uinteger uint8 uint16 uint32 uint64 + ushort windowptr wstring + ) + + operator_words = %w( + addressof weakaddressof and as in is isa mod not or xor + ) + + state :root do + rule %r/\s+/, Text::Whitespace + + rule %r/rem\b.*?$/i, Comment::Single + rule %r((?://|').*$), Comment::Single + rule %r/\#tag Note.*?\#tag EndNote/mi, Comment::Preproc + rule %r/\s*[#].*$/x, Comment::Preproc + + rule %r/".*?"/, Literal::String::Double + rule %r/[(){}!#,:]/, Punctuation + + rule %r/\b(?:#{keywords.join('|')})\b/i, Keyword + rule %r/\b(?:#{keywords_type.join('|')})\b/i, Keyword::Declaration + + rule %r/\b(?:#{operator_words.join('|')})\b/i, Operator + rule %r/[+-]?(\d+\.\d*|\d*\.\d+)/i, Literal::Number::Float + rule %r/[+-]?\d+/, Literal::Number::Integer + rule %r/&[CH][0-9a-f]+/i, Literal::Number::Hex + rule %r/&O[0-7]+/i, Literal::Number::Oct + + rule %r/\b[\w\.]+\b/i, Text + rule(%r(<=|>=|<>|[=><\+\-\*\/\\]), Operator) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xpath.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xpath.rb new file mode 100644 index 0000000..fb1d4a4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xpath.rb @@ -0,0 +1,332 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class XPath < RegexLexer + title 'XPath' + desc 'XML Path Language (XPath) 3.1' + tag 'xpath' + filenames '*.xpath' + + # Terminal literals: + # https://www.w3.org/TR/xpath-31/#terminal-symbols + def self.digits + @digits ||= %r/[0-9]+/ + end + + def self.decimalLiteral + @decimalLiteral ||= %r/\.#{digits}|#{digits}\.[0-9]*/ + end + + def self.doubleLiteral + @doubleLiteral ||= %r/(\.#{digits})|#{digits}(\.[0-9]*)?[eE][+-]?#{digits}/ + end + + def self.stringLiteral + @stringLiteral ||= %r/("(("")|[^"])*")|('(('')|[^'])*')/ + end + + def self.ncName + @ncName ||= %r/[a-z_][a-z_\-.0-9]*/i + end + + def self.qName + @qName ||= %r/(?:#{ncName})(?::#{ncName})?/ + end + + def self.uriQName + @uriQName ||= %r/Q\{[^{}]*\}#{ncName}/ + end + + def self.eqName + @eqName ||= %r/(?:#{uriQName}|#{qName})/ + end + + def self.commentStart + @commentStart ||= %r/\(:/ + end + + def self.openParen + @openParen ||= %r/\((?!:)/ + end + + # Terminal symbols: + # https://www.w3.org/TR/xpath-30/#id-terminal-delimitation + def self.kindTest + @kindTest ||= Regexp.union %w( + element attribute schema-element schema-attribute + comment text node document-node namespace-node + ) + end + + def self.kindTestForPI + @kindTestForPI ||= Regexp.union %w(processing-instruction) + end + + def self.axes + @axes ||= Regexp.union %w( + child descendant attribute self descendant-or-self + following-sibling following namespace + parent ancestor preceding-sibling preceding ancestor-or-self + ) + end + + def self.operators + @operators ||= Regexp.union %w(, => = := : >= >> > <= << < - * != + // / || |) + end + + def self.keywords + @keywords ||= Regexp.union %w(let for some every if then else return in satisfies) + end + + def self.word_operators + @word_operators ||= Regexp.union %w( + and or eq ge gt le lt ne is + div mod idiv + intersect except union + to + ) + end + + def self.constructorTypes + @constructorTypes ||= Regexp.union %w(function array map empty-sequence) + end + + # Mixin states: + + state :commentsAndWhitespace do + rule XPath.commentStart, Comment, :comment + rule %r/\s+/m, Text::Whitespace + end + + # Lexical states: + # https://www.w3.org/TR/xquery-xpath-parsing/#XPath-lexical-states + # https://lists.w3.org/Archives/Public/public-qt-comments/2004Aug/0127.html + # https://www.w3.org/TR/xpath-30/#id-revision-log + # https://www.w3.org/TR/xpath-31/#id-revision-log + + state :root do + mixin :commentsAndWhitespace + + # Literals + rule XPath.doubleLiteral, Num::Float + rule XPath.decimalLiteral, Num::Float + rule XPath.digits, Num + rule XPath.stringLiteral, Literal::String + + # Variables + rule %r/\$/, Name::Variable, :varname + + # Operators + rule XPath.operators, Operator + rule %r/#{XPath.word_operators}\b/, Operator::Word + rule %r/#{XPath.keywords}\b/, Keyword + rule %r/[?,{}()\[\]]/, Punctuation + + # Functions + rule %r/(function)(\s*)(#{XPath.openParen})/ do # function declaration + groups Keyword, Text::Whitespace, Punctuation + end + rule %r/(map|array|empty-sequence)/, Keyword # constructors + rule %r/(#{XPath.kindTest})(\s*)(#{XPath.openParen})/ do # kindtest + groups Keyword, Text::Whitespace, Punctuation + push :kindtest + end + rule %r/(#{XPath.kindTestForPI})(\s*)(#{XPath.openParen})/ do # processing instruction kindtest + groups Keyword, Text::Whitespace, Punctuation + push :kindtestforpi + end + rule %r/(#{XPath.eqName})(\s*)(#{XPath.openParen})/ do # function call + groups Name::Function, Text::Whitespace, Punctuation + end + rule %r/(#{XPath.eqName})(\s*)(#)(\s*)(\d+)/ do # namedFunctionRef + groups Name::Function, Text::Whitespace, Name::Function, Text::Whitespace, Name::Function + end + + # Type commands + rule %r/(cast|castable)(\s+)(as)/ do + groups Keyword, Text::Whitespace, Keyword + push :singletype + end + rule %r/(treat)(\s+)(as)/ do + groups Keyword, Text::Whitespace, Keyword + push :itemtype + end + rule %r/(instance)(\s+)(of)/ do + groups Keyword, Text::Whitespace, Keyword + push :itemtype + end + rule %r/(as)\b/ do + token Keyword + push :itemtype + end + + # Paths + rule %r/(#{XPath.ncName})(\s*)(:)(\s*)(\*)/ do + groups Name::Tag, Text::Whitespace, Punctuation, Text::Whitespace, Operator + end + rule %r/(\*)(\s*)(:)(\s*)(#{XPath.ncName})/ do + groups Operator, Text::Whitespace, Punctuation, Text::Whitespace, Name::Tag + end + rule %r/(#{XPath.axes})(\s*)(::)/ do + groups Keyword, Text::Whitespace, Operator + end + rule %r/\.\.|\.|\*/, Operator + rule %r/@/, Name::Attribute, :attrname + rule XPath.eqName, Name::Tag + end + + state :singletype do + mixin :commentsAndWhitespace + + # Type name + rule XPath.eqName do + token Keyword::Type + pop! + end + end + + state :itemtype do + mixin :commentsAndWhitespace + + # Type tests + rule %r/(#{XPath.kindTest})(\s*)(#{XPath.openParen})/ do + groups Keyword::Type, Text::Whitespace, Punctuation + # go to kindtest then occurrenceindicator + goto :occurrenceindicator + push :kindtest + end + rule %r/(#{XPath.kindTestForPI})(\s*)(#{XPath.openParen})/ do + groups Keyword::Type, Text::Whitespace, Punctuation + # go to kindtestforpi then occurrenceindicator + goto :occurrenceindicator + push :kindtestforpi + end + rule %r/(item)(\s*)(#{XPath.openParen})(\s*)(\))/ do + groups Keyword::Type, Text::Whitespace, Punctuation, Text::Whitespace, Punctuation + goto :occurrenceindicator + end + rule %r/(#{XPath.constructorTypes})(\s*)(#{XPath.openParen})/ do + groups Keyword::Type, Text::Whitespace, Punctuation + end + + # Type commands + rule %r/(cast|castable)(\s+)(as)/ do + groups Keyword, Text::Whitespace, Keyword + goto :singletype + end + rule %r/(treat)(\s+)(as)/ do + groups Keyword, Text::Whitespace, Keyword + goto :itemtype + end + rule %r/(instance)(\s+)(of)/ do + groups Keyword, Text::Whitespace, Keyword + goto :itemtype + end + rule %r/(as)\b/, Keyword + + # Operators + rule XPath.operators do + token Operator + pop! + end + rule %r/#{XPath.word_operators}\b/ do + token Operator::Word + pop! + end + rule %r/#{XPath.keywords}\b/ do + token Keyword + pop! + end + rule %r/[\[),]/ do + token Punctuation + pop! + end + + # Other types (e.g. xs:double) + rule XPath.eqName do + token Keyword::Type + goto :occurrenceindicator + end + end + + # For pseudo-parameters for the KindTest productions + state :kindtest do + mixin :commentsAndWhitespace + + # Pseudo-parameters: + rule %r/[?*]/, Operator + rule %r/,/, Punctuation + rule %r/(element|schema-element)(\s*)(#{XPath.openParen})/ do + groups Keyword::Type, Text::Whitespace, Punctuation + push :kindtest + end + rule XPath.eqName, Name::Tag + + # End of pseudo-parameters + rule %r/\)/, Punctuation, :pop! + end + + # Similar to :kindtest, but recognizes NCNames instead of EQNames + state :kindtestforpi do + mixin :commentsAndWhitespace + + # Pseudo-parameters + rule XPath.ncName, Name + rule XPath.stringLiteral, Literal::String + + # End of pseudo-parameters + rule %r/\)/, Punctuation, :pop! + end + + state :occurrenceindicator do + mixin :commentsAndWhitespace + + # Occurrence indicator + rule %r/[?*+]/ do + token Operator + pop! + end + + # Otherwise, lex it in root state: + rule %r/(?![?*+])/ do + pop! + end + end + + state :varname do + mixin :commentsAndWhitespace + + # Function call + rule %r/(#{XPath.eqName})(\s*)(#{XPath.openParen})/ do + groups Name::Variable, Text::Whitespace, Punctuation + pop! + end + + # Variable name + rule XPath.eqName, Name::Variable, :pop! + end + + state :attrname do + mixin :commentsAndWhitespace + + # Attribute name + rule XPath.eqName, Name::Attribute, :pop! + rule %r/\*/, Operator, :pop! + end + + state :comment do + # Comment end + rule %r/:\)/, Comment, :pop! + + # Nested comment + rule XPath.commentStart, Comment, :comment + + # Comment contents + rule %r/[^:(]+/m, Comment + rule %r/[:(]/, Comment + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xquery.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xquery.rb new file mode 100644 index 0000000..eb0d7a7 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/xquery.rb @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + load_lexer 'xpath.rb' + class XQuery < XPath + title 'XQuery' + desc 'XQuery 3.1: An XML Query Language' + tag 'xquery' + filenames '*.xquery', '*.xq', '*.xqm' + mimetypes 'application/xquery' + + def self.keywords + @keywords ||= Regexp.union super, Regexp.union(%w( + xquery encoding version declare module + namespace copy-namespaces boundary-space construction + default collation base-uri preserve strip + ordering ordered unordered order empty greatest least + preserve no-preserve inherit no-inherit + decimal-format decimal-separator grouping-separator + infinity minus-sign NaN percent per-mille + zero-digit digit pattern-separator exponent-separator + import schema at element option + function external context item + typeswitch switch case + try catch + validate lax strict type + document element attribute text comment processing-instruction + for let where order group by return + allowing tumbling stable sliding window + start end only when previous next count collation + ascending descending + )) + end + + # Mixin states: + + state :tags do + rule %r/<#{XPath.qName}/, Name::Tag, :start_tag + rule %r/<!--/, Comment, :xml_comment + rule %r/<\?.*?\?>/, Comment::Preproc + rule %r/<!\[CDATA\[.*?\]\]>/, Comment::Preproc + rule %r/&\S*?;/, Name::Entity + end + + # Lexical states: + + prepend :root do + mixin :tags + + rule %r/\{/, Punctuation + rule %r/\}`?/ do + token Punctuation + if stack.length > 1 + pop! + end + end + + rule %r/(namespace)(\s+)(#{XPath.ncName})/ do + groups Keyword, Text::Whitespace, Name::Namespace + end + + rule %r/(#{XQuery.keywords})\b/, Keyword + rule %r/;/, Punctuation + rule %r/%/, Keyword::Declaration, :annotation + + rule %r/(\(#)(\s*)(#{XPath.eqName})/ do + groups Comment::Preproc, Text::Whitespace, Name::Tag + push :pragma + end + + rule %r/``\[/, Str, :str_constructor + end + + state :annotation do + mixin :commentsAndWhitespace + rule XPath.eqName, Keyword::Declaration, :pop! + end + + state :pragma do + mixin :commentsAndWhitespace + rule %r/#\)/, Comment::Preproc, :pop! + rule %r/./, Comment::Preproc + end + + # https://www.w3.org/TR/xquery-31/#id-string-constructors + state :str_constructor do + rule %r/`\{/, Punctuation, :root + rule %r/\]``/, Str, :pop! + rule %r/[^`\]]+/m, Str + rule %r/[`\]]/, Str + end + + state :xml_comment do + rule %r/[^-]+/m, Comment + rule %r/-->/, Comment, :pop! + rule %r/-/, Comment + end + + state :start_tag do + rule %r/\s+/m, Text::Whitespace + rule %r/([\w.:-]+\s*=)(")/m do + groups Name::Attribute, Str + push :quot_attr + end + rule %r/([\w.:-]+\s*=)(')/m do + groups Name::Attribute, Str + push :apos_attr + end + rule %r/>/, Name::Tag, :tag_content + rule %r(/>), Name::Tag, :pop! + end + + state :quot_attr do + rule %r/"/, Str, :pop! + rule %r/\{\{/, Str + rule %r/\{/, Punctuation, :root + rule %r/[^"{>]+/m, Str + end + + state :apos_attr do + rule %r/'/, Str, :pop! + rule %r/\{\{/, Str + rule %r/\{/, Punctuation, :root + rule %r/[^'{>]+/m, Str + end + + state :tag_content do + rule %r/\s+/m, Text::Whitespace + mixin :tags + + rule %r/(\{\{|\}\})/, Text + rule %r/\{/, Punctuation, :root + + rule %r/[^{}<&]/, Text + + rule %r(</#{XPath.qName}(\s*)>) do + token Name::Tag + pop! 2 # pop self and tag_start + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/yaml.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/yaml.rb new file mode 100644 index 0000000..1e949a6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/yaml.rb @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class YAML < RegexLexer + title "YAML" + desc "Yaml Ain't Markup Language (yaml.org)" + mimetypes 'text/x-yaml' + tag 'yaml' + aliases 'yml' + filenames '*.yaml', '*.yml' + + # Documentation: https://yaml.org/spec/1.2/spec.html + + def self.detect?(text) + # look for the %YAML directive + return true if text =~ /\A\s*%YAML/m + end + + # NB: Tabs are forbidden in YAML, which is why you see things + # like /[ ]+/. + + # reset the indentation levels + def reset_indent + puts " yaml: reset_indent" if @debug + @indent_stack = [0] + @next_indent = 0 + @block_scalar_indent = nil + end + + def indent + raise 'empty indent stack!' if @indent_stack.empty? + @indent_stack.last + end + + def dedent?(level) + level < self.indent + end + + def indent?(level) + level > self.indent + end + + # Save a possible indentation level + def save_indent(match) + @next_indent = match.size + puts " yaml: indent: #{self.indent}/#@next_indent" if @debug + puts " yaml: popping indent stack - before: #@indent_stack" if @debug + if dedent?(@next_indent) + @indent_stack.pop while dedent?(@next_indent) + puts " yaml: popping indent stack - after: #@indent_stack" if @debug + puts " yaml: indent: #{self.indent}/#@next_indent" if @debug + + # dedenting to a state not previously indented to is an error + [match[0...self.indent], match[self.indent..-1]] + else + [match, ''] + end + end + + def continue_indent(match) + puts " yaml: continue_indent" if @debug + @next_indent += match.size + end + + def set_indent(match, opts={}) + if indent < @next_indent + puts " yaml: indenting #{indent}/#{@next_indent}" if @debug + @indent_stack << @next_indent + end + + @next_indent += match.size unless opts[:implicit] + end + + plain_scalar_start = /[^ \t\n\r\f\v?:,\[\]{}#&*!\|>'"%@`]/ + + start { reset_indent } + + state :basic do + rule %r/#.*$/, Comment::Single + end + + state :root do + mixin :basic + + rule %r/\n+/, Text + + # trailing or pre-comment whitespace + rule %r/[ ]+(?=#|$)/, Text + + rule %r/^%YAML\b/ do + token Name::Tag + reset_indent + push :yaml_directive + end + + rule %r/^%TAG\b/ do + token Name::Tag + reset_indent + push :tag_directive + end + + # doc-start and doc-end indicators + rule %r/^(?:---|\.\.\.)(?= |$)/ do + token Name::Namespace + reset_indent + push :block_line + end + + # indentation spaces + rule %r/[ ]*(?!\s|$)/ do |m| + text, err = save_indent(m[0]) + token Text, text + token Error, err + push :block_line; push :indentation + end + end + + state :indentation do + rule(/\s*?\n/) { token Text; pop! 2 } + # whitespace preceding block collection indicators + rule %r/[ ]+(?=[-:?](?:[ ]|$))/ do |m| + token Text + continue_indent(m[0]) + end + + # block collection indicators + rule(/[?:-](?=[ ]|$)/) do |m| + set_indent m[0] + token Punctuation::Indicator + end + + # the beginning of a block line + rule(/[ ]*/) { |m| token Text; continue_indent(m[0]); pop! } + end + + # indented line in the block context + state :block_line do + # line end + rule %r/[ ]*(?=#|$)/, Text, :pop! + rule %r/[ ]+/, Text + # tags, anchors, and aliases + mixin :descriptors + # block collections and scalars + mixin :block_nodes + # flow collections and quoed scalars + mixin :flow_nodes + + # a plain scalar + rule %r/(?=#{plain_scalar_start}|[?:-][^ \t\n\r\f\v])/ do + token Name::Variable + push :plain_scalar_in_block_context + end + end + + state :descriptors do + # a full-form tag + rule %r/!<[0-9A-Za-z;\/?:@&=+$,_.!~*'()\[\]%-]+>/, Keyword::Type + + # a tag in the form '!', '!suffix' or '!handle!suffix' + rule %r( + (?:![\w-]+)? # handle + !(?:[\w;/?:@&=+$,.!~*\'()\[\]%-]*) # suffix + )x, Keyword::Type + + # an anchor + rule %r/&[\p{L}\p{Nl}\p{Nd}_-]+/, Name::Label + + # an alias + rule %r/\*[\p{L}\p{Nl}\p{Nd}_-]+/, Name::Variable + end + + state :block_nodes do + # implicit key + rule %r/([^#,?\[\]{}"'\n]+)(:)(?=\s|$)/ do |m| + groups Name::Attribute, Punctuation::Indicator + set_indent m[0], :implicit => true + end + + # literal and folded scalars + rule %r/[\|>][+-]?/ do + token Punctuation::Indicator + push :block_scalar_content + push :block_scalar_header + end + end + + state :flow_nodes do + rule %r/\[/, Punctuation::Indicator, :flow_sequence + rule %r/\{/, Punctuation::Indicator, :flow_mapping + rule %r/'/, Str::Single, :single_quoted_scalar + rule %r/"/, Str::Double, :double_quoted_scalar + end + + state :flow_collection do + rule %r/\s+/m, Text + mixin :basic + rule %r/[?:,]/, Punctuation::Indicator + mixin :descriptors + mixin :flow_nodes + + rule %r/(?=#{plain_scalar_start})/ do + push :plain_scalar_in_flow_context + end + end + + state :flow_sequence do + rule %r/\]/, Punctuation::Indicator, :pop! + mixin :flow_collection + end + + state :flow_mapping do + rule %r/\}/, Punctuation::Indicator, :pop! + mixin :flow_collection + end + + state :block_scalar_content do + rule %r/\n+/, Text + + # empty lines never dedent, but they might be part of the scalar. + rule %r/^[ ]+$/ do |m| + text = m[0] + indent_size = text.size + + indent_mark = @block_scalar_indent || indent_size + + token Text, text[0...indent_mark] + token Name::Constant, text[indent_mark..-1] + end + + # TODO: ^ doesn't actually seem to affect the match at all. + # Find a way to work around this limitation. + rule %r/^[ ]*/ do |m| + token Text + + indent_size = m[0].size + + dedent_level = @block_scalar_indent || self.indent + @block_scalar_indent ||= indent_size + + if indent_size < dedent_level + save_indent m[0] + pop! + push :indentation + end + end + + rule %r/[^\n\r\f\v]+/, Str + end + + state :block_scalar_header do + # optional indentation indicator and chomping flag, in either order + rule %r( + ( + ([1-9])[+-]? | [+-]?([1-9])? + )(?=[ ]|$) + )x do |m| + @block_scalar_indent = nil + goto :ignored_line + next if m[0].empty? + + increment = m[1] || m[2] + if increment + @block_scalar_indent = indent + increment.to_i + end + + token Punctuation::Indicator + end + end + + state :ignored_line do + mixin :basic + rule %r/[ ]+/, Text + rule %r/\n/, Text, :pop! + end + + state :quoted_scalar_whitespaces do + # leading and trailing whitespace is ignored + rule %r/^[ ]+/, Text + rule %r/[ ]+$/, Text + + rule %r/\n+/m, Text + + rule %r/[ ]+/, Name::Variable + end + + state :single_quoted_scalar do + mixin :quoted_scalar_whitespaces + rule %r/\\'/, Str::Escape + rule %r/'/, Str, :pop! + rule %r/[^\s']+/, Str + end + + state :double_quoted_scalar do + rule %r/"/, Str, :pop! + mixin :quoted_scalar_whitespaces + # escapes + rule %r/\\[0abt\tn\nvfre "\\N_LP]/, Str::Escape + rule %r/\\(?:x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + Str::Escape + rule %r/[^ \t\n\r\f\v"\\]+/, Str + end + + state :plain_scalar_in_block_context_new_line do + rule %r/^[ ]+\n/, Text + rule %r/\n+/m, Text + rule %r/^(?=---|\.\.\.)/ do + pop! 3 + end + + # dedent detection + rule %r/^[ ]*/ do |m| + token Text + pop! + + indent_size = m[0].size + + # dedent = end of scalar + if indent_size <= self.indent + pop! + save_indent(m[0]) + push :indentation + end + end + end + + state :plain_scalar_in_block_context do + # the : indicator ends a scalar + rule %r/[ ]*(?=:[ \n]|:$)/, Text, :pop! + rule %r/[ ]*:\S+/, Str + rule %r/[ ]+(?=#)/, Text, :pop! + rule %r/[ ]+$/, Text + # check for new documents or dedents at the new line + rule %r/\n+/ do + token Text + push :plain_scalar_in_block_context_new_line + end + + rule %r/[ ]+/, Str + rule %r((true|false|null)\b), Keyword::Constant + rule %r/\d+(?:\.\d+)?(?=(\r?\n)| +#)/, Literal::Number, :pop! + + # regular non-whitespace characters + rule %r/[^\s:]+/, Str + end + + state :plain_scalar_in_flow_context do + rule %r/[ ]*(?=[,:?\[\]{}])/, Text, :pop! + rule %r/[ ]+(?=#)/, Text, :pop! + rule %r/^[ ]+/, Text + rule %r/[ ]+$/, Text + rule %r/\n+/, Text + rule %r/[ ]+/, Name::Variable + rule %r/[^\s,:?\[\]{}]+/, Name::Variable + end + + state :yaml_directive do + rule %r/([ ]+)(\d+\.\d+)/ do + groups Text, Num + goto :ignored_line + end + end + + state :tag_directive do + rule %r( + ([ ]+)(!|![\w-]*!) # prefix + ([ ]+)(!|!?[\w;/?:@&=+$,.!~*'()\[\]%-]+) # tag handle + )x do + groups Text, Keyword::Type, Text, Keyword::Type + goto :ignored_line + end + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/yang.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/yang.rb new file mode 100644 index 0000000..a9d54f0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/yang.rb @@ -0,0 +1,147 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class YANG < RegexLexer + title 'YANG' + desc "Lexer for the YANG 1.1 modeling language (RFC7950)" + tag 'yang' + filenames '*.yang' + mimetypes 'application/yang' + + id = /[\w-]+(?=[^\w\-\:])\b/ + + #Keywords from RFC7950 ; oriented at BNF style + def self.top_stmts_keywords + @top_stms_keywords ||= Set.new %w( + module submodule + ) + end + + def self.module_header_stmts_keywords + @module_header_stmts_keywords ||= Set.new %w( + belongs-to namespace prefix yang-version + ) + end + + def self.meta_stmts_keywords + @meta_stmts_keywords ||= Set.new %w( + contact description organization reference revision + ) + end + + def self.linkage_stmts_keywords + @linkage_stmts_keywords ||= Set.new %w( + import include revision-date + ) + end + + def self.body_stmts_keywords + @body_stms_keywords ||= Set.new %w( + action argument augment deviation extension feature grouping identity + if-feature input notification output rpc typedef + ) + end + + def self.data_def_stmts_keywords + @data_def_stms_keywords ||= Set.new %w( + anydata anyxml case choice config container deviate leaf leaf-list + list must presence refine uses when + ) + end + + def self.type_stmts_keywords + @type_stmts_keywords ||= Set.new %w( + base bit default enum error-app-tag error-message fraction-digits + length max-elements min-elements modifier ordered-by path pattern + position range require-instance status type units value yin-element + ) + end + + def self.list_stmts_keywords + @list_stmts_keywords ||= Set.new %w( + key mandatory unique + ) + end + + #RFC7950 other keywords + def self.constants_keywords + @constants_keywords ||= Set.new %w( + add current delete deprecated false invert-match max min + not-supported obsolete replace true unbounded user + ) + end + + #RFC7950 Built-In Types + def self.types + @types ||= Set.new %w( + binary bits boolean decimal64 empty enumeration identityref + instance-identifier int16 int32 int64 int8 leafref string uint16 + uint32 uint64 uint8 union + ) + end + + state :comment do + rule %r/[^*\/]/, Comment + rule %r/\/\*/, Comment, :comment + rule %r/\*\//, Comment, :pop! + rule %r/[*\/]/, Comment + end + + #Keyword::Reserved + #groups Name::Tag, Text::Whitespace + state :root do + rule %r/\s+/, Text::Whitespace + rule %r/[\{\}\;]+/, Punctuation + rule %r/(?<![\-\w])(and|or|not|\+|\.)(?![\-\w])/, Operator + + rule %r/"(?:\\"|[^"])*?"/, Str::Double #for double quotes + rule %r/'(?:\\'|[^'])*?'/, Str::Single #for single quotes + + rule %r/\/\*/, Comment, :comment + rule %r/\/\/.*?$/, Comment + + #match BNF stmt for `node-identifier` with [ prefix ":"] + rule %r/(?:^|(?<=[\s{};]))([\w.-]+)(:)([\w.-]+)(?=[\s{};])/ do + groups Name::Namespace, Punctuation, Name + end + + #match BNF stmt `date-arg-str` + rule %r/([0-9]{4}\-[0-9]{2}\-[0-9]{2})(?=[\s\{\}\;])/, Name::Label + rule %r/([0-9]+\.[0-9]+)(?=[\s\{\}\;])/, Num::Float + rule %r/([0-9]+)(?=[\s\{\}\;])/, Num::Integer + + rule id do |m| + name = m[0].downcase + + if self.class.top_stmts_keywords.include? name + token Keyword::Declaration + elsif self.class.module_header_stmts_keywords.include? name + token Keyword::Declaration + elsif self.class.meta_stmts_keywords.include? name + token Keyword::Declaration + elsif self.class.linkage_stmts_keywords.include? name + token Keyword::Declaration + elsif self.class.body_stmts_keywords.include? name + token Keyword::Declaration + elsif self.class.data_def_stmts_keywords.include? name + token Keyword::Declaration + elsif self.class.type_stmts_keywords.include? name + token Keyword::Declaration + elsif self.class.list_stmts_keywords.include? name + token Keyword::Declaration + elsif self.class.types.include? name + token Keyword::Type + elsif self.class.constants_keywords.include? name + token Name::Constant + else + token Name + end + end + + rule %r/[^;{}\s'"]+/, Name + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/zig.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/zig.rb new file mode 100644 index 0000000..d278a36 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/lexers/zig.rb @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Lexers + class Zig < RegexLexer + tag 'zig' + aliases 'zir' + filenames '*.zig' + mimetypes 'text/x-zig' + + title 'Zig' + desc 'The Zig programming language (ziglang.org)' + + def self.keywords + @keywords ||= %w( + align linksection threadlocal struct enum union error break return + anyframe fn c_longlong c_ulonglong c_longdouble c_void comptime_float + c_short c_ushort c_int c_uint c_long c_ulong continue asm defer + errdefer const var extern packed export pub if else switch and or + orelse while for bool unreachable try catch async suspend nosuspend + await resume undefined usingnamespace test void noreturn type + anyerror usize noalias inline noinline comptime callconv volatile + allowzero + ) + end + + def self.builtins + @builtins ||= %w( + @addWithOverflow @as @atomicLoad @atomicStore @bitCast @breakpoint + @alignCast @alignOf @cDefine @cImport @cInclude @bitOffsetOf + @atomicRmw @bytesToSlice @byteOffsetOf @OpaqueType @panic @ptrCast + @bitReverse @Vector @sin @cUndef @canImplicitCast @clz @cmpxchgWeak + @cmpxchgStrong @compileError @compileLog @ctz @popCount @divExact + @divFloor @cos @divTrunc @embedFile @export @tagName @TagType + @errorName @call @errorReturnTrace @fence @fieldParentPtr @field + @unionInit @errorToInt @intToEnum @enumToInt @setAlignStack @frame + @Frame @exp @exp2 @log @log2 @log10 @fabs @floor @ceil @trunc @round + @floatCast @intToFloat @floatToInt @boolToInt @errSetCast @intToError + @frameAddress @import @newStackCall @asyncCall @intToPtr @intCast + @frameSize @memcpy @memset @mod @mulWithOverflow @splat @ptrToInt + @rem @returnAddress @setCold @Type @shuffle @setGlobalLinkage + @setGlobalSection @shlExact @This @hasDecl @hasField + @setRuntimeSafety @setEvalBranchQuota @setFloatMode @shlWithOverflow + @shrExact @sizeOf @bitSizeOf @sqrt @byteSwap @subWithOverflow + @sliceToBytes comptime_int @truncate @typeInfo @typeName @TypeOf + ) + end + + id = /[a-z_]\w*/i + escapes = /\\ ([nrt'"\\0] | x\h{2} | u\h{4} | U\h{8})/x + + state :bol do + mixin :whitespace + rule %r/#\s[^\n]*/, Comment::Special + rule(//) { pop! } + end + + state :attribute do + mixin :whitespace + mixin :literals + rule %r/[(,)=:]/, Name::Decorator + rule %r/\]/, Name::Decorator, :pop! + rule id, Name::Decorator + end + + state :whitespace do + rule %r/\s+/, Text + rule %r(//[^\n]*), Comment + end + + state :root do + rule %r/\n/, Text, :bol + + mixin :whitespace + + rule %r/\b(?:(i|u)[0-9]+)\b/, Keyword::Type + rule %r/\b(?:f(16|32|64|128))\b/, Keyword::Type + rule %r/\b(?:(isize|usize))\b/, Keyword::Type + + mixin :literals + + rule %r/'#{id}/, Name::Variable + rule %r/([.]?)(\s*)(@?#{id})(\s*)([(]?)/ do |m| + name = m[3] + t = if self.class.keywords.include? name + Keyword + elsif self.class.builtins.include? name + Name::Builtin + elsif !m[1].empty? && !m[5].empty? + Name::Function + elsif !m[1].empty? + Name::Property + else + Name + end + + groups Punctuation, Text, t, Text, Punctuation + end + + rule %r/[()\[\]{}|,:;]/, Punctuation + rule %r/[*\/!@~&+%^<>=\?-]|\.{1,3}/, Operator + end + + state :literals do + rule %r/\b(?:true|false|null)\b/, Keyword::Constant + rule %r( + ' (?: #{escapes} | [^\\] ) ' + )x, Str::Char + + rule %r/"/, Str, :string + rule %r/r(#*)".*?"\1/m, Str + + dot = /[.][0-9_]+/ + exp = /e[-+]?[0-9_]+/ + + rule %r( + [0-9]+ + (#{dot} #{exp}? + |#{dot}? #{exp} + ) + )x, Num::Float + + rule %r( + ( 0b[10_]+ + | 0x[0-9a-fA-F_]+ + | [0-9_]+ + ) + )x, Num::Integer + end + + state :string do + rule %r/"/, Str, :pop! + rule escapes, Str::Escape + rule %r/[^"\\]+/m, Str + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/plugins/redcarpet.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/plugins/redcarpet.rb new file mode 100644 index 0000000..2558e1b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/plugins/redcarpet.rb @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# this file is not require'd from the root. To use this plugin, run: +# +# require 'rouge/plugins/redcarpet' + +module Rouge + module Plugins + module Redcarpet + def block_code(code, language) + lexer = + begin + Lexer.find_fancy(language, code) + rescue Guesser::Ambiguous => e + e.alternatives.first + end + lexer ||= Lexers::PlainText + + # XXX HACK: Redcarpet strips hard tabs out of code blocks, + # so we assume you're not using leading spaces that aren't tabs, + # and just replace them here. + if lexer.tag == 'make' + code.gsub! %r/^ /, "\t" + end + + formatter = rouge_formatter(lexer) + formatter.format(lexer.lex(code)) + end + + # override this method for custom formatting behavior + def rouge_formatter(lexer) + Formatters::HTMLLegacy.new(:css_class => "highlight #{lexer.tag}") + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/regex_lexer.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/regex_lexer.rb new file mode 100644 index 0000000..02eba21 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/regex_lexer.rb @@ -0,0 +1,511 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + # @abstract + # A stateful lexer that uses sets of regular expressions to + # tokenize a string. Most lexers are instances of RegexLexer. + class RegexLexer < Lexer + class InvalidRegex < StandardError + def initialize(re) + @re = re + end + + def to_s + "regex #{@re.inspect} matches empty string, but has no predicate!" + end + end + + class ClosedState < StandardError + attr_reader :state + def initialize(state) + @state = state + end + + def rule + @state.rules.last + end + + def to_s + rule = @state.rules.last + msg = "State :#{state.name} cannot continue after #{rule.inspect}, which will always match." + if rule.re.source.include?('*') + msg += " Consider replacing * with +." + end + + msg + end + end + + # A rule is a tuple of a regular expression to test, and a callback + # to perform if the test succeeds. + # + # @see StateDSL#rule + class Rule + attr_reader :callback + attr_reader :re + attr_reader :beginning_of_line + def initialize(re, callback) + @re = re + @callback = callback + @beginning_of_line = re.source[0] == ?^ + end + + def inspect + "#<Rule #{@re.inspect}>" + end + end + + # a State is a named set of rules that can be tested for or + # mixed in. + # + # @see RegexLexer.state + class State + attr_reader :name, :rules + def initialize(name, rules) + @name = name + @rules = rules + end + + def inspect + "#<#{self.class.name} #{@name.inspect}>" + end + end + + class StateDSL + attr_reader :rules, :name + def initialize(name, &defn) + @name = name + @defn = defn + @rules = [] + @loaded = false + @closed = false + end + + def to_state(lexer_class) + load! + rules = @rules.map do |rule| + rule.is_a?(String) ? lexer_class.get_state(rule) : rule + end + State.new(@name, rules) + end + + def prepended(&defn) + parent_defn = @defn + StateDSL.new(@name) do + instance_eval(&defn) + instance_eval(&parent_defn) + end + end + + def appended(&defn) + parent_defn = @defn + StateDSL.new(@name) do + instance_eval(&parent_defn) + instance_eval(&defn) + end + end + + protected + # Define a new rule for this state. + # + # @overload rule(re, token, next_state=nil) + # @overload rule(re, &callback) + # + # @param [Regexp] re + # a regular expression for this rule to test. + # @param [String] tok + # the token type to yield if `re` matches. + # @param [#to_s] next_state + # (optional) a state to push onto the stack if `re` matches. + # If `next_state` is `:pop!`, the state stack will be popped + # instead. + # @param [Proc] callback + # a block that will be evaluated in the context of the lexer + # if `re` matches. This block has access to a number of lexer + # methods, including {RegexLexer#push}, {RegexLexer#pop!}, + # {RegexLexer#token}, and {RegexLexer#delegate}. The first + # argument can be used to access the match groups. + def rule(re, tok=nil, next_state=nil, &callback) + raise ClosedState.new(self) if @closed + + if tok.nil? && callback.nil? + raise "please pass `rule` a token to yield or a callback" + end + + matches_empty = re =~ '' + + callback ||= case next_state + when :pop! + proc do |stream| + puts " yielding: #{tok.qualname}, #{stream[0].inspect}" if @debug + @output_stream.call(tok, stream[0]) + puts " popping stack: 1" if @debug + @stack.pop or raise 'empty stack!' + end + when :push + proc do |stream| + puts " yielding: #{tok.qualname}, #{stream[0].inspect}" if @debug + @output_stream.call(tok, stream[0]) + puts " pushing :#{@stack.last.name}" if @debug + @stack.push(@stack.last) + end + when Symbol + proc do |stream| + puts " yielding: #{tok.qualname}, #{stream[0].inspect}" if @debug + @output_stream.call(tok, stream[0]) + state = @states[next_state] || self.class.get_state(next_state) + puts " pushing :#{state.name}" if @debug + @stack.push(state) + end + when nil + # cannot use an empty-matching regexp with no predicate + raise InvalidRegex.new(re) if matches_empty + + proc do |stream| + puts " yielding: #{tok.qualname}, #{stream[0].inspect}" if @debug + @output_stream.call(tok, stream[0]) + end + when Array + proc do |stream| + puts " yielding: #{tok.qualname}, #{stream[0].inspect}" if @debug + @output_stream.call(tok, stream[0]) + for i_next_state in next_state do + next @stack.pop if i_next_state == :pop! + next @stack.push(@stack.last) if i_next_state == :push + + state = @states[i_next_state] || self.class.get_state(i_next_state) + puts " pushing :#{state.name}" if @debug + @stack.push(state) + end + end + else + raise "invalid next state: #{next_state.inspect}" + end + + rules << Rule.new(re, callback) + + close! if matches_empty && !context_sensitive?(re) + end + + def context_sensitive?(re) + source = re.source + return true if source =~ /[(][?]<?[!=]/ + + # anchors count as lookahead/behind + return true if source =~ /[$^]/ + + false + end + + def close! + @closed = true + end + + # Mix in the rules from another state into this state. The rules + # from the mixed-in state will be tried in order before moving on + # to the rest of the rules in this state. + def mixin(state) + rules << state.to_s + end + + private + def load! + return if @loaded + @loaded = true + instance_eval(&@defn) + end + end + + # The states hash for this lexer. + # @see state + def self.states + @states ||= {} + end + + def self.state_definitions + @state_definitions ||= InheritableHash.new(superclass.state_definitions) + end + @state_definitions = {} + + def self.replace_state(name, new_defn) + states[name] = nil + state_definitions[name] = new_defn + end + + # The routines to run at the beginning of a fresh lex. + # @see start + def self.start_procs + @start_procs ||= InheritableList.new(superclass.start_procs) + end + @start_procs = [] + + # Specify an action to be run every fresh lex. + # + # @example + # start { puts "I'm lexing a new string!" } + def self.start(&b) + start_procs << b + end + + # Define a new state for this lexer with the given name. + # The block will be evaluated in the context of a {StateDSL}. + def self.state(name, &b) + name = name.to_sym + state_definitions[name] = StateDSL.new(name, &b) + end + + def self.prepend(name, &b) + name = name.to_sym + dsl = state_definitions[name] or raise "no such state #{name.inspect}" + replace_state(name, dsl.prepended(&b)) + end + + def self.append(name, &b) + name = name.to_sym + dsl = state_definitions[name] or raise "no such state #{name.inspect}" + replace_state(name, dsl.appended(&b)) + end + + # @private + def self.get_state(name) + return name if name.is_a? State + + states[name.to_sym] ||= begin + defn = state_definitions[name.to_sym] or raise "unknown state: #{name.inspect}" + defn.to_state(self) + end + end + + # @private + def get_state(state_name) + self.class.get_state(state_name) + end + + # The state stack. This is initially the single state `[:root]`. + # It is an error for this stack to be empty. + # @see #state + def stack + @stack ||= [get_state(:root)] + end + + # The current state - i.e. one on top of the state stack. + # + # NB: if the state stack is empty, this will throw an error rather + # than returning nil. + def state + stack.last or raise 'empty stack!' + end + + # reset this lexer to its initial state. This runs all of the + # start_procs. + def reset! + @stack = nil + @current_stream = nil + + puts "start blocks" if @debug && self.class.start_procs.any? + self.class.start_procs.each do |pr| + instance_eval(&pr) + end + end + + # This implements the lexer protocol, by yielding [token, value] pairs. + # + # The process for lexing works as follows, until the stream is empty: + # + # 1. We look at the state on top of the stack (which by default is + # `[:root]`). + # 2. Each rule in that state is tried until one is successful. If one + # is found, that rule's callback is evaluated - which may yield + # tokens and manipulate the state stack. Otherwise, one character + # is consumed with an `'Error'` token, and we continue at (1.) + # + # @see #step #step (where (2.) is implemented) + def stream_tokens(str, &b) + stream = StringScanner.new(str) + + @current_stream = stream + @output_stream = b + @states = self.class.states + @null_steps = 0 + + until stream.eos? + if @debug + puts + puts "lexer: #{self.class.tag}" + puts "stack: #{stack.map(&:name).map(&:to_sym).inspect}" + puts "stream: #{stream.peek(20).inspect}" + end + + success = step(state, stream) + + if !success + puts " no match, yielding Error" if @debug + b.call(Token::Tokens::Error, stream.getch) + end + end + end + + # The number of successive scans permitted without consuming + # the input stream. If this is exceeded, the match fails. + MAX_NULL_SCANS = 5 + + # Runs one step of the lex. Rules in the current state are tried + # until one matches, at which point its callback is called. + # + # @return true if a rule was tried successfully + # @return false otherwise. + def step(state, stream) + state.rules.each do |rule| + if rule.is_a?(State) + puts " entering: mixin :#{rule.name}" if @debug + return true if step(rule, stream) + puts " exiting: mixin :#{rule.name}" if @debug + else + puts " trying: #{rule.inspect}" if @debug + + # XXX HACK XXX + # StringScanner's implementation of ^ is b0rken. + # see http://bugs.ruby-lang.org/issues/7092 + # TODO: this doesn't cover cases like /(a|^b)/, but it's + # the most common, for now... + next if rule.beginning_of_line && !stream.beginning_of_line? + + if (size = stream.skip(rule.re)) + puts " got: #{stream[0].inspect}" if @debug + + instance_exec(stream, &rule.callback) + + if size.zero? + @null_steps += 1 + if @null_steps > MAX_NULL_SCANS + puts " warning: too many scans without consuming the string!" if @debug + return false + end + else + @null_steps = 0 + end + + return true + end + end + end + + false + end + + # Yield a token. + # + # @param tok + # the token type + # @param val + # (optional) the string value to yield. If absent, this defaults + # to the entire last match. + def token(tok, val=@current_stream[0]) + yield_token(tok, val) + end + + # @deprecated + # + # Yield a token with the next matched group. Subsequent calls + # to this method will yield subsequent groups. + def group(tok) + raise "RegexLexer#group is deprecated: use #groups instead" + end + + # Yield tokens corresponding to the matched groups of the current + # match. + def groups(*tokens) + tokens.each_with_index do |tok, i| + yield_token(tok, @current_stream[i+1]) + end + end + + # Delegate the lex to another lexer. We use the `continue_lex` method + # so that #reset! will not be called. In this way, a single lexer + # can be repeatedly delegated to while maintaining its own internal + # state stack. + # + # @param [#lex] lexer + # The lexer or lexer class to delegate to + # @param [String] text + # The text to delegate. This defaults to the last matched string. + def delegate(lexer, text=nil) + puts " delegating to: #{lexer.inspect}" if @debug + text ||= @current_stream[0] + + lexer.continue_lex(text) do |tok, val| + puts " delegated token: #{tok.inspect}, #{val.inspect}" if @debug + yield_token(tok, val) + end + end + + def recurse(text=nil) + delegate(self.class, text) + end + + # Push a state onto the stack. If no state name is given and you've + # passed a block, a state will be dynamically created using the + # {StateDSL}. + def push(state_name=nil, &b) + push_state = if state_name + get_state(state_name) + elsif block_given? + StateDSL.new(b.inspect, &b).to_state(self.class) + else + # use the top of the stack by default + self.state + end + + puts " pushing: :#{push_state.name}" if @debug + stack.push(push_state) + end + + # Pop the state stack. If a number is passed in, it will be popped + # that number of times. + def pop!(times=1) + raise 'empty stack!' if stack.empty? + + puts " popping stack: #{times}" if @debug + + stack.pop(times) + + nil + end + + # replace the head of the stack with the given state + def goto(state_name) + raise 'empty stack!' if stack.empty? + + puts " going to: state :#{state_name} " if @debug + stack[-1] = get_state(state_name) + end + + # reset the stack back to `[:root]`. + def reset_stack + puts ' resetting stack' if @debug + stack.clear + stack.push get_state(:root) + end + + # Check if `state_name` is in the state stack. + def in_state?(state_name) + state_name = state_name.to_sym + stack.any? do |state| + state.name == state_name.to_sym + end + end + + # Check if `state_name` is the state on top of the state stack. + def state?(state_name) + state_name.to_sym == state.name + end + + private + def yield_token(tok, val) + return if val.nil? || val.empty? + puts " yielding: #{tok.qualname}, #{val.inspect}" if @debug + @output_stream.yield(tok, val) + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/template_lexer.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/template_lexer.rb new file mode 100644 index 0000000..384b37b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/template_lexer.rb @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + # @abstract + # A TemplateLexer is one that accepts a :parent option, to specify + # which language is being templated. The lexer class can specify its + # own default for the parent lexer, which is otherwise defaulted to + # HTML. + class TemplateLexer < RegexLexer + # the parent lexer - the one being templated. + def parent + return @parent if instance_variable_defined? :@parent + @parent = lexer_option(:parent) || Lexers::HTML.new(@options) + end + + option :parent, "the parent language (default: html)" + + start { parent.reset! } + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/tex_theme_renderer.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/tex_theme_renderer.rb new file mode 100644 index 0000000..e912e2e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/tex_theme_renderer.rb @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + class TexThemeRenderer + def initialize(theme, opts={}) + @theme = theme + @prefix = opts.fetch(:prefix) { 'RG' } + end + + # Our general strategy is this: + # + # * First, define the \RG{tokname}{content} command, which will + # expand into \RG@tok@tokname{content}. We use \csname...\endcsname + # to interpolate into a command. + # + # * Define the default RG* environment, which will enclose the whole + # thing. By default this will simply set \ttfamily (select monospace font) + # but it can be overridden with \renewcommand by the user to be + # any other formatting. + # + # * Define all the colors using xcolors \definecolor command. First we define + # every palette color with a name such as RG@palette@themneame@colorname. + # Then we find all foreground and background colors that have literal html + # colors embedded in them and define them with names such as + # RG@palette@themename@000000. While html allows three-letter colors such + # as #FFF, xcolor requires all six characters to be present, so we make sure + # to normalize that as well as the case convention in #inline_name. + # + # * Define the token commands RG@tok@xx. These will take the content as the + # argument and format it according to the theme, referring to the color + # in the palette. + def render(&b) + yield <<'END'.gsub('RG', @prefix) +\makeatletter +\def\RG#1#2{\csname RG@tok@#1\endcsname{#2}}% +\newenvironment{RG*}{\ttfamily}{\relax}% +END + + base = @theme.class.base_style + yield "\\definecolor{#{@prefix}@fgcolor}{HTML}{#{inline_name(base.fg || '#000000')}}" + yield "\\definecolor{#{@prefix}@bgcolor}{HTML}{#{inline_name(base.bg || '#FFFFFF')}}" + + render_palette(@theme.palette, &b) + + @theme.styles.each do |tok, style| + render_inline_pallete(style, &b) + end + + Token.each_token do |tok| + style = @theme.class.get_own_style(tok) + style ? render_style(tok, style, &b) : render_blank(tok, &b) + end + yield '\makeatother' + end + + def render_palette(palette, &b) + palette.each do |name, color| + hex = inline_name(color) + + yield "\\definecolor{#{palette_name(name)}}{HTML}{#{hex}}%" + end + end + + def render_inline_pallete(style, &b) + gen_inline(style[:fg], &b) + gen_inline(style[:bg], &b) + end + + def inline_name(color) + color =~ /^#(\h+)/ or return nil + + # xcolor does not support 3-character HTML colors, + # so we convert them here + case $1.size + when 6 + $1 + when 3 + # duplicate every character: abc -> aabbcc + $1.gsub(/\h/, '\0\0') + else + raise "invalid HTML color: #{$1}" + end.upcase + end + + def gen_inline(name, &b) + # detect inline colors + hex = inline_name(name) + return unless hex + + @gen_inline ||= {} + @gen_inline[hex] ||= begin + yield "\\definecolor{#{palette_name(hex)}}{HTML}{#{hex}}%" + end + end + + def camelize(name) + name.gsub(/_(.)/) { $1.upcase } + end + + def palette_name(name) + name = inline_name(name) || name.to_s + + "#{@prefix}@palette@#{camelize(@theme.name)}@#{camelize(name.to_s)}" + end + + def token_name(tok) + "\\csname #@prefix@tok@#{tok.shortname}\\endcsname" + end + + def render_blank(tok, &b) + "\\expandafter\\def#{token_name(tok)}#1{#1}" + end + + def render_style(tok, style, &b) + out = String.new('') + out << "\\expandafter\\def#{token_name(tok)}#1{" + out << "\\fboxsep=0pt\\colorbox{#{palette_name(style[:bg])}}{" if style[:bg] + out << '\\textbf{' if style[:bold] + out << '\\textit{' if style[:italic] + out << "\\textcolor{#{palette_name(style[:fg])}}{" if style[:fg] + out << "#1" + # close the right number of curlies + out << "}" if style[:bold] + out << "}" if style[:italic] + out << "}" if style[:fg] + out << "}" if style[:bg] + out << "}%" + yield out + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/text_analyzer.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/text_analyzer.rb new file mode 100644 index 0000000..0540ca4 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/text_analyzer.rb @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + class TextAnalyzer < String + # Find a shebang. Returns nil if no shebang is present. + def shebang + return @shebang if instance_variable_defined? :@shebang + + self =~ /\A\s*#!(.*)$/ + @shebang = $1 + end + + # Check if the given shebang is present. + # + # This normalizes things so that `text.shebang?('bash')` will detect + # `#!/bash`, '#!/bin/bash', '#!/usr/bin/env bash', and '#!/bin/bash -x' + def shebang?(match) + return false unless shebang + match = /\b#{match}(\s|$)/ + match === shebang + end + + # Return the contents of the doctype tag if present, nil otherwise. + def doctype + return @doctype if instance_variable_defined? :@doctype + + self =~ %r(\A\s* + (?:<\?.*?\?>\s*)? # possible <?xml...?> tag + <!DOCTYPE\s+(.+?)> + )xm + @doctype = $1 + end + + # Check if the doctype matches a given regexp or string + def doctype?(type=//) + type === doctype + end + + # Return true if the result of lexing with the given lexer contains no + # error tokens. + def lexes_cleanly?(lexer) + lexer.lex(self) do |(tok, _)| + return false if tok.name == 'Error' + end + + true + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/theme.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/theme.rb new file mode 100644 index 0000000..4fae98b --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/theme.rb @@ -0,0 +1,218 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + class Theme + include Token::Tokens + + class Style < Hash + def initialize(theme, hsh={}) + super() + @theme = theme + merge!(hsh) + end + + [:fg, :bg].each do |mode| + define_method mode do + return self[mode] unless @theme + @theme.palette(self[mode]) if self[mode] + end + end + + def render(selector, &b) + return enum_for(:render, selector).to_a.join("\n") unless b + + return if empty? + + yield "#{selector} {" + rendered_rules.each do |rule| + yield " #{rule};" + end + yield "}" + end + + def rendered_rules(&b) + return enum_for(:rendered_rules) unless b + yield "color: #{fg}" if fg + yield "background-color: #{bg}" if bg + yield "font-weight: bold" if self[:bold] + yield "font-style: italic" if self[:italic] + yield "text-decoration: underline" if self[:underline] + + (self[:rules] || []).each(&b) + end + end + + def styles + @styles ||= self.class.styles.dup + end + + @palette = {} + def self.palette(arg={}) + @palette ||= InheritableHash.new(superclass.palette) + + if arg.is_a? Hash + @palette.merge! arg + @palette + else + case arg + when /#[0-9a-f]+/i + arg + else + @palette[arg] or raise "not in palette: #{arg.inspect}" + end + end + end + + def palette(*a) self.class.palette(*a) end + + @styles = {} + def self.styles + @styles ||= InheritableHash.new(superclass.styles) + end + + def self.render(opts={}, &b) + new(opts).render(&b) + end + + def get_own_style(token) + self.class.get_own_style(token) + end + + def get_style(token) + self.class.get_style(token) + end + + def name + self.class.name + end + + class << self + def style(*tokens) + style = tokens.last.is_a?(Hash) ? tokens.pop : {} + + tokens.each do |tok| + styles[tok] = style + end + end + + def get_own_style(token) + token.token_chain.reverse_each do |anc| + return Style.new(self, styles[anc]) if styles[anc] + end + + nil + end + + def get_style(token) + get_own_style(token) || base_style + end + + def base_style + get_own_style(Token::Tokens::Text) + end + + def name(n=nil) + return @name if n.nil? + + @name = n.to_s + register(@name) + end + + def register(name) + Theme.registry[name.to_s] = self + end + + def find(n) + registry[n.to_s] + end + + def registry + @registry ||= {} + end + end + end + + module HasModes + def mode(arg=:absent) + return @mode if arg == :absent + + @modes ||= {} + @modes[arg] ||= get_mode(arg) + end + + def get_mode(mode) + return self if self.mode == mode + + new_name = "#{self.name}.#{mode}" + Class.new(self) { name(new_name); set_mode!(mode) } + end + + def set_mode!(mode) + @mode = mode + send("make_#{mode}!") + end + + def mode!(arg) + alt_name = "#{self.name}.#{arg}" + register(alt_name) + set_mode!(arg) + end + end + + class CSSTheme < Theme + def initialize(opts={}) + @scope = opts[:scope] || '.highlight' + end + + def render(&b) + return enum_for(:render).to_a.join("\n") unless b + + # shared styles for tableized line numbers + yield "#{@scope} table td { padding: 5px; }" + yield "#{@scope} table pre { margin: 0; }" + + styles.each do |tok, style| + Style.new(self, style).render(css_selector(tok), &b) + end + end + + def render_base(selector, &b) + self.class.base_style.render(selector, &b) + end + + def style_for(tok) + self.class.get_style(tok) + end + + private + def css_selector(token) + inflate_token(token).map do |tok| + raise "unknown token: #{tok.inspect}" if tok.shortname.nil? + + single_css_selector(tok) + end.join(', ') + end + + def single_css_selector(token) + return @scope if token == Text + + "#{@scope} .#{token.shortname}" + end + + # yield all of the tokens that should be styled the same + # as the given token. Essentially this recursively all of + # the subtokens, except those which are more specifically + # styled. + def inflate_token(tok, &b) + return enum_for(:inflate_token, tok) unless block_given? + + yield tok + tok.sub_tokens.each do |(_, st)| + next if styles[st] + + inflate_token(st, &b) + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/base16.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/base16.rb new file mode 100644 index 0000000..6e77c6a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/base16.rb @@ -0,0 +1,137 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + # author Chris Kempson + # base16 default dark + # https://github.com/chriskempson/base16-default-schemes + class Base16 < CSSTheme + name 'base16' + + palette base00: "#181818" + palette base01: "#282828" + palette base02: "#383838" + palette base03: "#585858" + palette base04: "#b8b8b8" + palette base05: "#d8d8d8" + palette base06: "#e8e8e8" + palette base07: "#f8f8f8" + palette base08: "#ab4642" + palette base09: "#dc9656" + palette base0A: "#f7ca88" + palette base0B: "#a1b56c" + palette base0C: "#86c1b9" + palette base0D: "#7cafc2" + palette base0E: "#ba8baf" + palette base0F: "#a16946" + + extend HasModes + + def self.light! + mode :dark # indicate that there is a dark variant + mode! :light + end + + def self.dark! + mode :light # indicate that there is a light variant + mode! :dark + end + + def self.make_dark! + style Text, :fg => :base05, :bg => :base00 + end + + def self.make_light! + style Text, :fg => :base02 + end + + light! + + style Error, :fg => :base00, :bg => :base08 + style Comment, :fg => :base03 + + style Comment::Preproc, + Name::Tag, :fg => :base0A + + style Operator, + Punctuation, :fg => :base05 + + style Generic::Inserted, :fg => :base0B + style Generic::Deleted, :fg => :base08 + style Generic::Heading, :fg => :base0D, :bg => :base00, :bold => true + + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + + style Keyword, :fg => :base0E + style Keyword::Constant, + Keyword::Type, :fg => :base09 + + style Keyword::Declaration, :fg => :base09 + + style Literal::String, :fg => :base0B + style Literal::String::Affix, :fg => :base0E + style Literal::String::Regex, :fg => :base0C + + style Literal::String::Interpol, + Literal::String::Escape, :fg => :base0F + + style Name::Namespace, + Name::Class, + Name::Constant, :fg => :base0A + + style Name::Attribute, :fg => :base0D + + style Literal::Number, + Literal::String::Symbol, :fg => :base0B + + class Solarized < Base16 + name 'base16.solarized' + light! + # author "Ethan Schoonover (http://ethanschoonover.com/solarized)" + + palette base00: "#002b36" + palette base01: "#073642" + palette base02: "#586e75" + palette base03: "#657b83" + palette base04: "#839496" + palette base05: "#93a1a1" + palette base06: "#eee8d5" + palette base07: "#fdf6e3" + palette base08: "#dc322f" + palette base09: "#cb4b16" + palette base0A: "#b58900" + palette base0B: "#859900" + palette base0C: "#2aa198" + palette base0D: "#268bd2" + palette base0E: "#6c71c4" + palette base0F: "#d33682" + end + + class Monokai < Base16 + name 'base16.monokai' + dark! + + # author "Wimer Hazenberg (http://www.monokai.nl)" + palette base00: "#272822" + palette base01: "#383830" + palette base02: "#49483e" + palette base03: "#75715e" + palette base04: "#a59f85" + palette base05: "#f8f8f2" + palette base06: "#f5f4f1" + palette base07: "#f9f8f5" + palette base08: "#f92672" + palette base09: "#fd971f" + palette base0A: "#f4bf75" + palette base0B: "#a6e22e" + palette base0C: "#a1efe4" + palette base0D: "#66d9ef" + palette base0E: "#ae81ff" + palette base0F: "#cc6633" + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/bw.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/bw.rb new file mode 100644 index 0000000..779359a --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/bw.rb @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + # A port of the bw style from Pygments. + # See https://bitbucket.org/birkenfeld/pygments-main/src/default/pygments/styles/bw.py + class BlackWhiteTheme < CSSTheme + name 'bw' + + style Text, :fg => '#000000', :bg => '#ffffff' + + style Comment, :italic => true + style Comment::Preproc, :italic => false + + style Keyword, :bold => true + style Keyword::Pseudo, :bold => false + style Keyword::Type, :bold => false + + style Operator, :bold => true + + style Name::Class, :bold => true + style Name::Namespace, :bold => true + style Name::Exception, :bold => true + style Name::Entity, :bold => true + style Name::Tag, :bold => true + + style Literal::String, :italic => true + style Literal::String::Affix, :bold => true + style Literal::String::Interpol, :bold => true + style Literal::String::Escape, :bold => true + + style Generic::Heading, :bold => true + style Generic::Subheading, :bold => true + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + style Generic::Prompt, :bold => true + + style Error, :fg => '#FF0000' + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/colorful.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/colorful.rb new file mode 100644 index 0000000..43acc90 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/colorful.rb @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + # stolen from pygments + class Colorful < CSSTheme + name 'colorful' + + style Text, :fg => "#bbbbbb", :bg => '#000' + + style Comment, :fg => "#888" + style Comment::Preproc, :fg => "#579" + style Comment::Special, :fg => "#cc0000", :bold => true + + style Keyword, :fg => "#080", :bold => true + style Keyword::Pseudo, :fg => "#038" + style Keyword::Type, :fg => "#339" + + style Operator, :fg => "#333" + style Operator::Word, :fg => "#000", :bold => true + + style Name::Builtin, :fg => "#007020" + style Name::Function, :fg => "#06B", :bold => true + style Name::Class, :fg => "#B06", :bold => true + style Name::Namespace, :fg => "#0e84b5", :bold => true + style Name::Exception, :fg => "#F00", :bold => true + style Name::Variable, :fg => "#963" + style Name::Variable::Instance, :fg => "#33B" + style Name::Variable::Class, :fg => "#369" + style Name::Variable::Global, :fg => "#d70", :bold => true + style Name::Constant, :fg => "#036", :bold => true + style Name::Label, :fg => "#970", :bold => true + style Name::Entity, :fg => "#800", :bold => true + style Name::Attribute, :fg => "#00C" + style Name::Tag, :fg => "#070" + style Name::Decorator, :fg => "#555", :bold => true + + style Literal::String, :bg => "#fff0f0" + style Literal::String::Affix, :fg => "#080", :bold => true + style Literal::String::Char, :fg => "#04D" + style Literal::String::Doc, :fg => "#D42" + style Literal::String::Interpol, :bg => "#eee" + style Literal::String::Escape, :fg => "#666", :bold => true + style Literal::String::Regex, :fg => "#000", :bg => "#fff0ff" + style Literal::String::Symbol, :fg => "#A60" + style Literal::String::Other, :fg => "#D20" + + style Literal::Number, :fg => "#60E", :bold => true + style Literal::Number::Integer, :fg => "#00D", :bold => true + style Literal::Number::Float, :fg => "#60E", :bold => true + style Literal::Number::Hex, :fg => "#058", :bold => true + style Literal::Number::Oct, :fg => "#40E", :bold => true + + style Generic::Heading, :fg => "#000080", :bold => true + style Generic::Subheading, :fg => "#800080", :bold => true + style Generic::Deleted, :fg => "#A00000" + style Generic::Inserted, :fg => "#00A000" + style Generic::Error, :fg => "#FF0000" + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + style Generic::Prompt, :fg => "#c65d09", :bold => true + style Generic::Output, :fg => "#888" + style Generic::Traceback, :fg => "#04D" + + style Error, :fg => "#F00", :bg => "#FAA" + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/github.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/github.rb new file mode 100644 index 0000000..27b8a5f --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/github.rb @@ -0,0 +1,149 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + class Github < CSSTheme + name 'github' + + # Primer primitives + # https://github.com/primer/primitives/tree/main/src/tokens + P_RED_0 = {:light => '#ffebe9', :dark => '#ffdcd7'} + P_RED_3 = {:dark => '#ff7b72'} + P_RED_5 = {:light => '#cf222e'} + P_RED_7 = {:light => '#82071e', :dark => '#8e1519'} + P_RED_8 = {:dark => '#67060c'} + P_ORANGE_2 = {:dark => '#ffa657'} + P_ORANGE_6 = {:light => '#953800'} + P_GREEN_0 = {:light => '#dafbe1', :dark => '#aff5b4'} + P_GREEN_1 = {:dark => '#7ee787'} + P_GREEN_6 = {:light => '#116329'} + P_GREEN_8 = {:dark => '#033a16'} + P_BLUE_1 = {:dark => '#a5d6ff'} + P_BLUE_2 = {:dark => '#79c0ff'} + P_BLUE_5 = {:dark => '#1f6feb'} + P_BLUE_6 = {:light => '#0550ae'} + P_BLUE_8 = {:light => '#0a3069'} + P_PURPLE_2 = {:dark => '#d2a8ff'} + P_PURPLE_5 = {:light => '#8250df'} + P_GRAY_0 = {:light => '#f6f8fa', :dark => '#f0f6fc'} + P_GRAY_1 = {:dark => '#c9d1d9'} + P_GRAY_3 = {:dark => '#8b949e'} + P_GRAY_5 = {:light => '#6e7781'} + P_GRAY_8 = {:dark => '#161b22'} + P_GRAY_9 = {:light => '#24292f'} + + extend HasModes + + def self.light! + mode :dark # indicate that there is a dark variant + mode! :light + end + + def self.dark! + mode :light # indicate that there is a light variant + mode! :dark + end + + def self.make_dark! + palette :comment => P_GRAY_3[@mode] + palette :constant => P_BLUE_2[@mode] + palette :entity => P_PURPLE_2[@mode] + palette :heading => P_BLUE_5[@mode] + palette :keyword => P_RED_3[@mode] + palette :string => P_BLUE_1[@mode] + palette :tag => P_GREEN_1[@mode] + palette :variable => P_ORANGE_2[@mode] + + palette :fgDefault => P_GRAY_1[@mode] + palette :bgDefault => P_GRAY_8[@mode] + + palette :fgInserted => P_GREEN_0[@mode] + palette :bgInserted => P_GREEN_8[@mode] + + palette :fgDeleted => P_RED_0[@mode] + palette :bgDeleted => P_RED_8[@mode] + + palette :fgError => P_GRAY_0[@mode] + palette :bgError => P_RED_7[@mode] + end + + def self.make_light! + palette :comment => P_GRAY_5[@mode] + palette :constant => P_BLUE_6[@mode] + palette :entity => P_PURPLE_5[@mode] + palette :heading => P_BLUE_6[@mode] + palette :keyword => P_RED_5[@mode] + palette :string => P_BLUE_8[@mode] + palette :tag => P_GREEN_6[@mode] + palette :variable => P_ORANGE_6[@mode] + + palette :fgDefault => P_GRAY_9[@mode] + palette :bgDefault => P_GRAY_0[@mode] + + palette :fgInserted => P_GREEN_6[@mode] + palette :bgInserted => P_GREEN_0[@mode] + + palette :fgDeleted => P_RED_7[@mode] + palette :bgDeleted => P_RED_0[@mode] + + palette :fgError => P_GRAY_0[@mode] + palette :bgError => P_RED_7[@mode] + end + + light! + + style Text, :fg => :fgDefault, :bg => :bgDefault + + style Keyword, :fg => :keyword + + style Generic::Error, :fg => :fgError + + style Generic::Deleted, :fg => :fgDeleted, :bg => :bgDeleted + + style Name::Builtin, + Name::Class, + Name::Constant, + Name::Namespace, :fg => :variable + + style Literal::String::Regex, + Name::Attribute, + Name::Tag, :fg => :tag + + style Generic::Inserted, :fg => :fgInserted, :bg => :bgInserted + style Generic::EmphStrong, :italic => true, :bold => true + + style Keyword::Constant, + Literal, + Literal::String::Backtick, + Name::Builtin::Pseudo, + Name::Exception, + Name::Label, + Name::Property, + Name::Variable, + Operator, :fg => :constant + + style Generic::Heading, + Generic::Subheading, :fg => :heading, :bold => true + + style Literal::String, :fg => :string + + style Name::Decorator, + Name::Function, :fg => :entity + + style Error, :fg => :fgError, :bg => :bgError + + style Comment, + Generic::Lineno, + Generic::Traceback, :fg => :comment + + style Name::Entity, + Literal::String::Interpol, :fg => :fgDefault + + style Generic::Emph, :fg => :fgDefault, :italic => true + + style Generic::Strong, :fg => :fgDefault, :bold => true + + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/gruvbox.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/gruvbox.rb new file mode 100644 index 0000000..8faf4cc --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/gruvbox.rb @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# TODO how are we going to handle soft/hard contrast? + +module Rouge + module Themes + # Based on https://github.com/morhetz/gruvbox, with help from + # https://github.com/daveyarwood/gruvbox-pygments + class Gruvbox < CSSTheme + name 'gruvbox' + + # global Gruvbox colours {{{ + C_dark0_hard = '#1d2021' + C_dark0 ='#282828' + C_dark0_soft = '#32302f' + C_dark1 = '#3c3836' + C_dark2 = '#504945' + C_dark3 = '#665c54' + C_dark4 = '#7c6f64' + C_dark4_256 = '#7c6f64' + + C_gray_245 = '#928374' + C_gray_244 = '#928374' + + C_light0_hard = '#f9f5d7' + C_light0 = '#fbf1c7' + C_light0_soft = '#f2e5bc' + C_light1 = '#ebdbb2' + C_light2 = '#d5c4a1' + C_light3 = '#bdae93' + C_light4 = '#a89984' + C_light4_256 = '#a89984' + + C_bright_red = '#fb4934' + C_bright_green = '#b8bb26' + C_bright_yellow = '#fabd2f' + C_bright_blue = '#83a598' + C_bright_purple = '#d3869b' + C_bright_aqua = '#8ec07c' + C_bright_orange = '#fe8019' + + C_neutral_red = '#cc241d' + C_neutral_green = '#98971a' + C_neutral_yellow = '#d79921' + C_neutral_blue = '#458588' + C_neutral_purple = '#b16286' + C_neutral_aqua = '#689d6a' + C_neutral_orange = '#d65d0e' + + C_faded_red = '#9d0006' + C_faded_green = '#79740e' + C_faded_yellow = '#b57614' + C_faded_blue = '#076678' + C_faded_purple = '#8f3f71' + C_faded_aqua = '#427b58' + C_faded_orange = '#af3a03' + # }}} + + extend HasModes + + def self.light! + mode :dark # indicate that there is a dark variant + mode! :light + end + + def self.dark! + mode :light # indicate that there is a light variant + mode! :dark + end + + def self.make_dark! + palette bg0: C_dark0 + palette bg1: C_dark1 + palette bg2: C_dark2 + palette bg3: C_dark3 + palette bg4: C_dark4 + + palette gray: C_gray_245 + + palette fg0: C_light0 + palette fg1: C_light1 + palette fg2: C_light2 + palette fg3: C_light3 + palette fg4: C_light4 + + palette fg4_256: C_light4_256 + + palette red: C_bright_red + palette green: C_bright_green + palette yellow: C_bright_yellow + palette blue: C_bright_blue + palette purple: C_bright_purple + palette aqua: C_bright_aqua + palette orange: C_bright_orange + + end + + def self.make_light! + palette bg0: C_light0 + palette bg1: C_light1 + palette bg2: C_light2 + palette bg3: C_light3 + palette bg4: C_light4 + + palette gray: C_gray_244 + + palette fg0: C_dark0 + palette fg1: C_dark1 + palette fg2: C_dark2 + palette fg3: C_dark3 + palette fg4: C_dark4 + + palette fg4_256: C_dark4_256 + + palette red: C_faded_red + palette green: C_faded_green + palette yellow: C_faded_yellow + palette blue: C_faded_blue + palette purple: C_faded_purple + palette aqua: C_faded_aqua + palette orange: C_faded_orange + end + + dark! + mode :light + + style Text, :fg => :fg0, :bg => :bg0 + style Error, :fg => :red, :bg => :bg0, :bold => true + style Comment, :fg => :gray, :italic => true + + style Comment::Preproc, :fg => :aqua + + style Name::Tag, :fg => :red + + style Operator, + Punctuation, :fg => :fg0 + + style Generic::Inserted, :fg => :green, :bg => :bg0 + style Generic::Deleted, :fg => :red, :bg => :bg0 + style Generic::Heading, :fg => :green, :bold => true + + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + + style Keyword, :fg => :red + style Keyword::Constant, :fg => :purple + style Keyword::Type, :fg => :yellow + + style Keyword::Declaration, :fg => :orange + + style Literal::String, + Literal::String::Interpol, + Literal::String::Regex, :fg => :green, :italic => true + + style Literal::String::Affix, :fg => :red + + style Literal::String::Escape, :fg => :orange + + style Name::Namespace, + Name::Class, :fg => :aqua + + style Name::Constant, :fg => :purple + + style Name::Attribute, :fg => :green + + style Literal::Number, :fg => :purple + + style Literal::String::Symbol, :fg => :blue + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/igor_pro.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/igor_pro.rb new file mode 100644 index 0000000..abcc758 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/igor_pro.rb @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + class IgorPro < CSSTheme + name 'igorpro' + + style Text, :fg => '#444444' + style Comment::Preproc, :fg => '#CC00A3' + style Comment::Special, :fg => '#CC00A3' + style Comment, :fg => '#FF0000' + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + style Keyword::Constant, :fg => '#C34E00' + style Keyword::Declaration, :fg => '#0000FF' + style Keyword::Reserved, :fg => '#007575' + style Keyword, :fg => '#0000FF' + style Literal::String, :fg => '#009C00' + style Literal::String::Affix, :fg => '#0000FF' + style Name::Builtin, :fg => '#C34E00' + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/magritte.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/magritte.rb new file mode 100644 index 0000000..09fc1ec --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/magritte.rb @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + class Magritte < CSSTheme + name 'magritte' + + palette :dragon => '#006c6c' + palette :black => '#000000' + palette :forest => '#007500' + palette :candy => '#ff0089' + palette :wine => '#7c0000' + palette :grape => '#4c48fe' + palette :dark => '#000707' + palette :cherry => '#f22700' + palette :white => '#ffffff' + palette :royal => '#19003a' + + palette :purple => '#840084' + palette :chocolate => '#920241' + palette :lavender => '#d8d9ff' + palette :eggshell => '#f3ffff' + palette :yellow => '#ffff3f' + + palette :lightgray => '#BBBBBB' + palette :darkgray => '#999999' + + style Text, :fg => :dark, :bg => :eggshell + style Generic::Lineno, :fg => :eggshell, :bg => :dark + + # style Generic::Prompt, :fg => :chilly, :bold => true + + style Comment, :fg => :dragon, :italic => true + style Comment::Preproc, :fg => :chocolate, :bold => true + style Error, :fg => :eggshell, :bg => :cherry + style Generic::Error, :fg => :cherry, :italic => true, :bold => true + style Keyword, :fg => :royal, :bold => true + style Operator, :fg => :grape, :bold => true + style Punctuation, :fg => :grape + style Generic::Deleted, :fg => :cherry + style Generic::Inserted, :fg => :forest + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + style Generic::Traceback, :fg => :black, :bg => :lavender + style Keyword::Constant, :fg => :forest, :bold => true + style Keyword::Namespace, + Keyword::Pseudo, + Keyword::Reserved, + Generic::Heading, + Generic::Subheading, :fg => :forest, :bold => true + style Keyword::Type, + Name::Constant, + Name::Class, + Name::Decorator, + Name::Namespace, + Name::Builtin::Pseudo, + Name::Exception, :fg => :chocolate, :bold => true + style Name::Label, + Name::Tag, :fg => :purple, :bold => true + style Literal::Number, + Literal::Date, :fg => :forest, :bold => true + style Literal::String::Symbol, :fg => :forest + style Literal::String, :fg => :wine, :bold => true + style Literal::String::Affix, :fg => :royal, :bold => true + style Literal::String::Escape, + Literal::String::Char, + Literal::String::Interpol, :fg => :purple, :bold => true + style Name::Builtin, :bold => true + style Name::Entity, :fg => :darkgray, :bold => true + style Text::Whitespace, :fg => :lightgray + style Generic::Output, :fg => :royal + style Name::Function, + Name::Property, + Name::Attribute, :fg => :candy + style Name::Variable, :fg => :candy, :bold => true + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/molokai.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/molokai.rb new file mode 100644 index 0000000..33d0391 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/molokai.rb @@ -0,0 +1,84 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + class Molokai < CSSTheme + name 'molokai' + + palette :black => '#1b1d1e' + palette :white => '#f8f8f2' + palette :blue => '#66d9ef' + palette :green => '#a6e22e' + palette :grey => '#403d3d' + palette :red => '#f92672' + palette :light_grey => '#465457' + palette :dark_blue => '#5e5d83' + palette :violet => '#af87ff' + palette :yellow => '#d7d787' + + style Comment, + Comment::Multiline, + Comment::Single, :fg => :dark_blue, :italic => true + style Comment::Preproc, :fg => :light_grey, :bold => true + style Comment::Special, :fg => :light_grey, :italic => true, :bold => true + style Error, :fg => :white, :bg => :grey + style Generic::Inserted, :fg => :green + style Generic::Deleted, :fg => :red + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Error, + Generic::Traceback, :fg => :red + style Generic::Heading, :fg => :grey + style Generic::Output, :fg => :grey + style Generic::Prompt, :fg => :blue + style Generic::Strong, :bold => true + style Generic::Subheading, :fg => :light_grey + style Keyword, + Keyword::Constant, + Keyword::Declaration, + Keyword::Pseudo, + Keyword::Reserved, + Keyword::Type, :fg => :blue, :bold => true + style Keyword::Namespace, + Operator::Word, + Operator, :fg => :red, :bold => true + style Literal::Number::Float, + Literal::Number::Hex, + Literal::Number::Integer::Long, + Literal::Number::Integer, + Literal::Number::Oct, + Literal::Number, + Literal::String::Escape, :fg => :violet + style Literal::String::Backtick, + Literal::String::Char, + Literal::String::Doc, + Literal::String::Double, + Literal::String::Heredoc, + Literal::String::Interpol, + Literal::String::Other, + Literal::String::Regex, + Literal::String::Single, + Literal::String::Symbol, + Literal::String, :fg => :yellow + style Name::Attribute, :fg => :green + style Name::Class, + Name::Decorator, + Name::Exception, + Name::Function, :fg => :green, :bold => true + style Name::Constant, :fg => :blue + style Name::Builtin::Pseudo, + Name::Builtin, + Name::Entity, + Name::Namespace, + Name::Variable::Class, + Name::Variable::Global, + Name::Variable::Instance, + Name::Variable, + Text::Whitespace, :fg => :white + style Name::Label, :fg => :white, :bold => true + style Name::Tag, :fg => :red + style Text, :fg => :white, :bg => :black + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/monokai.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/monokai.rb new file mode 100644 index 0000000..412f860 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/monokai.rb @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + class Monokai < CSSTheme + name 'monokai' + + palette :black => '#000000' + palette :bright_green => '#a6e22e' + palette :bright_pink => '#f92672' + palette :carmine => '#960050' + palette :dark => '#49483e' + palette :dark_grey => '#888888' + palette :dark_red => '#aa0000' + palette :dimgrey => '#75715e' + palette :dimgreen => '#324932' + palette :dimred => '#493131' + palette :emperor => '#555555' + palette :grey => '#999999' + palette :light_grey => '#aaaaaa' + palette :light_violet => '#ae81ff' + palette :soft_cyan => '#66d9ef' + palette :soft_yellow => '#e6db74' + palette :very_dark => '#1e0010' + palette :whitish => '#f8f8f2' + palette :orange => '#f6aa11' + palette :white => '#ffffff' + + style Comment, + Comment::Multiline, + Comment::Single, :fg => :dimgrey, :italic => true + style Comment::Preproc, :fg => :dimgrey, :bold => true + style Comment::Special, :fg => :dimgrey, :italic => true, :bold => true + style Error, :fg => :carmine, :bg => :very_dark + style Generic::Inserted, :fg => :white, :bg => :dimgreen + style Generic::Deleted, :fg => :white, :bg => :dimred + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Error, + Generic::Traceback, :fg => :dark_red + style Generic::Heading, :fg => :grey + style Generic::Output, :fg => :dark_grey + style Generic::Prompt, :fg => :emperor + style Generic::Strong, :bold => true + style Generic::Subheading, :fg => :light_grey + style Keyword, + Keyword::Constant, + Keyword::Declaration, + Keyword::Pseudo, + Keyword::Reserved, + Keyword::Type, :fg => :soft_cyan, :bold => true + style Keyword::Namespace, + Operator::Word, + Operator, :fg => :bright_pink, :bold => true + style Literal::Number::Float, + Literal::Number::Hex, + Literal::Number::Integer::Long, + Literal::Number::Integer, + Literal::Number::Oct, + Literal::Number, + Literal::String::Escape, :fg => :light_violet + style Literal::String::Affix, :fg => :soft_cyan, :bold => true + style Literal::String::Backtick, + Literal::String::Char, + Literal::String::Doc, + Literal::String::Double, + Literal::String::Heredoc, + Literal::String::Interpol, + Literal::String::Other, + Literal::String::Regex, + Literal::String::Single, + Literal::String::Symbol, + Literal::String, :fg => :soft_yellow + style Name::Attribute, :fg => :bright_green + style Name::Class, + Name::Decorator, + Name::Exception, + Name::Function, :fg => :bright_green, :bold => true + style Name::Constant, :fg => :soft_cyan + style Name::Builtin::Pseudo, + Name::Builtin, + Name::Entity, + Name::Namespace, + Name::Variable::Class, + Name::Variable::Global, + Name::Variable::Instance, + Name::Variable, + Text::Whitespace, :fg => :whitish + style Name::Label, :fg => :whitish, :bold => true + style Name::Tag, :fg => :bright_pink + style Text, :fg => :whitish, :bg => :dark + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/monokai_sublime.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/monokai_sublime.rb new file mode 100644 index 0000000..b0f2cd6 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/monokai_sublime.rb @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + class MonokaiSublime < CSSTheme + name 'monokai.sublime' + + palette :black => '#000000' + palette :bright_green => '#a6e22e' + palette :bright_pink => '#f92672' + palette :carmine => '#960050' + palette :dark => '#49483e' + palette :dark_graphite => '#272822' + palette :dark_grey => '#888888' + palette :dark_red => '#aa0000' + palette :dimgrey => '#75715e' + palette :emperor => '#555555' + palette :grey => '#999999' + palette :light_grey => '#aaaaaa' + palette :light_violet => '#ae81ff' + palette :soft_cyan => '#66d9ef' + palette :soft_yellow => '#e6db74' + palette :very_dark => '#1e0010' + palette :whitish => '#f8f8f2' + palette :orange => '#f6aa11' + palette :white => '#ffffff' + + style Generic::Heading, :fg => :grey + style Literal::String::Regex, :fg => :orange + style Generic::Output, :fg => :dark_grey + style Generic::Prompt, :fg => :emperor + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + style Generic::Subheading, :fg => :light_grey + style Name::Builtin, :fg => :orange + style Comment::Multiline, + Comment::Preproc, + Comment::Single, + Comment::Special, + Comment, :fg => :dimgrey + style Error, + Generic::Error, + Generic::Traceback, :fg => :carmine + style Generic::Deleted, + Generic::Inserted, :fg => :dark + style Keyword::Constant, + Keyword::Declaration, + Keyword::Reserved, + Name::Constant, + Keyword::Type, :fg => :soft_cyan + style Literal::Number::Float, + Literal::Number::Hex, + Literal::Number::Integer::Long, + Literal::Number::Integer, + Literal::Number::Oct, + Literal::Number, + Literal::String::Char, + Literal::String::Escape, + Literal::String::Symbol, :fg => :light_violet + style Literal::String::Doc, + Literal::String::Double, + Literal::String::Backtick, + Literal::String::Heredoc, + Literal::String::Interpol, + Literal::String::Other, + Literal::String::Single, + Literal::String, :fg => :soft_yellow + style Name::Attribute, + Name::Class, + Name::Decorator, + Name::Exception, + Name::Function, :fg => :bright_green + style Name::Variable::Class, + Name::Namespace, + Name::Label, + Name::Entity, + Name::Builtin::Pseudo, + Name::Variable::Global, + Name::Variable::Instance, + Name::Variable, + Text::Whitespace, + Text, + Name, :fg => :white, :bg => :dark_graphite + style Operator::Word, + Name::Tag, + Keyword, + Keyword::Namespace, + Keyword::Pseudo, + Operator, :fg => :bright_pink + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/pastie.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/pastie.rb new file mode 100644 index 0000000..f10c7b0 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/pastie.rb @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + # A port of the pastie style from Pygments. + # See https://bitbucket.org/birkenfeld/pygments-main/src/default/pygments/styles/pastie.py + class Pastie < CSSTheme + name 'pastie' + + style Comment, :fg => '#888888' + style Comment::Preproc, :fg => '#cc0000', :bold => true + style Comment::Special, :fg => '#cc0000', :bg => '#fff0f0', :bold => true + + style Error, :fg => '#a61717', :bg => '#e3d2d2' + style Generic::Error, :fg => '#aa0000' + + style Generic::Heading, :fg => '#333333' + style Generic::Subheading, :fg => '#666666' + + style Generic::Deleted, :fg => '#000000', :bg => '#ffdddd' + style Generic::Inserted, :fg => '#000000', :bg => '#ddffdd' + + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + + style Generic::Lineno, :fg => '#888888' + style Generic::Output, :fg => '#888888' + style Generic::Prompt, :fg => '#555555' + style Generic::Traceback, :fg => '#aa0000' + + style Keyword, :fg => '#008800', :bold => true + style Keyword::Pseudo, :fg => '#008800' + style Keyword::Type, :fg => '#888888', :bold => true + + style Num, :fg => '#0000dd', :bold => true + + style Str, :fg => '#dd2200', :bg => '#fff0f0' + style Str::Affix, :fg => '#008800', :bold => true + style Str::Escape, :fg => '#0044dd', :bg => '#fff0f0' + style Str::Interpol, :fg => '#3333bb', :bg => '#fff0f0' + style Str::Other, :fg => '#22bb22', :bg => '#f0fff0' + #style Str::Regex, :fg => '#008800', :bg => '#fff0ff' + # The background color on regex really doesn't look good, so let's drop it + style Str::Regex, :fg => '#008800' + style Str::Symbol, :fg => '#aa6600', :bg => '#fff0f0' + + style Name::Attribute, :fg => '#336699' + style Name::Builtin, :fg => '#003388' + style Name::Class, :fg => '#bb0066', :bold => true + style Name::Constant, :fg => '#003366', :bold => true + style Name::Decorator, :fg => '#555555' + style Name::Exception, :fg => '#bb0066', :bold => true + style Name::Function, :fg => '#0066bb', :bold => true + #style Name::Label, :fg => '#336699', :italic => true + # Name::Label is used for built-in CSS properties in Rouge, so let's drop italics + style Name::Label, :fg => '#336699' + style Name::Namespace, :fg => '#bb0066', :bold => true + style Name::Property, :fg => '#336699', :bold => true + style Name::Tag, :fg => '#bb0066', :bold => true + style Name::Variable, :fg => '#336699' + style Name::Variable::Global, :fg => '#dd7700' + style Name::Variable::Instance, :fg => '#3333bb' + + style Operator::Word, :fg => '#008800' + + style Text, {} + style Text::Whitespace, :fg => '#bbbbbb' + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/thankful_eyes.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/thankful_eyes.rb new file mode 100644 index 0000000..2f84209 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/thankful_eyes.rb @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + class ThankfulEyes < CSSTheme + name 'thankful_eyes' + + # pallette, from GTKSourceView's ThankfulEyes + palette :cool_as_ice => '#6c8b9f' + palette :slate_blue => '#4e5d62' + palette :eggshell_cloud => '#dee5e7' + palette :krasna => '#122b3b' + palette :aluminum1 => '#fefeec' + palette :scarletred2 => '#cc0000' + palette :butter3 => '#c4a000' + palette :go_get_it => '#b2fd6d' + palette :chilly => '#a8e1fe' + palette :unicorn => '#faf6e4' + palette :sandy => '#f6dd62' + palette :pink_merengue => '#f696db' + palette :dune => '#fff0a6' + palette :backlit => '#4df4ff' + palette :schrill => '#ffb000' + + style Text, :fg => :unicorn, :bg => :krasna + style Generic::Lineno, :fg => :eggshell_cloud, :bg => :slate_blue + + style Generic::Prompt, :fg => :chilly, :bold => true + + style Comment, :fg => :cool_as_ice, :italic => true + style Comment::Preproc, :fg => :go_get_it, :bold => true + style Error, :fg => :aluminum1, :bg => :scarletred2 + style Generic::Error, :fg => :scarletred2, :italic => true, :bold => true + style Keyword, :fg => :sandy, :bold => true + style Operator, :fg => :backlit, :bold => true + style Punctuation, :fg => :backlit + style Generic::Deleted, :fg => :scarletred2 + style Generic::Inserted, :fg => :go_get_it + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + style Generic::Traceback, :fg => :eggshell_cloud, :bg => :slate_blue + style Keyword::Constant, :fg => :pink_merengue, :bold => true + style Keyword::Namespace, + Keyword::Pseudo, + Keyword::Reserved, + Generic::Heading, + Generic::Subheading, :fg => :schrill, :bold => true + style Keyword::Type, + Name::Constant, + Name::Class, + Name::Decorator, + Name::Namespace, + Name::Builtin::Pseudo, + Name::Exception, :fg => :go_get_it, :bold => true + style Name::Label, + Name::Tag, :fg => :schrill, :bold => true + style Literal::Number, + Literal::Date, + Literal::String::Symbol, :fg => :pink_merengue, :bold => true + style Literal::String, :fg => :dune, :bold => true + style Literal::String::Affix, :fg => :sandy, :bold => true + style Literal::String::Escape, + Literal::String::Char, + Literal::String::Interpol, :fg => :backlit, :bold => true + style Name::Builtin, :bold => true + style Name::Entity, :fg => '#999999', :bold => true + style Text::Whitespace, + Generic::Output, :fg => '#BBBBBB' + style Name::Function, + Name::Property, + Name::Attribute, :fg => :chilly + style Name::Variable, :fg => :chilly, :bold => true + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/tulip.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/tulip.rb new file mode 100644 index 0000000..5429a66 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/themes/tulip.rb @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + module Themes + class Tulip < CSSTheme + name 'tulip' + + palette :purple => '#766DAF' + palette :lpurple => '#9f93e6' + palette :orange => '#FAAF4C' + palette :green => '#3FB34F' + palette :lgreen => '#41ff5b' + palette :yellow => '#FFF02A' + palette :black => '#000000' + palette :gray => '#6D6E70' + palette :red => '#CC0000' + palette :dark_purple => '#231529' + palette :lunicorn => '#faf8ed' + palette :white => '#FFFFFF' + palette :earth => '#181a27' + palette :dune => '#fff0a6' + + style Text, :fg => :white, :bg => :dark_purple + + style Comment, :fg => :gray, :italic => true + style Comment::Preproc, :fg => :lgreen, :bold => true + style Error, + Generic::Error, :fg => :white, :bg => :red + style Keyword, :fg => :yellow, :bold => true + style Operator, + Punctuation, :fg => :lgreen + style Generic::Deleted, :fg => :red + style Generic::Inserted, :fg => :green + style Generic::Emph, :italic => true + style Generic::EmphStrong, :italic => true, :bold => true + style Generic::Strong, :bold => true + style Generic::Traceback, + Generic::Lineno, :fg => :white, :bg => :purple + style Keyword::Constant, :fg => :lpurple, :bold => true + style Keyword::Namespace, + Keyword::Pseudo, + Keyword::Reserved, + Generic::Heading, + Generic::Subheading, :fg => :white, :bold => true + style Keyword::Type, + Name::Constant, + Name::Class, + Name::Decorator, + Name::Namespace, + Name::Builtin::Pseudo, + Name::Exception, :fg => :orange, :bold => true + style Name::Label, + Name::Tag, :fg => :lpurple, :bold => true + style Literal::Number, + Literal::Date, + Literal::String::Symbol, :fg => :lpurple, :bold => true + style Literal::String, :fg => :dune, :bold => true + style Literal::String::Affix, :fg => :yellow, :bold => true + style Literal::String::Escape, + Literal::String::Char, + Literal::String::Interpol, :fg => :orange, :bold => true + style Name::Builtin, :bold => true + style Name::Entity, :fg => '#999999', :bold => true + style Text::Whitespace, :fg => '#BBBBBB' + style Name::Function, + Name::Property, + Name::Attribute, :fg => :lgreen + style Name::Variable, :fg => :lgreen, :bold => true + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/token.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/token.rb new file mode 100644 index 0000000..9c3f867 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/token.rb @@ -0,0 +1,192 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + class Token + class << self + attr_reader :name + attr_reader :parent + attr_reader :shortname + + def cache + @cache ||= {} + end + + def sub_tokens + @sub_tokens ||= {} + end + + def [](qualname) + return qualname unless qualname.is_a? ::String + + Token.cache[qualname] + end + + def inspect + "<Token #{qualname}>" + end + + def matches?(other) + other.token_chain.include? self + end + + def token_chain + @token_chain ||= ancestors.take_while { |x| x != Token }.reverse + end + + def qualname + @qualname ||= token_chain.map(&:name).join('.') + end + + def register! + Token.cache[self.qualname] = self + parent.sub_tokens[self.name] = self + end + + def make_token(name, shortname, &b) + parent = self + Class.new(parent) do + @parent = parent + @name = name + @shortname = shortname + register! + class_eval(&b) if b + end + end + + def token(name, shortname, &b) + tok = make_token(name, shortname, &b) + const_set(name, tok) + end + + def each_token(&b) + Token.cache.each do |(_, t)| + b.call(t) + end + end + end + + module Tokens + def self.token(name, shortname, &b) + tok = Token.make_token(name, shortname, &b) + const_set(name, tok) + end + + # XXX IMPORTANT XXX + # For compatibility, this list must be kept in sync with + # pygments.token.STANDARD_TYPES + # please see https://github.com/jneen/rouge/wiki/List-of-tokens + token :Text, '' do + token :Whitespace, 'w' + end + + token :Escape, 'esc' + token :Error, 'err' + token :Other, 'x' + + token :Keyword, 'k' do + token :Constant, 'kc' + token :Declaration, 'kd' + token :Namespace, 'kn' + token :Pseudo, 'kp' + token :Reserved, 'kr' + token :Type, 'kt' + token :Variable, 'kv' + end + + token :Name, 'n' do + token :Attribute, 'na' + token :Builtin, 'nb' do + token :Pseudo, 'bp' + end + token :Class, 'nc' + token :Constant, 'no' + token :Decorator, 'nd' + token :Entity, 'ni' + token :Exception, 'ne' + token :Function, 'nf' do + token :Magic, 'fm' + end + token :Property, 'py' + token :Label, 'nl' + token :Namespace, 'nn' + token :Other, 'nx' + token :Tag, 'nt' + token :Variable, 'nv' do + token :Class, 'vc' + token :Global, 'vg' + token :Instance, 'vi' + token :Magic, 'vm' + end + end + + token :Literal, 'l' do + token :Date, 'ld' + + token :String, 's' do + token :Affix, 'sa' + token :Backtick, 'sb' + token :Char, 'sc' + token :Delimiter, 'dl' + token :Doc, 'sd' + token :Double, 's2' + token :Escape, 'se' + token :Heredoc, 'sh' + token :Interpol, 'si' + token :Other, 'sx' + token :Regex, 'sr' + token :Single, 's1' + token :Symbol, 'ss' + end + + token :Number, 'm' do + token :Bin, 'mb' + token :Float, 'mf' + token :Hex, 'mh' + token :Integer, 'mi' do + token :Long, 'il' + end + token :Oct, 'mo' + token :Other, 'mx' + end + end + + token :Operator, 'o' do + token :Word, 'ow' + end + + token :Punctuation, 'p' do + token :Indicator, 'pi' + end + + token :Comment, 'c' do + token :Hashbang, 'ch' + token :Doc, 'cd' + token :Multiline, 'cm' + token :Preproc, 'cp' + token :PreprocFile, 'cpf' + token :Single, 'c1' + token :Special, 'cs' + end + + token :Generic, 'g' do + token :Deleted, 'gd' + token :Emph, 'ge' + token :EmphStrong, 'ges' + token :Error, 'gr' + token :Heading, 'gh' + token :Inserted, 'gi' + token :Lineno, 'gl' + token :Output, 'go' + token :Prompt, 'gp' + token :Strong, 'gs' + token :Subheading, 'gu' + token :Traceback, 'gt' + end + + # convenience + Num = Literal::Number + Str = Literal::String + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/util.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/util.rb new file mode 100644 index 0000000..d204686 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/util.rb @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + class InheritableHash < Hash + def initialize(parent=nil) + @parent = parent + end + + def [](k) + value = super + return value if own_keys.include?(k) + + value || parent[k] + end + + def parent + @parent ||= {} + end + + def include?(k) + super or parent.include?(k) + end + + def each(&b) + keys.each do |k| + b.call(k, self[k]) + end + end + + alias own_keys keys + def keys + keys = own_keys.concat(parent.keys) + keys.uniq! + keys + end + end + + class InheritableList + include Enumerable + + def initialize(parent=nil) + @parent = parent + end + + def parent + @parent ||= [] + end + + def each(&b) + return enum_for(:each) unless block_given? + + parent.each(&b) + own_entries.each(&b) + end + + def own_entries + @own_entries ||= [] + end + + def push(o) + own_entries << o + end + alias << push + end + + # shared methods for some indentation-sensitive lexers + module Indentation + def reset! + super + @block_state = @block_indentation = nil + end + + # push a state for the next indented block + def starts_block(block_state) + @block_state = block_state + @block_indentation = @last_indentation || '' + puts " starts_block: #{block_state.inspect}" if @debug + puts " block_indentation: #{@block_indentation.inspect}" if @debug + end + + # handle a single indented line + def indentation(indent_str) + puts " indentation: #{indent_str.inspect}" if @debug + puts " block_indentation: #{@block_indentation.inspect}" if @debug + @last_indentation = indent_str + + # if it's an indent and we know where to go next, + # push that state. otherwise, push content and + # clear the block state. + if (@block_state && + indent_str.start_with?(@block_indentation) && + indent_str != @block_indentation + ) + push @block_state + else + @block_state = @block_indentation = nil + push :content + end + end + end +end diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/version.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/version.rb new file mode 100644 index 0000000..b28c415 --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/version.rb @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +module Rouge + def self.version + "4.5.2" + end +end |
