diff --git a/.gitignore b/.gitignore
index 97ef7367..243eb9ab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
Gemfile.lock
.bundle/
vendor/
+benchmark/
+lib/linguist/samples.json
diff --git a/.travis.yml b/.travis.yml
index 83880550..1f4c61e5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,7 @@
-before_install:
+before_install:
+ - git fetch origin master:master
+ - git fetch origin v2.0.0:v2.0.0
- sudo apt-get install libicu-dev -y
- - gem update --system 2.1.11
rvm:
- 1.9.3
- 2.0.0
diff --git a/README.md b/README.md
index 660ac00c..a51dc919 100644
--- a/README.md
+++ b/README.md
@@ -102,10 +102,6 @@ We try to only add languages once they have some usage on GitHub, so please note
Almost all bug fixes or new language additions should come with some additional code samples. Just drop them under [`samples/`](https://github.com/github/linguist/tree/master/samples) in the correct subdirectory and our test suite will automatically test them. In most cases you shouldn't need to add any new assertions.
-To update the `samples.json` after adding new files to [`samples/`](https://github.com/github/linguist/tree/master/samples):
-
- bundle exec rake samples
-
### A note on language extensions
Linguist has a number of methods available to it for identifying the language of a particular file. The initial lookup is based upon the extension of the file, possible file extensions are defined in an array called `extensions`. Take a look at this example for example for `Perl`:
@@ -152,4 +148,4 @@ If you are the current maintainer of this gem:
0. Test behavior locally, branch deploy, whatever needs to happen
0. Merge github/linguist PR
0. Tag and push: `git tag vx.xx.xx; git push --tags`
- 0. Push to rubygems.org -- `gem push github-linguist-2.10.12.gem`
+ 0. Push to rubygems.org -- `gem push github-linguist-3.0.0.gem`
diff --git a/Rakefile b/Rakefile
index e89e75a9..60e3565a 100644
--- a/Rakefile
+++ b/Rakefile
@@ -2,11 +2,22 @@ require 'json'
require 'rake/clean'
require 'rake/testtask'
require 'yaml'
+require 'pry'
task :default => :test
Rake::TestTask.new
+# Extend test task to check for samples
+task :test => :check_samples
+
+desc "Check that we have samples.json generated"
+task :check_samples do
+ unless File.exist?('lib/linguist/samples.json')
+ Rake::Task[:samples].invoke
+ end
+end
+
task :samples do
require 'linguist/samples'
require 'yajl'
@@ -15,13 +26,74 @@ task :samples do
File.open('lib/linguist/samples.json', 'w') { |io| io.write json }
end
-task :build_gem do
+task :build_gem => :samples do
languages = YAML.load_file("lib/linguist/languages.yml")
File.write("lib/linguist/languages.json", JSON.dump(languages))
`gem build github-linguist.gemspec`
File.delete("lib/linguist/languages.json")
end
+namespace :benchmark do
+ benchmark_path = "benchmark/results"
+
+ # $ bundle exec rake benchmark:generate CORPUS=path/to/samples
+ desc "Generate results for"
+ task :generate do
+ ref = `git rev-parse HEAD`.strip[0,8]
+
+ corpus = File.expand_path(ENV["CORPUS"] || "samples")
+
+ require 'linguist/language'
+
+ results = Hash.new
+ Dir.glob("#{corpus}/**/*").each do |file|
+ next unless File.file?(file)
+ filename = file.gsub("#{corpus}/", "")
+ results[filename] = Linguist::FileBlob.new(file).language
+ end
+
+ # Ensure results directory exists
+ FileUtils.mkdir_p("benchmark/results")
+
+ # Write results
+ if `git status`.include?('working directory clean')
+ result_filename = "benchmark/results/#{File.basename(corpus)}-#{ref}.json"
+ else
+ result_filename = "benchmark/results/#{File.basename(corpus)}-#{ref}-unstaged.json"
+ end
+
+ File.write(result_filename, results.to_json)
+ puts "wrote #{result_filename}"
+ end
+
+ # $ bundle exec rake benchmark:compare REFERENCE=path/to/reference.json CANDIDATE=path/to/candidate.json
+ desc "Compare results"
+ task :compare do
+ reference_file = ENV["REFERENCE"]
+ candidate_file = ENV["CANDIDATE"]
+
+ reference = JSON.parse(File.read(reference_file))
+ reference_counts = Hash.new(0)
+ reference.each { |filename, language| reference_counts[language] += 1 }
+
+ candidate = JSON.parse(File.read(candidate_file))
+ candidate_counts = Hash.new(0)
+ candidate.each { |filename, language| candidate_counts[language] += 1 }
+
+ changes = diff(reference_counts, candidate_counts)
+
+ if changes.any?
+ changes.each do |language, (before, after)|
+ before_percent = 100 * before / reference.size.to_f
+ after_percent = 100 * after / candidate.size.to_f
+ puts "%s changed from %.1f%% to %.1f%%" % [language || 'unknown', before_percent, after_percent]
+ end
+ else
+ puts "No changes"
+ end
+ end
+end
+
namespace :classifier do
LIMIT = 1_000
@@ -37,7 +109,7 @@ namespace :classifier do
next if file_language.nil? || file_language == 'Text'
begin
data = open(file_url).read
- guessed_language, score = Linguist::Classifier.classify(Linguist::Samples::DATA, data).first
+ guessed_language, score = Linguist::Classifier.classify(Linguist::Samples.cache, data).first
total += 1
guessed_language == file_language ? correct += 1 : incorrect += 1
@@ -71,3 +143,10 @@ namespace :classifier do
end
end
end
+
+
+def diff(a, b)
+ (a.keys | b.keys).each_with_object({}) do |key, diff|
+ diff[key] = [a[key], b[key]] unless a[key] == b[key]
+ end
+end
diff --git a/bin/linguist b/bin/linguist
index 2cfa8064..6ac8f0a7 100755
--- a/bin/linguist
+++ b/bin/linguist
@@ -4,7 +4,9 @@
# usage: linguist [<--breakdown>]
require 'linguist/file_blob'
+require 'linguist/language'
require 'linguist/repository'
+require 'rugged'
path = ARGV[0] || Dir.pwd
@@ -18,7 +20,8 @@ ARGV.shift
breakdown = true if ARGV[0] == "--breakdown"
if File.directory?(path)
- repo = Linguist::Repository.from_directory(path)
+ rugged = Rugged::Repository.new(path)
+ repo = Linguist::Repository.new(rugged, rugged.head.target_id)
repo.languages.sort_by { |_, size| size }.reverse.each do |language, size|
percentage = ((size / repo.size.to_f) * 100)
percentage = sprintf '%.2f' % percentage
@@ -28,7 +31,7 @@ if File.directory?(path)
puts
file_breakdown = repo.breakdown_by_file
file_breakdown.each do |lang, files|
- puts "#{lang}:"
+ puts "#{lang}:"
files.each do |file|
puts file
end
diff --git a/github-linguist.gemspec b/github-linguist.gemspec
index d4c2337a..382b6cae 100644
--- a/github-linguist.gemspec
+++ b/github-linguist.gemspec
@@ -17,9 +17,11 @@ Gem::Specification.new do |s|
s.add_dependency 'escape_utils', '~> 1.0.1'
s.add_dependency 'mime-types', '~> 1.19'
s.add_dependency 'pygments.rb', '~> 0.6.0'
+ s.add_dependency 'rugged', '~> 0.21.0'
s.add_development_dependency 'json'
s.add_development_dependency 'mocha'
+ s.add_development_dependency 'pry'
s.add_development_dependency 'rake'
s.add_development_dependency 'yajl-ruby'
end
diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb
index 15ab2d9f..84aa2281 100644
--- a/lib/linguist/blob_helper.rb
+++ b/lib/linguist/blob_helper.rb
@@ -1,6 +1,4 @@
require 'linguist/generated'
-require 'linguist/language'
-
require 'charlock_holmes'
require 'escape_utils'
require 'mime/types'
@@ -313,15 +311,7 @@ module Linguist
#
# Returns a Language or nil if none is detected
def language
- return @language if defined? @language
-
- if defined?(@data) && @data.is_a?(String)
- data = @data
- else
- data = lambda { (binary_mime_type? || binary?) ? "" : self.data }
- end
-
- @language = Language.detect(name.to_s, data, mode)
+ @language ||= Language.detect(self)
end
# Internal: Get the lexer of the blob.
diff --git a/lib/linguist/file_blob.rb b/lib/linguist/file_blob.rb
index 7e7f1acd..bc475023 100644
--- a/lib/linguist/file_blob.rb
+++ b/lib/linguist/file_blob.rb
@@ -52,5 +52,20 @@ module Linguist
def size
File.size(@path)
end
+
+ # Public: Get file extension.
+ #
+ # Returns a String.
+ def extension
+ # File.extname returns nil if the filename is an extension.
+ extension = File.extname(name)
+ basename = File.basename(name)
+ # Checks if the filename is an extension.
+ if extension.empty? && basename[0] == "."
+ basename
+ else
+ extension
+ end
+ end
end
end
diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb
index 761288f0..0f911c45 100644
--- a/lib/linguist/generated.rb
+++ b/lib/linguist/generated.rb
@@ -54,7 +54,7 @@ module Linguist
name == 'Gemfile.lock' ||
minified_files? ||
compiled_coffeescript? ||
- xcode_project_file? ||
+ xcode_file? ||
generated_parser? ||
generated_net_docfile? ||
generated_net_designer_file? ||
@@ -63,18 +63,19 @@ module Linguist
generated_jni_header? ||
composer_lock? ||
node_modules? ||
+ godeps? ||
vcr_cassette? ||
generated_by_zephir?
end
- # Internal: Is the blob an XCode project file?
+ # Internal: Is the blob an Xcode file?
#
- # Generated if the file extension is an XCode project
+ # Generated if the file extension is an Xcode
# file extension.
#
# Returns true of false.
- def xcode_project_file?
- ['.xib', '.nib', '.storyboard', '.pbxproj', '.xcworkspacedata', '.xcuserstate'].include?(extname)
+ def xcode_file?
+ ['.nib', '.xcworkspacedata', '.xcuserstate'].include?(extname)
end
# Internal: Is the blob minified files?
@@ -231,11 +232,19 @@ module Linguist
!!name.match(/node_modules\//)
end
+ # Internal: Is the blob part of Godeps/,
+ # which are not meant for humans in pull requests.
+ #
+ # Returns true or false.
+ def godeps?
+ !!name.match(/Godeps\//)
+ end
+
# Internal: Is the blob a generated php composer lock file?
#
# Returns true or false.
def composer_lock?
- !!name.match(/composer.lock/)
+ !!name.match(/composer\.lock/)
end
# Internal: Is the blob a generated by Zephir
@@ -256,3 +265,4 @@ module Linguist
end
end
end
+
diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb
index c1116780..21764b34 100644
--- a/lib/linguist/heuristics.rb
+++ b/lib/linguist/heuristics.rb
@@ -1,7 +1,7 @@
module Linguist
# A collection of simple heuristics that can be used to better analyze languages.
class Heuristics
- ACTIVE = false
+ ACTIVE = true
# Public: Given an array of String language names,
# apply heuristics against the given data and return an array
@@ -13,28 +13,20 @@ module Linguist
# Returns an array of Languages or []
def self.find_by_heuristics(data, languages)
if active?
- if languages.all? { |l| ["Objective-C", "C++"].include?(l) }
- disambiguate_c(data, languages)
- end
if languages.all? { |l| ["Perl", "Prolog"].include?(l) }
- disambiguate_pl(data, languages)
+ result = disambiguate_pl(data, languages)
end
if languages.all? { |l| ["ECL", "Prolog"].include?(l) }
- disambiguate_ecl(data, languages)
- end
- if languages.all? { |l| ["TypeScript", "XML"].include?(l) }
- disambiguate_ts(data, languages)
+ result = disambiguate_ecl(data, languages)
end
if languages.all? { |l| ["Common Lisp", "OpenCL"].include?(l) }
- disambiguate_cl(data, languages)
- end
- if languages.all? { |l| ["Rebol", "R"].include?(l) }
- disambiguate_r(data, languages)
+ result = disambiguate_cl(data, languages)
end
+ return result
end
end
- # .h extensions are ambigious between C, C++, and Objective-C.
+ # .h extensions are ambiguous between C, C++, and Objective-C.
# We want to shortcut look for Objective-C _and_ now C++ too!
#
# Returns an array of Languages or []
diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb
index a8e7a33c..9c53eb9d 100644
--- a/lib/linguist/language.rb
+++ b/lib/linguist/language.rb
@@ -9,6 +9,8 @@ end
require 'linguist/classifier'
require 'linguist/heuristics'
require 'linguist/samples'
+require 'linguist/file_blob'
+require 'linguist/blob_helper'
module Linguist
# Language names that are recognizable by GitHub. Defined languages
@@ -92,18 +94,25 @@ module Linguist
# Public: Detects the Language of the blob.
#
- # name - String filename
- # data - String blob data. A block also maybe passed in for lazy
- # loading. This behavior is deprecated and you should always
- # pass in a String.
- # mode - Optional String mode (defaults to nil)
+ # blob - an object that includes the Linguist `BlobHelper` interface;
+ # see Linguist::LazyBlob and Linguist::FileBlob for examples
#
# Returns Language or nil.
- def self.detect(name, data, mode = nil)
+ def self.detect(blob)
+ name = blob.name.to_s
+
+ # Check if the blob is possibly binary and bail early; this is a cheap
+ # test that uses the extension name to guess a binary binary mime type.
+ #
+ # We'll perform a more comprehensive test later which actually involves
+ # looking for binary characters in the blob
+ return nil if blob.likely_binary? || blob.binary?
+
# A bit of an elegant hack. If the file is executable but extensionless,
# append a "magic" extension so it can be classified with other
# languages that have shebang scripts.
- if File.extname(name).empty? && mode && (mode.to_i(8) & 05) == 05
+ extension = FileBlob.new(name).extension
+ if extension.empty? && blob.mode && (blob.mode.to_i(8) & 05) == 05
name += ".script!"
end
@@ -114,10 +123,10 @@ module Linguist
# extension at all, in the case of extensionless scripts), we need to continue
# our detection work
if possible_languages.length > 1
- data = data.call() if data.respond_to?(:call)
+ data = blob.data
possible_language_names = possible_languages.map(&:name)
- # Don't bother with emptiness
+ # Don't bother with binary contents or an empty file
if data.nil? || data == ""
nil
# Check if there's a shebang line and use that as authoritative
@@ -126,8 +135,8 @@ module Linguist
# No shebang. Still more work to do. Try to find it with our heuristics.
elsif (determined = Heuristics.find_by_heuristics(data, possible_language_names)) && !determined.empty?
determined.first
- # Lastly, fall back to the probablistic classifier.
- elsif classified = Classifier.classify(Samples::DATA, data, possible_language_names ).first
+ # Lastly, fall back to the probabilistic classifier.
+ elsif classified = Classifier.classify(Samples.cache, data, possible_language_names).first
# Return the actual Language object based of the string language name (i.e., first element of `#classify`)
Language[classified[0]]
end
@@ -183,7 +192,8 @@ module Linguist
#
# Returns all matching Languages or [] if none were found.
def self.find_by_filename(filename)
- basename, extname = File.basename(filename), File.extname(filename)
+ basename = File.basename(filename)
+ extname = FileBlob.new(filename).extension
langs = @filename_index[basename] +
@extension_index[extname]
langs.compact.uniq
@@ -395,7 +405,7 @@ module Linguist
#
# Returns the extensions Array
attr_reader :filenames
-
+
# Public: Return all possible extensions for language
def all_extensions
(extensions + [primary_extension]).uniq
@@ -500,9 +510,9 @@ module Linguist
end
end
- extensions = Samples::DATA['extnames']
- interpreters = Samples::DATA['interpreters']
- filenames = Samples::DATA['filenames']
+ extensions = Samples.cache['extnames']
+ interpreters = Samples.cache['interpreters']
+ filenames = Samples.cache['filenames']
popular = YAML.load_file(File.expand_path("../popular.yml", __FILE__))
languages_yml = File.expand_path("../languages.yml", __FILE__)
@@ -522,6 +532,7 @@ module Linguist
if extnames = extensions[name]
extnames.each do |extname|
if !options['extensions'].include?(extname)
+ warn "#{name} has a sample with extension (#{extname}) that isn't explicitly defined in languages.yml" unless extname == '.script!'
options['extensions'] << extname
end
end
diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml
index 48707b3e..d69efc76 100644
--- a/lib/linguist/languages.yml
+++ b/lib/linguist/languages.yml
@@ -28,6 +28,16 @@ ABAP:
extensions:
- .abap
+AGS Script:
+ type: programming
+ lexer: C++
+ color: "#B9D9FF"
+ aliases:
+ - ags
+ extensions:
+ - .asc
+ - .ash
+
ANTLR:
type: programming
color: "#9DC3FF"
@@ -35,6 +45,12 @@ ANTLR:
extensions:
- .g4
+APL:
+ type: programming
+ color: "#8a0707"
+ extensions:
+ - .apl
+
ASP:
type: programming
color: "#6a40fd"
@@ -89,7 +105,7 @@ Agda:
Alloy:
type: programming # 'modeling' would be more appropiate
- lexer: Text only
+ lexer: Alloy
color: "#cc5c24"
extensions:
- .als
@@ -103,7 +119,7 @@ ApacheConf:
Apex:
type: programming
- lexer: Text only
+ lexer: Java
extensions:
- .cls
@@ -157,7 +173,6 @@ Assembly:
- nasm
extensions:
- .asm
- - .inc
Augeas:
type: programming
@@ -222,6 +237,8 @@ BlitzBasic:
- .decls
BlitzMax:
+ type: programming
+ color: "#cd6400"
extensions:
- .bmx
@@ -259,13 +276,14 @@ C:
extensions:
- .c
- .cats
+ - .h
- .w
C#:
type: programming
ace_mode: csharp
search_term: csharp
- color: "#5a25a2"
+ color: "#178600"
aliases:
- csharp
extensions:
@@ -287,6 +305,7 @@ C++:
- .cc
- .cxx
- .H
+ - .h
- .h++
- .hh
- .hpp
@@ -320,7 +339,7 @@ CLIPS:
CMake:
extensions:
- .cmake
- - .cmake.in
+ - .in
filenames:
- CMakeLists.txt
@@ -345,6 +364,14 @@ Ceylon:
extensions:
- .ceylon
+Chapel:
+ type: programming
+ color: "#8dc63f"
+ aliases:
+ - chpl
+ extensions:
+ - .chpl
+
ChucK:
lexer: Java
extensions:
@@ -353,9 +380,8 @@ ChucK:
Cirru:
type: programming
color: "#aaaaff"
- # ace_mode: cirru
- # lexer: Cirru
- lexer: Text only
+ ace_mode: cirru
+ lexer: Cirru
extensions:
- .cirru
@@ -379,7 +405,7 @@ Clojure:
- .cljscm
- .cljx
- .hic
- - .cljs.hl
+ - .hl
filenames:
- riemann.config
@@ -402,14 +428,27 @@ CoffeeScript:
ColdFusion:
type: programming
+ group: ColdFusion
lexer: Coldfusion HTML
ace_mode: coldfusion
color: "#ed2cd6"
search_term: cfm
aliases:
- cfm
+ - cfml
extensions:
- .cfm
+
+ColdFusion CFC:
+ type: programming
+ group: ColdFusion
+ lexer: Coldfusion CFC
+ ace_mode: coldfusion
+ color: "#ed2cd6"
+ search_term: cfc
+ aliases:
+ - cfc
+ extensions:
- .cfc
Common Lisp:
@@ -443,6 +482,7 @@ Coq:
type: programming
extensions:
- .coq
+ - .v
Cpp-ObjDump:
type: data
@@ -478,6 +518,12 @@ Cuda:
- .cu
- .cuh
+Cycript:
+ type: programming
+ lexer: JavaScript
+ extensions:
+ - .cy
+
Cython:
type: programming
group: Python
@@ -529,18 +575,10 @@ Dart:
extensions:
- .dart
-DCPU-16 ASM:
- type: programming
- lexer: dasm16
- extensions:
- - .dasm16
- - .dasm
- aliases:
- - dasm16
-
Diff:
extensions:
- .diff
+ - .patch
Dogescript:
type: programming
@@ -589,7 +627,7 @@ Eagle:
Eiffel:
type: programming
- lexer: Text only
+ lexer: Eiffel
color: "#946d57"
extensions:
- .e
@@ -609,7 +647,7 @@ Elm:
Emacs Lisp:
type: programming
- lexer: Scheme
+ lexer: Common Lisp
color: "#c065db"
aliases:
- elisp
@@ -620,11 +658,20 @@ Emacs Lisp:
- .el
- .emacs
+EmberScript:
+ type: programming
+ color: "#f64e3e"
+ lexer: CoffeeScript
+ extensions:
+ - .em
+ - .emberscript
+
Erlang:
type: programming
color: "#0faf8d"
extensions:
- .erl
+ - .escript
- .hrl
F#:
@@ -700,6 +747,7 @@ Forth:
extensions:
- .fth
- .4th
+ - .forth
Frege:
type: programming
@@ -708,6 +756,14 @@ Frege:
extensions:
- .fr
+G-code:
+ type: data
+ lexer: Text only
+ extensions:
+ - .g
+ - .gco
+ - .gcode
+
Game Maker Language:
type: programming
color: "#8ad353"
@@ -737,6 +793,12 @@ GAS:
- .s
- .S
+GDScript:
+ type: programming
+ lexer: Text only
+ extensions:
+ - .gd
+
GLSL:
group: C
type: programming
@@ -744,12 +806,14 @@ GLSL:
- .glsl
- .fp
- .frag
+ - .frg
- .fshader
- .geom
- .glslv
- .gshader
- .shader
- .vert
+ - .vrx
- .vshader
Genshi:
@@ -806,6 +870,15 @@ Gosu:
color: "#82937f"
extensions:
- .gs
+ - .gst
+ - .gsx
+ - .vark
+
+Grace:
+ type: programming
+ lexer: Text only
+ extensions:
+ - .grace
Grammatical Framework:
type: programming
@@ -835,6 +908,7 @@ Groovy:
color: "#e69f56"
extensions:
- .groovy
+ - .gradle
- .grt
- .gtpl
- .gvy
@@ -857,7 +931,6 @@ HTML:
extensions:
- .html
- .htm
- - .html.hl
- .st
- .xhtml
@@ -877,9 +950,7 @@ HTML+ERB:
- erb
extensions:
- .erb
- - .erb.deface
- - .html.erb
- - .html.erb.deface
+ - .deface
HTML+PHP:
type: markup
@@ -897,17 +968,14 @@ Haml:
type: markup
extensions:
- .haml
- - .haml.deface
- - .html.haml.deface
+ - .deface
Handlebars:
type: markup
- lexer: Text only
+ lexer: Handlebars
extensions:
- .handlebars
- .hbs
- - .html.handlebars
- - .html.hbs
Harbour:
type: programming
@@ -933,7 +1001,7 @@ Haxe:
Hy:
type: programming
- lexer: Clojure
+ lexer: Hy
ace_mode: clojure
color: "#7891b1"
extensions:
@@ -945,6 +1013,13 @@ IDL:
color: "#e3592c"
extensions:
- .pro
+ - .dlm
+
+IGOR Pro:
+ type: programming
+ lexer: Igor
+ extensions:
+ - .ipf
INI:
type: data
@@ -960,14 +1035,14 @@ Inno Setup:
Idris:
type: programming
- lexer: Text only
+ lexer: Idris
extensions:
- .idr
- .lidr
Inform 7:
type: programming
- lexer: Text only
+ lexer: Inform 7
wrap: true
extensions:
- .ni
@@ -1019,6 +1094,7 @@ JSON:
searchable: false
extensions:
- .json
+ - .lock
- .sublime-keymap
- .sublime-mousemap
- .sublime-project
@@ -1087,6 +1163,7 @@ JavaScript:
- .es6
- .frag
- .jake
+ - .jsb
- .jsfl
- .jsm
- .jss
@@ -1095,6 +1172,8 @@ JavaScript:
- .pac
- .sjs
- .ssjs
+ - .xsjs
+ - .xsjslib
filenames:
- Jakefile
interpreters:
@@ -1139,12 +1218,31 @@ LLVM:
extensions:
- .ll
+LSL:
+ type: programming
+ lexer: LSL
+ ace_mode: lsl
+ extensions:
+ - .lsl
+ interpreters:
+ - lsl
+ color: '#3d9970'
+
+LabVIEW:
+ type: programming
+ lexer: Text only
+ extensions:
+ - .lvproj
+
Lasso:
type: programming
lexer: Lasso
color: "#2584c3"
extensions:
- .lasso
+ - .las
+ - .lasso9
+ - .ldml
Latte:
type: markup
@@ -1223,6 +1321,14 @@ Logtalk:
- .lgt
- .logtalk
+LookML:
+ type: programming
+ lexer: YAML
+ ace_mode: yaml
+ color: "#652B81"
+ extensions:
+ - .lookml
+
Lua:
type: programming
ace_mode: lua
@@ -1230,6 +1336,7 @@ Lua:
extensions:
- .lua
- .nse
+ - .pd_lua
- .rbxs
interpreters:
- lua
@@ -1295,7 +1402,7 @@ Mathematica:
- .mathematica
- .m
- .nb
- lexer: Text only
+ lexer: Mathematica
Matlab:
type: programming
@@ -1343,7 +1450,7 @@ MiniD: # Legacy
Mirah:
type: programming
lexer: Ruby
- search_term: ruby
+ search_term: mirah
color: "#c7a938"
extensions:
- .druby
@@ -1375,6 +1482,7 @@ Myghty:
NSIS:
extensions:
- .nsi
+ - .nsh
Nemerle:
type: programming
@@ -1402,6 +1510,13 @@ Nimrod:
- .nim
- .nimrod
+Nit:
+ type: programming
+ lexer: Text only
+ color: "#0d8921"
+ extensions:
+ - .nit
+
Nix:
type: programming
lexer: Nix
@@ -1432,6 +1547,7 @@ OCaml:
color: "#3be133"
extensions:
- .ml
+ - .eliom
- .eliomi
- .ml4
- .mli
@@ -1452,6 +1568,7 @@ Objective-C:
- objc
extensions:
- .m
+ - .h
Objective-C++:
type: programming
@@ -1483,6 +1600,13 @@ Opa:
extensions:
- .opa
+Opal:
+ type: programming
+ color: "#f7ede0"
+ lexer: Text only
+ extensions:
+ - .opal
+
OpenCL:
type: programming
group: C
@@ -1499,6 +1623,13 @@ OpenEdge ABL:
- abl
extensions:
- .p
+ - .cls
+
+OpenSCAD:
+ type: programming
+ lexer: Text only
+ extensions:
+ - .scad
Org:
type: prose
@@ -1537,16 +1668,19 @@ PHP:
- .php
- .aw
- .ctp
+ - .module
- .php3
- .php4
- .php5
- .phpt
filenames:
- Phakefile
+ interpreters:
+ - php
Pan:
type: programming
- lexer: Text only
+ lexer: Pan
color: '#cc0000'
extensions:
- .pan
@@ -1583,7 +1717,9 @@ Pascal:
extensions:
- .pas
- .dfm
+ - .dpr
- .lpr
+ - .pp
Perl:
type: programming
@@ -1592,12 +1728,15 @@ Perl:
extensions:
- .pl
- .PL
+ - .cgi
+ - .fcgi
- .perl
- .ph
- .plx
- .pm
- .pod
- .psgi
+ - .t
interpreters:
- perl
@@ -1614,6 +1753,13 @@ Perl6:
- .pl6
- .pm6
+PigLatin:
+ type: programming
+ color: "#fcd7de"
+ lexer: Text only
+ extensions:
+ - .pig
+
Pike:
type: programming
color: "#066ab2"
@@ -1662,11 +1808,12 @@ Processing:
Prolog:
type: programming
+ lexer: Logtalk
color: "#74283c"
extensions:
- - .prolog
- - .ecl
- .pl
+ - .ecl
+ - .prolog
Propeller Spin:
type: programming
@@ -1711,6 +1858,7 @@ Python:
color: "#3581ba"
extensions:
- .py
+ - .cgi
- .gyp
- .lmi
- .pyde
@@ -1766,7 +1914,7 @@ R:
RDoc:
type: prose
- lexer: Text only
+ lexer: Rd
ace_mode: rdoc
wrap: true
extensions:
@@ -1806,6 +1954,7 @@ Racket:
- .rkt
- .rktd
- .rktl
+ - .scrbl
Ragel in Ruby Host:
type: programming
@@ -1875,7 +2024,10 @@ Ruby:
- .god
- .irbrc
- .mspec
+ - .pluginspec
- .podspec
+ - .rabl
+ - .rake
- .rbuild
- .rbw
- .rbx
@@ -1895,6 +2047,7 @@ Ruby:
- Jarfile
- Mavenfile
- Podfile
+ - Puppetfile
- Thorfile
- Vagrantfile
- buildfile
@@ -1919,6 +2072,14 @@ SCSS:
extensions:
- .scss
+SQF:
+ type: programming
+ color: "#FFCB1F"
+ lexer: C++
+ extensions:
+ - .sqf
+ - .hqf
+
SQL:
type: data
ace_mode: sql
@@ -1948,6 +2109,7 @@ Sass:
group: CSS
extensions:
- .sass
+ - .scss
Scala:
type: programming
@@ -1955,6 +2117,7 @@ Scala:
color: "#7dd3b0"
extensions:
- .scala
+ - .sbt
- .sc
Scaml:
@@ -1970,6 +2133,7 @@ Scheme:
- .scm
- .sld
- .sls
+ - .sps
- .ss
interpreters:
- guile
@@ -1981,6 +2145,8 @@ Scilab:
type: programming
extensions:
- .sci
+ - .sce
+ - .tst
Self:
type: programming
@@ -2000,8 +2166,11 @@ Shell:
- zsh
extensions:
- .sh
+ - .bash
- .bats
+ - .cgi
- .tmux
+ - .zsh
interpreters:
- bash
- sh
@@ -2068,6 +2237,7 @@ Standard ML:
extensions:
- .ML
- .fun
+ - .sig
- .sml
Stata:
@@ -2148,10 +2318,13 @@ TeX:
extensions:
- .tex
- .aux
+ - .bbx
- .bib
+ - .cbx
- .cls
- .dtx
- .ins
+ - .lbx
- .ltx
- .mkii
- .mkiv
@@ -2268,6 +2441,7 @@ Visual Basic:
extensions:
- .vb
- .bas
+ - .cls
- .frm
- .frx
- .vba
@@ -2296,6 +2470,7 @@ XML:
- wsdl
extensions:
- .xml
+ - .ant
- .axml
- .ccxml
- .clixml
@@ -2309,6 +2484,7 @@ XML:
- .fsproj
- .glade
- .grxml
+ - .ivy
- .jelly
- .kml
- .launch
diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb
new file mode 100644
index 00000000..bb262241
--- /dev/null
+++ b/lib/linguist/lazy_blob.rb
@@ -0,0 +1,37 @@
+require 'linguist/blob_helper'
+require 'rugged'
+
+module Linguist
+ class LazyBlob
+ include BlobHelper
+
+ MAX_SIZE = 128 * 1024
+
+ attr_reader :repository
+ attr_reader :oid
+ attr_reader :name
+ attr_reader :mode
+
+ def initialize(repo, oid, name, mode = nil)
+ @repository = repo
+ @oid = oid
+ @name = name
+ @mode = mode
+ end
+
+ def data
+ load_blob!
+ @data
+ end
+
+ def size
+ load_blob!
+ @size
+ end
+
+ protected
+ def load_blob!
+ @data, @size = Rugged::Blob.to_buffer(repository, oid, MAX_SIZE) if @data.nil?
+ end
+ end
+end
diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb
index a62bf281..a89c81e6 100644
--- a/lib/linguist/repository.rb
+++ b/lib/linguist/repository.rb
@@ -1,4 +1,5 @@
-require 'linguist/file_blob'
+require 'linguist/lazy_blob'
+require 'rugged'
module Linguist
# A Repository is an abstraction of a Grit::Repo or a basic file
@@ -7,100 +8,146 @@ module Linguist
# Its primary purpose is for gathering language statistics across
# the entire project.
class Repository
- # Public: Initialize a new Repository from a File directory
- #
- # base_path - A path String
- #
- # Returns a Repository
- def self.from_directory(base_path)
- new Dir["#{base_path}/**/*"].
- select { |f| File.file?(f) }.
- map { |path| FileBlob.new(path, base_path) }
+ attr_reader :repository
+
+ # Public: Create a new Repository based on the stats of
+ # an existing one
+ def self.incremental(repo, commit_oid, old_commit_oid, old_stats)
+ repo = self.new(repo, commit_oid)
+ repo.load_existing_stats(old_commit_oid, old_stats)
+ repo
end
- # Public: Initialize a new Repository
+ # Public: Initialize a new Repository to be analyzed for language
+ # data
#
- # enum - Enumerator that responds to `each` and
- # yields Blob objects
+ # repo - a Rugged::Repository object
+ # commit_oid - the sha1 of the commit that will be analyzed;
+ # this is usually the master branch
#
# Returns a Repository
- def initialize(enum)
- @enum = enum
- @computed_stats = false
- @language = @size = nil
- @sizes = Hash.new { 0 }
- @file_breakdown = Hash.new { |h,k| h[k] = Array.new }
+ def initialize(repo, commit_oid)
+ @repository = repo
+ @commit_oid = commit_oid
+
+ raise TypeError, 'commit_oid must be a commit SHA1' unless commit_oid.is_a?(String)
+ end
+
+ # Public: Load the results of a previous analysis on this repository
+ # to speed up the new scan.
+ #
+ # The new analysis will be performed incrementally as to only take
+ # into account the file changes since the last time the repository
+ # was scanned
+ #
+ # old_commit_oid - the sha1 of the commit that was previously analyzed
+ # old_stats - the result of the previous analysis, obtained by calling
+ # Repository#cache on the old repository
+ #
+ # Returns nothing
+ def load_existing_stats(old_commit_oid, old_stats)
+ @old_commit_oid = old_commit_oid
+ @old_stats = old_stats
+ nil
end
# Public: Returns a breakdown of language stats.
#
# Examples
#
- # # => { Language['Ruby'] => 46319,
- # Language['JavaScript'] => 258 }
+ # # => { 'Ruby' => 46319,
+ # 'JavaScript' => 258 }
#
- # Returns a Hash of Language keys and Integer size values.
+ # Returns a Hash of language names and Integer size values.
def languages
- compute_stats
- @sizes
+ @sizes ||= begin
+ sizes = Hash.new { 0 }
+ cache.each do |_, (language, size)|
+ sizes[language] += size
+ end
+ sizes
+ end
end
# Public: Get primary Language of repository.
#
- # Returns a Language
+ # Returns a language name
def language
- compute_stats
- @language
+ @language ||= begin
+ primary = languages.max_by { |(_, size)| size }
+ primary && primary[0]
+ end
end
# Public: Get the total size of the repository.
#
# Returns a byte size Integer
def size
- compute_stats
- @size
+ @size ||= languages.inject(0) { |s,(_,v)| s + v }
end
# Public: Return the language breakdown of this repository by file
+ #
+ # Returns a map of language names => [filenames...]
def breakdown_by_file
- compute_stats
- @file_breakdown
+ @file_breakdown ||= begin
+ breakdown = Hash.new { |h,k| h[k] = Array.new }
+ cache.each do |filename, (language, _)|
+ breakdown[language] << filename
+ end
+ breakdown
+ end
end
- # Internal: Compute language breakdown for each blob in the Repository.
+ # Public: Return the cached results of the analysis
#
- # Returns nothing
- def compute_stats
- return if @computed_stats
+ # This is a per-file breakdown that can be passed to other instances
+ # of Linguist::Repository to perform incremental scans
+ #
+ # Returns a map of filename => [language, size]
+ def cache
+ @cache ||= begin
+ if @old_commit_oid == @commit_oid
+ @old_stats
+ else
+ compute_stats(@old_commit_oid, @commit_oid, @old_stats)
+ end
+ end
+ end
- @enum.each do |blob|
- # Skip files that are likely binary
- next if blob.likely_binary?
+ protected
+ def compute_stats(old_commit_oid, commit_oid, cache = nil)
+ file_map = cache ? cache.dup : {}
+ old_tree = old_commit_oid && Rugged::Commit.lookup(repository, old_commit_oid).tree
+ new_tree = Rugged::Commit.lookup(repository, commit_oid).tree
- # Skip vendored or generated blobs
- next if blob.vendored? || blob.generated? || blob.language.nil?
+ diff = Rugged::Tree.diff(repository, old_tree, new_tree)
- # Only include programming languages and acceptable markup languages
- if blob.language.type == :programming || Language.detectable_markup.include?(blob.language.name)
+ diff.each_delta do |delta|
+ old = delta.old_file[:path]
+ new = delta.new_file[:path]
- # Build up the per-file breakdown stats
- @file_breakdown[blob.language.group.name] << blob.name
+ file_map.delete(old)
+ next if delta.binary
- @sizes[blob.language.group] += blob.size
+ if [:added, :modified].include? delta.status
+ # Skip submodules
+ mode = delta.new_file[:mode]
+ next if (mode & 040000) != 0
+
+ blob = Linguist::LazyBlob.new(repository, delta.new_file[:oid], new, mode.to_s(8))
+
+ # Skip vendored or generated blobs
+ next if blob.vendored? || blob.generated? || blob.language.nil?
+
+ # Only include programming languages and acceptable markup languages
+ if blob.language.type == :programming || Language.detectable_markup.include?(blob.language.name)
+ file_map[new] = [blob.language.group.name, blob.size]
+ end
end
end
- # Compute total size
- @size = @sizes.inject(0) { |s,(_,v)| s + v }
-
- # Get primary language
- if primary = @sizes.max_by { |(_, size)| size }
- @language = primary[0]
- end
-
- @computed_stats = true
-
- nil
+ file_map
end
end
end
diff --git a/lib/linguist/samples.json b/lib/linguist/samples.json
index 771cd635..54e7d276 100644
--- a/lib/linguist/samples.json
+++ b/lib/linguist/samples.json
@@ -1,42 +1,494 @@
{
"extnames": {
- "Stylus": [
- ".styl"
+ "ABAP": [
+ ".abap"
],
- "IDL": [
- ".dlm",
- ".pro"
+ "AGS Script": [
+ ".asc",
+ ".ash"
],
- "OpenEdge ABL": [
- ".cls",
- ".p"
+ "APL": [
+ ".apl"
],
- "Latte": [
- ".latte"
+ "ATS": [
+ ".atxt",
+ ".dats",
+ ".hats",
+ ".sats"
],
- "Racket": [
- ".scrbl"
+ "Agda": [
+ ".agda"
],
- "Assembly": [
- ".asm",
- ".inc"
+ "Alloy": [
+ ".als"
+ ],
+ "Apex": [
+ ".cls"
+ ],
+ "AppleScript": [
+ ".applescript"
+ ],
+ "Arduino": [
+ ".ino"
],
"AsciiDoc": [
".adoc",
".asc",
".asciidoc"
],
- "Gnuplot": [
- ".gnu",
- ".gp"
+ "AspectJ": [
+ ".aj"
+ ],
+ "Assembly": [
+ ".asm"
+ ],
+ "AutoHotkey": [
+ ".ahk"
+ ],
+ "Awk": [
+ ".awk"
+ ],
+ "BlitzBasic": [
+ ".bb"
+ ],
+ "BlitzMax": [
+ ".bmx"
+ ],
+ "Bluespec": [
+ ".bsv"
+ ],
+ "Brightscript": [
+ ".brs"
+ ],
+ "C": [
+ ".c",
+ ".cats",
+ ".h"
+ ],
+ "C#": [
+ ".cs",
+ ".cshtml"
+ ],
+ "C++": [
+ ".cc",
+ ".cpp",
+ ".h",
+ ".hpp",
+ ".inl",
+ ".ipp"
+ ],
+ "COBOL": [
+ ".cbl",
+ ".ccp",
+ ".cob",
+ ".cpy"
+ ],
+ "CSS": [
+ ".css"
+ ],
+ "Ceylon": [
+ ".ceylon"
+ ],
+ "Chapel": [
+ ".chpl"
+ ],
+ "Cirru": [
+ ".cirru"
+ ],
+ "Clojure": [
+ ".cl2",
+ ".clj",
+ ".cljc",
+ ".cljs",
+ ".cljscm",
+ ".cljx",
+ ".hic",
+ ".hl"
+ ],
+ "CoffeeScript": [
+ ".coffee"
+ ],
+ "ColdFusion": [
+ ".cfm"
+ ],
+ "ColdFusion CFC": [
+ ".cfc"
+ ],
+ "Common Lisp": [
+ ".cl",
+ ".lisp"
+ ],
+ "Component Pascal": [
+ ".cp",
+ ".cps"
+ ],
+ "Coq": [
+ ".v"
+ ],
+ "Creole": [
+ ".creole"
+ ],
+ "Crystal": [
+ ".cr"
+ ],
+ "Cuda": [
+ ".cu",
+ ".cuh"
+ ],
+ "Cycript": [
+ ".cy"
+ ],
+ "DM": [
+ ".dm"
+ ],
+ "Dart": [
+ ".dart"
+ ],
+ "Diff": [
+ ".patch"
],
"Dogescript": [
".djs"
],
+ "E": [
+ ".E"
+ ],
+ "ECL": [
+ ".ecl"
+ ],
+ "Eagle": [
+ ".brd",
+ ".sch"
+ ],
+ "Elm": [
+ ".elm"
+ ],
+ "Emacs Lisp": [
+ ".el"
+ ],
+ "EmberScript": [
+ ".em"
+ ],
+ "Erlang": [
+ ".erl",
+ ".escript",
+ ".script!"
+ ],
+ "Forth": [
+ ".forth",
+ ".fth"
+ ],
+ "Frege": [
+ ".fr"
+ ],
+ "G-code": [
+ ".g"
+ ],
+ "GAMS": [
+ ".gms"
+ ],
+ "GAP": [
+ ".g",
+ ".gd",
+ ".gi"
+ ],
+ "GAS": [
+ ".s"
+ ],
+ "GDScript": [
+ ".gd"
+ ],
+ "GLSL": [
+ ".fp",
+ ".frag",
+ ".frg",
+ ".glsl",
+ ".vrx"
+ ],
+ "Game Maker Language": [
+ ".gml"
+ ],
+ "Gnuplot": [
+ ".gnu",
+ ".gp"
+ ],
+ "Gosu": [
+ ".gs",
+ ".gst",
+ ".gsx",
+ ".vark"
+ ],
+ "Grace": [
+ ".grace"
+ ],
+ "Grammatical Framework": [
+ ".gf"
+ ],
+ "Groff": [
+ ".4"
+ ],
+ "Groovy": [
+ ".grt",
+ ".gtpl",
+ ".gvy",
+ ".script!"
+ ],
+ "Groovy Server Pages": [
+ ".gsp"
+ ],
+ "HTML": [
+ ".html",
+ ".st"
+ ],
+ "HTML+ERB": [
+ ".deface",
+ ".erb"
+ ],
+ "Haml": [
+ ".deface",
+ ".haml"
+ ],
+ "Handlebars": [
+ ".handlebars",
+ ".hbs"
+ ],
+ "Haskell": [
+ ".hs"
+ ],
+ "Hy": [
+ ".hy"
+ ],
+ "IDL": [
+ ".dlm",
+ ".pro"
+ ],
+ "IGOR Pro": [
+ ".ipf"
+ ],
+ "Idris": [
+ ".idr"
+ ],
+ "Inform 7": [
+ ".i7x",
+ ".ni"
+ ],
+ "Ioke": [
+ ".ik"
+ ],
+ "Isabelle": [
+ ".thy"
+ ],
+ "JSON": [
+ ".json",
+ ".lock"
+ ],
+ "JSON5": [
+ ".json5"
+ ],
+ "JSONLD": [
+ ".jsonld"
+ ],
+ "JSONiq": [
+ ".jq"
+ ],
+ "Jade": [
+ ".jade"
+ ],
+ "Java": [
+ ".java"
+ ],
+ "JavaScript": [
+ ".frag",
+ ".js",
+ ".jsb",
+ ".script!",
+ ".xsjs",
+ ".xsjslib"
+ ],
+ "Julia": [
+ ".jl"
+ ],
+ "KRL": [
+ ".krl"
+ ],
+ "Kit": [
+ ".kit"
+ ],
+ "Kotlin": [
+ ".kt"
+ ],
+ "LFE": [
+ ".lfe"
+ ],
+ "LSL": [
+ ".lsl"
+ ],
+ "Lasso": [
+ ".las",
+ ".lasso",
+ ".lasso9",
+ ".ldml"
+ ],
+ "Latte": [
+ ".latte"
+ ],
+ "Less": [
+ ".less"
+ ],
+ "Liquid": [
+ ".liquid"
+ ],
+ "Literate Agda": [
+ ".lagda"
+ ],
+ "Literate CoffeeScript": [
+ ".litcoffee"
+ ],
+ "LiveScript": [
+ ".ls"
+ ],
+ "Logos": [
+ ".xm"
+ ],
+ "Logtalk": [
+ ".lgt"
+ ],
+ "LookML": [
+ ".lookml"
+ ],
+ "Lua": [
+ ".pd_lua"
+ ],
+ "M": [
+ ".m"
+ ],
+ "MTML": [
+ ".mtml"
+ ],
+ "Makefile": [
+ ".script!"
+ ],
"Markdown": [
".md"
],
+ "Mask": [
+ ".mask"
+ ],
+ "Mathematica": [
+ ".m",
+ ".nb"
+ ],
+ "Matlab": [
+ ".m"
+ ],
+ "Max": [
+ ".maxhelp",
+ ".maxpat",
+ ".mxt"
+ ],
+ "MediaWiki": [
+ ".mediawiki"
+ ],
+ "Mercury": [
+ ".m",
+ ".moo"
+ ],
+ "Monkey": [
+ ".monkey"
+ ],
+ "Moocode": [
+ ".moo"
+ ],
+ "MoonScript": [
+ ".moon"
+ ],
+ "NSIS": [
+ ".nsh",
+ ".nsi"
+ ],
+ "Nemerle": [
+ ".n"
+ ],
+ "NetLogo": [
+ ".nlogo"
+ ],
+ "Nimrod": [
+ ".nim"
+ ],
+ "Nit": [
+ ".nit"
+ ],
+ "Nix": [
+ ".nix"
+ ],
+ "Nu": [
+ ".nu",
+ ".script!"
+ ],
+ "OCaml": [
+ ".eliom",
+ ".ml"
+ ],
+ "Objective-C": [
+ ".h",
+ ".m"
+ ],
+ "Objective-C++": [
+ ".mm"
+ ],
+ "Omgrofl": [
+ ".omgrofl"
+ ],
+ "Opa": [
+ ".opa"
+ ],
+ "Opal": [
+ ".opal"
+ ],
+ "OpenCL": [
+ ".cl"
+ ],
+ "OpenEdge ABL": [
+ ".cls",
+ ".p"
+ ],
+ "OpenSCAD": [
+ ".scad"
+ ],
+ "Org": [
+ ".org"
+ ],
+ "Ox": [
+ ".ox",
+ ".oxh",
+ ".oxo"
+ ],
+ "Oxygene": [
+ ".oxygene"
+ ],
+ "PAWN": [
+ ".pwn"
+ ],
+ "PHP": [
+ ".module",
+ ".php",
+ ".script!"
+ ],
+ "Pan": [
+ ".pan"
+ ],
+ "Parrot Assembly": [
+ ".pasm"
+ ],
+ "Parrot Internal Representation": [
+ ".pir"
+ ],
+ "Pascal": [
+ ".dpr",
+ ".pp"
+ ],
"Perl": [
+ ".cgi",
".fcgi",
".pl",
".pm",
@@ -44,6 +496,249 @@
".script!",
".t"
],
+ "Perl6": [
+ ".p6",
+ ".pm6"
+ ],
+ "PigLatin": [
+ ".pig"
+ ],
+ "Pike": [
+ ".pike",
+ ".pmod"
+ ],
+ "Pod": [
+ ".pod"
+ ],
+ "PogoScript": [
+ ".pogo"
+ ],
+ "PostScript": [
+ ".ps"
+ ],
+ "PowerShell": [
+ ".ps1",
+ ".psm1"
+ ],
+ "Processing": [
+ ".pde"
+ ],
+ "Prolog": [
+ ".ecl",
+ ".pl",
+ ".prolog",
+ ".script!"
+ ],
+ "Propeller Spin": [
+ ".spin"
+ ],
+ "Protocol Buffer": [
+ ".proto"
+ ],
+ "Puppet": [
+ ".pp"
+ ],
+ "PureScript": [
+ ".purs"
+ ],
+ "Python": [
+ ".cgi",
+ ".py",
+ ".pyde",
+ ".pyp",
+ ".script!"
+ ],
+ "QMake": [
+ ".pri",
+ ".pro",
+ ".script!"
+ ],
+ "R": [
+ ".R",
+ ".Rd",
+ ".r",
+ ".rsx",
+ ".script!"
+ ],
+ "RDoc": [
+ ".rdoc"
+ ],
+ "RMarkdown": [
+ ".rmd"
+ ],
+ "Racket": [
+ ".scrbl"
+ ],
+ "Ragel in Ruby Host": [
+ ".rl"
+ ],
+ "Rebol": [
+ ".r",
+ ".r2",
+ ".r3",
+ ".reb",
+ ".rebol"
+ ],
+ "Red": [
+ ".red",
+ ".reds"
+ ],
+ "RobotFramework": [
+ ".robot"
+ ],
+ "Ruby": [
+ ".pluginspec",
+ ".rabl",
+ ".rake",
+ ".rb",
+ ".script!"
+ ],
+ "Rust": [
+ ".rs"
+ ],
+ "SAS": [
+ ".sas"
+ ],
+ "SCSS": [
+ ".scss"
+ ],
+ "SQF": [
+ ".hqf",
+ ".sqf"
+ ],
+ "SQL": [
+ ".prc",
+ ".sql",
+ ".tab",
+ ".udf",
+ ".viw"
+ ],
+ "STON": [
+ ".ston"
+ ],
+ "Sass": [
+ ".sass",
+ ".scss"
+ ],
+ "Scala": [
+ ".sbt",
+ ".sc",
+ ".script!"
+ ],
+ "Scaml": [
+ ".scaml"
+ ],
+ "Scheme": [
+ ".sld",
+ ".sls",
+ ".sps"
+ ],
+ "Scilab": [
+ ".sce",
+ ".sci",
+ ".tst"
+ ],
+ "Shell": [
+ ".bash",
+ ".cgi",
+ ".script!",
+ ".sh",
+ ".zsh"
+ ],
+ "ShellSession": [
+ ".sh-session"
+ ],
+ "Shen": [
+ ".shen"
+ ],
+ "Slash": [
+ ".sl"
+ ],
+ "Slim": [
+ ".slim"
+ ],
+ "Smalltalk": [
+ ".st"
+ ],
+ "SourcePawn": [
+ ".sp"
+ ],
+ "Squirrel": [
+ ".nut"
+ ],
+ "Standard ML": [
+ ".ML",
+ ".fun",
+ ".sig",
+ ".sml"
+ ],
+ "Stata": [
+ ".ado",
+ ".do",
+ ".doh",
+ ".ihlp",
+ ".mata",
+ ".matah",
+ ".sthlp"
+ ],
+ "Stylus": [
+ ".styl"
+ ],
+ "SuperCollider": [
+ ".scd"
+ ],
+ "Swift": [
+ ".swift"
+ ],
+ "SystemVerilog": [
+ ".sv",
+ ".svh",
+ ".vh"
+ ],
+ "TXL": [
+ ".txl"
+ ],
+ "Tcl": [
+ ".tm"
+ ],
+ "TeX": [
+ ".bbx",
+ ".cbx",
+ ".cls",
+ ".lbx"
+ ],
+ "Tea": [
+ ".tea"
+ ],
+ "Turing": [
+ ".t"
+ ],
+ "TypeScript": [
+ ".ts"
+ ],
+ "UnrealScript": [
+ ".uc"
+ ],
+ "VCL": [
+ ".vcl"
+ ],
+ "VHDL": [
+ ".vhd"
+ ],
+ "Verilog": [
+ ".v"
+ ],
+ "Visual Basic": [
+ ".cls",
+ ".vb",
+ ".vbhtml"
+ ],
+ "Volt": [
+ ".volt"
+ ],
+ "XC": [
+ ".xc"
+ ],
"XML": [
".ant",
".csproj",
@@ -58,76 +753,14 @@
".vcxproj",
".xml"
],
- "MTML": [
- ".mtml"
+ "XProc": [
+ ".xpl"
],
- "Lasso": [
- ".las",
- ".lasso",
- ".lasso9",
- ".ldml"
+ "XQuery": [
+ ".xqm"
],
- "Max": [
- ".maxhelp",
- ".maxpat",
- ".mxt"
- ],
- "Awk": [
- ".awk"
- ],
- "JavaScript": [
- ".frag",
- ".js",
- ".script!"
- ],
- "Visual Basic": [
- ".cls",
- ".vb",
- ".vbhtml"
- ],
- "GAP": [
- ".g",
- ".gd",
- ".gi"
- ],
- "Logtalk": [
- ".lgt"
- ],
- "Scheme": [
- ".sld",
- ".sls",
- ".sps"
- ],
- "C++": [
- ".cc",
- ".cpp",
- ".h",
- ".hpp",
- ".inl",
- ".ipp"
- ],
- "JSON5": [
- ".json5"
- ],
- "MoonScript": [
- ".moon"
- ],
- "Mercury": [
- ".m",
- ".moo"
- ],
- "Perl6": [
- ".p6",
- ".pm6"
- ],
- "VHDL": [
- ".vhd"
- ],
- "Literate CoffeeScript": [
- ".litcoffee"
- ],
- "KRL": [
- ".krl"
+ "XSLT": [
+ ".xslt"
],
"Xojo": [
".xojo_code",
@@ -137,596 +770,62 @@
".xojo_toolbar",
".xojo_window"
],
- "Nimrod": [
- ".nim"
- ],
- "Pascal": [
- ".dpr"
- ],
- "C#": [
- ".cs",
- ".cshtml"
- ],
- "Groovy Server Pages": [
- ".gsp"
- ],
- "GAMS": [
- ".gms"
- ],
- "COBOL": [
- ".cbl",
- ".ccp",
- ".cob",
- ".cpy"
- ],
- "Cuda": [
- ".cu",
- ".cuh"
- ],
- "Gosu": [
- ".gs",
- ".gst",
- ".gsx",
- ".vark"
- ],
- "Prolog": [
- ".ecl",
- ".pl",
- ".prolog"
- ],
- "Tcl": [
- ".tm"
- ],
- "Squirrel": [
- ".nut"
+ "Xtend": [
+ ".xtend"
],
"YAML": [
".sls",
".yml"
],
- "Clojure": [
- ".cl2",
- ".clj",
- ".cljc",
- ".cljs",
- ".cljscm",
- ".cljx",
- ".hic"
- ],
- "Tea": [
- ".tea"
- ],
- "M": [
- ".m"
- ],
- "NSIS": [
- ".nsh",
- ".nsi"
- ],
- "Pod": [
- ".pod"
- ],
- "AutoHotkey": [
- ".ahk"
- ],
- "TXL": [
- ".txl"
- ],
- "wisp": [
- ".wisp"
- ],
- "Mathematica": [
- ".m",
- ".nb"
- ],
- "Coq": [
- ".v"
- ],
- "GAS": [
- ".s"
- ],
- "Verilog": [
- ".v"
- ],
- "Apex": [
- ".cls"
- ],
- "Scala": [
- ".sbt",
- ".sc",
- ".script!"
- ],
- "JSONLD": [
- ".jsonld"
- ],
- "LiveScript": [
- ".ls"
- ],
- "Nix": [
- ".nix"
- ],
- "Org": [
- ".org"
- ],
- "Liquid": [
- ".liquid"
- ],
- "UnrealScript": [
- ".uc"
- ],
- "Component Pascal": [
- ".cp",
- ".cps"
- ],
- "PogoScript": [
- ".pogo"
- ],
- "Creole": [
- ".creole"
- ],
- "Processing": [
- ".pde"
- ],
- "Emacs Lisp": [
- ".el"
- ],
- "Elm": [
- ".elm"
- ],
- "Inform 7": [
- ".i7x",
- ".ni"
- ],
- "XC": [
- ".xc"
- ],
- "JSON": [
- ".json",
- ".lock"
- ],
- "Pike": [
- ".pike",
- ".pmod"
- ],
- "Scaml": [
- ".scaml"
- ],
- "Shell": [
- ".bash",
- ".script!",
- ".sh",
- ".zsh"
- ],
- "Sass": [
- ".sass",
- ".scss"
- ],
- "Oxygene": [
- ".oxygene"
- ],
- "ATS": [
- ".atxt",
- ".dats",
- ".hats",
- ".sats"
- ],
- "SCSS": [
- ".scss"
- ],
- "R": [
- ".R",
- ".Rd",
- ".r",
- ".rsx",
- ".script!"
- ],
- "Brightscript": [
- ".brs"
- ],
- "HTML": [
- ".html",
- ".st"
- ],
- "Frege": [
- ".fr"
- ],
- "Literate Agda": [
- ".lagda"
- ],
- "Lua": [
- ".pd_lua"
- ],
- "XSLT": [
- ".xslt"
+ "Zephir": [
+ ".zep"
],
"Zimpl": [
".zmpl"
],
- "Groovy": [
- ".gradle",
- ".grt",
- ".gtpl",
- ".gvy",
- ".script!"
- ],
- "Ioke": [
- ".ik"
- ],
- "Jade": [
- ".jade"
- ],
- "TypeScript": [
- ".ts"
- ],
- "Erlang": [
- ".erl",
- ".escript",
- ".script!"
- ],
- "ABAP": [
- ".abap"
- ],
- "Rebol": [
- ".r",
- ".r2",
- ".r3",
- ".reb",
- ".rebol"
- ],
- "SuperCollider": [
- ".scd"
- ],
- "CoffeeScript": [
- ".coffee"
- ],
- "PHP": [
- ".module",
- ".php",
- ".script!"
- ],
- "MediaWiki": [
- ".mediawiki"
- ],
- "Ceylon": [
- ".ceylon"
+ "edn": [
+ ".edn"
],
"fish": [
".fish"
],
- "Diff": [
- ".patch"
- ],
- "Slash": [
- ".sl"
- ],
- "Objective-C": [
- ".h",
- ".m"
- ],
- "Stata": [
- ".ado",
- ".do",
- ".doh",
- ".ihlp",
- ".mata",
- ".matah",
- ".sthlp"
- ],
- "Shen": [
- ".shen"
- ],
- "Mask": [
- ".mask"
- ],
- "SAS": [
- ".sas"
- ],
- "Xtend": [
- ".xtend"
- ],
- "Arduino": [
- ".ino"
- ],
- "XProc": [
- ".xpl"
- ],
- "Haml": [
- ".haml"
- ],
- "AspectJ": [
- ".aj"
- ],
- "RDoc": [
- ".rdoc"
- ],
- "AppleScript": [
- ".applescript"
- ],
- "Ox": [
- ".ox",
- ".oxh",
- ".oxo"
- ],
- "STON": [
- ".ston"
- ],
- "Scilab": [
- ".sce",
- ".sci",
- ".tst"
- ],
- "Dart": [
- ".dart"
- ],
- "Nu": [
- ".nu",
- ".script!"
- ],
- "Alloy": [
- ".als"
- ],
- "Red": [
- ".red",
- ".reds"
- ],
- "BlitzBasic": [
- ".bb"
- ],
- "RobotFramework": [
- ".robot"
- ],
- "Agda": [
- ".agda"
- ],
- "Hy": [
- ".hy"
- ],
- "Less": [
- ".less"
- ],
- "Kit": [
- ".kit"
- ],
- "E": [
- ".E"
- ],
- "DM": [
- ".dm"
- ],
- "OpenCL": [
- ".cl"
- ],
- "ShellSession": [
- ".sh-session"
- ],
- "GLSL": [
- ".fp",
- ".frag",
- ".glsl"
- ],
- "ECL": [
- ".ecl"
- ],
- "Makefile": [
- ".script!"
- ],
- "Haskell": [
- ".hs"
- ],
- "Slim": [
- ".slim"
- ],
- "Zephir": [
- ".zep"
- ],
- "OCaml": [
- ".eliom",
- ".ml"
- ],
- "VCL": [
- ".vcl"
- ],
- "Smalltalk": [
- ".st"
- ],
- "Parrot Assembly": [
- ".pasm"
- ],
- "Isabelle": [
- ".thy"
- ],
- "Protocol Buffer": [
- ".proto"
- ],
- "SQL": [
- ".prc",
- ".sql",
- ".tab",
- ".udf",
- ".viw"
- ],
- "Nemerle": [
- ".n"
- ],
- "Bluespec": [
- ".bsv"
- ],
- "Swift": [
- ".swift"
- ],
- "SourcePawn": [
- ".sp"
- ],
- "Propeller Spin": [
- ".spin"
- ],
- "Cirru": [
- ".cirru"
- ],
- "Julia": [
- ".jl"
- ],
- "Ragel in Ruby Host": [
- ".rl"
- ],
- "JSONiq": [
- ".jq"
- ],
- "TeX": [
- ".cls"
- ],
- "XQuery": [
- ".xqm"
- ],
- "RMarkdown": [
- ".rmd"
- ],
- "Crystal": [
- ".cr"
- ],
- "edn": [
- ".edn"
- ],
- "PowerShell": [
- ".ps1",
- ".psm1"
- ],
- "Game Maker Language": [
- ".gml"
- ],
- "Volt": [
- ".volt"
- ],
- "Monkey": [
- ".monkey"
- ],
- "SystemVerilog": [
- ".sv",
- ".svh",
- ".vh"
- ],
- "Grammatical Framework": [
- ".gf"
- ],
- "PostScript": [
- ".ps"
- ],
- "CSS": [
- ".css"
- ],
- "Forth": [
- ".forth",
- ".fth"
- ],
- "LFE": [
- ".lfe"
- ],
- "Moocode": [
- ".moo"
- ],
- "Java": [
- ".java"
- ],
- "Turing": [
- ".t"
- ],
- "Kotlin": [
- ".kt"
- ],
- "Idris": [
- ".idr"
- ],
- "PureScript": [
- ".purs"
- ],
- "QMake": [
- ".pri",
- ".pro",
- ".script!"
- ],
- "NetLogo": [
- ".nlogo"
- ],
- "Eagle": [
- ".brd",
- ".sch"
- ],
- "Common Lisp": [
- ".cl",
- ".lisp"
- ],
- "Parrot Internal Representation": [
- ".pir"
- ],
- "Objective-C++": [
- ".mm"
- ],
- "Rust": [
- ".rs"
- ],
- "Matlab": [
- ".m"
- ],
- "Pan": [
- ".pan"
- ],
- "PAWN": [
- ".pwn"
- ],
- "Ruby": [
- ".pluginspec",
- ".rabl",
- ".rake",
- ".rb",
- ".script!"
- ],
- "C": [
- ".c",
- ".cats",
- ".h"
- ],
- "Standard ML": [
- ".ML",
- ".fun",
- ".sig",
- ".sml"
- ],
- "Logos": [
- ".xm"
- ],
- "Omgrofl": [
- ".omgrofl"
- ],
- "Opa": [
- ".opa"
- ],
- "Python": [
- ".py",
- ".pyde",
- ".pyp",
- ".script!"
- ],
- "Handlebars": [
- ".handlebars",
- ".hbs"
+ "wisp": [
+ ".wisp"
]
},
"interpreters": {
},
"filenames": {
+ "ApacheConf": [
+ ".htaccess",
+ "apache2.conf",
+ "httpd.conf"
+ ],
+ "INI": [
+ ".editorconfig",
+ ".gitconfig"
+ ],
+ "Makefile": [
+ "Makefile"
+ ],
"Nginx": [
"nginx.conf"
],
+ "PHP": [
+ ".php"
+ ],
"Perl": [
"ack"
],
- "YAML": [
- ".gemrc"
+ "R": [
+ "expr-dist"
],
- "VimL": [
- ".gvimrc",
- ".vimrc"
+ "Ruby": [
+ ".pryrc",
+ "Appraisals",
+ "Capfile",
+ "Rakefile"
],
"Shell": [
".bash_logout",
@@ -754,2164 +853,2635 @@
"zshenv",
"zshrc"
],
- "R": [
- "expr-dist"
+ "VimL": [
+ ".gvimrc",
+ ".vimrc"
],
- "ApacheConf": [
- ".htaccess",
- "apache2.conf",
- "httpd.conf"
+ "XML": [
+ ".cproject"
],
- "Makefile": [
- "Makefile"
+ "YAML": [
+ ".gemrc"
],
"Zephir": [
"exception.zep.c",
"exception.zep.h",
"exception.zep.php"
- ],
- "INI": [
- ".editorconfig",
- ".gitconfig"
- ],
- "Ruby": [
- ".pryrc",
- "Appraisals",
- "Capfile",
- "Rakefile"
]
},
- "tokens_total": 643875,
- "languages_total": 844,
+ "tokens_total": 663541,
+ "languages_total": 926,
"tokens": {
- "Stylus": {
- "border": 6,
- "-": 10,
- "radius": 5,
- "(": 1,
- ")": 1,
- "webkit": 1,
- "arguments": 3,
- "moz": 1,
- "a.button": 1,
- "px": 5,
- "fonts": 2,
- "helvetica": 1,
- "arial": 1,
- "sans": 1,
- "serif": 1,
- "body": 1,
- "{": 1,
- "padding": 3,
- ";": 2,
- "font": 1,
- "px/1.4": 1,
- "}": 1,
- "form": 2,
- "input": 2,
- "[": 2,
- "type": 2,
- "text": 2,
- "]": 2,
- "solid": 1,
- "#eee": 1,
- "color": 2,
- "#ddd": 1,
- "textarea": 1,
- "@extends": 2,
- "foo": 2,
- "#FFF": 1,
- ".bar": 1,
- "background": 1,
- "#000": 1
- },
- "IDL": {
- "MODULE": 1,
- "mg_analysis": 1,
- "DESCRIPTION": 1,
- "Tools": 1,
- "for": 2,
- "analysis": 1,
- "VERSION": 1,
- "SOURCE": 1,
- "mgalloy": 1,
- "BUILD_DATE": 1,
- "January": 1,
- "FUNCTION": 2,
- "MG_ARRAY_EQUAL": 1,
- "KEYWORDS": 1,
- "MG_TOTAL": 1,
- ";": 59,
- "docformat": 3,
- "+": 8,
- "Find": 1,
- "the": 7,
- "greatest": 1,
- "common": 1,
- "denominator": 1,
- "(": 26,
- "GCD": 1,
- ")": 26,
- "two": 1,
- "positive": 2,
- "integers.": 1,
- "Returns": 3,
- "integer": 5,
- "Params": 3,
- "a": 4,
- "in": 4,
- "required": 4,
- "type": 5,
- "first": 1,
- "b": 4,
- "second": 1,
- "-": 14,
- "function": 4,
- "mg_gcd": 2,
- "compile_opt": 3,
- "strictarr": 3,
- "on_error": 1,
- "if": 5,
- "n_params": 1,
- "ne": 1,
- "then": 5,
- "message": 2,
- "mg_isinteger": 2,
- "||": 1,
- "begin": 2,
- "endif": 2,
- "_a": 3,
- "abs": 2,
- "_b": 3,
- "minArg": 5,
- "<": 1,
- "maxArg": 3,
- "eq": 2,
- "return": 5,
- "remainder": 3,
- "mod": 1,
- "end": 5,
- "Inverse": 1,
- "hyperbolic": 2,
- "cosine.": 1,
- "Uses": 1,
- "formula": 1,
- "text": 1,
- "{": 3,
- "acosh": 1,
- "}": 3,
- "z": 9,
- "ln": 1,
- "sqrt": 4,
- "Examples": 2,
- "The": 1,
- "arc": 1,
- "sine": 1,
- "looks": 1,
- "like": 2,
- "IDL": 5,
- "x": 8,
- "*": 2,
- "findgen": 1,
- "/": 1,
- "plot": 1,
- "mg_acosh": 2,
- "xstyle": 1,
- "This": 1,
- "should": 1,
- "look": 1,
- "..": 1,
- "image": 1,
- "acosh.png": 1,
- "float": 1,
- "double": 2,
- "complex": 2,
+ "ABAP": {
+ "*/**": 1,
+ "*": 56,
+ "The": 2,
+ "MIT": 2,
+ "License": 1,
+ "(": 8,
+ ")": 8,
+ "Copyright": 1,
+ "c": 3,
+ "Ren": 1,
+ "van": 1,
+ "Mil": 1,
+ "Permission": 1,
+ "is": 2,
+ "hereby": 1,
+ "granted": 1,
+ "free": 1,
+ "of": 6,
+ "charge": 1,
+ "to": 10,
+ "any": 1,
+ "person": 1,
+ "obtaining": 1,
+ "a": 1,
+ "copy": 2,
+ "this": 2,
+ "software": 1,
+ "and": 3,
+ "associated": 1,
+ "documentation": 1,
+ "files": 4,
+ "the": 10,
+ "deal": 1,
+ "in": 3,
+ "Software": 3,
+ "without": 2,
+ "restriction": 1,
+ "including": 1,
+ "limitation": 1,
+ "rights": 1,
+ "use": 1,
+ "modify": 1,
+ "merge": 1,
+ "publish": 1,
+ "distribute": 1,
+ "sublicense": 1,
+ "and/or": 1,
+ "sell": 1,
+ "copies": 2,
+ "permit": 1,
+ "persons": 1,
+ "whom": 1,
+ "furnished": 1,
+ "do": 4,
+ "so": 1,
+ "subject": 1,
+ "following": 1,
+ "conditions": 1,
+ "above": 1,
+ "copyright": 1,
+ "notice": 2,
+ "permission": 1,
+ "shall": 1,
+ "be": 1,
+ "included": 1,
+ "all": 1,
"or": 1,
- "depending": 1,
- "on": 1,
- "input": 2,
- "numeric": 1,
- "alog": 1,
- "Truncate": 1,
- "argument": 2,
- "towards": 1,
- "i.e.": 1,
- "takes": 1,
- "FLOOR": 1,
- "of": 4,
+ "substantial": 1,
+ "portions": 1,
+ "Software.": 1,
+ "THE": 6,
+ "SOFTWARE": 2,
+ "IS": 1,
+ "PROVIDED": 1,
+ "WITHOUT": 1,
+ "WARRANTY": 1,
+ "OF": 4,
+ "ANY": 2,
+ "KIND": 1,
+ "EXPRESS": 1,
+ "OR": 7,
+ "IMPLIED": 1,
+ "INCLUDING": 1,
+ "BUT": 1,
+ "NOT": 1,
+ "LIMITED": 1,
+ "TO": 2,
+ "WARRANTIES": 1,
+ "MERCHANTABILITY": 1,
+ "FITNESS": 1,
+ "FOR": 2,
+ "A": 1,
+ "PARTICULAR": 1,
+ "PURPOSE": 1,
+ "AND": 1,
+ "NONINFRINGEMENT.": 1,
+ "IN": 4,
+ "NO": 1,
+ "EVENT": 1,
+ "SHALL": 1,
+ "AUTHORS": 1,
+ "COPYRIGHT": 1,
+ "HOLDERS": 1,
+ "BE": 1,
+ "LIABLE": 1,
+ "CLAIM": 1,
+ "DAMAGES": 1,
+ "OTHER": 2,
+ "LIABILITY": 1,
+ "WHETHER": 1,
+ "AN": 1,
+ "ACTION": 1,
+ "CONTRACT": 1,
+ "TORT": 1,
+ "OTHERWISE": 1,
+ "ARISING": 1,
+ "FROM": 1,
+ "OUT": 1,
+ "CONNECTION": 1,
+ "WITH": 1,
+ "USE": 1,
+ "DEALINGS": 1,
+ "SOFTWARE.": 1,
+ "*/": 1,
+ "-": 978,
+ "CLASS": 2,
+ "CL_CSV_PARSER": 6,
+ "DEFINITION": 2,
+ "class": 2,
+ "cl_csv_parser": 2,
+ "definition": 1,
+ "public": 3,
+ "inheriting": 1,
+ "from": 1,
+ "cl_object": 1,
+ "final": 1,
+ "create": 1,
+ ".": 9,
+ "section.": 3,
+ "not": 3,
+ "include": 3,
+ "other": 3,
+ "source": 3,
+ "here": 3,
+ "type": 11,
+ "pools": 1,
+ "abap": 1,
+ "methods": 2,
+ "constructor": 2,
+ "importing": 1,
+ "delegate": 1,
+ "ref": 1,
+ "if_csv_parser_delegate": 1,
+ "csvstring": 1,
+ "string": 1,
+ "separator": 1,
+ "skip_first_line": 1,
+ "abap_bool": 2,
+ "parse": 2,
+ "raising": 1,
+ "cx_csv_parse_error": 2,
+ "protected": 1,
+ "private": 1,
+ "constants": 1,
+ "_textindicator": 1,
+ "value": 2,
+ "IMPLEMENTATION": 2,
+ "implementation.": 1,
+ "": 2,
+ "+": 9,
+ "|": 7,
+ "Instance": 2,
+ "Public": 1,
+ "Method": 2,
+ "CONSTRUCTOR": 1,
+ "[": 5,
+ "]": 5,
+ "DELEGATE": 1,
+ "TYPE": 5,
+ "REF": 1,
+ "IF_CSV_PARSER_DELEGATE": 1,
+ "CSVSTRING": 1,
+ "STRING": 1,
+ "SEPARATOR": 1,
+ "C": 1,
+ "SKIP_FIRST_LINE": 1,
+ "ABAP_BOOL": 1,
+ "": 2,
+ "method": 2,
+ "constructor.": 1,
+ "super": 1,
+ "_delegate": 1,
+ "delegate.": 1,
+ "_csvstring": 2,
+ "csvstring.": 1,
+ "_separator": 1,
+ "separator.": 1,
+ "_skip_first_line": 1,
+ "skip_first_line.": 1,
+ "endmethod.": 2,
+ "Get": 1,
+ "lines": 4,
+ "data": 3,
+ "is_first_line": 1,
+ "abap_true.": 2,
+ "standard": 2,
+ "table": 3,
+ "string.": 3,
+ "_lines": 1,
+ "field": 1,
+ "symbols": 1,
+ "": 3,
+ "loop": 1,
+ "at": 2,
+ "assigning": 1,
+ "Parse": 1,
+ "line": 1,
"values": 2,
- "and": 1,
- "CEIL": 1,
- "negative": 1,
- "values.": 1,
- "Try": 1,
- "main": 2,
- "level": 2,
- "program": 2,
- "at": 1,
- "this": 1,
- "file.": 1,
- "It": 1,
- "does": 1,
- "print": 4,
- "mg_trunc": 3,
+ "_parse_line": 2,
+ "Private": 1,
+ "_LINES": 1,
+ "<": 1,
+ "RETURNING": 1,
+ "STRINGTAB": 1,
+ "_lines.": 1,
+ "split": 1,
+ "cl_abap_char_utilities": 1,
+ "cr_lf": 1,
+ "into": 6,
+ "returning.": 1,
+ "Space": 2,
+ "concatenate": 4,
+ "csvvalue": 6,
+ "csvvalue.": 5,
+ "else.": 4,
+ "char": 2,
+ "endif.": 6,
+ "This": 1,
+ "indicates": 1,
+ "an": 1,
+ "error": 1,
+ "CSV": 1,
+ "formatting": 1,
+ "text_ended": 1,
+ "message": 2,
+ "e003": 1,
+ "csv": 1,
+ "msg.": 2,
+ "raise": 1,
+ "exception": 1,
+ "exporting": 1,
+ "endwhile.": 2,
+ "append": 2,
+ "csvvalues.": 2,
+ "clear": 1,
+ "pos": 2,
+ "endclass.": 1
+ },
+ "AGS Script": {
+ "function": 54,
+ "initialize_control_panel": 2,
+ "(": 281,
+ ")": 282,
+ "{": 106,
+ "gPanel.Centre": 1,
+ ";": 235,
+ "gRestartYN.Centre": 1,
+ "if": 96,
+ "IsSpeechVoxAvailable": 3,
+ "lblVoice.Visible": 1,
+ "false": 26,
+ "btnVoice.Visible": 1,
+ "sldVoice.Visible": 1,
+ "}": 107,
+ "else": 44,
+ "SetVoiceMode": 6,
+ "eSpeechVoiceAndText": 4,
+ "btnVoice.Text": 9,
+ "System.SupportsGammaControl": 3,
+ "sldGamma.Visible": 1,
+ "lblGamma.Visible": 1,
+ "//And": 1,
+ "now": 1,
+ "set": 7,
+ "all": 2,
+ "the": 15,
+ "defaults": 1,
+ "System.Volume": 5,
+ "sldAudio.Value": 3,
+ "SetGameSpeed": 3,
+ "sldSpeed.Value": 3,
+ "sldVoice.Value": 3,
+ "SetSpeechVolume": 3,
+ "System.Gamma": 3,
+ "sldGamma.Value": 3,
+ "game_start": 1,
+ "KeyboardMovement.SetMode": 1,
+ "eKeyboardMovement_Tapping": 3,
+ "repeatedly_execute": 2,
+ "IsGamePaused": 4,
+ "return": 8,
+ "repeatedly_execute_always": 1,
+ "show_inventory_window": 3,
+ "gInventory.Visible": 2,
+ "true": 18,
+ "mouse.Mode": 13,
+ "eModeInteract": 3,
+ "mouse.UseModeGraphic": 8,
+ "eModePointer": 8,
+ "show_save_game_dialog": 3,
+ "gSaveGame.Visible": 3,
+ "lstSaveGamesList.FillSaveGameList": 2,
+ "lstSaveGamesList.ItemCount": 3,
+ "txtNewSaveName.Text": 5,
+ "lstSaveGamesList.Items": 3,
"[": 6,
"]": 6,
- "floor": 2,
- "ceil": 2,
- "array": 2,
+ "gIconbar.Visible": 15,
+ "show_restore_game_dialog": 3,
+ "gRestoreGame.Visible": 3,
+ "lstRestoreGamesList.FillSaveGameList": 1,
+ "close_save_game_dialog": 4,
+ "mouse.UseDefaultGraphic": 9,
+ "close_restore_game_dialog": 4,
+ "on_key_press": 2,
+ "eKeyCode": 1,
+ "keycode": 27,
+ "eKeyEscape": 5,
+ "&&": 8,
+ "gRestartYN.Visible": 6,
+ "//Use": 1,
+ "ESC": 1,
+ "to": 14,
+ "cancel": 1,
+ "restart.": 1,
+ "gPanel.Visible": 11,
+ "eKeyReturn": 1,
+ "RestartGame": 2,
+ "||": 12,
+ "IsInterfaceEnabled": 3,
+ "eKeyCtrlQ": 1,
+ "QuitGame": 3,
+ "//": 66,
+ "Ctrl": 1,
+ "-": 217,
+ "Q": 1,
+ "eKeyF5": 1,
+ "F5": 1,
+ "eKeyF7": 1,
+ "F7": 1,
+ "eKeyF9": 1,
+ "eKeyF12": 1,
+ "SaveScreenShot": 1,
+ "F12": 1,
+ "eKeyTab": 1,
+ "Tab": 1,
+ "show": 1,
+ "inventory": 2,
+ "eModeWalkto": 2,
+ "//Notice": 1,
+ "this": 1,
+ "alternate": 1,
+ "way": 1,
+ "indicate": 1,
+ "keycodes.": 1,
+ "eModeLookat": 1,
+ "//Note": 1,
+ "that": 1,
+ "we": 1,
+ "do": 1,
+ "here": 1,
+ "is": 10,
+ "modes.": 1,
+ "//If": 1,
+ "you": 1,
+ "want": 1,
+ "something": 1,
+ "happen": 1,
+ "such": 1,
+ "as": 2,
+ "GUI": 3,
+ "buttons": 1,
+ "highlighting": 1,
+ "eModeTalkto": 2,
+ "//you": 1,
+ "I": 1,
+ "P": 1,
+ "G": 1,
+ "t": 1,
+ "allow": 1,
+ "mouse": 2,
+ "click": 1,
+ "button": 33,
+ "eMouseLeft": 4,
+ "ProcessClick": 2,
+ "mouse.x": 2,
+ "mouse.y": 2,
+ "eMouseRight": 1,
+ "eMouseWheelSouth": 1,
+ "mouse.SelectNextMode": 1,
+ "eMouseMiddle": 1,
+ "eMouseWheelNorth": 1,
+ "player.ActiveInventory": 2,
+ "null": 2,
+ "//...and": 1,
+ "player": 13,
+ "has": 1,
+ "a": 1,
+ "selected": 1,
+ "item": 1,
+ "mode": 10,
+ "UseInv.": 1,
+ "eModeUseinv": 2,
+ "interface_click": 1,
+ "int": 18,
+ "interface": 3,
+ "btnInvUp_Click": 1,
+ "GUIControl": 31,
+ "*control": 31,
+ "MouseButton": 26,
+ "invCustomInv.ScrollUp": 1,
+ "btnInvDown_Click": 1,
+ "invCustomInv.ScrollDown": 1,
+ "btnInvOK_Click": 1,
+ "They": 2,
+ "pressed": 4,
+ "OK": 1,
+ "close": 1,
+ "btnInvSelect_Click": 1,
+ "SELECT": 1,
+ "so": 1,
+ "switch": 1,
+ "Get": 1,
+ "cursor": 1,
+ "But": 1,
+ "override": 1,
+ "appearance": 1,
+ "look": 1,
+ "like": 1,
+ "arrow": 9,
+ "btnIconInv_Click": 1,
+ "btnIconCurInv_Click": 1,
+ "btnIconSave_Click": 2,
+ "btnIconLoad_Click": 2,
+ "btnIconExit_Click": 1,
+ "btnIconAbout_Click": 1,
+ "cEgo_Look": 1,
+ "Display": 4,
+ "cEgo_Interact": 1,
+ "cEgo_Talk": 1,
+ "//START": 1,
+ "OF": 2,
+ "CONTROL": 2,
+ "PANEL": 2,
+ "FUNCTIONS": 2,
+ "btnSave_OnClick": 1,
+ "Wait": 3,
+ "btnIconSave": 1,
+ "gControl_OnClick": 1,
+ "*theGui": 1,
+ "btnAbout_OnClick": 1,
+ "btnQuit_OnClick": 1,
+ "btnLoad_OnClick": 1,
+ "btnIconLoad": 1,
+ "btnResume_OnClick": 1,
+ "sldAudio_OnChange": 1,
+ "sldVoice_OnChange": 1,
+ "btnVoice_OnClick": 1,
+ "eSpeechVoiceOnly": 1,
+ "eSpeechTextOnly": 1,
+ "sldGamma_OnChange": 1,
+ "btnDefault_OnClick": 1,
+ "//END": 1,
+ "dialog_request": 1,
+ "param": 1,
+ "sldSpeed_OnChange": 1,
+ "btnRestart_OnClick": 1,
+ "btnRestartYes_OnClick": 1,
+ "btnRestartNo_OnClick": 1,
+ "btnCancelSave_OnClick": 1,
+ "btnSaveGame_OnClick": 2,
+ "gameSlotToSaveInto": 3,
+ "+": 7,
+ "i": 5,
+ "while": 1,
+ "<": 1,
+ "lstSaveGamesList.SaveGameSlots": 2,
+ "SaveGameSlot": 1,
+ "btnCancelRestore_OnClick": 1,
+ "btnRestoreGame_OnClick": 1,
+ "lstRestoreGamesList.SelectedIndex": 2,
+ "RestoreGameSlot": 1,
+ "lstRestoreGamesList.SaveGameSlots": 1,
+ "lstSaveGamesList_OnSelectionCh": 1,
+ "lstSaveGamesList.SelectedIndex": 3,
+ "txtNewSaveName_OnActivate": 1,
+ "control": 2,
+ "btnDeleteSave_OnClick": 1,
+ "DeleteSaveSlot": 1,
+ "//****************************************************************************************************": 8,
+ "#define": 2,
+ "DISTANCE": 25,
+ "distance": 1,
+ "walks": 1,
+ "in": 1,
+ "Tapping": 2,
+ "before": 1,
+ "he": 1,
+ "stops": 1,
+ "enum": 2,
+ "KeyboardMovement_Directions": 4,
+ "eKeyboardMovement_Stop": 9,
+ "eKeyboardMovement_DownLeft": 5,
+ "eKeyboardMovement_Down": 5,
+ "eKeyboardMovement_DownRight": 5,
+ "eKeyboardMovement_Left": 5,
+ "eKeyboardMovement_Right": 5,
+ "eKeyboardMovement_UpLeft": 5,
+ "eKeyboardMovement_Up": 5,
+ "eKeyboardMovement_UpRight": 5,
+ "KeyboardMovement_KeyDown": 5,
+ "down": 9,
+ "KeyboardMovement_KeyLeft": 5,
+ "left": 4,
+ "KeyboardMovement_KeyRight": 5,
+ "right": 5,
+ "KeyboardMovement_KeyUp": 5,
+ "up": 4,
+ "KeyboardMovement_KeyDownRight": 3,
+ "PgDn": 2,
+ "numpad": 8,
+ "KeyboardMovement_KeyUpRight": 3,
+ "PgUp": 2,
+ "KeyboardMovement_KeyDownLeft": 3,
+ "End": 2,
+ "KeyboardMovement_KeyUpLeft": 3,
+ "Home": 2,
+ "KeyboardMovement_KeyStop": 3,
+ "KeyboardMovement_Modes": 4,
+ "KeyboardMovement_Mode": 4,
+ "eKeyboardMovement_None": 2,
+ "stores": 2,
+ "current": 8,
+ "keyboard": 1,
+ "disabled": 5,
+ "by": 1,
+ "default": 1,
+ "KeyboardMovement_CurrentDirection": 7,
+ "walking": 1,
+ "direction": 22,
+ "of": 6,
+ "character": 11,
+ "static": 2,
+ "KeyboardMovement": 2,
+ "SetMode": 2,
+ "Pressing": 1,
+ "eKeyboardMovement_Pressing": 2,
+ "player.on": 2,
+ "game": 2,
+ "paused": 2,
+ "module": 2,
+ "or": 8,
+ "hidden": 2,
+ "quit": 2,
+ "newdirection": 43,
+ "declare": 4,
+ "variable": 2,
+ "storing": 4,
+ "new": 19,
+ "get": 2,
+ "IsKeyPressed": 17,
+ "&": 4,
+ "arrows": 4,
+ "numeric": 2,
+ "pad": 2,
+ "held": 4,
+ "Down": 2,
+ "Right": 2,
+ "none": 1,
+ "above": 2,
+ "it": 1,
+ "stop": 7,
+ "regardless": 1,
+ "whether": 1,
+ "some": 1,
+ "are": 1,
+ "different": 2,
+ "from": 2,
+ "player.StopMoving": 3,
+ "Stop": 4,
+ "command": 4,
+ "movement": 2,
+ "NOT": 2,
+ "dx": 20,
+ "dy": 20,
+ "variables": 2,
+ "walk": 4,
+ "coordinates": 4,
+ "player.WalkStraight": 2,
+ "player.x": 2,
+ "player.y": 2,
+ "eNoBlock": 2,
+ "update": 3,
+ "key": 2,
"same": 1,
- "as": 1,
- "float/double": 1,
- "containing": 1,
- "to": 1,
- "truncate": 1,
- "result": 3,
- "posInd": 3,
- "where": 1,
- "gt": 2,
- "nposInd": 2,
- "L": 1,
- "example": 1
+ "on_event": 1,
+ "EventType": 1,
+ "event": 2,
+ "data": 1,
+ "eEventLeaveRoom": 1,
+ "KeyboardMovement_VERSION": 1,
+ "struct": 1,
+ "import": 1
},
- "OpenEdge ABL": {
- "DEFINE": 16,
- "INPUT": 11,
- "PARAMETER": 3,
- "objSendEmailAlg": 2,
- "AS": 21,
- "email.SendEmailSocket": 1,
- "NO": 13,
- "-": 73,
- "UNDO.": 12,
- "VARIABLE": 12,
- "vbuffer": 9,
- "MEMPTR": 2,
- "vstatus": 1,
- "LOGICAL": 1,
- "vState": 2,
- "INTEGER": 6,
- "ASSIGN": 2,
- "vstate": 1,
- "FUNCTION": 1,
- "getHostname": 1,
- "RETURNS": 1,
- "CHARACTER": 9,
- "(": 44,
- ")": 44,
- "cHostname": 1,
- "THROUGH": 1,
- "hostname": 1,
- "ECHO.": 1,
- "IMPORT": 1,
- "UNFORMATTED": 1,
- "cHostname.": 2,
- "CLOSE.": 1,
- "RETURN": 7,
- "END": 12,
- "FUNCTION.": 1,
- "PROCEDURE": 2,
- "newState": 2,
- "INTEGER.": 1,
- "pstring": 4,
- "CHARACTER.": 1,
- "newState.": 1,
- "IF": 2,
- "THEN": 2,
- "RETURN.": 1,
- "SET": 5,
- "SIZE": 5,
- "LENGTH": 3,
- "+": 21,
- "PUT": 1,
- "STRING": 7,
- "pstring.": 1,
- "SELF": 4,
- "WRITE": 1,
- ".": 14,
- "PROCEDURE.": 2,
- "ReadSocketResponse": 1,
- "vlength": 5,
- "str": 3,
- "v": 1,
- "MESSAGE": 2,
- "GET": 3,
- "BYTES": 2,
- "AVAILABLE": 2,
- "VIEW": 1,
- "ALERT": 1,
- "BOX.": 1,
- "DO": 2,
- "READ": 1,
- "handleResponse": 1,
- "END.": 2,
- "USING": 3,
- "Progress.Lang.*.": 3,
- "CLASS": 2,
- "email.Email": 2,
- "USE": 2,
- "WIDGET": 2,
- "POOL": 2,
- "&": 3,
- "SCOPED": 1,
- "QUOTES": 1,
- "@#": 1,
- "%": 2,
- "*": 2,
- "._MIME_BOUNDARY_.": 1,
- "#@": 1,
- "WIN": 1,
- "From": 4,
- "To": 8,
- "CC": 2,
- "BCC": 2,
- "Personal": 1,
- "Private": 1,
- "Company": 2,
- "confidential": 2,
- "normal": 1,
- "urgent": 2,
- "non": 1,
- "Cannot": 3,
- "locate": 3,
- "file": 6,
- "in": 3,
- "the": 3,
- "filesystem": 3,
- "R": 3,
- "File": 3,
- "exists": 3,
- "but": 3,
- "is": 3,
- "not": 3,
- "readable": 3,
- "Error": 3,
- "copying": 3,
- "from": 3,
- "<\">": 8,
- "ttSenders": 2,
- "cEmailAddress": 8,
- "n": 13,
- "ttToRecipients": 1,
- "Reply": 3,
- "ttReplyToRecipients": 1,
- "Cc": 2,
- "ttCCRecipients": 1,
- "Bcc": 2,
- "ttBCCRecipients": 1,
- "Return": 1,
- "Receipt": 1,
- "ttDeliveryReceiptRecipients": 1,
- "Disposition": 3,
- "Notification": 1,
- "ttReadReceiptRecipients": 1,
- "Subject": 2,
- "Importance": 3,
- "H": 1,
- "High": 1,
- "L": 1,
- "Low": 1,
- "Sensitivity": 2,
- "Priority": 2,
- "Date": 4,
- "By": 1,
- "Expiry": 2,
- "Mime": 1,
- "Version": 1,
- "Content": 10,
- "Type": 4,
- "multipart/mixed": 1,
- ";": 5,
- "boundary": 1,
- "text/plain": 2,
- "charset": 2,
- "Transfer": 4,
- "Encoding": 4,
- "base64": 2,
- "bit": 2,
- "application/octet": 1,
- "stream": 1,
- "attachment": 2,
- "filename": 2,
- "ttAttachments.cFileName": 2,
- "cNewLine.": 1,
- "lcReturnData.": 1,
- "METHOD.": 6,
- "METHOD": 6,
- "PUBLIC": 6,
- "send": 1,
- "objSendEmailAlgorithm": 1,
- "sendEmail": 2,
- "THIS": 1,
- "OBJECT": 2,
- "CLASS.": 2,
- "INTERFACE": 1,
- "email.SendEmailAlgorithm": 1,
- "ipobjEmail": 1,
- "INTERFACE.": 1,
- "email.Util": 1,
- "FINAL": 1,
- "PRIVATE": 1,
- "STATIC": 5,
- "cMonthMap": 2,
- "EXTENT": 1,
- "INITIAL": 1,
- "[": 2,
- "]": 2,
- "ABLDateTimeToEmail": 3,
- "ipdttzDateTime": 6,
- "DATETIME": 3,
- "TZ": 2,
- "DAY": 1,
- "MONTH": 1,
- "YEAR": 1,
- "TRUNCATE": 2,
- "MTIME": 1,
- "/": 2,
- "ABLTimeZoneToString": 2,
- "TIMEZONE": 1,
- "ipdtDateTime": 2,
- "ipiTimeZone": 3,
- "ABSOLUTE": 1,
- "MODULO": 1,
- "LONGCHAR": 4,
- "ConvertDataToBase64": 1,
- "iplcNonEncodedData": 2,
- "lcPreBase64Data": 4,
- "lcPostBase64Data": 3,
- "mptrPostBase64Data": 3,
- "i": 3,
- "COPY": 1,
- "LOB": 1,
- "FROM": 1,
- "TO": 2,
- "mptrPostBase64Data.": 1,
- "BASE64": 1,
- "ENCODE": 1,
- "BY": 1,
- "SUBSTRING": 1,
- "CHR": 2,
- "lcPostBase64Data.": 1
- },
- "Latte": {
- "{": 54,
- "**": 1,
- "*": 4,
- "@param": 3,
- "string": 2,
- "basePath": 1,
- "web": 1,
- "base": 1,
- "path": 1,
- "robots": 2,
- "tell": 1,
+ "APL": {
+ "You": 1,
+ "can": 2,
+ "try": 1,
+ "this": 2,
+ "at": 1,
+ "http": 1,
+ "//tryapl.org/": 1,
+ "I": 2,
+ "not": 1,
+ "explain": 1,
"how": 1,
- "to": 2,
- "index": 1,
- "the": 1,
- "content": 1,
- "of": 3,
- "a": 4,
- "page": 1,
- "(": 18,
- "optional": 1,
- ")": 18,
- "array": 1,
- "flashes": 1,
- "flash": 3,
- "messages": 1,
- "}": 54,
+ "much": 1,
+ "suddenly": 1,
+ "love": 1,
+ "crypto": 1,
+ "-": 1,
+ "language": 1,
+ "Starts": 2,
+ "Middles": 2,
+ "Qualifiers": 2,
+ "Finishes": 2,
+ "rf": 2,
+ "{": 3,
+ "(": 1,
+ ")": 1,
+ "}": 3,
+ "erf": 2,
+ "deepak": 2
+ },
+ "ATS": {
+ "//": 211,
+ "#include": 16,
+ "staload": 25,
+ "local": 10,
+ "in": 48,
+ "end": 73,
+ "of": 59,
+ "[": 49,
+ "]": 48,
+ "%": 7,
+ "{": 142,
+ "#": 7,
+ "#define": 4,
+ "NPHIL": 6,
+ "}": 141,
+ "typedef": 10,
+ "nphil": 13,
+ "natLt": 2,
+ "(": 562,
+ ")": 567,
+ "fun": 56,
+ "phil_left": 3,
+ "n": 51,
+ "phil_right": 3,
+ "phil_loop": 10,
+ "void": 14,
+ "cleaner_loop": 6,
+ "absvtype": 2,
+ "fork_vtype": 3,
+ "ptr": 2,
+ "vtypedef": 2,
+ "fork": 16,
+ "fork_get_num": 4,
+ "phil_dine": 3,
+ "lf": 5,
+ "rf": 5,
+ "phil_think": 3,
+ "cleaner_wash": 3,
+ "f": 22,
+ "cleaner_return": 4,
+ "fork_changet": 5,
+ "channel": 11,
+ "forktray_changet": 4,
+ "_": 25,
+ "sortdef": 2,
+ "ftype": 13,
+ "type": 30,
+ "-": 49,
+ "infixr": 2,
+ "a": 200,
+ "b": 26,
+ "": 2,
+ "functor": 12,
+ "F": 34,
+ "list0": 9,
+ "extern": 13,
+ "val": 95,
+ "functor_list0": 7,
+ "implement": 55,
+ "lam": 20,
+ "xs": 82,
+ "list0_map": 2,
+ "": 14,
+ "": 3,
+ "option0": 3,
+ "functor_option0": 2,
+ "opt": 6,
+ "option0_map": 1,
+ "functor_homres": 2,
+ "c": 3,
+ "r": 25,
+ "x": 48,
+ "Yoneda_phi": 3,
+ "Yoneda_psi": 3,
+ "ftor": 9,
+ "fx": 8,
+ "m": 4,
+ "mf": 4,
+ "natrans": 3,
+ "G": 2,
+ "Yoneda_phi_nat": 2,
+ "Yoneda_psi_nat": 2,
+ "*": 2,
+ "datatype": 4,
+ "bool": 27,
+ "True": 7,
+ "|": 22,
+ "False": 8,
+ "boxed": 2,
+ "boolean": 2,
+ "bool2string": 4,
+ "string": 2,
+ "case": 9,
+ "+": 20,
+ "fprint_val": 2,
+ "": 2,
+ "out": 8,
+ "fprint": 3,
+ "myboolist0": 9,
+ "list_t": 1,
+ "g0ofg1_list": 1,
+ "Yoneda_bool_list0": 3,
+ "myboolist1": 2,
+ "fprintln": 3,
+ "stdout_ref": 4,
+ "main0": 3,
+ "ATS_PACKNAME": 1,
+ "ATS_STALOADFLAG": 1,
+ "no": 2,
+ "static": 1,
+ "loading": 1,
+ "at": 2,
+ "run": 1,
+ "time": 1,
+ "castfn": 1,
+ "linset2list": 1,
+ "t0p": 31,
+ "set": 34,
+ "INV": 24,
+ "<": 14,
+ "List0_vt": 5,
+ "set_vtype": 3,
+ "t@ype": 2,
+ "compare_elt_elt": 4,
+ "x1": 1,
+ "x2": 1,
+ "int": 2,
+ "linset_nil": 2,
+ "linset_make_nil": 2,
+ "linset_sing": 2,
+ "": 16,
+ "linset_make_sing": 2,
+ "linset_make_list": 1,
+ "List": 1,
+ "linset_is_nil": 2,
+ "linset_isnot_nil": 2,
+ "linset_size": 2,
+ "size_t": 1,
+ "linset_is_member": 3,
+ "x0": 22,
+ "linset_isnot_member": 1,
+ "linset_copy": 2,
+ "linset_free": 2,
+ "linset_insert": 3,
+ "&": 17,
+ "linset_takeout": 1,
+ "res": 9,
+ "endfun": 1,
+ "linset_takeout_opt": 1,
+ "Option_vt": 4,
+ "linset_remove": 2,
+ "linset_choose": 3,
+ "linset_choose_opt": 1,
+ "linset_takeoutmax": 1,
+ "linset_takeoutmax_opt": 1,
+ "linset_takeoutmin": 1,
+ "linset_takeoutmin_opt": 1,
+ "fprint_linset": 3,
+ "sep": 1,
+ "FILEref": 2,
+ "overload": 1,
+ "with": 1,
+ "env": 11,
+ "vt0p": 2,
+ "linset_foreach": 3,
+ "fwork": 3,
+ "linset_foreach_env": 3,
+ "linset_listize": 2,
+ "linset_listize1": 2,
"": 1,
"html": 1,
+ "PUBLIC": 1,
+ "W3C": 1,
+ "DTD": 2,
+ "XHTML": 1,
+ "1": 3,
+ "EN": 1,
+ "http": 2,
+ "www": 1,
+ "w3": 1,
+ "org": 1,
+ "TR": 1,
+ "xhtml11": 2,
+ "dtd": 1,
"": 1,
+ "xmlns=": 1,
"": 1,
- "": 6,
- "charset=": 1,
- "name=": 4,
- "content=": 5,
- "n": 8,
- "ifset=": 1,
- "http": 1,
+ "": 1,
"equiv=": 1,
+ "content=": 1,
"": 1,
- "ifset": 1,
- "title": 4,
- "/ifset": 1,
- "Translation": 1,
- "report": 1,
+ "EFFECTIVATS": 1,
+ "DiningPhil2": 1,
"": 1,
- "": 2,
- "rel=": 2,
- "media=": 1,
- "href=": 4,
- "": 3,
- "block": 3,
- "#head": 1,
- "/block": 3,
+ "#patscode_style": 1,
"": 1,
"": 1,
- "class=": 12,
- "document.documentElement.className": 1,
- "+": 3,
- "#navbar": 1,
- "include": 3,
- "_navbar.latte": 1,
- "": 6,
- "inner": 1,
- "foreach=": 3,
- "_flash.latte": 1,
- "
": 7,
- "#content": 1,
- "": 1,
- "src=": 1,
- "#scripts": 1,
+ "": 1,
+ "Effective": 1,
+ "ATS": 2,
+ "Dining": 2,
+ "Philosophers": 2,
+ "
": 1,
+ "In": 2,
+ "this": 2,
+ "article": 2,
+ "I": 8,
+ "present": 1,
+ "an": 6,
+ "implementation": 3,
+ "slight": 1,
+ "variant": 1,
+ "the": 30,
+ "famous": 1,
+ "problem": 1,
+ "by": 4,
+ "Dijkstra": 1,
+ "that": 8,
+ "makes": 1,
+ "simple": 1,
+ "but": 1,
+ "convincing": 1,
+ "use": 1,
+ "linear": 2,
+ "types.": 1,
+ "": 8,
+ "The": 8,
+ "Original": 2,
+ "Problem": 2,
+ "
": 8,
+ "There": 3,
+ "are": 7,
+ "five": 1,
+ "philosophers": 1,
+ "sitting": 1,
+ "around": 1,
+ "table": 3,
+ "and": 10,
+ "there": 3,
+ "also": 3,
+ "forks": 7,
+ "placed": 1,
+ "on": 8,
+ "such": 1,
+ "each": 2,
+ "is": 26,
+ "located": 2,
+ "between": 1,
+ "left": 3,
+ "hand": 6,
+ "philosopher": 5,
+ "right": 3,
+ "another": 1,
+ "philosopher.": 1,
+ "Each": 4,
+ "does": 1,
+ "following": 6,
+ "routine": 1,
+ "repeatedly": 1,
+ "thinking": 1,
+ "dining.": 1,
+ "order": 1,
+ "to": 16,
+ "dine": 1,
+ "needs": 2,
+ "first": 2,
+ "acquire": 1,
+ "two": 3,
+ "one": 3,
+ "his": 4,
+ "side": 2,
+ "other": 2,
+ "side.": 2,
+ "After": 2,
+ "finishing": 1,
+ "dining": 1,
+ "puts": 2,
+ "acquired": 1,
+ "onto": 1,
+ "A": 6,
+ "Variant": 1,
+ "twist": 1,
+ "added": 1,
+ "original": 1,
+ "version": 1,
+ "": 1,
+ "used": 1,
+ "it": 2,
+ "becomes": 1,
+ "be": 9,
+ "put": 1,
+ "tray": 2,
+ "for": 15,
+ "dirty": 2,
+ "forks.": 1,
+ "cleaner": 2,
+ "who": 1,
+ "cleans": 1,
+ "then": 11,
+ "them": 2,
+ "back": 1,
+ "table.": 1,
+ "Channels": 1,
+ "Communication": 1,
+ "just": 1,
+ "shared": 1,
+ "queue": 1,
+ "fixed": 1,
+ "capacity.": 1,
+ "functions": 1,
+ "inserting": 1,
+ "element": 5,
+ "into": 3,
+ "taking": 1,
+ "given": 4,
+ "
": 7,
+ "class=": 6,
+ "#pats2xhtml_sats": 3,
+ "
": 7,
+ "If": 2,
+ "channel_insert": 5,
+ "called": 2,
+ "full": 4,
+ "caller": 2,
+ "blocked": 3,
+ "until": 2,
+ "taken": 1,
+ "channel.": 2,
+ "channel_takeout": 4,
+ "empty": 1,
+ "inserted": 1,
+ "Channel": 2,
+ "Fork": 3,
+ "Forks": 1,
+ "resources": 1,
+ "type.": 1,
+ "initially": 1,
+ "stored": 2,
+ "which": 2,
+ "can": 4,
+ "obtained": 2,
+ "calling": 2,
+ "function": 3,
+ "where": 6,
+ "defined": 1,
+ "natural": 1,
+ "numbers": 1,
+ "less": 1,
+ "than": 1,
+ ".": 14,
+ "channels": 4,
+ "storing": 3,
+ "chosen": 3,
+ "capacity": 3,
+ "reason": 1,
+ "store": 1,
+ "most": 1,
+ "guarantee": 1,
+ "these": 1,
+ "never": 2,
+ "so": 2,
+ "attempt": 1,
+ "made": 1,
+ "send": 1,
+ "signals": 1,
+ "awake": 1,
+ "callers": 1,
+ "supposedly": 1,
+ "being": 2,
+ "due": 1,
+ "Tray": 1,
+ "instead": 1,
+ "become": 1,
+ "as": 4,
+ "only": 1,
+ "total": 1,
+ "Philosopher": 1,
+ "Loop": 2,
+ "implemented": 2,
+ "loop": 2,
+ "#pats2xhtml_dats": 3,
+ "It": 2,
+ "should": 3,
+ "straighforward": 2,
+ "follow": 2,
+ "code": 6,
+ "Cleaner": 1,
+ "finds": 1,
+ "number": 2,
+ "uses": 1,
+ "locate": 1,
+ "fork.": 1,
+ "Its": 1,
+ "actual": 1,
+ "follows": 1,
+ "now": 1,
+ "Testing": 1,
+ "entire": 1,
+ "files": 1,
+ "DiningPhil2.sats": 1,
+ "DiningPhil2.dats": 1,
+ "DiningPhil2_fork.dats": 1,
+ "DiningPhil2_thread.dats": 1,
+ "Makefile": 1,
+ "available": 1,
+ "compiling": 1,
+ "source": 1,
+ "excutable": 1,
+ "testing.": 1,
+ "One": 1,
+ "able": 1,
+ "encounter": 1,
+ "deadlock": 2,
+ "after": 1,
+ "running": 1,
+ "simulation": 1,
+ "while.": 1,
+ "
": 1,
+ "size=": 1,
+ "This": 1,
+ "written": 1,
+ "href=": 1,
+ "Hongwei": 1,
+ "Xi": 1,
+ "": 1,
"": 1,
"": 1,
- "var": 3,
- "define": 1,
- "author": 7,
- "": 2,
- "Author": 2,
- "authorId": 2,
- "-": 71,
- "id": 3,
- "black": 2,
- "avatar": 2,
- "img": 2,
- "rounded": 2,
- "class": 2,
- "tooltip": 4,
- "Total": 1,
- "time": 4,
- "shortName": 1,
- "translated": 4,
- "on": 5,
- "all": 1,
- "videos.": 1,
- "amaraCallbackLink": 1,
- "row": 2,
- "col": 3,
- "md": 2,
- "outOf": 5,
- "done": 7,
- "threshold": 4,
- "alert": 2,
- "warning": 2,
- "<=>": 2,
- "Seems": 1,
- "complete": 1,
- "|": 6,
- "out": 1,
- "
": 2,
- "elseif": 2,
- "<": 1,
- "p": 1,
+ "main": 1,
+ "fprint_filsub": 1,
+ "UN": 3,
+ "reuse": 2,
+ "assume": 2,
+ "elt": 2,
+ "list_vt_nil": 16,
+ "list_vt_cons": 17,
+ "list_vt_is_nil": 1,
+ "list_vt_is_cons": 1,
+ "let": 34,
+ "list_vt_length": 1,
+ "i2sz": 4,
+ "aux": 4,
+ "nat": 4,
+ "": 3,
+ "list_vt": 7,
+ "sgn": 9,
"if": 7,
- "Although": 1,
- "is": 1,
- "there": 1,
- "are": 1,
- "no": 1,
- "English": 1,
- "subtitles": 1,
- "for": 1,
- "comparison.": 1,
- "/if": 8,
- "/cache": 1,
- "editor": 1,
- "ksid": 2,
- "new": 5,
- "video": 2,
- "siteId": 1,
- "Video": 1,
- "khanovaskola.cz": 1,
- "revision": 18,
- "rev": 4,
- "this": 3,
- "older": 1,
- "#": 2,
- "else": 2,
- "newer": 1,
- "": 1,
- "": 1,
- "diffs": 3,
- "noescape": 2,
- "
": 1,
- "description": 1,
- "text": 4,
- "as": 2,
- "line": 3,
- "context": 1,
- "splitter": 1,
- "template": 1,
- "bottom": 1,
- "Expand": 1,
- "fa": 16,
- "sort": 1,
- "ellipsis": 1,
- "h": 1,
- "success": 1,
- "amaraEdit": 1,
- "amaraId": 2,
- "editButton": 1,
- "btn": 17,
- "default": 6,
- "edit": 1,
- "khanAcademy": 1,
- "kaButton": 1,
- "link": 1,
- "info": 1,
- "group": 4,
- "approve": 1,
- "thumbs": 3,
- "up": 1,
- "markIncomplete": 2,
- "down": 2,
- "redirectToAdd": 1,
- "plus": 1,
- "square": 1,
- "table": 2,
- "condensed": 1,
- "revisions": 1,
- "revId": 1,
- "secondary": 2,
- "Percent": 1,
- "lines": 1,
- "&": 1,
- "thinsp": 1,
- "%": 1,
- "": 3,
- "": 3,
- "": 2,
- "incomplete": 3,
- "approved": 2,
- "": 1,
- "user": 1,
- "loggedIn": 1,
- "&&": 1,
- "comments": 2,
- "count": 1,
- "": 2,
- "": 2,
- "colspan=": 1,
- "": 1,
- "comment": 4,
- "left": 1,
- "createdAt": 1,
- "timeAgo": 1,
- "noborder": 1,
- "input": 3,
- "form": 1,
- "control": 1,
- "Comment": 1,
- "only": 1,
- "visible": 1,
- "other": 1,
- "editors": 1,
- "save": 1,
- "share": 1,
- "": 1,
- "": 1,
- "/form": 1,
- "/foreach": 1,
- " ": 1
+ "false": 6,
+ "else": 7,
+ "true": 5,
+ "list_vt_copy": 2,
+ "list_vt_free": 1,
+ "mynode_cons": 4,
+ "nx": 22,
+ "mynode1": 6,
+ "xs1": 15,
+ "UN.castvwtp0": 8,
+ "List1_vt": 5,
+ "@list_vt_cons": 5,
+ "xs2": 3,
+ "prval": 20,
+ "UN.cast2void": 5,
+ ";": 4,
+ "fold@": 8,
+ "ins": 3,
+ "tail": 1,
+ "recursive": 1,
+ "n1": 4,
+ "<=>": 1,
+ "mynode_make_elt": 4,
+ "ans": 2,
+ "found": 1,
+ "effmask_all": 3,
+ "free@": 1,
+ "xs1_": 3,
+ "rem": 1,
+ "opt_some": 1,
+ "opt_none": 1,
+ "list_vt_foreach": 1,
+ "": 3,
+ "list_vt_foreach_env": 1,
+ "mynode_null": 5,
+ "mynode": 3,
+ "null": 1,
+ "the_null_ptr": 1,
+ "mynode_free": 1,
+ "nx2": 4,
+ "mynode_get_elt": 1,
+ "nx1": 7,
+ "UN.castvwtp1": 2,
+ "mynode_set_elt": 1,
+ "l": 3,
+ "__assert": 2,
+ "praxi": 1,
+ "mynode_getfree_elt": 1,
+ "linset_takeout_ngc": 2,
+ "takeout": 3,
+ "mynode0": 1,
+ "pf_x": 6,
+ "view@x": 3,
+ "pf_xs1": 6,
+ "view@xs1": 3,
+ "linset_takeoutmax_ngc": 2,
+ "xs_": 4,
+ "@list_vt_nil": 1,
+ "linset_takeoutmin_ngc": 2,
+ "unsnoc": 4,
+ "pos": 1,
+ "fold@xs": 1,
+ "datavtype": 1,
+ "FORK": 3,
+ "the_forkarray": 2,
+ "t": 1,
+ "array_tabulate": 1,
+ "fopr": 1,
+ "": 2,
+ "ch": 7,
+ "UN.cast": 2,
+ "channel_create_exn": 2,
+ "": 2,
+ "arrayref_tabulate": 1,
+ "the_forktray": 2,
+ "CoYoneda": 7,
+ "CoYoneda_phi": 2,
+ "CoYoneda_psi": 3,
+ "int0": 4,
+ "int2bool": 2,
+ "i": 6,
+ "myintlist0": 2,
+ "g0ofg1": 1,
+ "list": 1,
+ "nmod": 1,
+ "randsleep": 6,
+ "intGte": 1,
+ "ignoret": 2,
+ "sleep": 2,
+ "uInt": 1,
+ "rand": 1,
+ "mod": 1,
+ "println": 9,
+ "nl": 2,
+ "nr": 2,
+ "ch_lfork": 2,
+ "ch_rfork": 2,
+ "HX": 1,
+ "try": 1,
+ "actively": 1,
+ "induce": 1,
+ "ch_forktray": 3,
+ "f0": 3,
+ "dynload": 3,
+ "mythread_create_cloptr": 6,
+ "llam": 6,
+ "while": 1
},
- "Racket": {
- ";": 3,
- "Clean": 1,
- "simple": 1,
- "and": 1,
- "efficient": 1,
- "code": 1,
- "-": 94,
- "that": 2,
- "s": 1,
- "the": 3,
- "power": 1,
- "of": 4,
- "Racket": 2,
- "http": 1,
- "//racket": 1,
- "lang.org/": 1,
- "(": 23,
- "define": 1,
- "bottles": 4,
- "n": 8,
- "more": 2,
- ")": 23,
- "printf": 2,
- "case": 1,
- "[": 16,
- "]": 16,
- "else": 1,
- "if": 1,
- "for": 2,
- "in": 3,
- "range": 1,
- "sub1": 1,
- "displayln": 2,
- "#lang": 1,
- "scribble/manual": 1,
- "@": 3,
- "require": 1,
- "scribble/bnf": 1,
- "@title": 1,
- "{": 2,
- "Scribble": 3,
- "The": 1,
- "Documentation": 1,
- "Tool": 1,
- "}": 2,
- "@author": 1,
- "is": 3,
- "a": 1,
- "collection": 1,
- "tools": 1,
- "creating": 1,
- "prose": 2,
- "documents": 1,
- "papers": 1,
- "books": 1,
- "library": 1,
- "documentation": 1,
- "etc.": 1,
- "HTML": 1,
- "or": 2,
- "PDF": 1,
- "via": 1,
- "Latex": 1,
- "form.": 1,
- "More": 1,
- "generally": 1,
- "helps": 1,
- "you": 1,
- "write": 1,
- "programs": 1,
- "are": 1,
- "rich": 1,
- "textual": 1,
- "content": 2,
- "whether": 1,
- "to": 2,
- "be": 2,
- "typeset": 1,
- "any": 1,
- "other": 1,
- "form": 1,
- "text": 1,
- "generated": 1,
- "programmatically.": 1,
- "This": 1,
- "document": 1,
- "itself": 1,
- "written": 1,
- "using": 1,
- "Scribble.": 1,
- "You": 1,
- "can": 1,
- "see": 1,
- "its": 1,
- "source": 1,
- "at": 1,
- "let": 1,
- "url": 3,
- "link": 1,
- "starting": 1,
- "with": 1,
- "@filepath": 1,
- "scribble.scrbl": 1,
- "file.": 1,
- "@table": 1,
- "contents": 1,
- "@include": 8,
- "section": 9,
- "@index": 1
- },
- "Assembly": {
- ";": 20,
- "flat": 4,
- "assembler": 6,
- "interface": 2,
- "for": 2,
- "Win32": 2,
- "Copyright": 4,
- "(": 13,
- "c": 4,
- ")": 6,
- "-": 87,
- "Tomasz": 4,
- "Grysztar.": 4,
- "All": 4,
- "rights": 4,
- "reserved.": 4,
- "format": 1,
- "PE": 1,
- "console": 1,
- "section": 4,
- "code": 1,
- "readable": 4,
- "executable": 1,
- "start": 1,
- "mov": 1253,
- "[": 2026,
- "con_handle": 8,
- "]": 2026,
- "STD_OUTPUT_HANDLE": 2,
- "esi": 619,
- "_logo": 2,
- "call": 845,
- "display_string": 19,
- "get_params": 2,
- "jc": 28,
- "information": 2,
- "init_memory": 2,
- "_memory_prefix": 2,
- "eax": 510,
- "memory_end": 7,
- "sub": 64,
- "memory_start": 4,
- "add": 76,
- "additional_memory_end": 9,
- "additional_memory": 6,
- "shr": 30,
- "display_number": 8,
- "_memory_suffix": 2,
- "GetTickCount": 3,
- "start_time": 3,
- "preprocessor": 1,
- "parser": 1,
- "formatter": 1,
- "display_user_messages": 3,
- "movzx": 13,
- "current_pass": 16,
- "inc": 87,
- "_passes_suffix": 2,
- "xor": 52,
- "edx": 219,
- "ebx": 336,
- "div": 8,
- "or": 194,
- "jz": 107,
- "display_bytes_count": 2,
- "push": 150,
- "dl": 58,
- "display_character": 6,
- "pop": 99,
- "_seconds_suffix": 2,
- "written_size": 1,
- "_bytes_suffix": 2,
- "al": 1174,
- "jmp": 450,
- "exit_program": 5,
- "_usage": 2,
- "input_file": 4,
- "output_file": 3,
- "symbols_file": 4,
- "memory_setting": 4,
- "passes_limit": 3,
- "GetCommandLine": 2,
- "edi": 250,
- "params": 2,
- "find_command_start": 2,
- "lodsb": 12,
- "cmp": 1088,
- "h": 376,
- "je": 485,
- "skip_quoted_name": 3,
- "skip_name": 2,
- "find_param": 7,
- "all_params": 5,
- "option_param": 2,
- "Dh": 19,
- "jne": 485,
- "get_output_file": 2,
- "process_param": 3,
- "bad_params": 11,
- "string_param": 3,
- "copy_param": 2,
- "stosb": 6,
- "param_end": 6,
- "string_param_end": 2,
- "memory_option": 4,
- "passes_option": 4,
- "symbols_option": 3,
- "stc": 9,
- "ret": 70,
- "get_option_value": 3,
- "get_option_digit": 2,
- "option_value_ok": 4,
- "invalid_option_value": 5,
- "ja": 28,
- "imul": 1,
- "jo": 2,
- "dec": 30,
- "clc": 11,
- "shl": 17,
- "jae": 34,
- "dx": 27,
- "find_symbols_file_name": 2,
- "include": 15,
- "data": 3,
- "writeable": 2,
- "_copyright": 1,
- "db": 35,
- "Ah": 25,
- "VERSION_STRING": 1,
- "align": 1,
- "dd": 22,
- "bytes_count": 8,
- "displayed_count": 4,
- "character": 3,
- "last_displayed": 5,
- "rb": 4,
- "options": 1,
- "buffer": 14,
- "stack": 1,
- "import": 1,
- "rva": 16,
- "kernel_name": 2,
- "kernel_table": 2,
- "ExitProcess": 2,
- "_ExitProcess": 2,
- "CreateFile": 3,
- "_CreateFileA": 2,
- "ReadFile": 2,
- "_ReadFile": 2,
- "WriteFile": 6,
- "_WriteFile": 2,
- "CloseHandle": 2,
- "_CloseHandle": 2,
- "SetFilePointer": 2,
- "_SetFilePointer": 2,
- "_GetCommandLineA": 2,
- "GetEnvironmentVariable": 2,
- "_GetEnvironmentVariable": 2,
- "GetStdHandle": 5,
- "_GetStdHandle": 2,
- "VirtualAlloc": 2,
- "_VirtualAlloc": 2,
- "VirtualFree": 2,
- "_VirtualFree": 2,
- "_GetTickCount": 2,
- "GetSystemTime": 2,
- "_GetSystemTime": 2,
- "GlobalMemoryStatus": 2,
- "_GlobalMemoryStatus": 2,
- "dw": 14,
- "fixups": 1,
- "discardable": 1,
- "CREATE_NEW": 1,
- "CREATE_ALWAYS": 2,
- "OPEN_EXISTING": 2,
- "OPEN_ALWAYS": 1,
- "TRUNCATE_EXISTING": 1,
- "FILE_SHARE_READ": 3,
- "FILE_SHARE_WRITE": 1,
- "FILE_SHARE_DELETE": 1,
- "GENERIC_READ": 2,
- "GENERIC_WRITE": 2,
- "STD_INPUT_HANDLE": 1,
- "FFFFFFF6h": 1,
- "FFFFFFF5h": 1,
- "STD_ERROR_HANDLE": 3,
- "FFFFFFF4h": 1,
- "MEM_COMMIT": 2,
- "MEM_RESERVE": 1,
- "MEM_DECOMMIT": 1,
- "MEM_RELEASE": 2,
- "MEM_FREE": 1,
- "MEM_PRIVATE": 1,
- "MEM_MAPPED": 1,
- "MEM_RESET": 1,
- "MEM_TOP_DOWN": 1,
- "PAGE_NOACCESS": 1,
- "PAGE_READONLY": 1,
- "PAGE_READWRITE": 2,
- "PAGE_WRITECOPY": 1,
- "PAGE_EXECUTE": 1,
- "PAGE_EXECUTE_READ": 1,
- "PAGE_EXECUTE_READWRITE": 1,
- "PAGE_EXECUTE_WRITECOPY": 1,
- "PAGE_GUARD": 1,
- "PAGE_NOCACHE": 1,
- "esp": 14,
- "and": 50,
- "not": 42,
- "FFFh": 3,
- "stack_limit": 2,
- "jnz": 125,
- "allocate_memory": 4,
- "dword": 87,
- "+": 232,
- "jl": 13,
- "large_memory": 3,
- "ecx": 153,
- "not_enough_memory": 2,
- "jb": 34,
- "out_of_memory": 19,
- "test": 95,
- "do_exit": 2,
- "get_environment_variable": 1,
- "jbe": 11,
- "buffer_for_variable_ok": 2,
+ "Agda": {
+ "module": 3,
+ "NatCat": 1,
+ "where": 2,
"open": 2,
- "file_error": 6,
- "create": 1,
- "write": 1,
- "read": 3,
- "ebp": 49,
- "close": 3,
- "lseek": 5,
- "repne": 1,
- "scasb": 1,
- "neg": 4,
- "bl": 124,
- "display_loop": 2,
- "display_digit": 3,
- "digit_ok": 2,
- "show_display_buffer": 2,
- "line_break_ok": 4,
- "make_line_break": 2,
- "ax": 87,
- "word": 79,
- "A0Dh": 2,
- "D0Ah": 1,
- "display_block": 4,
- "take_last_two_characters": 2,
- "block_displayed": 2,
- "ah": 229,
- "block_ok": 2,
- "fatal_error": 1,
- "error_prefix": 3,
- "error_suffix": 3,
- "FFh": 4,
- "assembler_error": 1,
- "current_line": 24,
- "get_error_lines": 2,
- "byte": 549,
- "get_next_error_line": 2,
- "display_error_line": 3,
- "find_definition_origin": 2,
- "line_number_start": 3,
- "FFFFFFFh": 2,
- "line_number_ok": 2,
- "line_data_start": 2,
- "line_data_displayed": 2,
- "lea": 8,
- "get_line_data": 2,
- "display_line_data": 5,
- "loop": 2,
- "cr_lf": 2,
- "make_timestamp": 1,
- "mul": 5,
- "months_correction": 2,
- "day_correction_ok": 4,
- "b": 30,
- "day_correction": 2,
- "adc": 9,
- "core": 2,
- "simple_instruction_except64": 1,
- "code_type": 106,
- "illegal_instruction": 48,
- "simple_instruction": 6,
- "stos": 107,
- "instruction_assembled": 138,
- "simple_instruction_only64": 1,
- "simple_instruction_16bit_except64": 1,
- "simple_instruction_16bit": 2,
- "size_prefix": 3,
- "simple_instruction_32bit_except64": 1,
- "simple_instruction_32bit": 6,
- "iret_instruction": 1,
- "simple_instruction_64bit": 2,
- "simple_extended_instruction_64bit": 1,
- "simple_extended_instruction": 1,
- "Fh": 73,
- "prefix_instruction": 2,
- "prefixed_instruction": 11,
- "continue_line": 8,
- "segment_prefix": 2,
- "segment_register": 7,
- "store_segment_prefix": 1,
- "int_instruction": 1,
- "lods": 366,
- "get_size_operator": 137,
- "invalid_operand_size": 131,
- "invalid_operand": 239,
- "get_byte_value": 23,
- "jns": 1,
- "int_imm_ok": 2,
- "recoverable_overflow": 4,
- "CDh": 1,
- "aa_instruction": 1,
- "aa_store": 2,
- "xchg": 31,
- "operand_size": 121,
- "basic_instruction": 1,
- "base_code": 195,
- "basic_reg": 2,
- "basic_mem": 1,
- "get_address": 62,
- "basic_mem_imm": 2,
- "basic_mem_reg": 1,
- "convert_register": 60,
- "postbyte_register": 137,
- "instruction_ready": 72,
- "operand_autodetect": 47,
- "store_instruction": 3,
- "basic_mem_imm_nosize": 2,
- "basic_mem_imm_8bit": 2,
- "basic_mem_imm_16bit": 2,
- "basic_mem_imm_32bit": 2,
- "basic_mem_imm_64bit": 1,
- "size_declared": 17,
- "long_immediate_not_encodable": 14,
- "operand_64bit": 18,
- "get_simm32": 10,
- "value_type": 42,
- "basic_mem_imm_32bit_ok": 2,
- "recoverable_unknown_size": 19,
- "value": 38,
- "store_instruction_with_imm8": 11,
- "operand_16bit": 25,
- "get_word_value": 19,
- "basic_mem_imm_16bit_store": 3,
- "basic_mem_simm_8bit": 5,
- "store_instruction_with_imm16": 4,
- "operand_32bit": 27,
- "get_dword_value": 13,
- "basic_mem_imm_32bit_store": 3,
- "store_instruction_with_imm32": 4,
- "get_qword_value": 5,
- "cdq": 11,
- "value_out_of_range": 10,
- "get_simm32_ok": 2,
- "basic_reg_reg": 2,
- "basic_reg_imm": 2,
- "basic_reg_mem": 1,
- "basic_reg_mem_8bit": 2,
- "nomem_instruction_ready": 53,
- "store_nomem_instruction": 19,
- "basic_reg_imm_8bit": 2,
- "basic_reg_imm_16bit": 2,
- "basic_reg_imm_32bit": 2,
- "basic_reg_imm_64bit": 1,
- "basic_reg_imm_32bit_ok": 2,
- "basic_al_imm": 2,
- "basic_reg_imm_16bit_store": 3,
- "basic_reg_simm_8bit": 5,
- "basic_ax_imm": 2,
- "basic_store_imm_16bit": 2,
- "mark_relocation": 26,
- "store_instruction_code": 26,
- "basic_reg_imm_32bit_store": 3,
- "basic_eax_imm": 2,
- "basic_store_imm_32bit": 2,
- "error_line": 16,
- "ignore_unknown_size": 2,
- "error": 7,
- "operand_size_not_specified": 1,
- "single_operand_instruction": 1,
- "F6h": 4,
- "single_reg": 2,
- "single_mem": 1,
- "single_mem_8bit": 2,
- "single_mem_nosize": 2,
- "single_reg_8bit": 2,
- "mov_instruction": 1,
- "mov_reg": 2,
- "mov_mem": 1,
- "mov_mem_imm": 2,
- "mov_mem_reg": 1,
- "mov_mem_general_reg": 2,
- "mov_mem_sreg": 2,
- "mov_mem_reg_8bit": 2,
- "bh": 34,
- "mov_mem_ax": 2,
- "mov_mem_al": 1,
- "ch": 55,
- "mov_mem_address16_al": 3,
- "mov_mem_address32_al": 3,
- "mov_mem_address64_al": 3,
- "invalid_address_size": 18,
- "store_segment_prefix_if_necessary": 17,
- "address_32bit_prefix": 11,
- "A2h": 3,
- "store_mov_address32": 4,
- "store_address_32bit_value": 1,
- "address_16bit_prefix": 11,
- "store_mov_address16": 4,
- "invalid_address": 32,
- "jge": 5,
- "store_mov_address64": 4,
- "store_address_64bit_value": 1,
- "mov_mem_address16_ax": 3,
- "mov_mem_address32_ax": 3,
- "mov_mem_address64_ax": 3,
- "A3h": 3,
- "mov_mem_sreg_store": 2,
- "Ch": 11,
- "mov_mem_imm_nosize": 2,
- "mov_mem_imm_8bit": 2,
- "mov_mem_imm_16bit": 2,
- "mov_mem_imm_32bit": 2,
- "mov_mem_imm_64bit": 1,
- "mov_mem_imm_32bit_store": 2,
- "C6h": 1,
- "C7h": 4,
- "F0h": 7,
- "mov_sreg": 2,
- "mov_reg_mem": 2,
- "mov_reg_imm": 2,
- "mov_reg_reg": 1,
- "mov_reg_sreg": 2,
- "mov_reg_reg_8bit": 2,
- "mov_reg_creg": 2,
- "mov_reg_dreg": 2,
- "mov_reg_treg": 2,
- "mov_reg_sreg64": 2,
- "mov_reg_sreg32": 2,
- "mov_reg_sreg_store": 3,
- "extended_code": 73,
- "mov_reg_xrx": 3,
- "mov_reg_xrx_64bit": 2,
- "mov_reg_xrx_store": 3,
- "mov_reg_mem_8bit": 2,
- "mov_ax_mem": 2,
- "mov_al_mem": 2,
- "mov_al_mem_address16": 3,
- "mov_al_mem_address32": 3,
- "mov_al_mem_address64": 3,
- "A0h": 4,
- "mov_ax_mem_address16": 3,
- "mov_ax_mem_address32": 3,
- "mov_ax_mem_address64": 3,
- "A1h": 4,
- "mov_reg_imm_8bit": 2,
- "mov_reg_imm_16bit": 2,
- "mov_reg_imm_32bit": 2,
- "mov_reg_imm_64bit": 1,
- "mov_reg_imm_64bit_store": 3,
- "mov_reg_64bit_imm_32bit": 2,
- "B8h": 3,
- "store_mov_reg_imm_code": 5,
- "B0h": 5,
- "mov_store_imm_32bit": 2,
- "mov_reg_imm_prefix_ok": 2,
- "rex_prefix": 9,
- "mov_creg": 2,
- "mov_dreg": 2,
- "mov_treg": 2,
- "mov_sreg_mem": 2,
- "mov_sreg_reg": 1,
- "mov_sreg_reg_size_ok": 2,
- "Eh": 8,
- "mov_sreg_mem_size_ok": 2,
- "mov_xrx": 3,
- "mov_xrx_64bit": 2,
- "mov_xrx_store": 4,
- "test_instruction": 1,
- "test_reg": 2,
- "test_mem": 1,
- "test_mem_imm": 2,
- "test_mem_reg": 2,
- "test_mem_reg_8bit": 2,
- "test_mem_imm_nosize": 2,
- "test_mem_imm_8bit": 2,
- "test_mem_imm_16bit": 2,
- "test_mem_imm_32bit": 2,
- "test_mem_imm_64bit": 1,
- "test_mem_imm_32bit_store": 2,
- "F7h": 5,
- "test_reg_mem": 3,
- "test_reg_imm": 2,
- "test_reg_reg": 1,
- "test_reg_reg_8bit": 2,
- "test_reg_imm_8bit": 2,
- "test_reg_imm_16bit": 2,
- "test_reg_imm_32bit": 2,
- "test_reg_imm_64bit": 1,
- "test_reg_imm_32bit_store": 2,
- "test_al_imm": 2,
- "A8h": 1,
- "test_ax_imm": 2,
- "A9h": 2,
- "test_eax_imm": 2,
- "test_reg_mem_8bit": 2,
- "xchg_instruction": 1,
- "xchg_reg": 2,
- "xchg_mem": 1,
- "xchg_reg_reg": 1,
- "xchg_reg_reg_8bit": 2,
- "xchg_ax_reg": 2,
- "xchg_reg_reg_store": 3,
- "xchg_ax_reg_ok": 3,
- "xchg_ax_reg_store": 2,
- "push_instruction": 1,
- "push_size": 9,
- "push_next": 2,
- "push_reg": 2,
- "push_imm": 2,
- "push_mem": 1,
- "push_mem_16bit": 3,
- "push_mem_32bit": 3,
- "push_mem_64bit": 3,
- "push_mem_store": 4,
- "push_done": 5,
- "push_sreg": 2,
- "push_reg_ok": 2,
- "push_reg_16bit": 2,
- "push_reg_32bit": 2,
- "push_reg_64bit": 1,
- "push_reg_store": 5,
- "dh": 37,
- "push_sreg16": 3,
- "push_sreg32": 3,
- "push_sreg64": 3,
- "push_sreg_store": 4,
- "push_sreg_386": 2,
- "push_imm_size_ok": 3,
- "push_imm_16bit": 2,
- "push_imm_32bit": 2,
- "push_imm_64bit": 2,
- "push_imm_optimized_16bit": 3,
- "push_imm_optimized_32bit": 3,
- "push_imm_optimized_64bit": 2,
- "push_imm_32bit_store": 8,
- "push_imm_8bit": 3,
- "push_imm_16bit_store": 4,
- "size_override": 7,
- "operand_prefix": 9,
- "pop_instruction": 1,
- "pop_next": 2,
- "pop_reg": 2,
- "pop_mem": 1,
- "pop_mem_16bit": 3,
- "pop_mem_32bit": 3,
- "pop_mem_64bit": 3,
- "pop_mem_store": 4,
- "pop_done": 3,
- "pop_sreg": 2,
- "pop_reg_ok": 2,
- "pop_reg_16bit": 2,
- "pop_reg_32bit": 2,
- "pop_reg_64bit": 2,
- "pop_reg_store": 5,
- "pop_cs": 2,
- "pop_sreg16": 3,
- "pop_sreg32": 3,
- "pop_sreg64": 3,
- "pop_sreg_store": 4,
- "pop_sreg_386": 2,
- "pop_cs_store": 3,
- "inc_instruction": 1,
- "inc_reg": 2,
- "inc_mem": 2,
- "inc_mem_8bit": 2,
- "inc_mem_nosize": 2,
- "FEh": 2,
- "inc_reg_8bit": 2,
- "inc_reg_long_form": 2,
- "set_instruction": 1,
- "set_reg": 2,
- "set_mem": 1,
- "arpl_instruction": 1,
- "arpl_reg": 2,
- "bound_instruction": 1,
- "bound_store": 2,
- "enter_instruction": 1,
- "enter_imm16_size_ok": 2,
- "next_pass_needed": 16,
- "enter_imm16_ok": 2,
- "invalid_use_of_symbol": 17,
- "js": 3,
- "enter_imm8_size_ok": 2,
- "enter_imm8_ok": 2,
- "C8h": 2,
- "bx": 8,
- "ret_instruction_only64": 1,
- "ret_instruction": 5,
- "ret_instruction_32bit_except64": 1,
- "ret_instruction_32bit": 1,
- "ret_instruction_16bit": 1,
- "retf_instruction": 1,
- "ret_instruction_64bit": 1,
- "simple_ret": 4,
- "ret_imm": 3,
- "ret_imm_ok": 2,
- "ret_imm_store": 2,
- "lea_instruction": 1,
- "ls_instruction": 1,
- "les_instruction": 2,
- "lds_instruction": 2,
- "ls_code_ok": 2,
- "C4h": 1,
- "ls_short_code": 2,
- "C5h": 2,
- "ls_16bit": 2,
- "ls_32bit": 2,
- "ls_64bit": 2,
- "sh_instruction": 1,
- "sh_reg": 2,
- "sh_mem": 1,
- "sh_mem_imm": 2,
- "sh_mem_reg": 1,
- "sh_mem_cl_8bit": 2,
- "sh_mem_cl_nosize": 2,
- "D3h": 2,
- "D2h": 2,
- "sh_mem_imm_size_ok": 2,
- "sh_mem_imm_8bit": 2,
- "sh_mem_imm_nosize": 2,
- "sh_mem_1": 2,
- "C1h": 2,
- "D1h": 2,
- "sh_mem_1_8bit": 2,
- "C0h": 2,
- "D0h": 2,
- "sh_reg_imm": 2,
- "sh_reg_reg": 1,
- "sh_reg_cl_8bit": 2,
- "sh_reg_imm_size_ok": 2,
- "sh_reg_imm_8bit": 2,
- "sh_reg_1": 2,
- "sh_reg_1_8bit": 2,
- "shd_instruction": 1,
- "shd_reg": 2,
- "shd_mem": 1,
- "shd_mem_reg_imm": 2,
- "shd_mem_reg_imm_size_ok": 2,
- "shd_reg_reg_imm": 2,
- "shd_reg_reg_imm_size_ok": 2,
- "movx_instruction": 1,
- "movx_reg": 2,
- "movx_unknown_size": 2,
- "movx_mem_store": 3,
- "movx_reg_8bit": 2,
- "movx_reg_16bit": 2,
- "movsxd_instruction": 1,
- "movsxd_reg": 2,
- "movsxd_mem_store": 2,
- "bt_instruction": 1,
- "bt_reg": 2,
- "bt_mem_imm": 3,
- "bt_mem_reg": 2,
- "bt_mem_imm_size_ok": 2,
- "bt_mem_imm_nosize": 2,
- "bt_mem_imm_store": 2,
- "BAh": 2,
- "bt_reg_imm": 3,
- "bt_reg_reg": 2,
- "bt_reg_imm_size_ok": 2,
- "bt_reg_imm_store": 1,
- "bs_instruction": 1,
- "get_reg_mem": 2,
- "bs_reg_reg": 2,
- "get_reg_reg": 2,
- "invalid_argument": 28,
- "imul_instruction": 1,
- "imul_reg": 2,
- "imul_mem": 1,
- "imul_mem_8bit": 2,
- "imul_mem_nosize": 2,
- "imul_reg_": 2,
- "imul_reg_8bit": 2,
- "imul_reg_imm": 3,
- "imul_reg_noimm": 2,
- "imul_reg_reg": 2,
- "imul_reg_mem": 1,
- "imul_reg_mem_imm": 2,
- "AFh": 2,
- "imul_reg_mem_imm_16bit": 2,
- "imul_reg_mem_imm_32bit": 2,
- "imul_reg_mem_imm_64bit": 1,
- "imul_reg_mem_imm_32bit_ok": 2,
- "imul_reg_mem_imm_16bit_store": 4,
- "imul_reg_mem_imm_8bit_store": 3,
- "imul_reg_mem_imm_32bit_store": 4,
- "Bh": 11,
- "imul_reg_reg_imm": 3,
- "imul_reg_reg_imm_16bit": 2,
- "imul_reg_reg_imm_32bit": 2,
- "imul_reg_reg_imm_64bit": 1,
- "imul_reg_reg_imm_32bit_ok": 2,
- "imul_reg_reg_imm_16bit_store": 4,
- "imul_reg_reg_imm_8bit_store": 3,
- "imul_reg_reg_imm_32bit_store": 4,
- "in_instruction": 1,
- "in_imm": 2,
- "in_reg": 2,
- "in_al_dx": 2,
- "in_ax_dx": 2,
- "EDh": 1,
- "ECh": 1,
- "in_imm_size_ok": 2,
- "in_al_imm": 2,
- "in_ax_imm": 2,
- "E5h": 1,
- "E4h": 1,
- "out_instruction": 1,
- "out_imm": 2,
- "out_dx_al": 2,
- "out_dx_ax": 2,
- "EFh": 1,
- "EEh": 1,
- "out_imm_size_ok": 2,
- "out_imm_al": 2,
- "out_imm_ax": 2,
- "E7h": 1,
- "E6h": 1,
- "call_instruction": 1,
- "E8h": 3,
- "process_jmp": 2,
- "jmp_instruction": 1,
- "E9h": 1,
- "EAh": 1,
- "get_jump_operator": 3,
- "jmp_imm": 2,
- "jmp_reg": 2,
- "jmp_mem": 1,
- "jump_type": 14,
- "jmp_mem_size_not_specified": 2,
- "jmp_mem_16bit": 3,
- "jmp_mem_32bit": 2,
- "jmp_mem_48bit": 2,
- "jmp_mem_64bit": 2,
- "jmp_mem_80bit": 2,
- "jmp_mem_far": 2,
- "jmp_mem_near": 2,
- "jmp_mem_near_32bit": 3,
- "jmp_mem_far_32bit": 4,
- "jmp_mem_far_store": 3,
- "jmp_reg_16bit": 2,
- "jmp_reg_32bit": 2,
- "jmp_reg_64bit": 1,
- "invalid_value": 21,
- "skip_symbol": 5,
- "jmp_far": 2,
- "jmp_near": 1,
- "jmp_imm_16bit": 3,
- "jmp_imm_32bit": 2,
- "jmp_imm_64bit": 3,
- "get_address_dword_value": 3,
- "jmp_imm_32bit_prefix_ok": 2,
- "calculate_jump_offset": 10,
- "check_for_short_jump": 8,
- "jmp_short": 3,
- "jmp_imm_32bit_store": 2,
- "jno": 2,
- "jmp_imm_32bit_ok": 2,
- "relative_jump_out_of_range": 6,
- "get_address_qword_value": 3,
- "jnc": 11,
- "EBh": 1,
- "get_address_word_value": 3,
- "jmp_imm_16bit_prefix_ok": 2,
- "cwde": 3,
- "addressing_space": 17,
- "calculate_relative_offset": 2,
- "forced_short": 2,
- "no_short_jump": 4,
- "short_jump": 4,
- "jmp_short_value_type_ok": 2,
- "jump_out_of_range": 3,
- "symbol_identifier": 4,
- "jmp_far_16bit": 2,
- "jmp_far_32bit": 3,
- "jmp_far_segment": 2,
- "conditional_jump": 1,
- "conditional_jump_16bit": 3,
- "conditional_jump_32bit": 2,
- "conditional_jump_64bit": 3,
- "conditional_jump_32bit_prefix_ok": 2,
- "conditional_jump_short": 4,
- "conditional_jump_32bit_store": 2,
- "conditional_jump_32bit_range_ok": 2,
- "conditional_jump_16bit_prefix_ok": 2,
- "loop_instruction_16bit": 1,
- "loop_instruction": 5,
- "loop_instruction_32bit": 1,
- "loop_instruction_64bit": 1,
- "loop_jump_16bit": 3,
- "loop_jump_32bit": 2,
- "loop_jump_64bit": 3,
- "loop_jump_32bit_prefix_ok": 2,
- "loop_counter_size": 4,
- "make_loop_jump": 3,
- "scas": 10,
- "loop_counter_size_ok": 2,
- "loop_jump_16bit_prefix_ok": 2,
- "movs_instruction": 1,
- "address_sizes_do_not_agree": 2,
- "movs_address_16bit": 2,
- "movs_address_32bit": 2,
- "movs_store": 3,
- "A4h": 1,
- "movs_check_size": 5,
- "lods_instruction": 1,
- "lods_address_16bit": 2,
- "lods_address_32bit": 2,
- "lods_store": 3,
- "ACh": 1,
- "stos_instruction": 1,
- "stos_address_16bit": 2,
- "stos_address_32bit": 2,
- "stos_store": 3,
- "cmps_instruction": 1,
- "cmps_address_16bit": 2,
- "cmps_address_32bit": 2,
- "cmps_store": 3,
- "A6h": 1,
- "ins_instruction": 1,
- "ins_address_16bit": 2,
- "ins_address_32bit": 2,
- "ins_store": 3,
- "ins_check_size": 2,
- "outs_instruction": 1,
- "outs_address_16bit": 2,
- "outs_address_32bit": 2,
- "outs_store": 3,
- "xlat_instruction": 1,
- "xlat_address_16bit": 2,
- "xlat_address_32bit": 2,
- "xlat_store": 3,
- "D7h": 1,
- "pm_word_instruction": 1,
- "pm_reg": 2,
- "pm_mem": 2,
- "pm_mem_store": 2,
- "pm_store_word_instruction": 1,
- "lgdt_instruction": 1,
- "lgdt_mem_48bit": 2,
- "lgdt_mem_80bit": 2,
- "lgdt_mem_store": 4,
- "lar_instruction": 1,
- "lar_reg_reg": 2,
- "lar_reg_mem": 2,
- "invlpg_instruction": 1,
- "swapgs_instruction": 1,
- "rdtscp_instruction": 1,
- "basic_486_instruction": 1,
- "basic_486_reg": 2,
- "basic_486_mem_reg_8bit": 2,
- "basic_486_reg_reg_8bit": 2,
- "bswap_instruction": 1,
- "bswap_reg_code_ok": 2,
- "bswap_reg64": 2,
- "cmpxchgx_instruction": 1,
- "cmpxchgx_size_ok": 2,
- "cmpxchgx_store": 2,
- "nop_instruction": 1,
- "extended_nop": 4,
- "extended_nop_reg": 2,
- "extended_nop_store": 2,
- "basic_fpu_instruction": 1,
- "D8h": 2,
- "basic_fpu_streg": 2,
- "basic_fpu_mem": 2,
- "basic_fpu_mem_32bit": 2,
- "basic_fpu_mem_64bit": 2,
- "DCh": 2,
- "convert_fpu_register": 9,
- "basic_fpu_single_streg": 3,
- "basic_fpu_st0": 2,
- "basic_fpu_streg_st0": 2,
- "simple_fpu_instruction": 1,
- "D9h": 6,
- "fi_instruction": 1,
- "fi_mem_16bit": 2,
- "fi_mem_32bit": 2,
- "DAh": 2,
- "DEh": 2,
- "fld_instruction": 1,
- "fld_streg": 2,
- "fld_mem_32bit": 2,
- "fld_mem_64bit": 2,
- "fld_mem_80bit": 2,
- "DDh": 6,
- "fld_mem_80bit_store": 3,
- "DBh": 4,
- "fst_streg": 2,
- "fild_instruction": 1,
- "fild_mem_16bit": 2,
- "fild_mem_32bit": 2,
- "fild_mem_64bit": 2,
- "DFh": 5,
- "fisttp_64bit_store": 2,
- "fild_mem_64bit_store": 3,
- "fbld_instruction": 1,
- "fbld_mem_80bit": 3,
- "faddp_instruction": 1,
- "faddp_streg": 2,
- "fcompp_instruction": 1,
- "D9DEh": 1,
- "fucompp_instruction": 1,
- "E9DAh": 1,
- "fxch_instruction": 1,
- "fpu_single_operand": 3,
- "ffreep_instruction": 1,
- "ffree_instruction": 1,
- "fpu_streg": 2,
- "fstenv_instruction": 1,
- "fldenv_instruction": 3,
- "fpu_mem": 2,
- "fstenv_instruction_16bit": 1,
- "fldenv_instruction_16bit": 1,
- "fstenv_instruction_32bit": 1,
- "fldenv_instruction_32bit": 1,
- "fsave_instruction_32bit": 1,
- "fnsave_instruction_32bit": 1,
- "fnsave_instruction": 3,
- "fsave_instruction_16bit": 1,
- "fnsave_instruction_16bit": 1,
- "fsave_instruction": 1,
- "fstcw_instruction": 1,
- "fldcw_instruction": 1,
- "fldcw_mem_16bit": 3,
- "fstsw_instruction": 1,
- "fnstsw_instruction": 1,
- "fstsw_reg": 2,
- "fstsw_mem_16bit": 3,
- "E0DFh": 1,
- "finit_instruction": 1,
- "fninit_instruction": 1,
- "fcmov_instruction": 1,
- "fcomi_streg": 3,
- "fcomi_instruction": 1,
- "fcomip_instruction": 1,
- "fcomi_st0_streg": 2,
- "basic_mmx_instruction": 1,
- "mmx_instruction": 1,
- "convert_mmx_register": 18,
- "make_mmx_prefix": 9,
- "mmx_mmreg_mmreg": 3,
- "mmx_mmreg_mem": 2,
- "mmx_bit_shift_instruction": 1,
- "mmx_ps_mmreg_imm8": 2,
- "pmovmskb_instruction": 1,
- "pmovmskb_reg_size_ok": 2,
- "mmx_nomem_imm8": 7,
- "mmx_imm8": 6,
- "cl": 42,
- "append_imm8": 2,
- "pinsrw_instruction": 1,
- "pinsrw_mmreg_reg": 2,
- "pshufw_instruction": 1,
- "mmx_size": 30,
- "opcode_prefix": 30,
- "pshuf_instruction": 2,
- "pshufd_instruction": 1,
- "pshuf_mmreg_mmreg": 2,
- "movd_instruction": 1,
- "movd_reg": 2,
- "movd_mmreg": 2,
- "movd_mmreg_reg": 2,
- "vex_required": 2,
- "mmx_prefix_for_vex": 2,
- "no_mmx_prefix": 2,
- "movq_instruction": 1,
- "movq_reg": 2,
- "movq_mem_xmmreg": 2,
- "D6h": 2,
- "movq_mmreg": 2,
- "movq_mmreg_": 2,
- "F3h": 7,
- "movq_mmreg_reg": 2,
- "movq_mmreg_mmreg": 2,
- "movq_mmreg_reg_store": 2,
- "movdq_instruction": 1,
- "movdq_mmreg": 2,
- "convert_xmm_register": 12,
- "movdq_mmreg_mmreg": 2,
- "lddqu_instruction": 1,
- "F2h": 6,
- "movdq2q_instruction": 1,
- "movq2dq_": 2,
- "movq2dq_instruction": 1,
- "sse_ps_instruction_imm8": 1,
- "immediate_size": 9,
- "sse_ps_instruction": 1,
- "sse_instruction": 11,
- "sse_pd_instruction_imm8": 1,
- "sse_pd_instruction": 1,
- "sse_ss_instruction": 1,
- "sse_sd_instruction": 1,
- "cmp_pd_instruction": 1,
- "cmp_ps_instruction": 1,
- "C2h": 4,
- "cmp_ss_instruction": 1,
- "cmp_sx_instruction": 2,
- "cmpsd_instruction": 1,
- "A7h": 1,
- "cmp_sd_instruction": 1,
- "comiss_instruction": 1,
- "comisd_instruction": 1,
- "cvtdq2pd_instruction": 1,
- "cvtps2pd_instruction": 1,
- "cvtpd2dq_instruction": 1,
- "movshdup_instruction": 1,
- "sse_xmmreg": 2,
- "sse_reg": 1,
- "sse_xmmreg_xmmreg": 2,
- "sse_reg_mem": 2,
- "sse_mem_size_ok": 2,
- "supplemental_code": 2,
- "sse_cmp_mem_ok": 3,
- "sse_ok": 2,
- "take_additional_xmm0": 3,
- "sse_xmmreg_xmmreg_ok": 4,
- "sse_cmp_nomem_ok": 3,
- "sse_nomem_ok": 2,
- "additional_xmm0_ok": 2,
- "pslldq_instruction": 1,
- "movpd_instruction": 1,
- "movps_instruction": 1,
- "sse_mov_instruction": 3,
- "movss_instruction": 1,
- "sse_movs": 2,
- "movsd_instruction": 1,
- "A5h": 1,
- "sse_mem": 2,
- "sse_mem_xmmreg": 2,
- "movlpd_instruction": 1,
- "movlps_instruction": 1,
- "movhlps_instruction": 1,
- "maskmovq_instruction": 1,
- "maskmov_instruction": 2,
- "maskmovdqu_instruction": 1,
- "movmskpd_instruction": 1,
- "movmskps_instruction": 1,
- "movmskps_reg_ok": 2,
- "cvtpi2pd_instruction": 1,
- "cvtpi2ps_instruction": 1,
- "stub_size": 1,
- "resolver_flags": 1,
- "number_of_sections": 1,
- "actual_fixups_size": 1,
- "assembler_loop": 2,
- "labels_list": 3,
- "tagged_blocks": 23,
- "free_additional_memory": 2,
- "structures_buffer": 9,
- "source_start": 1,
- "code_start": 2,
- "adjustment": 4,
- "counter": 13,
- "format_flags": 2,
- "number_of_relocations": 1,
- "undefined_data_end": 4,
- "file_extension": 1,
- "output_format": 3,
- "adjustment_sign": 2,
- "init_addressing_space": 6,
- "pass_loop": 2,
- "assemble_line": 3,
- "pass_done": 2,
- "missing_end_directive": 7,
- "close_pass": 1,
- "check_symbols": 2,
- "symbols_checked": 2,
- "symbol_defined_ok": 5,
- "cx": 42,
- "use_prediction_ok": 5,
- "check_use_prediction": 2,
- "use_misprediction": 3,
- "check_next_symbol": 5,
- "define_misprediction": 4,
- "check_define_prediction": 2,
- "LABEL_STRUCTURE_SIZE": 1,
- "next_pass": 3,
- "assemble_ok": 2,
- "undefined_symbol": 2,
- "error_confirmed": 3,
- "error_info": 2,
- "error_handler": 3,
- "code_cannot_be_generated": 1,
- "create_addressing_space": 1,
- "assemble_instruction": 2,
- "source_end": 2,
- "define_label": 2,
- "define_constant": 2,
- "label_addressing_space": 2,
- "new_line": 2,
- "code_type_setting": 2,
- "line_assembled": 3,
- "reserved_word_used_as_symbol": 6,
- "label_size": 5,
- "make_label": 3,
- "ds": 21,
- "sbb": 9,
- "jp": 2,
- "label_value_ok": 2,
- "address_sign": 4,
- "make_virtual_label": 2,
- "setnz": 5,
- "finish_label": 2,
- "setne": 14,
- "finish_label_symbol": 2,
- "label_symbol_ok": 2,
- "new_label": 2,
- "symbol_already_defined": 3,
- "btr": 2,
- "requalified_label": 2,
- "label_made": 4,
- "get_constant_value": 4,
- "get_value": 2,
- "constant_referencing_mode_ok": 2,
- "make_constant": 2,
- "value_sign": 3,
- "constant_symbol_ok": 2,
- "new_constant": 2,
- "redeclare_constant": 2,
- "requalified_constant": 2,
- "make_addressing_space_label": 3,
- "vex_register": 1,
- "instruction_handler": 32,
- "extra_characters_on_line": 8,
- "org_directive": 1,
- "in_virtual": 2,
- "org_space_ok": 2,
- "close_virtual_addressing_space": 3,
- "org_value_ok": 2,
- "bts": 1,
- "label_directive": 1,
- "get_label_size": 2,
- "label_size_ok": 2,
- "get_free_label_value": 2,
- "get_address_value": 3,
- "bp": 2,
- "make_free_label": 1,
- "address_symbol": 2,
- "load_directive": 1,
- "load_size_ok": 2,
- "get_data_point": 3,
- "value_loaded": 2,
- "rep": 7,
- "movs": 8,
- "get_data_address": 5,
- "addressing_space_unavailable": 3,
- "symbol_out_of_scope": 1,
- "get_addressing_space": 3,
- "store_label_reference": 1,
- "data_address_type_ok": 2,
- "bad_data_address": 3,
- "store_directive": 1,
- "sized_store": 2,
- "store_value_ok": 2,
- "undefined_data_start": 3,
- "display_directive": 2,
- "display_byte": 2,
- "display_next": 2,
- "display_done": 3,
- "display_messages": 2,
- "skip_block": 2,
- "times_directive": 1,
- "get_count_value": 6,
- "zero_times": 3,
- "times_argument_ok": 2,
- "counter_limit": 7,
- "times_loop": 2,
- "stack_overflow": 2,
- "times_done": 2,
- "virtual_directive": 3,
- "virtual_at_current": 2,
- "set_virtual": 2,
- "allocate_structure_data": 5,
- "find_structure_data": 6,
- "scan_structures": 2,
- "no_such_structure": 2,
- "structure_data_found": 2,
- "end_virtual": 2,
- "unexpected_instruction": 18,
- "remove_structure_data": 7,
- "std": 2,
- "cld": 2,
- "addressing_space_closed": 2,
- "virtual_byte_ok": 2,
- "virtual_word_ok": 2,
- "repeat_directive": 7,
- "zero_repeat": 2,
- "end_repeat": 2,
- "continue_repeating": 2,
- "stop_repeat": 2,
- "find_end_repeat": 4,
- "find_structure_end": 5,
- "while_directive": 7,
- "do_while": 2,
- "calculate_logical_expression": 3,
- "while_true": 2,
- "stop_while": 2,
- "find_end_while": 3,
- "end_while": 2,
- "too_many_repeats": 1,
- "if_directive": 13,
- "if_true": 2,
- "find_else": 4,
- "else_true": 3,
- "make_if_structure": 2,
- "else_directive": 3,
- "found_else": 2,
- "skip_else": 3,
- "find_end_if": 3,
- "end_if": 2,
- "else_found": 2,
- "find_end_directive": 10,
- "no_end_directive": 2,
- "skip_labels": 2,
- "labels_ok": 2,
- "skip_repeat": 2,
- "skip_while": 2,
- "skip_if": 2,
- "structure_end": 4,
- "end_directive": 2,
- "skip_if_block": 4,
- "if_block_skipped": 2,
- "skip_after_else": 3,
- "data_directive": 1,
- "end_data": 1,
- "break_directive": 1,
- "find_breakable_structure": 4,
- "break_repeat": 2,
- "break_while": 2,
- "break_if": 2,
- "data_bytes": 1,
- "define_data": 8,
- "get_byte": 2,
- "undefined_data": 7,
- "get_string": 2,
- "mark_undefined_data": 2,
- "undefined_data_ok": 2,
- "simple_data_value": 3,
- "skip_expression": 1,
- "duplicate_zero_times": 2,
- "duplicate_single_data_value": 3,
- "duplicate_data": 2,
- "duplicated_values": 2,
- "near": 3,
- "data_defined": 5,
- "skip_single_data_value": 2,
- "skip_data_value": 2,
- "data_unicode": 1,
- "define_words": 2,
- "data_words": 1,
- "get_word": 2,
- "word_data_value": 2,
- "word_string": 2,
- "jecxz": 1,
- "word_string_ok": 2,
- "ecx*2": 1,
- "copy_word_string": 2,
- "data_dwords": 1,
- "get_dword": 2,
- "complex_dword": 2,
- "data_pwords": 1,
- "get_pword": 2,
- "get_pword_value": 1,
- "complex_pword": 2,
- "data_qwords": 1,
- "get_qword": 2,
- "data_twords": 1,
- "get_tword": 2,
- "complex_tword": 2,
- "fp_zero_tword": 2,
- "jg": 1,
- "tword_exp_ok": 3,
- "large_shift": 2,
- "shrd": 1,
- "tword_mantissa_shift_done": 2,
- "store_shifted_mantissa": 2,
- "data_file": 2,
- "open_binary_file": 2,
- "position_ok": 2,
- "size_ok": 2,
- "error_reading_file": 1,
- "find_current_source_path": 2,
- "get_current_path": 3,
- "cut_current_path": 1,
- "current_path_ok": 1,
- "/": 1,
+ "import": 2,
+ "Relation.Binary.PropositionalEquality": 1,
+ "-": 21,
+ "If": 1,
+ "you": 2,
+ "can": 1,
+ "show": 1,
+ "that": 1,
+ "a": 1,
+ "relation": 1,
+ "only": 1,
+ "ever": 1,
+ "has": 1,
+ "one": 1,
+ "inhabitant": 5,
+ "get": 1,
+ "the": 1,
+ "category": 1,
+ "laws": 1,
+ "for": 1,
+ "free": 1,
+ "EasyCategory": 3,
+ "(": 36,
+ "obj": 4,
+ "Set": 2,
+ ")": 36,
+ "_": 6,
+ "{": 10,
+ "x": 34,
+ "y": 28,
+ "z": 18,
+ "}": 10,
+ "id": 9,
+ "single": 4,
+ "r": 26,
+ "s": 29,
+ "assoc": 2,
+ "w": 4,
+ "t": 6,
+ "Data.Nat": 1,
+ "same": 5,
+ ".0": 2,
+ "n": 14,
+ "refl": 6,
+ ".": 5,
+ "suc": 6,
+ "m": 6,
+ "cong": 1,
+ "trans": 5,
+ ".n": 1,
+ "zero": 1,
+ "Nat": 1
+ },
+ "Alloy": {
+ "module": 3,
+ "examples/systems/marksweepgc": 1,
+ "sig": 20,
+ "Node": 10,
+ "{": 54,
+ "}": 60,
+ "HeapState": 5,
+ "left": 3,
+ "right": 1,
+ "-": 41,
+ "lone": 6,
+ "marked": 1,
+ "set": 10,
+ "freeList": 1,
+ "pred": 16,
+ "clearMarks": 1,
+ "[": 82,
+ "hs": 16,
+ ".marked": 3,
+ ".right": 4,
+ "hs.right": 3,
+ "fun": 1,
+ "reachable": 1,
+ "n": 5,
+ "]": 80,
+ "+": 14,
+ "n.": 1,
+ "(": 12,
+ "hs.left": 2,
+ ")": 9,
+ "mark": 1,
+ "from": 2,
+ "hs.reachable": 1,
+ "setFreeList": 1,
+ ".freeList.*": 3,
+ ".left": 5,
+ "hs.marked": 1,
+ "GC": 1,
+ "root": 5,
+ "assert": 3,
+ "Soundness1": 2,
+ "all": 16,
+ "h": 9,
+ "live": 3,
+ "h.reachable": 1,
+ "|": 19,
+ "h.right": 1,
+ "Soundness2": 2,
+ "no": 8,
+ ".reachable": 2,
+ "h.GC": 1,
+ "in": 19,
+ ".freeList": 1,
+ "check": 6,
+ "for": 7,
+ "expect": 6,
+ "Completeness": 1,
+ "examples/systems/views": 1,
+ "open": 2,
+ "util/ordering": 1,
+ "State": 16,
+ "as": 2,
+ "so": 1,
+ "util/relation": 1,
+ "rel": 1,
+ "Ref": 19,
+ "Object": 10,
+ "t": 16,
+ "b": 13,
+ "v": 25,
+ "views": 2,
+ "when": 1,
+ "is": 1,
+ "view": 2,
+ "of": 3,
+ "type": 1,
+ "backing": 1,
+ "dirty": 3,
+ "contains": 1,
+ "refs": 7,
+ "that": 1,
+ "have": 1,
+ "been": 1,
+ "invalidated": 1,
+ "obj": 1,
+ "one": 8,
+ "ViewType": 8,
+ "anyviews": 2,
+ "visualization": 1,
+ "ViewType.views": 1,
+ "Map": 2,
+ "extends": 10,
+ "keys": 3,
+ "map": 2,
+ "s": 6,
+ "Ref.map": 1,
+ "s.refs": 3,
+ "MapRef": 4,
+ "fact": 4,
+ "State.obj": 3,
+ "Iterator": 2,
+ "done": 3,
+ "lastRef": 2,
+ "IteratorRef": 5,
+ "Set": 2,
+ "elts": 2,
+ "SetRef": 5,
+ "abstract": 2,
+ "KeySetView": 6,
+ "State.views": 1,
+ "IteratorView": 3,
+ "s.views": 2,
+ "handle": 1,
+ "possibility": 1,
+ "modifying": 1,
+ "an": 1,
+ "object": 1,
+ "and": 1,
+ "its": 1,
+ "at": 1,
+ "once": 1,
+ "*": 1,
+ "should": 1,
+ "we": 1,
+ "limit": 1,
+ "frame": 1,
+ "conds": 1,
+ "to": 1,
+ "non": 1,
+ "*/": 1,
+ "modifies": 5,
+ "pre": 15,
+ "post": 14,
+ "rs": 4,
+ "let": 5,
+ "vr": 1,
+ "pre.views": 8,
+ "mods": 3,
+ "rs.*vr": 1,
+ "r": 3,
+ "pre.refs": 6,
+ "pre.obj": 10,
+ "post.obj": 7,
+ "viewFrame": 4,
+ "post.dirty": 1,
+ "pre.dirty": 1,
+ "some": 3,
+ "&&": 2,
+ "allocates": 5,
+ "&": 3,
+ "post.refs": 1,
+ ".map": 3,
+ ".elts": 3,
+ "dom": 1,
+ "<:>": 1,
+ "setRefs": 1,
+ "this": 14,
+ "MapRef.put": 1,
+ "k": 5,
+ "none": 4,
+ "post.views": 4,
+ "SetRef.iterator": 1,
+ "iterRef": 4,
+ "i": 7,
+ "i.left": 3,
+ "i.done": 1,
+ "i.lastRef": 1,
+ "IteratorRef.remove": 1,
+ ".lastRef": 2,
+ "IteratorRef.next": 1,
+ "ref": 3,
+ "IteratorRef.hasNext": 1,
+ "s.obj": 1,
+ "zippishOK": 2,
+ "ks": 6,
+ "vs": 6,
+ "m": 4,
+ "ki": 2,
+ "vi": 2,
+ "s0": 4,
+ "so/first": 1,
+ "s1": 4,
+ "so/next": 7,
+ "s2": 6,
+ "s3": 4,
+ "s4": 4,
+ "s5": 4,
+ "s6": 4,
+ "s7": 2,
+ "precondition": 2,
+ "s0.dirty": 1,
+ "ks.iterator": 1,
+ "vs.iterator": 1,
+ "ki.hasNext": 1,
+ "vi.hasNext": 1,
+ "ki.this/next": 1,
+ "vi.this/next": 1,
+ "m.put": 1,
+ "ki.remove": 1,
+ "vi.remove": 1,
+ "State.dirty": 1,
+ "ViewType.pre.views": 2,
+ "but": 1,
+ "#s.obj": 1,
+ "<": 1,
+ "examples/systems/file_system": 1,
+ "Name": 2,
+ "File": 1,
+ "d": 3,
+ "Dir": 8,
+ "d.entries.contents": 1,
+ "entries": 3,
+ "DirEntry": 2,
+ "parent": 3,
+ "this.": 4,
+ "@contents.": 1,
+ "@entries": 1,
+ "e1": 2,
+ "e2": 2,
+ "e1.name": 1,
+ "e2.name": 1,
+ "@parent": 2,
+ "Root": 5,
+ "Cur": 1,
+ "name": 1,
+ "contents": 2,
+ "OneParent_buggyVersion": 2,
+ "d.parent": 2,
+ "OneParent_correctVersion": 2,
+ "contents.d": 1,
+ "NoDirAliases": 3,
+ "o": 1,
+ "o.": 1
+ },
+ "ApacheConf": {
+ "#": 182,
+ "ServerRoot": 2,
+ "#Listen": 2,
+ "Listen": 2,
+ "LoadModule": 126,
+ "authn_file_module": 2,
+ "/usr/lib/apache2/modules/mod_authn_file.so": 1,
+ "authn_dbm_module": 2,
+ "/usr/lib/apache2/modules/mod_authn_dbm.so": 1,
+ "authn_anon_module": 2,
+ "/usr/lib/apache2/modules/mod_authn_anon.so": 1,
+ "authn_dbd_module": 2,
+ "/usr/lib/apache2/modules/mod_authn_dbd.so": 1,
+ "authn_default_module": 2,
+ "/usr/lib/apache2/modules/mod_authn_default.so": 1,
+ "authn_alias_module": 1,
+ "/usr/lib/apache2/modules/mod_authn_alias.so": 1,
+ "authz_host_module": 2,
+ "/usr/lib/apache2/modules/mod_authz_host.so": 1,
+ "authz_groupfile_module": 2,
+ "/usr/lib/apache2/modules/mod_authz_groupfile.so": 1,
+ "authz_user_module": 2,
+ "/usr/lib/apache2/modules/mod_authz_user.so": 1,
+ "authz_dbm_module": 2,
+ "/usr/lib/apache2/modules/mod_authz_dbm.so": 1,
+ "authz_owner_module": 2,
+ "/usr/lib/apache2/modules/mod_authz_owner.so": 1,
+ "authnz_ldap_module": 1,
+ "/usr/lib/apache2/modules/mod_authnz_ldap.so": 1,
+ "authz_default_module": 2,
+ "/usr/lib/apache2/modules/mod_authz_default.so": 1,
+ "auth_basic_module": 2,
+ "/usr/lib/apache2/modules/mod_auth_basic.so": 1,
+ "auth_digest_module": 2,
+ "/usr/lib/apache2/modules/mod_auth_digest.so": 1,
+ "file_cache_module": 1,
+ "/usr/lib/apache2/modules/mod_file_cache.so": 1,
+ "cache_module": 2,
+ "/usr/lib/apache2/modules/mod_cache.so": 1,
+ "disk_cache_module": 2,
+ "/usr/lib/apache2/modules/mod_disk_cache.so": 1,
+ "mem_cache_module": 2,
+ "/usr/lib/apache2/modules/mod_mem_cache.so": 1,
+ "dbd_module": 2,
+ "/usr/lib/apache2/modules/mod_dbd.so": 1,
+ "dumpio_module": 2,
+ "/usr/lib/apache2/modules/mod_dumpio.so": 1,
+ "ext_filter_module": 2,
+ "/usr/lib/apache2/modules/mod_ext_filter.so": 1,
+ "include_module": 2,
+ "/usr/lib/apache2/modules/mod_include.so": 1,
+ "filter_module": 2,
+ "/usr/lib/apache2/modules/mod_filter.so": 1,
+ "charset_lite_module": 1,
+ "/usr/lib/apache2/modules/mod_charset_lite.so": 1,
+ "deflate_module": 2,
+ "/usr/lib/apache2/modules/mod_deflate.so": 1,
+ "ldap_module": 1,
+ "/usr/lib/apache2/modules/mod_ldap.so": 1,
+ "log_forensic_module": 2,
+ "/usr/lib/apache2/modules/mod_log_forensic.so": 1,
+ "env_module": 2,
+ "/usr/lib/apache2/modules/mod_env.so": 1,
+ "mime_magic_module": 2,
+ "/usr/lib/apache2/modules/mod_mime_magic.so": 1,
+ "cern_meta_module": 2,
+ "/usr/lib/apache2/modules/mod_cern_meta.so": 1,
+ "expires_module": 2,
+ "/usr/lib/apache2/modules/mod_expires.so": 1,
+ "headers_module": 2,
+ "/usr/lib/apache2/modules/mod_headers.so": 1,
+ "ident_module": 2,
+ "/usr/lib/apache2/modules/mod_ident.so": 1,
+ "usertrack_module": 2,
+ "/usr/lib/apache2/modules/mod_usertrack.so": 1,
+ "unique_id_module": 2,
+ "/usr/lib/apache2/modules/mod_unique_id.so": 1,
+ "setenvif_module": 2,
+ "/usr/lib/apache2/modules/mod_setenvif.so": 1,
+ "version_module": 2,
+ "/usr/lib/apache2/modules/mod_version.so": 1,
+ "proxy_module": 2,
+ "/usr/lib/apache2/modules/mod_proxy.so": 1,
+ "proxy_connect_module": 2,
+ "/usr/lib/apache2/modules/mod_proxy_connect.so": 1,
+ "proxy_ftp_module": 2,
+ "/usr/lib/apache2/modules/mod_proxy_ftp.so": 1,
+ "proxy_http_module": 2,
+ "/usr/lib/apache2/modules/mod_proxy_http.so": 1,
+ "proxy_ajp_module": 2,
+ "/usr/lib/apache2/modules/mod_proxy_ajp.so": 1,
+ "proxy_balancer_module": 2,
+ "/usr/lib/apache2/modules/mod_proxy_balancer.so": 1,
+ "ssl_module": 4,
+ "/usr/lib/apache2/modules/mod_ssl.so": 1,
+ "mime_module": 4,
+ "/usr/lib/apache2/modules/mod_mime.so": 1,
+ "dav_module": 2,
+ "/usr/lib/apache2/modules/mod_dav.so": 1,
+ "status_module": 2,
+ "/usr/lib/apache2/modules/mod_status.so": 1,
+ "autoindex_module": 2,
+ "/usr/lib/apache2/modules/mod_autoindex.so": 1,
+ "asis_module": 2,
+ "/usr/lib/apache2/modules/mod_asis.so": 1,
+ "info_module": 2,
+ "/usr/lib/apache2/modules/mod_info.so": 1,
+ "suexec_module": 1,
+ "/usr/lib/apache2/modules/mod_suexec.so": 1,
+ "cgid_module": 3,
+ "/usr/lib/apache2/modules/mod_cgid.so": 1,
+ "cgi_module": 2,
+ "/usr/lib/apache2/modules/mod_cgi.so": 1,
+ "dav_fs_module": 2,
+ "/usr/lib/apache2/modules/mod_dav_fs.so": 1,
+ "dav_lock_module": 1,
+ "/usr/lib/apache2/modules/mod_dav_lock.so": 1,
+ "vhost_alias_module": 2,
+ "/usr/lib/apache2/modules/mod_vhost_alias.so": 1,
+ "negotiation_module": 2,
+ "/usr/lib/apache2/modules/mod_negotiation.so": 1,
+ "dir_module": 4,
+ "/usr/lib/apache2/modules/mod_dir.so": 1,
+ "imagemap_module": 2,
+ "/usr/lib/apache2/modules/mod_imagemap.so": 1,
+ "actions_module": 2,
+ "/usr/lib/apache2/modules/mod_actions.so": 1,
+ "speling_module": 2,
+ "/usr/lib/apache2/modules/mod_speling.so": 1,
+ "userdir_module": 2,
+ "/usr/lib/apache2/modules/mod_userdir.so": 1,
+ "alias_module": 4,
+ "/usr/lib/apache2/modules/mod_alias.so": 1,
+ "rewrite_module": 2,
+ "/usr/lib/apache2/modules/mod_rewrite.so": 1,
+ "": 17,
+ "mpm_netware_module": 2,
+ "User": 2,
+ "daemon": 2,
+ "Group": 2,
+ "": 17,
+ "ServerAdmin": 2,
+ "you@example.com": 2,
+ "#ServerName": 2,
+ "www.example.com": 2,
+ "DocumentRoot": 2,
+ "": 6,
+ "Options": 6,
+ "FollowSymLinks": 4,
+ "AllowOverride": 6,
+ "None": 8,
+ "Order": 10,
+ "deny": 10,
+ "allow": 10,
+ "Deny": 6,
+ "from": 10,
+ "all": 10,
+ "": 6,
+ "usr": 2,
+ "share": 1,
+ "apache2": 1,
+ "default": 1,
+ "site": 1,
+ "htdocs": 1,
+ "Indexes": 2,
+ "Allow": 4,
+ "DirectoryIndex": 2,
+ "index.html": 2,
+ "": 2,
+ "ht": 1,
+ "Satisfy": 4,
+ "All": 4,
+ "": 2,
+ "ErrorLog": 2,
+ "/var/log/apache2/error_log": 1,
+ "LogLevel": 2,
+ "warn": 2,
+ "log_config_module": 3,
+ "LogFormat": 6,
+ "combined": 4,
+ "common": 4,
+ "logio_module": 3,
+ "combinedio": 2,
+ "CustomLog": 2,
+ "/var/log/apache2/access_log": 2,
+ "#CustomLog": 2,
+ "ScriptAlias": 1,
+ "/cgi": 2,
+ "-": 43,
+ "bin/": 2,
+ "#Scriptsock": 2,
+ "/var/run/apache2/cgisock": 1,
+ "lib": 1,
+ "cgi": 3,
+ "bin": 1,
+ "DefaultType": 2,
+ "text/plain": 2,
+ "TypesConfig": 2,
+ "/etc/apache2/mime.types": 1,
+ "#AddType": 4,
+ "application/x": 6,
+ "gzip": 6,
+ ".tgz": 6,
+ "#AddEncoding": 4,
+ "x": 4,
+ "compress": 4,
+ ".Z": 4,
+ ".gz": 4,
+ "AddType": 4,
+ "#AddHandler": 4,
+ "script": 2,
+ ".cgi": 2,
+ "type": 2,
+ "map": 2,
+ "var": 2,
+ "text/html": 2,
+ ".shtml": 4,
+ "#AddOutputFilter": 2,
+ "INCLUDES": 2,
+ "#MIMEMagicFile": 2,
+ "/etc/apache2/magic": 1,
+ "#ErrorDocument": 8,
+ "/missing.html": 2,
+ "http": 2,
+ "//www.example.com/subscription_info.html": 2,
+ "#EnableMMAP": 2,
+ "off": 5,
+ "#EnableSendfile": 2,
+ "#Include": 17,
+ "/etc/apache2/extra/httpd": 11,
+ "mpm.conf": 2,
+ "multilang": 2,
+ "errordoc.conf": 2,
+ "autoindex.conf": 2,
+ "languages.conf": 2,
+ "userdir.conf": 2,
+ "info.conf": 2,
+ "vhosts.conf": 2,
+ "manual.conf": 2,
+ "dav.conf": 2,
+ "default.conf": 2,
+ "ssl.conf": 2,
+ "SSLRandomSeed": 4,
+ "startup": 2,
+ "builtin": 4,
+ "connect": 2,
+ "ServerSignature": 1,
+ "Off": 1,
+ "RewriteCond": 15,
+ "%": 48,
+ "{": 16,
+ "REQUEST_METHOD": 1,
+ "}": 16,
+ "(": 16,
+ "HEAD": 1,
+ "|": 80,
+ "TRACE": 1,
+ "DELETE": 1,
+ "TRACK": 1,
+ ")": 17,
+ "[": 17,
+ "NC": 13,
+ "OR": 14,
+ "]": 17,
+ "THE_REQUEST": 1,
+ "r": 1,
+ "n": 1,
+ "A": 6,
+ "D": 6,
+ "HTTP_REFERER": 1,
+ "<|>": 6,
+ "C": 5,
+ "E": 5,
+ "HTTP_COOKIE": 1,
+ "REQUEST_URI": 1,
+ "/": 3,
+ ";": 2,
+ "<": 1,
".": 7,
- "invalid_align_value": 3,
- "section_not_aligned_enough": 4,
- "make_alignment": 3,
- "pe_alignment": 2,
- "nops": 2,
- "reserved_data": 2,
- "nops_stosb_ok": 2,
- "nops_stosw_ok": 2,
- "err_directive": 1,
- "invoked_error": 2,
- "assert_directive": 1,
- "assertion_failed": 1
+ "HTTP_USER_AGENT": 5,
+ "java": 1,
+ "curl": 2,
+ "wget": 2,
+ "winhttp": 1,
+ "HTTrack": 1,
+ "clshttp": 1,
+ "archiver": 1,
+ "loader": 1,
+ "email": 1,
+ "harvest": 1,
+ "extract": 1,
+ "grab": 1,
+ "miner": 1,
+ "libwww": 1,
+ "perl": 1,
+ "python": 1,
+ "nikto": 1,
+ "scan": 1,
+ "#Block": 1,
+ "mySQL": 1,
+ "injects": 1,
+ "QUERY_STRING": 5,
+ ".*": 3,
+ "*": 1,
+ "union": 1,
+ "select": 1,
+ "insert": 1,
+ "cast": 1,
+ "set": 1,
+ "declare": 1,
+ "drop": 1,
+ "update": 1,
+ "md5": 1,
+ "benchmark": 1,
+ "./": 1,
+ "localhost": 1,
+ "loopback": 1,
+ ".0": 2,
+ ".1": 1,
+ "a": 1,
+ "z0": 1,
+ "RewriteRule": 1,
+ "index.php": 1,
+ "F": 1,
+ "libexec/apache2/mod_authn_file.so": 1,
+ "libexec/apache2/mod_authn_dbm.so": 1,
+ "libexec/apache2/mod_authn_anon.so": 1,
+ "libexec/apache2/mod_authn_dbd.so": 1,
+ "libexec/apache2/mod_authn_default.so": 1,
+ "libexec/apache2/mod_authz_host.so": 1,
+ "libexec/apache2/mod_authz_groupfile.so": 1,
+ "libexec/apache2/mod_authz_user.so": 1,
+ "libexec/apache2/mod_authz_dbm.so": 1,
+ "libexec/apache2/mod_authz_owner.so": 1,
+ "libexec/apache2/mod_authz_default.so": 1,
+ "libexec/apache2/mod_auth_basic.so": 1,
+ "libexec/apache2/mod_auth_digest.so": 1,
+ "libexec/apache2/mod_cache.so": 1,
+ "libexec/apache2/mod_disk_cache.so": 1,
+ "libexec/apache2/mod_mem_cache.so": 1,
+ "libexec/apache2/mod_dbd.so": 1,
+ "libexec/apache2/mod_dumpio.so": 1,
+ "reqtimeout_module": 1,
+ "libexec/apache2/mod_reqtimeout.so": 1,
+ "libexec/apache2/mod_ext_filter.so": 1,
+ "libexec/apache2/mod_include.so": 1,
+ "libexec/apache2/mod_filter.so": 1,
+ "substitute_module": 1,
+ "libexec/apache2/mod_substitute.so": 1,
+ "libexec/apache2/mod_deflate.so": 1,
+ "libexec/apache2/mod_log_config.so": 1,
+ "libexec/apache2/mod_log_forensic.so": 1,
+ "libexec/apache2/mod_logio.so": 1,
+ "libexec/apache2/mod_env.so": 1,
+ "libexec/apache2/mod_mime_magic.so": 1,
+ "libexec/apache2/mod_cern_meta.so": 1,
+ "libexec/apache2/mod_expires.so": 1,
+ "libexec/apache2/mod_headers.so": 1,
+ "libexec/apache2/mod_ident.so": 1,
+ "libexec/apache2/mod_usertrack.so": 1,
+ "#LoadModule": 4,
+ "libexec/apache2/mod_unique_id.so": 1,
+ "libexec/apache2/mod_setenvif.so": 1,
+ "libexec/apache2/mod_version.so": 1,
+ "libexec/apache2/mod_proxy.so": 1,
+ "libexec/apache2/mod_proxy_connect.so": 1,
+ "libexec/apache2/mod_proxy_ftp.so": 1,
+ "libexec/apache2/mod_proxy_http.so": 1,
+ "proxy_scgi_module": 1,
+ "libexec/apache2/mod_proxy_scgi.so": 1,
+ "libexec/apache2/mod_proxy_ajp.so": 1,
+ "libexec/apache2/mod_proxy_balancer.so": 1,
+ "libexec/apache2/mod_ssl.so": 1,
+ "libexec/apache2/mod_mime.so": 1,
+ "libexec/apache2/mod_dav.so": 1,
+ "libexec/apache2/mod_status.so": 1,
+ "libexec/apache2/mod_autoindex.so": 1,
+ "libexec/apache2/mod_asis.so": 1,
+ "libexec/apache2/mod_info.so": 1,
+ "libexec/apache2/mod_cgi.so": 1,
+ "libexec/apache2/mod_dav_fs.so": 1,
+ "libexec/apache2/mod_vhost_alias.so": 1,
+ "libexec/apache2/mod_negotiation.so": 1,
+ "libexec/apache2/mod_dir.so": 1,
+ "libexec/apache2/mod_imagemap.so": 1,
+ "libexec/apache2/mod_actions.so": 1,
+ "libexec/apache2/mod_speling.so": 1,
+ "libexec/apache2/mod_userdir.so": 1,
+ "libexec/apache2/mod_alias.so": 1,
+ "libexec/apache2/mod_rewrite.so": 1,
+ "perl_module": 1,
+ "libexec/apache2/mod_perl.so": 1,
+ "php5_module": 1,
+ "libexec/apache2/libphp5.so": 1,
+ "hfs_apple_module": 1,
+ "libexec/apache2/mod_hfs_apple.so": 1,
+ "mpm_winnt_module": 1,
+ "_www": 2,
+ "Library": 2,
+ "WebServer": 2,
+ "Documents": 1,
+ "MultiViews": 1,
+ "Hh": 1,
+ "Tt": 1,
+ "Dd": 1,
+ "Ss": 2,
+ "_": 1,
+ "": 1,
+ "rsrc": 1,
+ "": 1,
+ "": 1,
+ "namedfork": 1,
+ "": 1,
+ "ScriptAliasMatch": 1,
+ "i": 1,
+ "webobjects": 1,
+ "/private/var/run/cgisock": 1,
+ "CGI": 1,
+ "Executables": 1,
+ "/private/etc/apache2/mime.types": 1,
+ "/private/etc/apache2/magic": 1,
+ "#MaxRanges": 1,
+ "unlimited": 1,
+ "TraceEnable": 1,
+ "Include": 6,
+ "/private/etc/apache2/extra/httpd": 11,
+ "/private/etc/apache2/other/*.conf": 1
+ },
+ "Apex": {
+ "global": 70,
+ "class": 7,
+ "EmailUtils": 1,
+ "{": 219,
+ "static": 83,
+ "void": 9,
+ "sendEmailWithStandardAttachments": 3,
+ "(": 481,
+ "List": 71,
+ "": 30,
+ "recipients": 11,
+ "String": 60,
+ "emailSubject": 10,
+ "body": 8,
+ "Boolean": 38,
+ "useHTML": 6,
+ "": 1,
+ "attachmentIDs": 2,
+ ")": 481,
+ "": 2,
+ "stdAttachments": 4,
+ "[": 102,
+ "SELECT": 1,
+ "id": 1,
+ "name": 2,
+ "FROM": 1,
+ "Attachment": 2,
+ "WHERE": 1,
+ "Id": 1,
+ "IN": 1,
+ "]": 102,
+ ";": 308,
+ "}": 219,
+ "": 3,
+ "fileAttachments": 5,
+ "new": 60,
+ "for": 24,
+ "attachment": 1,
+ "Messaging.EmailFileAttachment": 2,
+ "fileAttachment": 2,
+ "fileAttachment.setFileName": 1,
+ "attachment.Name": 1,
+ "fileAttachment.setBody": 1,
+ "attachment.Body": 1,
+ "fileAttachments.add": 1,
+ "sendEmail": 4,
+ "sendTextEmail": 1,
+ "textBody": 2,
+ "false": 13,
+ "null": 92,
+ "sendHTMLEmail": 1,
+ "htmlBody": 2,
+ "true": 12,
+ "if": 91,
+ "return": 106,
+ "recipients.size": 1,
+ "Messaging.SingleEmailMessage": 3,
+ "mail": 2,
+ "//the": 2,
+ "email": 1,
+ "is": 5,
+ "not": 3,
+ "saved": 1,
+ "as": 1,
+ "an": 4,
+ "activity.": 1,
+ "mail.setSaveAsActivity": 1,
+ "mail.setToAddresses": 1,
+ "mail.setSubject": 1,
+ "mail.setBccSender": 1,
+ "mail.setUseSignature": 1,
+ "mail.setHtmlBody": 1,
+ "else": 25,
+ "mail.setPlainTextBody": 1,
+ "&&": 46,
+ "fileAttachments.size": 1,
+ "mail.setFileAttachments": 1,
+ "Messaging.sendEmail": 1,
+ "isValidEmailAddress": 2,
+ "str": 10,
+ "str.trim": 3,
+ ".length": 2,
+ "split": 5,
+ "str.split": 1,
+ "split.size": 2,
+ ".split": 1,
+ "isNotValidEmailAddress": 1,
+ "TwilioAPI": 2,
+ "private": 10,
+ "MissingTwilioConfigCustomSettingsException": 2,
+ "extends": 1,
+ "Exception": 1,
+ "TwilioRestClient": 5,
+ "client": 2,
+ "public": 10,
+ "getDefaultClient": 2,
+ "TwilioConfig__c": 5,
+ "twilioCfg": 7,
+ "getTwilioConfig": 3,
+ "TwilioAPI.client": 2,
+ "twilioCfg.AccountSid__c": 3,
+ "twilioCfg.AuthToken__c": 3,
+ "TwilioAccount": 1,
+ "getDefaultAccount": 1,
+ ".getAccount": 2,
+ "TwilioCapability": 2,
+ "createCapability": 1,
+ "createClient": 1,
+ "accountSid": 2,
+ "authToken": 2,
+ "Test.isRunningTest": 1,
+ "//": 11,
+ "dummy": 2,
+ "sid": 1,
+ "token": 7,
+ "TwilioConfig__c.getOrgDefaults": 1,
+ "throw": 6,
+ "@isTest": 1,
+ "test_TwilioAPI": 1,
+ "System.assertEquals": 5,
+ "TwilioAPI.getTwilioConfig": 2,
+ ".AccountSid__c": 1,
+ ".AuthToken__c": 1,
+ "TwilioAPI.getDefaultClient": 2,
+ ".getAccountSid": 1,
+ ".getSid": 2,
+ "TwilioAPI.getDefaultAccount": 1,
+ "LanguageUtils": 1,
+ "final": 6,
+ "HTTP_LANGUAGE_CODE_PARAMETER_KEY": 2,
+ "DEFAULT_LANGUAGE_CODE": 3,
+ "Set": 6,
+ "SUPPORTED_LANGUAGE_CODES": 2,
+ "//Chinese": 2,
+ "Simplified": 1,
+ "Traditional": 1,
+ "//Dutch": 1,
+ "//English": 1,
+ "//Finnish": 1,
+ "//French": 1,
+ "//German": 1,
+ "//Italian": 1,
+ "//Japanese": 1,
+ "//Korean": 1,
+ "//Polish": 1,
+ "//Portuguese": 1,
+ "Brazilian": 1,
+ "//Russian": 1,
+ "//Spanish": 1,
+ "//Swedish": 1,
+ "//Thai": 1,
+ "//Czech": 1,
+ "//Danish": 1,
+ "//Hungarian": 1,
+ "//Indonesian": 1,
+ "//Turkish": 1,
+ "Map": 33,
+ "": 29,
+ "DEFAULTS": 1,
+ "getLangCodeByHttpParam": 4,
+ "returnValue": 22,
+ "LANGUAGE_CODE_SET": 1,
+ "getSuppLangCodeSet": 2,
+ "ApexPages.currentPage": 4,
+ ".getParameters": 2,
+ "LANGUAGE_HTTP_PARAMETER": 7,
+ "StringUtils.lowerCase": 3,
+ "StringUtils.replaceChars": 2,
+ ".get": 4,
+ "//underscore": 1,
+ "//dash": 1,
+ "DEFAULTS.containsKey": 3,
+ "DEFAULTS.get": 3,
+ "StringUtils.isNotBlank": 1,
+ "SUPPORTED_LANGUAGE_CODES.contains": 2,
+ "getLangCodeByBrowser": 4,
+ "LANGUAGES_FROM_BROWSER_AS_STRING": 2,
+ ".getHeaders": 1,
+ "LANGUAGES_FROM_BROWSER_AS_LIST": 3,
+ "splitAndFilterAcceptLanguageHeader": 2,
+ "LANGUAGES_FROM_BROWSER_AS_LIST.size": 1,
+ "languageFromBrowser": 6,
+ "getLangCodeByUser": 3,
+ "UserInfo.getLanguage": 1,
+ "getLangCodeByHttpParamOrIfNullThenBrowser": 1,
+ "StringUtils.defaultString": 4,
+ "getLangCodeByHttpParamOrIfNullThenUser": 1,
+ "getLangCodeByBrowserOrIfNullThenHttpParam": 1,
+ "getLangCodeByBrowserOrIfNullThenUser": 1,
+ "header": 2,
+ "returnList": 11,
+ "tokens": 3,
+ "StringUtils.split": 1,
+ "token.contains": 1,
+ "token.substring": 1,
+ "token.indexOf": 1,
+ "returnList.add": 8,
+ "StringUtils.length": 1,
+ "StringUtils.substring": 1,
+ "langCodes": 2,
+ "langCode": 3,
+ "langCodes.add": 1,
+ "getLanguageName": 1,
+ "displayLanguageCode": 13,
+ "languageCode": 2,
+ "translatedLanguageNames.get": 2,
+ "filterLanguageCode": 4,
+ "getAllLanguages": 3,
+ "translatedLanguageNames.containsKey": 1,
+ "<": 32,
+ "translatedLanguageNames": 1,
+ "GeoUtils": 1,
+ "generate": 1,
+ "a": 6,
+ "KML": 1,
+ "string": 7,
+ "given": 2,
+ "page": 1,
+ "reference": 1,
+ "call": 1,
+ "getContent": 1,
+ "then": 1,
+ "cleanup": 1,
+ "the": 4,
+ "output.": 1,
+ "generateFromContent": 1,
+ "PageReference": 2,
+ "pr": 1,
+ "ret": 7,
+ "try": 1,
+ "pr.getContent": 1,
+ ".toString": 1,
+ "ret.replaceAll": 4,
+ "get": 4,
+ "content": 1,
+ "produces": 1,
+ "quote": 1,
+ "chars": 1,
+ "we": 1,
+ "need": 1,
+ "to": 4,
+ "escape": 1,
+ "these": 2,
+ "in": 1,
+ "node": 1,
+ "value": 10,
+ "catch": 1,
+ "exception": 1,
+ "e": 2,
+ "system.debug": 2,
+ "+": 75,
+ "must": 1,
+ "use": 1,
+ "ALL": 1,
+ "since": 1,
+ "many": 1,
+ "line": 1,
+ "may": 1,
+ "also": 1,
+ "": 2,
+ "geo_response": 1,
+ "accountAddressString": 2,
+ "account": 2,
+ "acct": 1,
+ "form": 1,
+ "address": 1,
+ "object": 1,
+ "adr": 9,
+ "acct.billingstreet": 1,
+ "acct.billingcity": 1,
+ "acct.billingstate": 1,
+ "acct.billingpostalcode": 2,
+ "acct.billingcountry": 2,
+ "adr.replaceAll": 4,
+ "testmethod": 1,
+ "t1": 1,
+ "pageRef": 3,
+ "Page.kmlPreviewTemplate": 1,
+ "Test.setCurrentPage": 1,
+ "system.assert": 1,
+ "GeoUtils.generateFromContent": 1,
+ "Account": 2,
+ "billingstreet": 1,
+ "billingcity": 1,
+ "billingstate": 1,
+ "billingpostalcode": 1,
+ "billingcountry": 1,
+ "insert": 1,
+ "system.assertEquals": 1,
+ "ArrayUtils": 1,
+ "EMPTY_STRING_ARRAY": 1,
+ "Integer": 34,
+ "MAX_NUMBER_OF_ELEMENTS_IN_LIST": 5,
+ "objectToString": 1,
+ " |