mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e78e9e4747 | ||
|
|
81f9079f43 | ||
|
|
16eaa533b6 | ||
|
|
2e521a6c74 | ||
|
|
56a65d0975 | ||
|
|
e4c6c1d245 | ||
|
|
a9f366aed2 | ||
|
|
96bd08e391 | ||
|
|
02fe28eb25 | ||
|
|
e77530b390 | ||
|
|
d0370a3b4c | ||
|
|
ebce4890b2 | ||
|
|
1bc87aadb3 | ||
|
|
53a532dc76 | ||
|
|
0669a83e40 | ||
|
|
c4ab3b276f | ||
|
|
920f825496 | ||
|
|
f28573420e | ||
|
|
c471990aa3 | ||
|
|
baf56666d4 | ||
|
|
cbbc05f7b8 | ||
|
|
051906727b | ||
|
|
cfd5cbaba0 | ||
|
|
caaad886c3 | ||
|
|
2305f9051c | ||
|
|
392ab2960f | ||
|
|
1e134b5754 | ||
|
|
d356ea28af | ||
|
|
a015138dcd | ||
|
|
ff99d1bac8 | ||
|
|
f4af4727a1 | ||
|
|
2c3069db77 | ||
|
|
6c07476c45 |
19
.gitmodules
vendored
19
.gitmodules
vendored
@@ -364,9 +364,6 @@
|
||||
[submodule "vendor/grammars/r.tmbundle"]
|
||||
path = vendor/grammars/r.tmbundle
|
||||
url = https://github.com/textmate/r.tmbundle
|
||||
[submodule "vendor/grammars/restructuredtext.tmbundle"]
|
||||
path = vendor/grammars/restructuredtext.tmbundle
|
||||
url = https://github.com/textmate/restructuredtext.tmbundle
|
||||
[submodule "vendor/grammars/ruby-haml.tmbundle"]
|
||||
path = vendor/grammars/ruby-haml.tmbundle
|
||||
url = https://github.com/textmate/ruby-haml.tmbundle
|
||||
@@ -678,8 +675,8 @@
|
||||
path = vendor/grammars/pig-latin
|
||||
url = https://github.com/goblindegook/sublime-text-pig-latin
|
||||
[submodule "vendor/grammars/sourcepawn"]
|
||||
path = vendor/grammars/sourcepawn
|
||||
url = https://github.com/austinwagner/sublime-sourcepawn
|
||||
path = vendor/grammars/sourcepawn
|
||||
url = https://github.com/austinwagner/sublime-sourcepawn
|
||||
[submodule "vendor/grammars/gdscript"]
|
||||
path = vendor/grammars/gdscript
|
||||
url = https://github.com/beefsack/GDScript-sublime
|
||||
@@ -737,3 +734,15 @@
|
||||
[submodule "vendor/grammars/Elm"]
|
||||
path = vendor/grammars/Elm
|
||||
url = https://github.com/elm-community/Elm.tmLanguage
|
||||
[submodule "vendor/grammars/language-restructuredtext"]
|
||||
path = vendor/grammars/language-restructuredtext
|
||||
url = https://github.com/Lukasa/language-restructuredtext
|
||||
[submodule "vendor/grammars/atom-language-clean"]
|
||||
path = vendor/grammars/atom-language-clean
|
||||
url = https://github.com/timjs/atom-language-clean.git
|
||||
[submodule "vendor/grammars/language-turing"]
|
||||
path = vendor/grammars/language-turing
|
||||
url = https://github.com/Alhadis/language-turing
|
||||
[submodule "vendor/grammars/atom-language-srt"]
|
||||
path = vendor/grammars/atom-language-srt
|
||||
url = https://github.com/314eter/atom-language-srt
|
||||
|
||||
@@ -77,8 +77,20 @@ Sometimes getting the tests running can be too much work, especially if you don'
|
||||
|
||||
Here's our current build status: [](https://travis-ci.org/github/linguist)
|
||||
|
||||
## Maintainers
|
||||
|
||||
## Releasing
|
||||
Linguist is maintained with :heart: by:
|
||||
|
||||
- @arfon (GitHub Staff)
|
||||
- @larsbrinkhoff
|
||||
- @pchaigno
|
||||
|
||||
As Linguist is a production dependency for GitHub we have a couple of workflow restrictions:
|
||||
|
||||
- Anyone with commit rights can merge Pull Requests provided that there is a :+1: from a GitHub member of staff
|
||||
- Releases are performed by GitHub staff so we can ensure GitHub.com always stays up to date with the latest release of Linguist and there are no regressions in production.
|
||||
|
||||
### Releasing
|
||||
|
||||
If you are the current maintainer of this gem:
|
||||
|
||||
|
||||
12
README.md
12
README.md
@@ -43,7 +43,7 @@ special-vendored-path/* linguist-vendored
|
||||
jquery.js linguist-vendored=false
|
||||
```
|
||||
|
||||
Similar to vendored files, Linguist excludes documentation files from your project's language stats. (Unlike vendored files, documentation files are displayed in diffs on github.com.) [lib/linguist/documentation.yml](lib/linguist/documentation.yml) lists common documentation paths and excludes them from the language statistics for your repository.
|
||||
Just like vendored files, Linguist excludes documentation files from your project's language stats. [lib/linguist/documentation.yml](lib/linguist/documentation.yml) lists common documentation paths and excludes them from the language statistics for your repository.
|
||||
|
||||
Use the `linguist-documentation` attribute to mark or unmark paths as documentation.
|
||||
|
||||
@@ -53,6 +53,16 @@ project-docs/* linguist-documentation
|
||||
docs/formatter.rb linguist-documentation=false
|
||||
```
|
||||
|
||||
#### Generated file detection
|
||||
|
||||
Not all plain text files are true source files. Generated files like minified js and compiled CoffeeScript can be detected and excluded from language stats. As an added bonus, unlike vendored and documentation files, these files are suppressed in diffs.
|
||||
|
||||
```ruby
|
||||
Linguist::FileBlob.new("underscore.min.js").generated? # => true
|
||||
```
|
||||
|
||||
See [Linguist::Generated#generated?](https://github.com/github/linguist/blob/master/lib/linguist/generated.rb).
|
||||
|
||||
### Using Emacs or Vim modelines
|
||||
|
||||
Alternatively, you can use Vim or Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com
|
||||
|
||||
14
grammars.yml
14
grammars.yml
@@ -18,8 +18,6 @@ http://svn.textmate.org/trunk/Review/Bundles/XQuery.tmbundle:
|
||||
https://bitbucket.org/Clams/sublimesystemverilog/get/default.tar.gz:
|
||||
- source.systemverilog
|
||||
- source.ucfconstraints
|
||||
https://fan.googlecode.com/hg-history/Build%201.0.55/adm/tools/textmate/Fan.tmbundle/Syntaxes/Fan.tmLanguage:
|
||||
- source.fan
|
||||
vendor/grammars/Agda.tmbundle:
|
||||
- source.agda
|
||||
vendor/grammars/Alloy.tmbundle:
|
||||
@@ -178,8 +176,12 @@ vendor/grammars/atom-fsharp/:
|
||||
- source.fsharp.fsi
|
||||
- source.fsharp.fsl
|
||||
- source.fsharp.fsx
|
||||
vendor/grammars/atom-language-clean:
|
||||
- source.clean
|
||||
vendor/grammars/atom-language-purescript/:
|
||||
- source.purescript
|
||||
vendor/grammars/atom-language-srt:
|
||||
- text.srt
|
||||
vendor/grammars/atom-language-stan/:
|
||||
- source.stan
|
||||
vendor/grammars/atom-salt:
|
||||
@@ -377,6 +379,8 @@ vendor/grammars/language-python:
|
||||
- text.python.traceback
|
||||
vendor/grammars/language-renpy:
|
||||
- source.renpy
|
||||
vendor/grammars/language-restructuredtext:
|
||||
- text.restructuredtext
|
||||
vendor/grammars/language-shellscript:
|
||||
- source.shell
|
||||
- text.shell-session
|
||||
@@ -384,6 +388,8 @@ vendor/grammars/language-supercollider:
|
||||
- source.supercollider
|
||||
vendor/grammars/language-toc-wow:
|
||||
- source.toc
|
||||
vendor/grammars/language-turing:
|
||||
- source.turing
|
||||
vendor/grammars/language-wavefront:
|
||||
- source.wavefront.mtl
|
||||
- source.wavefront.obj
|
||||
@@ -492,8 +498,6 @@ vendor/grammars/python-django.tmbundle:
|
||||
vendor/grammars/r.tmbundle:
|
||||
- source.r
|
||||
- text.tex.latex.rd
|
||||
vendor/grammars/restructuredtext.tmbundle:
|
||||
- text.restructuredtext
|
||||
vendor/grammars/ruby-haml.tmbundle:
|
||||
- text.haml
|
||||
vendor/grammars/ruby-slim.tmbundle:
|
||||
@@ -502,8 +506,8 @@ vendor/grammars/ruby.tmbundle:
|
||||
- source.ruby
|
||||
- text.html.erb
|
||||
vendor/grammars/sas.tmbundle:
|
||||
- source.SASLog
|
||||
- source.sas
|
||||
- source.sas_log
|
||||
vendor/grammars/sass-textmate-bundle:
|
||||
- source.sass
|
||||
vendor/grammars/scala.tmbundle:
|
||||
|
||||
@@ -56,6 +56,7 @@ module Linguist
|
||||
generated_net_specflow_feature_file? ||
|
||||
composer_lock? ||
|
||||
node_modules? ||
|
||||
npm_shrinkwrap? ||
|
||||
godeps? ||
|
||||
generated_by_zephir? ||
|
||||
minified_files? ||
|
||||
@@ -109,11 +110,11 @@ module Linguist
|
||||
#
|
||||
# We assume that if one of the last 2 lines starts with a source map
|
||||
# reference, then the current file was generated from other files.
|
||||
#
|
||||
#
|
||||
# We use the last 2 lines because the last line might be empty.
|
||||
#
|
||||
#
|
||||
# We only handle JavaScript, no CSS support yet.
|
||||
#
|
||||
#
|
||||
# Returns true or false.
|
||||
def has_source_map?
|
||||
return false unless extname.downcase == '.js'
|
||||
@@ -303,6 +304,13 @@ module Linguist
|
||||
!!name.match(/node_modules\//)
|
||||
end
|
||||
|
||||
# Internal: Is the blob a generated npm shrinkwrap file.
|
||||
#
|
||||
# Returns true or false.
|
||||
def npm_shrinkwrap?
|
||||
!!name.match(/npm-shrinkwrap\.json/)
|
||||
end
|
||||
|
||||
# Internal: Is the blob part of Godeps/,
|
||||
# which are not meant for humans in pull requests.
|
||||
#
|
||||
@@ -355,14 +363,14 @@ module Linguist
|
||||
# on the first line.
|
||||
#
|
||||
# GFortran module files contain:
|
||||
# GFORTRAN module version 'x' created from
|
||||
# GFORTRAN module version 'x' created from
|
||||
# on the first line.
|
||||
#
|
||||
# Return true of false
|
||||
def generated_module?
|
||||
return false unless extname == '.mod'
|
||||
return false unless lines.count > 1
|
||||
return lines[0].include?("PCBNEW-LibModule-V") ||
|
||||
return lines[0].include?("PCBNEW-LibModule-V") ||
|
||||
lines[0].include?("GFORTRAN module version '")
|
||||
end
|
||||
|
||||
|
||||
@@ -382,7 +382,7 @@ module Linguist
|
||||
elsif /(alter module)|(language sql)|(begin( NOT)+ atomic)/i.match(data) || /signal SQLSTATE '[0-9]+'/i.match(data)
|
||||
#IBM db2
|
||||
Language["SQLPL"]
|
||||
elsif /pragma|\$\$PLSQL_|XMLTYPE|sysdate|systimestamp|\.nextval|connect by|AUTHID (DEFINER|CURRENT_USER)/i.match(data) || /constructor\W+function/i.match(data)
|
||||
elsif /\$\$PLSQL_|XMLTYPE|sysdate|systimestamp|\.nextval|connect by|AUTHID (DEFINER|CURRENT_USER)/i.match(data) || /constructor\W+function/i.match(data)
|
||||
#Oracle
|
||||
Language["PLSQL"]
|
||||
elsif ! /begin|boolean|package|exception/i.match(data)
|
||||
@@ -391,6 +391,20 @@ module Linguist
|
||||
end
|
||||
end
|
||||
|
||||
disambiguate ".srt" do |data|
|
||||
if /^(\d{2}:\d{2}:\d{2},\d{3})\s*(-->)\s*(\d{2}:\d{2}:\d{2},\d{3})$/.match(data)
|
||||
Language["SubRip Text"]
|
||||
end
|
||||
end
|
||||
|
||||
disambiguate ".t" do |data|
|
||||
if /^\s*%|^\s*var\s+\w+\s*:\s*\w+/.match(data)
|
||||
Language["Turing"]
|
||||
elsif /^\s*use\s+v6\s*;/.match(data)
|
||||
Language["Perl6"]
|
||||
end
|
||||
end
|
||||
|
||||
disambiguate ".toc" do |data|
|
||||
if /^## |@no-lib-strip@/.match(data)
|
||||
Language["World of Warcraft Addon Data"]
|
||||
|
||||
@@ -571,7 +571,7 @@ Clean:
|
||||
extensions:
|
||||
- .icl
|
||||
- .dcl
|
||||
tm_scope: none
|
||||
tm_scope: source.clean
|
||||
ace_mode: text
|
||||
|
||||
Click:
|
||||
@@ -1083,7 +1083,7 @@ Fantom:
|
||||
color: "#dbded5"
|
||||
extensions:
|
||||
- .fan
|
||||
tm_scope: source.fan
|
||||
tm_scope: none
|
||||
ace_mode: text
|
||||
|
||||
Filterscript:
|
||||
@@ -1443,7 +1443,7 @@ HTML+Django:
|
||||
- html+jinja
|
||||
- htmldjango
|
||||
ace_mode: django
|
||||
|
||||
|
||||
HTML+ECR:
|
||||
type: markup
|
||||
tm_scope: text.html.ecr
|
||||
@@ -3336,6 +3336,14 @@ SQLPL:
|
||||
- .sql
|
||||
- .db2
|
||||
|
||||
SRecode Template:
|
||||
type: markup
|
||||
color: "#348a34"
|
||||
tm_scope: source.lisp
|
||||
ace_mode: lisp
|
||||
extensions:
|
||||
- .srt
|
||||
|
||||
STON:
|
||||
type: data
|
||||
group: Smalltalk
|
||||
@@ -3585,6 +3593,13 @@ Stylus:
|
||||
tm_scope: source.stylus
|
||||
ace_mode: stylus
|
||||
|
||||
SubRip Text:
|
||||
type: data
|
||||
extensions:
|
||||
- .srt
|
||||
ace_mode: text
|
||||
tm_scope: text.srt
|
||||
|
||||
SuperCollider:
|
||||
type: programming
|
||||
color: "#46390b"
|
||||
@@ -3738,11 +3753,11 @@ Thrift:
|
||||
|
||||
Turing:
|
||||
type: programming
|
||||
color: "#45f715"
|
||||
color: "#cf142b"
|
||||
extensions:
|
||||
- .t
|
||||
- .tu
|
||||
tm_scope: none
|
||||
tm_scope: source.turing
|
||||
ace_mode: text
|
||||
|
||||
Turtle:
|
||||
|
||||
@@ -21,7 +21,7 @@ module Linguist
|
||||
def self.cache
|
||||
@cache ||= begin
|
||||
serializer = defined?(Yajl) ? Yajl : YAML
|
||||
serializer.load(File.read(PATH))
|
||||
serializer.load(File.read(PATH, encoding: 'utf-8'))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -153,6 +153,9 @@
|
||||
- (^|/)tiny_mce([^.]*)\.js$
|
||||
- (^|/)tiny_mce/(langs|plugins|themes|utils)
|
||||
|
||||
# Ace Editor
|
||||
- (^|/)ace-builds/
|
||||
|
||||
# MathJax
|
||||
- (^|/)MathJax/
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
module Linguist
|
||||
VERSION = "4.8.5"
|
||||
VERSION = "4.8.7"
|
||||
end
|
||||
|
||||
45
samples/SRecode Template/linguist.srt
Normal file
45
samples/SRecode Template/linguist.srt
Normal file
@@ -0,0 +1,45 @@
|
||||
;;; linguist.srt --- Template for linguist-example-mode
|
||||
|
||||
;; Not copyrighted whatsoever.
|
||||
;;
|
||||
;; GPL can bite my shiny metal ass.
|
||||
;;
|
||||
;; GitHub: 1
|
||||
;; Stallman: 0
|
||||
|
||||
set mode "default"
|
||||
|
||||
set comment_start ";"
|
||||
|
||||
set LICENSE "It's public domain, baby. This was written for the sole
|
||||
purpose of the format's inclusion and recognition by GitHub Linguist.
|
||||
This block of multiline text was added because every other .srt file
|
||||
I could find was GPL-licensed and had long-winded copyright blobs in
|
||||
the file's header. Also, check out my sick line-wrapping abilities."
|
||||
|
||||
set DOLLAR "$"
|
||||
|
||||
context file
|
||||
|
||||
|
||||
template license
|
||||
----
|
||||
{{LICENSE:srecode-comment-prefix}}
|
||||
----
|
||||
|
||||
|
||||
template filecomment :file :user :time
|
||||
----
|
||||
{{comment_start}} {{FILENAME}} --- {{^}}
|
||||
{{comment_prefix}} YUO WAN GPL?
|
||||
{{comment_prefix}}
|
||||
{{comment_prefix}} Copyright (C) {{YEAR}} {{?AUTHOR}}
|
||||
{{comment_prefix}}
|
||||
{{comment_prefix}} TUO BAD
|
||||
{{comment_prefix}} WE EXPAT PEOPLE
|
||||
{{comment_prefix}} {{EXPLETIVE}} YOU!
|
||||
{{>:copyright}}
|
||||
{{comment_end}}
|
||||
----
|
||||
|
||||
;; end
|
||||
@@ -0,0 +1,240 @@
|
||||
1
|
||||
00:00:01,250 --> 00:00:03,740
|
||||
Adding NCL language.
|
||||
|
||||
2
|
||||
00:00:04,600 --> 00:00:08,730
|
||||
Thanks for the pull request! Do you know if these files are NCL too?
|
||||
|
||||
3
|
||||
00:00:09,800 --> 00:00:13,700
|
||||
Those are poorly-named documentation files for NCL functions.
|
||||
|
||||
4
|
||||
00:00:14,560 --> 00:00:17,200
|
||||
- What's better?
|
||||
- This is better.
|
||||
|
||||
5
|
||||
00:00:18,500 --> 00:00:23,000
|
||||
- Would it be correct to recognise these files as text?
|
||||
- Yes.
|
||||
|
||||
6
|
||||
00:00:23,890 --> 00:00:30,000
|
||||
In that case, could you add "NCL" to the text entry in languages.yml too?
|
||||
|
||||
7
|
||||
00:00:30,540 --> 00:00:35,250
|
||||
I added the example to "Text" and updated the license in the grammar submodule.
|
||||
|
||||
8
|
||||
00:00:38,500 --> 00:00:42,360
|
||||
Cloning the submodule fails for me in local with this URL.
|
||||
|
||||
9
|
||||
00:00:42,360 --> 00:00:45,250
|
||||
Could you use Git or HTTPS...?
|
||||
|
||||
10
|
||||
00:00:46,810 --> 00:00:50,000
|
||||
I updated the grammar submodule link to HTTPS.
|
||||
|
||||
11
|
||||
00:00:51,100 --> 00:00:57,000
|
||||
It's still failing locally. I don't think you can just update the .gitmodules file.
|
||||
|
||||
12
|
||||
00:00:57,750 --> 00:01:03,000
|
||||
You'll probably have to remove the submodule and add it again to be sure.
|
||||
|
||||
13
|
||||
00:01:04,336 --> 00:01:11,800
|
||||
- I'll see first if it's not an issue on my side...
|
||||
- I removed the submodule and added it back with HTTPS.
|
||||
|
||||
14
|
||||
00:01:13,670 --> 00:01:18,000
|
||||
I tested the detection of NCL files with 2000 samples.
|
||||
|
||||
15
|
||||
00:01:18,000 --> 00:01:25,000
|
||||
The Bayesian classifier doesn't seem to be very good at distinguishing text from NCL.
|
||||
|
||||
16
|
||||
00:01:25,000 --> 00:01:30,740
|
||||
We could try to improve it by adding more samples, or we can define a new heuristic rule.
|
||||
|
||||
17
|
||||
00:01:31,300 --> 00:01:36,200
|
||||
- Do you want me to send you the sample files?
|
||||
- Yes, please do.
|
||||
|
||||
18
|
||||
00:01:37,500 --> 00:01:39,500
|
||||
In your inbox.
|
||||
|
||||
19
|
||||
00:01:41,285 --> 00:01:48,216
|
||||
- So if I manually go through these and sort out the errors, would that help?
|
||||
- Not really.
|
||||
|
||||
20
|
||||
00:01:48,540 --> 00:01:55,145
|
||||
It's a matter of keywords so there's not much to do there except for adding new samples.
|
||||
|
||||
21
|
||||
00:01:55,447 --> 00:02:02,000
|
||||
If adding a few more samples doesn't improve things, we'll see how to define a new heuristic rule.
|
||||
|
||||
22
|
||||
00:02:04,740 --> 00:02:09,600
|
||||
- I added quite a few NCL samples.
|
||||
- That's a bit over the top, isn't it?
|
||||
|
||||
23
|
||||
00:02:10,250 --> 00:02:16,000
|
||||
We currently can't add too many samples because of #2117.
|
||||
|
||||
24
|
||||
00:02:18,000 --> 00:02:20,830
|
||||
(sigh) I decreased the number of added samples.
|
||||
|
||||
25
|
||||
00:02:21,630 --> 00:02:25,300
|
||||
Could you test the detection results in local with the samples I gave you?
|
||||
|
||||
26
|
||||
00:02:26,000 --> 00:02:28,670
|
||||
- What is the command to run that test?
|
||||
- Here...
|
||||
|
||||
27
|
||||
00:02:28,716 --> 00:02:38,650
|
||||
[Coding intensifies]
|
||||
|
||||
28
|
||||
00:02:38,650 --> 00:02:43,330
|
||||
It is getting hung up on a false detection of Frege in one of the Text samples.
|
||||
|
||||
29
|
||||
00:02:43,540 --> 00:02:46,115
|
||||
Do you have any suggestions for implementing a heuristic?
|
||||
|
||||
30
|
||||
00:02:47,640 --> 00:02:55,200
|
||||
#2441 should fix this. In the meantime, you can change this in "test_heuristics.rb"
|
||||
|
||||
31
|
||||
00:02:55,165 --> 00:02:57,240
|
||||
Why did you have to change this?
|
||||
|
||||
32
|
||||
00:02:57,777 --> 00:03:04,480
|
||||
- It doesn't work for me unless I do that.
|
||||
- Hum, same for me. Arfon, does it work for you?
|
||||
|
||||
33
|
||||
00:03:04,920 --> 00:03:08,830
|
||||
Requiring linguist/language doesn't work for me either.
|
||||
|
||||
34
|
||||
00:03:09,300 --> 00:03:13,885
|
||||
We restructured some of the requires a while ago and I think this is just out-of-date code.
|
||||
|
||||
35
|
||||
00:03:14,065 --> 00:03:20,950
|
||||
From a large sample of known NCL files taken from Github, it's now predicting with about 98% accuracy.
|
||||
|
||||
36
|
||||
00:03:21,183 --> 00:03:28,000
|
||||
For a large sample of other files with the NCL extension, it is around 92%.
|
||||
|
||||
37
|
||||
00:03:27,880 --> 00:03:30,950
|
||||
From those, nearly all of the errors come from one GitHub repository,
|
||||
|
||||
38
|
||||
00:03:30,950 --> 00:03:34,160
|
||||
and they all contain the text strings, "The URL" and "The Title".
|
||||
|
||||
39
|
||||
00:03:35,660 --> 00:03:43,260
|
||||
- Do you mean 92% files correctly identified as text?
|
||||
- Yes, it correctly identifies 92% as text.
|
||||
|
||||
40
|
||||
00:03:44,000 --> 00:03:46,150
|
||||
I'd really like to see this dramatically reduced.
|
||||
|
||||
41
|
||||
00:03:46,150 --> 00:03:51,150
|
||||
What happens if we reduce to around 5 NCL sample files?
|
||||
|
||||
42
|
||||
00:03:51,150 --> 00:03:52,600
|
||||
Does Linguist still do a reasonable job?
|
||||
|
||||
43
|
||||
00:03:53,470 --> 00:03:58,190
|
||||
I reduced it to 16 NCL samples and 8 text samples.
|
||||
|
||||
44
|
||||
00:03:58,190 --> 00:04:01,720
|
||||
It correctly classifies my whole set of known NCL files.
|
||||
|
||||
45
|
||||
00:04:01,870 --> 00:04:05,730
|
||||
I tried with 5 samples but could not get the same level of accuracy.
|
||||
|
||||
46
|
||||
00:04:06,670 --> 00:04:10,400
|
||||
It incorrectly classifies all of the NCL files in this GitHub repository.
|
||||
|
||||
47
|
||||
00:04:11,130 --> 00:04:14,660
|
||||
All of these files contain the text strings, "THE_URL:" and "THE_TITLE:".
|
||||
|
||||
48
|
||||
00:04:14,660 --> 00:04:19,500
|
||||
It did not misclassify any other text-files with the extension NCL.
|
||||
|
||||
49
|
||||
00:04:19,970 --> 00:04:25,188
|
||||
With 100% accuracy? Does that mean it that the results are better with less samples??
|
||||
|
||||
50
|
||||
00:04:25,610 --> 00:04:31,190
|
||||
I also removed a sample text-file which should have been classified as an NCL file.
|
||||
|
||||
51
|
||||
00:04:31,000 --> 00:04:35,895
|
||||
I think that probably made most of the difference, although I didn't test it atomically.
|
||||
|
||||
52
|
||||
00:04:35,895 --> 00:04:38,370
|
||||
Okay, that makes more sense.
|
||||
|
||||
53
|
||||
00:04:39,515 --> 00:04:43,450
|
||||
I don't get the same results for the text files. Full results here.
|
||||
|
||||
54
|
||||
00:04:44,650 --> 00:04:50,000
|
||||
They all look correctly classified to me, except for the ones in Fanghuan's repository.
|
||||
|
||||
55
|
||||
00:04:50,000 --> 00:04:55,920
|
||||
I manually went through all of the ones where I didn't already know based on the filename or the repository owner.
|
||||
|
||||
56
|
||||
00:04:56,526 --> 00:05:00,000
|
||||
[Presses button] It now correctly classifies all of my test files.
|
||||
|
||||
57
|
||||
00:05:00,000 --> 00:05:05,970
|
||||
R. Pavlick, thanks for this. These changes will be live in the next release of Linguist. In the next couple of weeks.
|
||||
|
||||
58
|
||||
00:05:05,970 --> 00:05:07,450
|
||||
Great! Thanks.
|
||||
662
samples/Turing/simplegame.t
Normal file
662
samples/Turing/simplegame.t
Normal file
@@ -0,0 +1,662 @@
|
||||
%This is a comment
|
||||
var x : array 0 .. 100 of int
|
||||
var rangeX, rangeY, loopFor : int := 0
|
||||
setscreen ("graphics:696;400,nobuttonbar")
|
||||
setscreen ("nocursor")
|
||||
setscreen ("noecho")
|
||||
var colourP : string := "Yellow"
|
||||
var title : int := Font.New ("Algerian:60")
|
||||
var subtitle : int := Font.New ("Algerian:20")
|
||||
var xValue, yValue, font1, font2, instructionsTitle : int
|
||||
var scoreR, scoreY, button : int := 0
|
||||
var scoreRS, scoreYS, PreventFor : string
|
||||
var win : string := "N"
|
||||
var full, samePlayer : boolean := false
|
||||
font1 := Font.New ("Algerian:20")
|
||||
font2 := Font.New ("TimesNewRoman:15")
|
||||
instructionsTitle := Font.New ("Algerian:35")
|
||||
var shouldPlay : boolean := true
|
||||
forward proc game
|
||||
for i : 0 .. 100
|
||||
x (i) := 0
|
||||
end for
|
||||
proc pauseProgram
|
||||
var reply : string (1)
|
||||
getch (reply)
|
||||
end pauseProgram
|
||||
process backgroundMusic
|
||||
loop
|
||||
exit when shouldPlay = false
|
||||
Music.PlayFile ("music.MP3")
|
||||
end loop
|
||||
end backgroundMusic
|
||||
proc winner
|
||||
cls
|
||||
win := "N"
|
||||
for i : 1 .. 100
|
||||
x (i) := 0
|
||||
end for
|
||||
drawfillbox (0, 0, 696, 400, black)
|
||||
scoreRS := "Red Wins: " + intstr (scoreR)
|
||||
scoreYS := "Yellow Wins: " + intstr (scoreY)
|
||||
Font.Draw ("", 190, 320, title, 48)
|
||||
Font.Draw (scoreRS, 0, 250, font1, 52)
|
||||
Font.Draw (scoreYS, 0, 220, font1, 52)
|
||||
Font.Draw ("Press any Key to continue.", 180, 100, subtitle, 12)
|
||||
pauseProgram
|
||||
game
|
||||
end winner
|
||||
body proc game
|
||||
for i : 1 .. 100
|
||||
x (i) := 0
|
||||
end for
|
||||
cls
|
||||
drawfillbox (0, 0, 700, 400, black)%Grid
|
||||
Draw.ThickLine (0, 400, 0, 0, 5, 48)
|
||||
Draw.ThickLine (696, 400, 696, 0, 5, 48)
|
||||
Draw.ThickLine (3, 0, 696, 0, 5, 48)
|
||||
Draw.ThickLine (696, 0, 696, 70, 5, 48)
|
||||
Draw.ThickLine (610, 70, 87, 70, 5, 48)
|
||||
Draw.ThickLine (87, 70, 87, 400, 5, 48)
|
||||
Draw.ThickLine (87, 400, 0, 400, 5, 48)
|
||||
Draw.ThickLine (173, 70, 173, 400, 5, 48)
|
||||
Draw.ThickLine (260, 70, 260, 400, 5, 48)
|
||||
Draw.ThickLine (347, 70, 347, 400, 5, 48)
|
||||
Draw.ThickLine (435, 70, 435, 400, 5, 48)
|
||||
Draw.ThickLine (521, 70, 521, 400, 5, 48)
|
||||
Draw.ThickLine (609, 70, 609, 400, 5, 48)
|
||||
Draw.ThickLine (0, 70, 87, 70, 2, 11) %NEW!
|
||||
Draw.ThickLine (0, 120, 87, 120, 2, 11)
|
||||
Draw.ThickLine (0, 170, 87, 170, 2, 11)
|
||||
Draw.ThickLine (0, 220, 87, 220, 2, 11)
|
||||
Draw.ThickLine (0, 270, 87, 270, 2, 11)
|
||||
Draw.ThickLine (0, 320, 87, 320, 2, 11)
|
||||
Draw.ThickLine (0, 370, 87, 370, 2, 11)
|
||||
Draw.ThickLine (609, 70, 696, 70, 2, 11) %Part 2
|
||||
Draw.ThickLine (609, 120, 696, 120, 2, 11)
|
||||
Draw.ThickLine (609, 170, 696, 170, 2, 11)
|
||||
Draw.ThickLine (609, 220, 696, 220, 2, 11)
|
||||
Draw.ThickLine (609, 270, 696, 270, 2, 11)
|
||||
Draw.ThickLine (609, 320, 696, 320, 2, 11)
|
||||
Draw.ThickLine (609, 370, 696, 370, 2, 11)
|
||||
loop
|
||||
if colourP = "Yellow" then
|
||||
if button = 1 then
|
||||
if (rangeX >= 87 and rangeX <= 173) then
|
||||
%Drop on right corner (now verifies height)
|
||||
if x (1) = 0 then
|
||||
x (1) := 1
|
||||
loopFor := 300
|
||||
elsif x (2) = 0 then
|
||||
x (2) := 1
|
||||
loopFor := 250
|
||||
elsif x (3) = 0 then
|
||||
x (3) := 1
|
||||
loopFor := 200
|
||||
elsif x (4) = 0 then
|
||||
x (4) := 1
|
||||
loopFor := 150
|
||||
elsif x (5) = 0 then
|
||||
x (5) := 1
|
||||
loopFor := 100
|
||||
elsif x (6) = 0 then
|
||||
x (6) := 1
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (135, 401 - i, 25, 25, black)
|
||||
drawfilloval (135, 400 - i, 25, 25, yellow)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 174 and rangeX <= 260) then
|
||||
if x (7) = 0 then %Drop on right corner (now verifies height)
|
||||
x (7) := 1
|
||||
loopFor := 300
|
||||
elsif x (8) = 0 then
|
||||
x (8) := 1
|
||||
loopFor := 250
|
||||
elsif x (9) = 0 then
|
||||
x (9) := 1
|
||||
loopFor := 200
|
||||
elsif x (10) = 0 then
|
||||
x (10) := 1
|
||||
loopFor := 150
|
||||
elsif x (11) = 0 then
|
||||
x (11) := 1
|
||||
loopFor := 100
|
||||
elsif x (12) = 0 then
|
||||
x (12) := 1
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (222, 401 - i, 25, 25, black)
|
||||
drawfilloval (222, 400 - i, 25, 25, yellow)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 261 and rangeX <= 347) then
|
||||
if x (13) = 0 then%Drop on right corner (now verifies height)
|
||||
x (13) := 1
|
||||
loopFor := 300
|
||||
elsif x (14) = 0 then
|
||||
x (14) := 1
|
||||
loopFor := 250
|
||||
elsif x (15) = 0 then
|
||||
x (15) := 1
|
||||
loopFor := 200
|
||||
elsif x (16) = 0 then
|
||||
x (16) := 1
|
||||
loopFor := 150
|
||||
elsif x (17) = 0 then
|
||||
x (17) := 1
|
||||
loopFor := 100
|
||||
elsif x (18) = 0 then
|
||||
x (18) := 1
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
samePlayer := true
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (309, 401 - i, 25, 25, black)
|
||||
drawfilloval (309, 400 - i, 25, 25, yellow)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 348 and rangeX <= 434) then
|
||||
if x (19) = 0 then %Drop on right corner (now verifies height)
|
||||
x (19) := 1
|
||||
loopFor := 300
|
||||
elsif x (20) = 0 then
|
||||
x (20) := 1
|
||||
loopFor := 250
|
||||
elsif x (21) = 0 then
|
||||
x (21) := 1
|
||||
loopFor := 200
|
||||
elsif x (22) = 0 then
|
||||
x (22) := 1
|
||||
loopFor := 150
|
||||
elsif x (23) = 0 then
|
||||
x (23) := 1
|
||||
loopFor := 100
|
||||
elsif x (24) = 0 then
|
||||
x (24) := 1
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (396, 401 - i, 25, 25, black)
|
||||
drawfilloval (396, 400 - i, 25, 25, yellow)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 435 and rangeX <= 521) then
|
||||
if x (25) = 0 then %Drop on right corner (now verifies height)
|
||||
x (25) := 1
|
||||
loopFor := 300
|
||||
elsif x (26) = 0 then
|
||||
x (26) := 1
|
||||
loopFor := 250
|
||||
elsif x (27) = 0 then
|
||||
x (27) := 1
|
||||
loopFor := 200
|
||||
elsif x (28) = 0 then
|
||||
x (28) := 1
|
||||
loopFor := 150
|
||||
elsif x (29) = 0 then
|
||||
x (29) := 1
|
||||
loopFor := 100
|
||||
elsif x (30) = 0 then
|
||||
x (30) := 1
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (483, 401 - i, 25, 25, black)
|
||||
drawfilloval (483, 400 - i, 25, 25, yellow)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 522 and rangeX <= 609) then
|
||||
if x (31) = 0 then %Drop on right corner (now verifies height)
|
||||
x (31) := 1
|
||||
loopFor := 300
|
||||
elsif x (32) = 0 then
|
||||
x (32) := 1
|
||||
loopFor := 250
|
||||
elsif x (33) = 0 then
|
||||
x (33) := 1
|
||||
loopFor := 200
|
||||
elsif x (34) = 0 then
|
||||
x (34) := 1
|
||||
loopFor := 150
|
||||
elsif x (35) = 0 then
|
||||
x (35) := 1
|
||||
loopFor := 100
|
||||
elsif x (36) = 0 then
|
||||
x (36) := 1
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (570, 401 - i, 25, 25, black)
|
||||
drawfilloval (570, 400 - i, 25, 25, yellow)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
end if
|
||||
if samePlayer = true then
|
||||
samePlayer := false
|
||||
else
|
||||
colourP := "Red"
|
||||
end if
|
||||
end if
|
||||
else
|
||||
if button = 1 then
|
||||
if (rangeX >= 87 and rangeX <= 173) then
|
||||
if x (1) = 0 then %Drop on right corner (now verifies height)
|
||||
x (1) := 2
|
||||
loopFor := 300
|
||||
elsif x (2) = 0 then
|
||||
x (2) := 2
|
||||
loopFor := 250
|
||||
elsif x (3) = 0 then
|
||||
x (3) := 2
|
||||
loopFor := 200
|
||||
elsif x (4) = 0 then
|
||||
x (4) := 2
|
||||
loopFor := 150
|
||||
elsif x (5) = 0 then
|
||||
x (5) := 2
|
||||
loopFor := 100
|
||||
elsif x (6) = 0 then
|
||||
x (6) := 2
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (135, 401 - i, 25, 25, black)
|
||||
drawfilloval (135, 400 - i, 25, 25, 12)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 174 and rangeX <= 260) then
|
||||
if x (7) = 0 then %Drop on right corner (now verifies height)
|
||||
x (7) := 2
|
||||
loopFor := 300
|
||||
elsif x (8) = 0 then
|
||||
x (8) := 2
|
||||
loopFor := 250
|
||||
elsif x (9) = 0 then
|
||||
x (9) := 2
|
||||
loopFor := 200
|
||||
elsif x (10) = 0 then
|
||||
x (10) := 2
|
||||
loopFor := 150
|
||||
elsif x (11) = 0 then
|
||||
x (11) := 2
|
||||
loopFor := 100
|
||||
elsif x (12) = 0 then
|
||||
x (12) := 2
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (222, 401 - i, 25, 25, black)
|
||||
drawfilloval (222, 400 - i, 25, 25, 12)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 261 and rangeX <= 347) then
|
||||
if x (13) = 0 then %Drop on right corner (now verifies height)
|
||||
x (13) := 2
|
||||
loopFor := 300
|
||||
elsif x (14) = 0 then
|
||||
x (14) := 2
|
||||
loopFor := 250
|
||||
elsif x (15) = 0 then
|
||||
x (15) := 2
|
||||
loopFor := 200
|
||||
elsif x (16) = 0 then
|
||||
x (16) := 2
|
||||
loopFor := 150
|
||||
elsif x (17) = 0 then
|
||||
x (17) := 2
|
||||
loopFor := 100
|
||||
elsif x (18) = 0 then
|
||||
x (18) := 2
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
samePlayer := true
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (309, 401 - i, 25, 25, black)
|
||||
drawfilloval (309, 400 - i, 25, 25, 12)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 348 and rangeX <= 434) then
|
||||
%Drop on right corner (now verifies height)
|
||||
if x (19) = 0 then
|
||||
x (19) := 2
|
||||
loopFor := 300
|
||||
elsif x (20) = 0 then
|
||||
x (20) := 2
|
||||
loopFor := 250
|
||||
elsif x (21) = 0 then
|
||||
x (21) := 2
|
||||
loopFor := 200
|
||||
elsif x (22) = 0 then
|
||||
x (22) := 2
|
||||
loopFor := 150
|
||||
elsif x (23) = 0 then
|
||||
x (23) := 2
|
||||
loopFor := 100
|
||||
elsif x (24) = 0 then
|
||||
x (24) := 2
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (396, 401 - i, 25, 25, black)
|
||||
drawfilloval (396, 400 - i, 25, 25, 12)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 435 and rangeX <= 521) then
|
||||
%Drop on right corner (now verifies height)
|
||||
if x (25) = 0 then
|
||||
x (25) := 2
|
||||
loopFor := 300
|
||||
elsif x (26) = 0 then
|
||||
x (26) := 2
|
||||
loopFor := 250
|
||||
elsif x (27) = 0 then
|
||||
x (27) := 2
|
||||
loopFor := 200
|
||||
elsif x (28) = 0 then
|
||||
x (28) := 2
|
||||
loopFor := 150
|
||||
elsif x (29) = 0 then
|
||||
x (29) := 2
|
||||
loopFor := 100
|
||||
elsif x (30) = 0 then
|
||||
x (30) := 2
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (483, 401 - i, 25, 25, black)
|
||||
drawfilloval (483, 400 - i, 25, 25, 12)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
elsif (rangeX >= 522 and rangeX <= 609) then
|
||||
%Drop on right corner (now verifies height)
|
||||
if x (31) = 0 then
|
||||
x (31) := 2
|
||||
loopFor := 300
|
||||
elsif x (32) = 0 then
|
||||
x (32) := 2
|
||||
loopFor := 250
|
||||
elsif x (33) = 0 then
|
||||
x (33) := 2
|
||||
loopFor := 200
|
||||
elsif x (34) = 0 then
|
||||
x (34) := 2
|
||||
loopFor := 150
|
||||
elsif x (35) = 0 then
|
||||
x (35) := 2
|
||||
loopFor := 100
|
||||
elsif x (36) = 0 then
|
||||
x (36) := 2
|
||||
loopFor := 50
|
||||
else
|
||||
full := true
|
||||
samePlayer := true
|
||||
end if
|
||||
if full = true then
|
||||
full := false
|
||||
else
|
||||
for i : 1 .. loopFor
|
||||
drawfilloval (570, 401 - i, 25, 25, black)
|
||||
drawfilloval (570, 400 - i, 25, 25, 12)
|
||||
delay (1)
|
||||
end for
|
||||
end if
|
||||
end if
|
||||
if samePlayer then
|
||||
samePlayer := false
|
||||
else
|
||||
colourP := "Yellow"
|
||||
end if
|
||||
|
||||
end if
|
||||
end if
|
||||
mousewhere (rangeX, rangeY, button)
|
||||
%Detect Winner - Horizontal Verification
|
||||
for i : 1 .. 18
|
||||
if (x (i) = x (i + 6) and x (i) = x (i + 12) and x (i) = x (i + 18) and x (i) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y" %Red
|
||||
elsif x (i) = x (i + 6) and x (i) = x (i + 12) and x (i) = x (i + 18) and x (i) = 2 then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
if i > 6 then
|
||||
if x (i - 6) = x (i) and x (i) = x (i + 6) and x (i) = x (i + 12) and x (i) = 2 then
|
||||
scoreR := scoreR + 1 %Yellow
|
||||
win := "Y"
|
||||
elsif x (i - 6) = x (i) and x (i) = x (i + 6) and x (i) = x (i + 12) and x (i) = 1 then
|
||||
scoreY := scoreY + 1 %Yellow
|
||||
win := "Y"
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
end for
|
||||
%Verticle Detection
|
||||
for i : 1 .. 36 by 6
|
||||
if (x (i) = x (i + 1) and x (i) = x (i + 2) and x (i) = x (i + 3) and x (i) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (i) = x (i + 1) and x (i) = x (i + 2) and x (i) = x (i + 3) and x (i) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 1) = x (i + 2) and x (i + 1) = x (i + 3) and x (i + 1) = x (i + 4) and x (i + 1) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 1) = x (i + 2) and x (i + 1) = x (i + 3) and x (i + 1) = x (i + 4) and x (i + 1) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 2) = x (i + 3) and x (i + 2) = x (i + 4) and x (i + 2) = x (i + 5) and x (i + 2) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 2) = x (i + 3) and x (i + 2) = x (i + 4) and x (i + 2) = x (i + 5) and x (i + 2) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
end if
|
||||
end for
|
||||
for i : 1 .. 36 %Positive Slope
|
||||
if (x (i) = x (i + 7) and x (i) = x (i + 14) and x (i) = x (i + 21) and x (i) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (i) = x (i + 7) and x (i) = x (i + 14) and x (i) = x (i + 21) and x (i) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 1) = x (i + 8) and x (i + 1) = x (i + 15) and x (i + 1) = x (i + 22) and x (i + 1) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 1) = x (i + 8) and x (i + 1) = x (i + 15) and x (i + 1) = x (i + 22) and x (i + 1) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 2) = x (i + 9) and x (i + 2) = x (i + 16) and x (i + 2) = x (i + 23) and x (i + 2) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 2) = x (i + 9) and x (i + 2) = x (i + 16) and x (i + 2) = x (i + 23) and x (i + 2) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
elsif (x (1) = x (7) and x (1) = x (13) and x (1) = x (19) and x (1) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (1) = x (7) and x (1) = x (13) and x (1) = x (19) and x (1) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
end if
|
||||
end for
|
||||
for i : 1 .. 70 %Negative Slope
|
||||
if i > 24 then
|
||||
if (x (i) = x (i - 5) and x (i) = x (i - 10) and x (i) = x (i - 15) and x (i) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (i) = x (i - 5) and x (i) = x (i - 10) and x (i) = x (i - 15) and x (i) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 1) = x (i - 6) and x (i - 1) = x (i - 11) and x (i - 1) = x (i - 16) and x (i + 1) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 1) = x (i - 6) and x (i - 1) = x (i - 11) and x (i - 1) = x (i - 16) and x (i + 1) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 2) = x (i - 7) and x (i - 2) = x (i - 12) and x (i - 2) = x (i - 17) and x (i + 2) = 1) then
|
||||
scoreY := scoreY + 1
|
||||
win := "Y"
|
||||
elsif (x (i + 2) = x (i - 7) and x (i + 2) = x (i - 12) and x (i - 2) = x (i - 17) and x (i + 2) = 2) then
|
||||
scoreR := scoreR + 1
|
||||
win := "Y"
|
||||
end if
|
||||
end if
|
||||
end for
|
||||
exit when win = "Y"
|
||||
end loop
|
||||
winner
|
||||
end game
|
||||
proc mainMenu
|
||||
drawfillbox (0, 0, 696, 400, black)
|
||||
Font.Draw ("", 295, 220, font1, 48)
|
||||
Font.Draw ("", 251, 150, font1, 48)
|
||||
Font.Draw ("", 305, 79, font1, 48)
|
||||
loop
|
||||
Font.Draw ("Connect4", 155, 290, title, 52)
|
||||
Mouse.Where (xValue, yValue, button)
|
||||
if xValue >= 215 and xValue <= 455 then
|
||||
if yValue >= 200 and yValue <= 250 then
|
||||
if button = 1 then
|
||||
delay (1000)
|
||||
game
|
||||
exit
|
||||
end if
|
||||
drawbox (215, 200, 455, 250, 48)
|
||||
else
|
||||
drawbox (215, 200, 455, 250, black)
|
||||
end if
|
||||
if yValue >= 130 and yValue <= 180 then
|
||||
if button = 1 then
|
||||
drawfillbox (0, 0, 696, 400, black)
|
||||
Font.Draw ("", 70, 350, instructionsTitle, 48)
|
||||
Font.Draw ("", 0, 320, font2, 52)
|
||||
Font.Draw ("", 0, 280, font2, 52)
|
||||
Font.Draw ("", 0, 240, font2, 52)
|
||||
Font.Draw ("", 0, 200, font2, 52)
|
||||
Font.Draw ("", 245, 75, font2, 14)
|
||||
pauseProgram
|
||||
mainMenu
|
||||
end if
|
||||
drawbox (215, 130, 455, 180, 48)
|
||||
else
|
||||
drawbox (215, 130, 455, 180, black)
|
||||
end if
|
||||
if yValue >= 60 and yValue <= 110 then
|
||||
if button = 1 then
|
||||
shouldPlay := false
|
||||
exit
|
||||
end if
|
||||
drawbox (215, 60, 455, 110, 48)
|
||||
else
|
||||
drawbox (215, 60, 455, 110, black)
|
||||
end if
|
||||
end if
|
||||
exit when button = 1
|
||||
end loop
|
||||
end mainMenu
|
||||
proc intro
|
||||
drawfillbox (0, 0, 696, 400, black)
|
||||
for i : 1 .. 400
|
||||
drawfillbox (0, 0, 696, 400, black)
|
||||
Font.Draw ("", 560 - i, 250, title, 48)
|
||||
Font.Draw ("", -255 + i, 220, subtitle, 52)
|
||||
delay (4)
|
||||
end for
|
||||
for i : 1 .. 390
|
||||
drawfilloval (40, 401 - i, 20, 20, black)
|
||||
drawfilloval (656, 401 - i, 20, 20, black)
|
||||
drawfilloval (656, 400 - i, 20, 20, 12)
|
||||
drawfilloval (40, 400 - i, 20, 20, yellow)
|
||||
delay (3)
|
||||
end for
|
||||
loop
|
||||
drawfillbox (0, 0, 696, 100, black)
|
||||
Font.Draw ("Press any Key to Continue.", 169, 20, subtitle, 12)
|
||||
delay (300)
|
||||
drawfillbox (0, 0, 696, 100, black)
|
||||
Font.Draw ("Press any Key to Continue.", 169, 20, subtitle, 14)
|
||||
delay (300)
|
||||
exit when hasch
|
||||
end loop
|
||||
mainMenu
|
||||
end intro
|
||||
%fork backgroundMusic
|
||||
intro
|
||||
@@ -1,19 +1,19 @@
|
||||
% Accepts a number and calculates its factorial
|
||||
|
||||
function factorial (n: int) : real
|
||||
if n = 0 then
|
||||
result 1
|
||||
else
|
||||
result n * factorial (n - 1)
|
||||
if n = 0 then
|
||||
result 1
|
||||
else
|
||||
result n * factorial (n - 1)
|
||||
end if
|
||||
end factorial
|
||||
|
||||
var n: int
|
||||
loop
|
||||
put "Please input an integer: " ..
|
||||
get n
|
||||
exit when n >= 0
|
||||
put "Input must be a non-negative integer."
|
||||
put "Please input an integer: " ..
|
||||
get n
|
||||
exit when n >= 0
|
||||
put "Input must be a non-negative integer."
|
||||
end loop
|
||||
|
||||
put "The factorial of ", n, " is ", factorial (n)
|
||||
put "The factorial of ", n, " is ", factorial (n)
|
||||
@@ -411,6 +411,10 @@ class TestFileBlob < Minitest::Test
|
||||
assert sample_blob("public/javascripts/tiny_mce_popup.js").vendored?
|
||||
assert sample_blob("public/javascripts/tiny_mce_src.js").vendored?
|
||||
|
||||
# Ace Editor
|
||||
assert sample_blob("ace-builds/src/ace.js").vendored?
|
||||
assert sample_blob("static/project/ace-builds/src/ace.js").vendored?
|
||||
|
||||
# AngularJS
|
||||
assert sample_blob("public/javascripts/angular.js").vendored?
|
||||
assert sample_blob("public/javascripts/angular.min.js").vendored?
|
||||
|
||||
@@ -36,7 +36,7 @@ class TestGenerated < Minitest::Test
|
||||
generated_loading_data(File.join(samples_path, name))
|
||||
end
|
||||
|
||||
def test_check_generated
|
||||
def test_check_generated
|
||||
# Xcode project files
|
||||
generated_sample_without_loading_data("Binary/MainMenu.nib")
|
||||
generated_sample_without_loading_data("Dummy/foo.xcworkspacedata")
|
||||
@@ -51,6 +51,9 @@ class TestGenerated < Minitest::Test
|
||||
# Node modules
|
||||
generated_sample_without_loading_data("Dummy/node_modules/foo.js")
|
||||
|
||||
# npm shrinkwrap file
|
||||
generated_sample_without_loading_data("Dummy/npm-shrinkwrap.json")
|
||||
|
||||
# Godep saved dependencies
|
||||
generated_sample_without_loading_data("Godeps/Godeps.json")
|
||||
generated_sample_without_loading_data("Godeps/_workspace/src/github.com/kr/s3/sign.go")
|
||||
|
||||
2
vendor/grammars/AutoHotkey
vendored
2
vendor/grammars/AutoHotkey
vendored
Submodule vendor/grammars/AutoHotkey updated: 02fe2a8d3d...6ba0aedaf8
2
vendor/grammars/Elm
vendored
2
vendor/grammars/Elm
vendored
Submodule vendor/grammars/Elm updated: 227327e33e...8e8af4a712
2
vendor/grammars/Handlebars
vendored
2
vendor/grammars/Handlebars
vendored
Submodule vendor/grammars/Handlebars updated: 2e9f688400...94ef9439d8
2
vendor/grammars/MagicPython
vendored
2
vendor/grammars/MagicPython
vendored
Submodule vendor/grammars/MagicPython updated: fd23525656...820a9310f6
2
vendor/grammars/Sublime-Coq
vendored
2
vendor/grammars/Sublime-Coq
vendored
Submodule vendor/grammars/Sublime-Coq updated: 0909903a9a...ea5057282e
2
vendor/grammars/SublimePapyrus
vendored
2
vendor/grammars/SublimePapyrus
vendored
Submodule vendor/grammars/SublimePapyrus updated: 66a085b1fd...51ec72ab00
2
vendor/grammars/atom-fsharp
vendored
2
vendor/grammars/atom-fsharp
vendored
Submodule vendor/grammars/atom-fsharp updated: 6470266565...4f9d5510f3
1
vendor/grammars/atom-language-clean
vendored
Submodule
1
vendor/grammars/atom-language-clean
vendored
Submodule
Submodule vendor/grammars/atom-language-clean added at a9b837801d
1
vendor/grammars/atom-language-srt
vendored
Submodule
1
vendor/grammars/atom-language-srt
vendored
Submodule
Submodule vendor/grammars/atom-language-srt added at 386b4b64ae
2
vendor/grammars/atomic-dreams
vendored
2
vendor/grammars/atomic-dreams
vendored
Submodule vendor/grammars/atomic-dreams updated: 4384f94ff3...7a4fb5a692
2
vendor/grammars/bro-sublime
vendored
2
vendor/grammars/bro-sublime
vendored
Submodule vendor/grammars/bro-sublime updated: 8219f5ee09...28125c911e
2
vendor/grammars/d.tmbundle
vendored
2
vendor/grammars/d.tmbundle
vendored
Submodule vendor/grammars/d.tmbundle updated: 9b7d4a8e44...e4beff2ce5
2
vendor/grammars/html.tmbundle
vendored
2
vendor/grammars/html.tmbundle
vendored
Submodule vendor/grammars/html.tmbundle updated: 7710c79b16...2e9e024a1b
2
vendor/grammars/language-apl
vendored
2
vendor/grammars/language-apl
vendored
Submodule vendor/grammars/language-apl updated: 37552fbbf9...3a951edcb8
2
vendor/grammars/language-babel
vendored
2
vendor/grammars/language-babel
vendored
Submodule vendor/grammars/language-babel updated: cde20a210f...265937e465
2
vendor/grammars/language-clojure
vendored
2
vendor/grammars/language-clojure
vendored
Submodule vendor/grammars/language-clojure updated: bf4ad48378...d41af28800
2
vendor/grammars/language-coffee-script
vendored
2
vendor/grammars/language-coffee-script
vendored
Submodule vendor/grammars/language-coffee-script updated: 3f79112bb2...9ebf474016
2
vendor/grammars/language-csharp
vendored
2
vendor/grammars/language-csharp
vendored
Submodule vendor/grammars/language-csharp updated: efac6d4865...b3f1130b1a
2
vendor/grammars/language-csound
vendored
2
vendor/grammars/language-csound
vendored
Submodule vendor/grammars/language-csound updated: c303b56a44...f5c603ac11
2
vendor/grammars/language-gfm
vendored
2
vendor/grammars/language-gfm
vendored
Submodule vendor/grammars/language-gfm updated: 0e5e65d205...5435923521
2
vendor/grammars/language-javascript
vendored
2
vendor/grammars/language-javascript
vendored
Submodule vendor/grammars/language-javascript updated: 5fb7053b45...83f9e51bc9
2
vendor/grammars/language-jsoniq
vendored
2
vendor/grammars/language-jsoniq
vendored
Submodule vendor/grammars/language-jsoniq updated: 008a24589d...7e2a77f372
2
vendor/grammars/language-less
vendored
2
vendor/grammars/language-less
vendored
Submodule vendor/grammars/language-less updated: ac726d84f2...234fd8a37b
2
vendor/grammars/language-povray
vendored
2
vendor/grammars/language-povray
vendored
Submodule vendor/grammars/language-povray updated: 35b3705991...c9e175fd41
2
vendor/grammars/language-python
vendored
2
vendor/grammars/language-python
vendored
Submodule vendor/grammars/language-python updated: e981159420...d5ae69749b
2
vendor/grammars/language-renpy
vendored
2
vendor/grammars/language-renpy
vendored
Submodule vendor/grammars/language-renpy updated: 64ffc56191...883f51f4ef
1
vendor/grammars/language-restructuredtext
vendored
Submodule
1
vendor/grammars/language-restructuredtext
vendored
Submodule
Submodule vendor/grammars/language-restructuredtext added at 7133612568
2
vendor/grammars/language-shellscript
vendored
2
vendor/grammars/language-shellscript
vendored
Submodule vendor/grammars/language-shellscript updated: 8fe135d8f4...8019ad833c
2
vendor/grammars/language-toc-wow
vendored
2
vendor/grammars/language-toc-wow
vendored
Submodule vendor/grammars/language-toc-wow updated: 222248b767...f538862fdd
1
vendor/grammars/language-turing
vendored
Submodule
1
vendor/grammars/language-turing
vendored
Submodule
Submodule vendor/grammars/language-turing added at 5f1d5f2f1a
2
vendor/grammars/language-wavefront
vendored
2
vendor/grammars/language-wavefront
vendored
Submodule vendor/grammars/language-wavefront updated: 2e0e152eb2...4bebab3f9a
2
vendor/grammars/language-yaml
vendored
2
vendor/grammars/language-yaml
vendored
Submodule vendor/grammars/language-yaml updated: 2f64544195...9f55beb635
2
vendor/grammars/latex.tmbundle
vendored
2
vendor/grammars/latex.tmbundle
vendored
Submodule vendor/grammars/latex.tmbundle updated: b94521204a...a5c14e1ce9
2
vendor/grammars/mako-tmbundle
vendored
2
vendor/grammars/mako-tmbundle
vendored
Submodule vendor/grammars/mako-tmbundle updated: da79638669...45037e4e98
2
vendor/grammars/pawn-sublime-language
vendored
2
vendor/grammars/pawn-sublime-language
vendored
Submodule vendor/grammars/pawn-sublime-language updated: f49e709a23...879fae6157
2
vendor/grammars/perl6fe
vendored
2
vendor/grammars/perl6fe
vendored
Submodule vendor/grammars/perl6fe updated: f3fe47aa8d...7f646ac13a
1
vendor/grammars/restructuredtext.tmbundle
vendored
1
vendor/grammars/restructuredtext.tmbundle
vendored
Submodule vendor/grammars/restructuredtext.tmbundle deleted from 608d8bcdea
2
vendor/grammars/ruby-slim.tmbundle
vendored
2
vendor/grammars/ruby-slim.tmbundle
vendored
Submodule vendor/grammars/ruby-slim.tmbundle updated: 0baf7a453c...7452b27ea4
2
vendor/grammars/sas.tmbundle
vendored
2
vendor/grammars/sas.tmbundle
vendored
Submodule vendor/grammars/sas.tmbundle updated: ba5c74624c...012368ab93
2
vendor/grammars/sublime-glsl
vendored
2
vendor/grammars/sublime-glsl
vendored
Submodule vendor/grammars/sublime-glsl updated: 0443b921df...e29059b0d3
2
vendor/grammars/sublime-pony
vendored
2
vendor/grammars/sublime-pony
vendored
Submodule vendor/grammars/sublime-pony updated: b5eb8f8e97...02f37b174e
2
vendor/grammars/sublime-rust
vendored
2
vendor/grammars/sublime-rust
vendored
Submodule vendor/grammars/sublime-rust updated: f75f2b1026...167018cc0f
2
vendor/grammars/sublime-typescript
vendored
2
vendor/grammars/sublime-typescript
vendored
Submodule vendor/grammars/sublime-typescript updated: 7709dd317f...0d538fc748
2
vendor/grammars/sublimeassembly
vendored
2
vendor/grammars/sublimeassembly
vendored
Submodule vendor/grammars/sublimeassembly updated: cb9c99a4a9...edb58c8246
2
vendor/grammars/swift.tmbundle
vendored
2
vendor/grammars/swift.tmbundle
vendored
Submodule vendor/grammars/swift.tmbundle updated: 32141e91ee...662fd22bf8
2
vendor/grammars/vue-syntax-highlight
vendored
2
vendor/grammars/vue-syntax-highlight
vendored
Submodule vendor/grammars/vue-syntax-highlight updated: b4c91d1b32...a29a875bf3
25
vendor/licenses/grammar/atom-language-clean.txt
vendored
Normal file
25
vendor/licenses/grammar/atom-language-clean.txt
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: grammar
|
||||
name: atom-language-clean
|
||||
license: mit
|
||||
---
|
||||
Copyright (c) 2015 <Your name here>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
25
vendor/licenses/grammar/atom-language-srt.txt
vendored
Normal file
25
vendor/licenses/grammar/atom-language-srt.txt
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: grammar
|
||||
name: atom-language-srt
|
||||
license: mit
|
||||
---
|
||||
Copyright (c) 2016 Pieter Goetschalckx
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
26
vendor/licenses/grammar/language-restructuredtext.txt
vendored
Normal file
26
vendor/licenses/grammar/language-restructuredtext.txt
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: grammar
|
||||
name: language-restructuredtext
|
||||
license: mit
|
||||
---
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-2016 Cory Benfield
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
18
vendor/licenses/grammar/language-turing.txt
vendored
Normal file
18
vendor/licenses/grammar/language-turing.txt
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
type: grammar
|
||||
name: language-turing
|
||||
license: isc
|
||||
---
|
||||
Copyright (c) 2016, John Gardner
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
type: grammar
|
||||
name: restructuredtext.tmbundle
|
||||
license: permissive
|
||||
curated: true
|
||||
---
|
||||
|
||||
If not otherwise specified (see below), files in this repository fall under the following license:
|
||||
|
||||
Permission to copy, use, modify, sell and distribute this
|
||||
software is granted. This software is provided "as is" without
|
||||
express or implied warranty, and with no claim as to its
|
||||
suitability for any purpose.
|
||||
|
||||
An exception is made for files in readable text which contain their own license information, or files where an accompanying file exists (in the same directory) with a “-license” suffix added to the base-name name of the original file, and an extension of txt, html, or similar. For example “tidy” is accompanied by “tidy-license.txt”.
|
||||
Reference in New Issue
Block a user