mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-12-29 21:31:01 +00:00
Merge branch 'master' into associate-heuristic-with-extension
Conflicts: lib/linguist/heuristics.rb
This commit is contained in:
9
.gitmodules
vendored
9
.gitmodules
vendored
@@ -133,9 +133,6 @@
|
|||||||
[submodule "vendor/grammars/fancy-tmbundle"]
|
[submodule "vendor/grammars/fancy-tmbundle"]
|
||||||
path = vendor/grammars/fancy-tmbundle
|
path = vendor/grammars/fancy-tmbundle
|
||||||
url = https://github.com/fancy-lang/fancy-tmbundle
|
url = https://github.com/fancy-lang/fancy-tmbundle
|
||||||
[submodule "vendor/grammars/fsharpbinding"]
|
|
||||||
path = vendor/grammars/fsharpbinding
|
|
||||||
url = https://github.com/fsharp/fsharpbinding
|
|
||||||
[submodule "vendor/grammars/monkey.tmbundle"]
|
[submodule "vendor/grammars/monkey.tmbundle"]
|
||||||
path = vendor/grammars/monkey.tmbundle
|
path = vendor/grammars/monkey.tmbundle
|
||||||
url = https://github.com/gingerbeardman/monkey.tmbundle
|
url = https://github.com/gingerbeardman/monkey.tmbundle
|
||||||
@@ -644,3 +641,9 @@
|
|||||||
[submodule "vendor/grammars/smali-sublime"]
|
[submodule "vendor/grammars/smali-sublime"]
|
||||||
path = vendor/grammars/smali-sublime
|
path = vendor/grammars/smali-sublime
|
||||||
url = https://github.com/ShaneWilton/sublime-smali
|
url = https://github.com/ShaneWilton/sublime-smali
|
||||||
|
[submodule "vendor/grammars/language-jsoniq"]
|
||||||
|
path = vendor/grammars/language-jsoniq
|
||||||
|
url = http://github.com/wcandillon/language-jsoniq
|
||||||
|
[submodule "vendor/grammars/atom-fsharp"]
|
||||||
|
path = vendor/grammars/atom-fsharp
|
||||||
|
url = https://github.com/fsprojects/atom-fsharp
|
||||||
|
|||||||
@@ -169,6 +169,8 @@ vendor/grammars/asp.tmbundle:
|
|||||||
vendor/grammars/assembly.tmbundle:
|
vendor/grammars/assembly.tmbundle:
|
||||||
- objdump.x86asm
|
- objdump.x86asm
|
||||||
- source.x86asm
|
- source.x86asm
|
||||||
|
vendor/grammars/atom-fsharp/:
|
||||||
|
- source.fsharp
|
||||||
vendor/grammars/atom-salt:
|
vendor/grammars/atom-salt:
|
||||||
- source.python.salt
|
- source.python.salt
|
||||||
- source.yaml.salt
|
- source.yaml.salt
|
||||||
@@ -215,6 +217,7 @@ vendor/grammars/d.tmbundle:
|
|||||||
vendor/grammars/dart-sublime-bundle:
|
vendor/grammars/dart-sublime-bundle:
|
||||||
- source.dart
|
- source.dart
|
||||||
- source.pubspec
|
- source.pubspec
|
||||||
|
- text.dart-analysis-output
|
||||||
- text.dart-doccomments
|
- text.dart-doccomments
|
||||||
vendor/grammars/desktop.tmbundle:
|
vendor/grammars/desktop.tmbundle:
|
||||||
- source.desktop
|
- source.desktop
|
||||||
@@ -247,8 +250,6 @@ vendor/grammars/fish-tmbundle:
|
|||||||
vendor/grammars/fortran.tmbundle:
|
vendor/grammars/fortran.tmbundle:
|
||||||
- source.fortran
|
- source.fortran
|
||||||
- source.fortran.modern
|
- source.fortran.modern
|
||||||
vendor/grammars/fsharpbinding:
|
|
||||||
- source.fsharp
|
|
||||||
vendor/grammars/gap-tmbundle/:
|
vendor/grammars/gap-tmbundle/:
|
||||||
- source.gap
|
- source.gap
|
||||||
vendor/grammars/gettext.tmbundle:
|
vendor/grammars/gettext.tmbundle:
|
||||||
@@ -320,6 +321,9 @@ vendor/grammars/language-hy:
|
|||||||
vendor/grammars/language-javascript:
|
vendor/grammars/language-javascript:
|
||||||
- source.js
|
- source.js
|
||||||
- source.js.regexp
|
- source.js.regexp
|
||||||
|
vendor/grammars/language-jsoniq/:
|
||||||
|
- source.jq
|
||||||
|
- source.xq
|
||||||
vendor/grammars/language-python:
|
vendor/grammars/language-python:
|
||||||
- source.python
|
- source.python
|
||||||
- source.regexp.python
|
- source.regexp.python
|
||||||
|
|||||||
@@ -302,12 +302,30 @@ module Linguist
|
|||||||
end
|
end
|
||||||
|
|
||||||
disambiguate ".l" do |data|
|
disambiguate ".l" do |data|
|
||||||
if data.include?("(def(un|macro)\s")
|
if /\(def(un|macro)\s/.match(data)
|
||||||
Language["Common Lisp"]
|
Language["Common Lisp"]
|
||||||
elsif /^(%[%{}]xs|<.*>)/.match(data)
|
elsif /^(%[%{}]xs|<.*>)/.match(data)
|
||||||
Language["Lex"]
|
Language["Lex"]
|
||||||
elsif /^\.[a-z][a-z](\s|$)/.match(data)
|
elsif /^\.[a-z][a-z](\s|$)/i.match(data)
|
||||||
Language["Groff"]
|
Language["Groff"]
|
||||||
|
elsif /^\((de|class|rel|code|data|must)\s/.match(data)
|
||||||
|
Language["PicoLisp"]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
disambiguate "Groff", "Nemerle" do |data|
|
||||||
|
if /^[.']/.match(data)
|
||||||
|
Language["Groff"]
|
||||||
|
elsif /^(module|namespace|using)\s/.match(data)
|
||||||
|
Language["Nemerle"]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
disambiguate "GAS", "Groff" do |data|
|
||||||
|
if /^[.'][a-z][a-z](\s|$)/i.match(data)
|
||||||
|
Language["Groff"]
|
||||||
|
elsif /((^|\s)move?[. ])|\.(include|globa?l)\s/.match(data)
|
||||||
|
Language["GAS"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1041,6 +1041,7 @@ GAS:
|
|||||||
group: Assembly
|
group: Assembly
|
||||||
extensions:
|
extensions:
|
||||||
- .s
|
- .s
|
||||||
|
- .ms
|
||||||
tm_scope: source.asm.x86
|
tm_scope: source.asm.x86
|
||||||
ace_mode: assembly_x86
|
ace_mode: assembly_x86
|
||||||
|
|
||||||
@@ -1209,13 +1210,26 @@ Groff:
|
|||||||
extensions:
|
extensions:
|
||||||
- .man
|
- .man
|
||||||
- '.1'
|
- '.1'
|
||||||
|
- .1in
|
||||||
|
- .1m
|
||||||
|
- .1x
|
||||||
- '.2'
|
- '.2'
|
||||||
- '.3'
|
- '.3'
|
||||||
|
- .3in
|
||||||
|
- .3m
|
||||||
|
- .3qt
|
||||||
|
- .3x
|
||||||
- '.4'
|
- '.4'
|
||||||
- '.5'
|
- '.5'
|
||||||
- '.6'
|
- '.6'
|
||||||
- '.7'
|
- '.7'
|
||||||
|
- '.8'
|
||||||
|
- '.9'
|
||||||
- .l
|
- .l
|
||||||
|
- .ms
|
||||||
|
- .n
|
||||||
|
- .rno
|
||||||
|
- .roff
|
||||||
tm_scope: text.groff
|
tm_scope: text.groff
|
||||||
aliases:
|
aliases:
|
||||||
- nroff
|
- nroff
|
||||||
@@ -1508,11 +1522,12 @@ JSONLD:
|
|||||||
tm_scope: source.js
|
tm_scope: source.js
|
||||||
|
|
||||||
JSONiq:
|
JSONiq:
|
||||||
|
color: "#40d47e"
|
||||||
type: programming
|
type: programming
|
||||||
ace_mode: jsoniq
|
ace_mode: jsoniq
|
||||||
extensions:
|
extensions:
|
||||||
- .jq
|
- .jq
|
||||||
tm_scope: source.xquery
|
tm_scope: source.jq
|
||||||
|
|
||||||
Jade:
|
Jade:
|
||||||
group: HTML
|
group: HTML
|
||||||
@@ -2475,6 +2490,16 @@ Perl6:
|
|||||||
tm_scope: source.perl.6
|
tm_scope: source.perl.6
|
||||||
ace_mode: perl
|
ace_mode: perl
|
||||||
|
|
||||||
|
PicoLisp:
|
||||||
|
type: programming
|
||||||
|
extensions:
|
||||||
|
- .l
|
||||||
|
interpreters:
|
||||||
|
- picolisp
|
||||||
|
- pil
|
||||||
|
tm_scope: source.lisp
|
||||||
|
ace_mode: lisp
|
||||||
|
|
||||||
PigLatin:
|
PigLatin:
|
||||||
type: programming
|
type: programming
|
||||||
color: "#fcd7de"
|
color: "#fcd7de"
|
||||||
@@ -3554,6 +3579,7 @@ XQuery:
|
|||||||
- .xqm
|
- .xqm
|
||||||
- .xqy
|
- .xqy
|
||||||
ace_mode: xquery
|
ace_mode: xquery
|
||||||
|
tm_scope: source.xq
|
||||||
|
|
||||||
XS:
|
XS:
|
||||||
type: programming
|
type: programming
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
module Linguist
|
module Linguist
|
||||||
VERSION = "4.5.5"
|
VERSION = "4.5.6"
|
||||||
end
|
end
|
||||||
|
|||||||
164
samples/Common Lisp/array.l
Normal file
164
samples/Common Lisp/array.l
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
;;; -*- Mode: Lisp; Package: LISP -*-
|
||||||
|
;;;
|
||||||
|
;;; This file is part of xyzzy.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(provide "array")
|
||||||
|
|
||||||
|
(in-package "lisp")
|
||||||
|
|
||||||
|
(export '(make-vector make-array vector array-dimensions array-in-bounds-p
|
||||||
|
upgraded-array-element-type adjust-array))
|
||||||
|
|
||||||
|
(defun upgraded-array-element-type (type)
|
||||||
|
(cond ((or (eq type 't)
|
||||||
|
(null type))
|
||||||
|
't)
|
||||||
|
((member type '(character base-character standard-char
|
||||||
|
extended-character) :test #'eq)
|
||||||
|
'character)
|
||||||
|
(t
|
||||||
|
(setq type (car (si:canonicalize-type type)))
|
||||||
|
(cond ((or (eq type 't)
|
||||||
|
(null type))
|
||||||
|
't)
|
||||||
|
((member type '(character base-character standard-char
|
||||||
|
extended-character) :test #'eq)
|
||||||
|
'character)
|
||||||
|
(t 't)))))
|
||||||
|
|
||||||
|
(defun check-array-initialize-option (ies-p ics-p displaced-to)
|
||||||
|
(let ((x 0))
|
||||||
|
(and ies-p (incf x))
|
||||||
|
(and ics-p (incf x))
|
||||||
|
(and displaced-to (incf x))
|
||||||
|
(when (> x 1)
|
||||||
|
(error ":initial-element, :initial-contents, :displaced-to"))))
|
||||||
|
|
||||||
|
(defun make-vector (length &key
|
||||||
|
(element-type t)
|
||||||
|
(initial-element nil ies-p)
|
||||||
|
(initial-contents nil ics-p)
|
||||||
|
fill-pointer
|
||||||
|
adjustable
|
||||||
|
displaced-to
|
||||||
|
(displaced-index-offset 0))
|
||||||
|
(setq element-type (upgraded-array-element-type element-type))
|
||||||
|
(check-array-initialize-option ies-p ics-p displaced-to)
|
||||||
|
(let ((vector (si:*make-vector length element-type initial-element adjustable
|
||||||
|
fill-pointer displaced-to displaced-index-offset)))
|
||||||
|
(when ics-p
|
||||||
|
(si:*copy-into-seq vector initial-contents))
|
||||||
|
vector))
|
||||||
|
|
||||||
|
(defun make-array (dimensions &rest rest
|
||||||
|
&key
|
||||||
|
(element-type t)
|
||||||
|
(initial-element nil ies-p)
|
||||||
|
(initial-contents nil ics-p)
|
||||||
|
fill-pointer
|
||||||
|
adjustable
|
||||||
|
displaced-to
|
||||||
|
(displaced-index-offset 0))
|
||||||
|
(cond ((integerp dimensions)
|
||||||
|
(apply #'make-vector dimensions rest))
|
||||||
|
((= (length dimensions) 1)
|
||||||
|
(apply #'make-vector (car dimensions) rest))
|
||||||
|
(t
|
||||||
|
(setq element-type (upgraded-array-element-type element-type))
|
||||||
|
(check-array-initialize-option ies-p ics-p displaced-to)
|
||||||
|
(when fill-pointer
|
||||||
|
(error ":fill-pointer"))
|
||||||
|
(let ((array (si:*make-array dimensions element-type
|
||||||
|
initial-element adjustable
|
||||||
|
displaced-to displaced-index-offset)))
|
||||||
|
(when ics-p
|
||||||
|
(let ((dims (make-list (array-rank array)
|
||||||
|
:initial-element 0))
|
||||||
|
(stack (list initial-contents))
|
||||||
|
(rank (1- (array-rank array))))
|
||||||
|
(dolist (x dims)
|
||||||
|
(push (elt (car stack) 0) stack))
|
||||||
|
(dotimes (i (array-total-size array))
|
||||||
|
(setf (row-major-aref array i) (car stack))
|
||||||
|
(do ((x dims (cdr x))
|
||||||
|
(j rank (1- j)))
|
||||||
|
((null x))
|
||||||
|
(pop stack)
|
||||||
|
(incf (car x))
|
||||||
|
(when (< (car x) (array-dimension array j))
|
||||||
|
(do ((r (- rank j) (1- r)))
|
||||||
|
((< r 0))
|
||||||
|
(push (elt (car stack) (nth r dims)) stack))
|
||||||
|
(return))
|
||||||
|
(setf (car x) 0)))))
|
||||||
|
array))))
|
||||||
|
|
||||||
|
(defun vector (&rest list)
|
||||||
|
(make-vector (length list) :element-type t :initial-contents list))
|
||||||
|
|
||||||
|
(defun array-dimensions (array)
|
||||||
|
(do ((i (1- (array-rank array)) (1- i))
|
||||||
|
(dims '()))
|
||||||
|
((minusp i) dims)
|
||||||
|
(push (array-dimension array i) dims)))
|
||||||
|
|
||||||
|
(defun array-in-bounds-p (array &rest subscripts)
|
||||||
|
(let ((r (array-rank array)))
|
||||||
|
(when (/= r (length subscripts))
|
||||||
|
(error "subscripts: ~S" subscripts))
|
||||||
|
(do ((i 0 (1+ i))
|
||||||
|
(s subscripts (cdr s)))
|
||||||
|
((= i r) t)
|
||||||
|
(unless (<= 0 (car s) (1- (array-dimension array i)))
|
||||||
|
(return nil)))))
|
||||||
|
|
||||||
|
(defun adjust-array (old-array
|
||||||
|
dimensions
|
||||||
|
&rest rest
|
||||||
|
&key
|
||||||
|
(element-type nil ets-p)
|
||||||
|
initial-element
|
||||||
|
(initial-contents nil ics-p)
|
||||||
|
(fill-pointer nil fps-p)
|
||||||
|
displaced-to
|
||||||
|
displaced-index-offset)
|
||||||
|
(when (/= (length dimensions) (array-rank old-array))
|
||||||
|
(error "?"))
|
||||||
|
(unless ets-p
|
||||||
|
(push (array-element-type old-array) rest)
|
||||||
|
(push :element-type rest))
|
||||||
|
(when (adjustable-array-p old-array)
|
||||||
|
(push t rest)
|
||||||
|
(push :adjustable rest))
|
||||||
|
(cond (fps-p
|
||||||
|
(unless (array-has-fill-pointer-p old-array)
|
||||||
|
(error "?")))
|
||||||
|
(t
|
||||||
|
(when (array-has-fill-pointer-p old-array)
|
||||||
|
(push (fill-pointer old-array) rest)
|
||||||
|
(push :fill-pointer rest))))
|
||||||
|
(when (eq old-array displaced-to)
|
||||||
|
(error "?"))
|
||||||
|
(let ((new-array (apply #'make-array dimensions rest)))
|
||||||
|
(or ics-p displaced-to
|
||||||
|
(copy-array-partially old-array new-array))
|
||||||
|
(cond ((adjustable-array-p old-array)
|
||||||
|
(si:*replace-array old-array new-array)
|
||||||
|
old-array)
|
||||||
|
(t
|
||||||
|
new-array))))
|
||||||
|
|
||||||
|
(defun copy-array-partially (src dst)
|
||||||
|
(let* ((dims (mapcar #'min (array-dimensions src) (array-dimensions dst)))
|
||||||
|
(r (array-rank src))
|
||||||
|
(s (make-list r :initial-element 0)))
|
||||||
|
(setq r (1- r))
|
||||||
|
(dotimes (x (apply #'* dims))
|
||||||
|
(setf (apply #'aref dst s) (apply #'aref src s))
|
||||||
|
(do ((i r (1- i)))
|
||||||
|
((minusp i))
|
||||||
|
(incf (nth i s))
|
||||||
|
(when (< (nth i s) (nth i dims))
|
||||||
|
(return))
|
||||||
|
(setf (nth i s) 0)))))
|
||||||
91
samples/GAS/hello.ms
Normal file
91
samples/GAS/hello.ms
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# output(): Hello, world.\n
|
||||||
|
# mach(): all
|
||||||
|
|
||||||
|
# Emit hello world while switching back and forth between arm/thumb.
|
||||||
|
# ??? Unfinished
|
||||||
|
|
||||||
|
.macro invalid
|
||||||
|
# This is "undefined" but it's not properly decoded yet.
|
||||||
|
.word 0x07ffffff
|
||||||
|
# This is stc which isn't recognized yet.
|
||||||
|
stc 0,cr0,[r0]
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.global _start
|
||||||
|
_start:
|
||||||
|
# Run some simple insns to confirm the engine is at least working.
|
||||||
|
nop
|
||||||
|
|
||||||
|
# Skip over output text.
|
||||||
|
|
||||||
|
bl skip_output
|
||||||
|
|
||||||
|
hello_text:
|
||||||
|
.asciz "Hello, world.\n"
|
||||||
|
|
||||||
|
.p2align 2
|
||||||
|
skip_output:
|
||||||
|
|
||||||
|
# Prime loop.
|
||||||
|
|
||||||
|
mov r4, r14
|
||||||
|
|
||||||
|
output_next:
|
||||||
|
|
||||||
|
# Switch arm->thumb to output next chacter.
|
||||||
|
# At this point r4 must point to the next character to output.
|
||||||
|
|
||||||
|
adr r0, into_thumb + 1
|
||||||
|
bx r0
|
||||||
|
|
||||||
|
into_thumb:
|
||||||
|
.thumb
|
||||||
|
|
||||||
|
# Output a character.
|
||||||
|
|
||||||
|
mov r0,#3 @ writec angel call
|
||||||
|
mov r1,r4
|
||||||
|
swi 0xab @ ??? Confirm number.
|
||||||
|
|
||||||
|
# Switch thumb->arm.
|
||||||
|
|
||||||
|
adr r5, back_to_arm
|
||||||
|
bx r5
|
||||||
|
|
||||||
|
.p2align 2
|
||||||
|
back_to_arm:
|
||||||
|
.arm
|
||||||
|
|
||||||
|
# Load next character, see if done.
|
||||||
|
|
||||||
|
add r4,r4,#1
|
||||||
|
sub r3,r3,r3
|
||||||
|
ldrb r5,[r4,r3]
|
||||||
|
teq r5,#0
|
||||||
|
beq done
|
||||||
|
|
||||||
|
# Output a character (in arm mode).
|
||||||
|
|
||||||
|
mov r0,#3
|
||||||
|
mov r1,r4
|
||||||
|
swi #0x123456
|
||||||
|
|
||||||
|
# Load next character, see if done.
|
||||||
|
|
||||||
|
add r4,r4,#1
|
||||||
|
sub r3,r3,r3
|
||||||
|
ldrb r5,[r4,r3]
|
||||||
|
teq r5,#0
|
||||||
|
bne output_next
|
||||||
|
|
||||||
|
done:
|
||||||
|
mov r0,#0x18
|
||||||
|
ldr r1,exit_code
|
||||||
|
swi #0x123456
|
||||||
|
|
||||||
|
# If that fails, try to die with an invalid insn.
|
||||||
|
|
||||||
|
invalid
|
||||||
|
|
||||||
|
exit_code:
|
||||||
|
.word 0x20026
|
||||||
275
samples/Groff/Tcl.n
Normal file
275
samples/Groff/Tcl.n
Normal file
@@ -0,0 +1,275 @@
|
|||||||
|
'\"
|
||||||
|
'\" Copyright (c) 1993 The Regents of the University of California.
|
||||||
|
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
|
||||||
|
'\"
|
||||||
|
'\" See the file "license.terms" for information on usage and redistribution
|
||||||
|
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
'\"
|
||||||
|
.TH Tcl n "8.6" Tcl "Tcl Built-In Commands"
|
||||||
|
.so man.macros
|
||||||
|
.BS
|
||||||
|
.SH NAME
|
||||||
|
Tcl \- Tool Command Language
|
||||||
|
.SH SYNOPSIS
|
||||||
|
Summary of Tcl language syntax.
|
||||||
|
.BE
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
The following rules define the syntax and semantics of the Tcl language:
|
||||||
|
.IP "[1] \fBCommands.\fR"
|
||||||
|
A Tcl script is a string containing one or more commands.
|
||||||
|
Semi-colons and newlines are command separators unless quoted as
|
||||||
|
described below.
|
||||||
|
Close brackets are command terminators during command substitution
|
||||||
|
(see below) unless quoted.
|
||||||
|
.IP "[2] \fBEvaluation.\fR"
|
||||||
|
A command is evaluated in two steps.
|
||||||
|
First, the Tcl interpreter breaks the command into \fIwords\fR
|
||||||
|
and performs substitutions as described below.
|
||||||
|
These substitutions are performed in the same way for all
|
||||||
|
commands.
|
||||||
|
Secondly, the first word is used to locate a command procedure to
|
||||||
|
carry out the command, then all of the words of the command are
|
||||||
|
passed to the command procedure.
|
||||||
|
The command procedure is free to interpret each of its words
|
||||||
|
in any way it likes, such as an integer, variable name, list,
|
||||||
|
or Tcl script.
|
||||||
|
Different commands interpret their words differently.
|
||||||
|
.IP "[3] \fBWords.\fR"
|
||||||
|
Words of a command are separated by white space (except for
|
||||||
|
newlines, which are command separators).
|
||||||
|
.IP "[4] \fBDouble quotes.\fR"
|
||||||
|
If the first character of a word is double-quote
|
||||||
|
.PQ \N'34'
|
||||||
|
then the word is terminated by the next double-quote character.
|
||||||
|
If semi-colons, close brackets, or white space characters
|
||||||
|
(including newlines) appear between the quotes then they are treated
|
||||||
|
as ordinary characters and included in the word.
|
||||||
|
Command substitution, variable substitution, and backslash substitution
|
||||||
|
are performed on the characters between the quotes as described below.
|
||||||
|
The double-quotes are not retained as part of the word.
|
||||||
|
.IP "[5] \fBArgument expansion.\fR"
|
||||||
|
If a word starts with the string
|
||||||
|
.QW {*}
|
||||||
|
followed by a non-whitespace character, then the leading
|
||||||
|
.QW {*}
|
||||||
|
is removed and the rest of the word is parsed and substituted as any other
|
||||||
|
word. After substitution, the word is parsed as a list (without command or
|
||||||
|
variable substitutions; backslash substitutions are performed as is normal for
|
||||||
|
a list and individual internal words may be surrounded by either braces or
|
||||||
|
double-quote characters), and its words are added to the command being
|
||||||
|
substituted. For instance,
|
||||||
|
.QW "cmd a {*}{b [c]} d {*}{$e f {g h}}"
|
||||||
|
is equivalent to
|
||||||
|
.QW "cmd a b {[c]} d {$e} f {g h}" .
|
||||||
|
.IP "[6] \fBBraces.\fR"
|
||||||
|
If the first character of a word is an open brace
|
||||||
|
.PQ {
|
||||||
|
and rule [5] does not apply, then
|
||||||
|
the word is terminated by the matching close brace
|
||||||
|
.PQ } "" .
|
||||||
|
Braces nest within the word: for each additional open
|
||||||
|
brace there must be an additional close brace (however,
|
||||||
|
if an open brace or close brace within the word is
|
||||||
|
quoted with a backslash then it is not counted in locating the
|
||||||
|
matching close brace).
|
||||||
|
No substitutions are performed on the characters between the
|
||||||
|
braces except for backslash-newline substitutions described
|
||||||
|
below, nor do semi-colons, newlines, close brackets,
|
||||||
|
or white space receive any special interpretation.
|
||||||
|
The word will consist of exactly the characters between the
|
||||||
|
outer braces, not including the braces themselves.
|
||||||
|
.IP "[7] \fBCommand substitution.\fR"
|
||||||
|
If a word contains an open bracket
|
||||||
|
.PQ [
|
||||||
|
then Tcl performs \fIcommand substitution\fR.
|
||||||
|
To do this it invokes the Tcl interpreter recursively to process
|
||||||
|
the characters following the open bracket as a Tcl script.
|
||||||
|
The script may contain any number of commands and must be terminated
|
||||||
|
by a close bracket
|
||||||
|
.PQ ] "" .
|
||||||
|
The result of the script (i.e. the result of its last command) is
|
||||||
|
substituted into the word in place of the brackets and all of the
|
||||||
|
characters between them.
|
||||||
|
There may be any number of command substitutions in a single word.
|
||||||
|
Command substitution is not performed on words enclosed in braces.
|
||||||
|
.IP "[8] \fBVariable substitution.\fR"
|
||||||
|
If a word contains a dollar-sign
|
||||||
|
.PQ $
|
||||||
|
followed by one of the forms
|
||||||
|
described below, then Tcl performs \fIvariable
|
||||||
|
substitution\fR: the dollar-sign and the following characters are
|
||||||
|
replaced in the word by the value of a variable.
|
||||||
|
Variable substitution may take any of the following forms:
|
||||||
|
.RS
|
||||||
|
.TP 15
|
||||||
|
\fB$\fIname\fR
|
||||||
|
.
|
||||||
|
\fIName\fR is the name of a scalar variable; the name is a sequence
|
||||||
|
of one or more characters that are a letter, digit, underscore,
|
||||||
|
or namespace separators (two or more colons).
|
||||||
|
Letters and digits are \fIonly\fR the standard ASCII ones (\fB0\fR\(en\fB9\fR,
|
||||||
|
\fBA\fR\(en\fBZ\fR and \fBa\fR\(en\fBz\fR).
|
||||||
|
.TP 15
|
||||||
|
\fB$\fIname\fB(\fIindex\fB)\fR
|
||||||
|
.
|
||||||
|
\fIName\fR gives the name of an array variable and \fIindex\fR gives
|
||||||
|
the name of an element within that array.
|
||||||
|
\fIName\fR must contain only letters, digits, underscores, and
|
||||||
|
namespace separators, and may be an empty string.
|
||||||
|
Letters and digits are \fIonly\fR the standard ASCII ones (\fB0\fR\(en\fB9\fR,
|
||||||
|
\fBA\fR\(en\fBZ\fR and \fBa\fR\(en\fBz\fR).
|
||||||
|
Command substitutions, variable substitutions, and backslash
|
||||||
|
substitutions are performed on the characters of \fIindex\fR.
|
||||||
|
.TP 15
|
||||||
|
\fB${\fIname\fB}\fR
|
||||||
|
.
|
||||||
|
\fIName\fR is the name of a scalar variable or array element. It may contain
|
||||||
|
any characters whatsoever except for close braces. It indicates an array
|
||||||
|
element if \fIname\fR is in the form
|
||||||
|
.QW \fIarrayName\fB(\fIindex\fB)\fR
|
||||||
|
where \fIarrayName\fR does not contain any open parenthesis characters,
|
||||||
|
.QW \fB(\fR ,
|
||||||
|
or close brace characters,
|
||||||
|
.QW \fB}\fR ,
|
||||||
|
and \fIindex\fR can be any sequence of characters except for close brace
|
||||||
|
characters. No further
|
||||||
|
substitutions are performed during the parsing of \fIname\fR.
|
||||||
|
.PP
|
||||||
|
There may be any number of variable substitutions in a single word.
|
||||||
|
Variable substitution is not performed on words enclosed in braces.
|
||||||
|
.PP
|
||||||
|
Note that variables may contain character sequences other than those listed
|
||||||
|
above, but in that case other mechanisms must be used to access them (e.g.,
|
||||||
|
via the \fBset\fR command's single-argument form).
|
||||||
|
.RE
|
||||||
|
.IP "[9] \fBBackslash substitution.\fR"
|
||||||
|
If a backslash
|
||||||
|
.PQ \e
|
||||||
|
appears within a word then \fIbackslash substitution\fR occurs.
|
||||||
|
In all cases but those described below the backslash is dropped and
|
||||||
|
the following character is treated as an ordinary
|
||||||
|
character and included in the word.
|
||||||
|
This allows characters such as double quotes, close brackets,
|
||||||
|
and dollar signs to be included in words without triggering
|
||||||
|
special processing.
|
||||||
|
The following table lists the backslash sequences that are
|
||||||
|
handled specially, along with the value that replaces each sequence.
|
||||||
|
.RS
|
||||||
|
.TP 7
|
||||||
|
\e\fBa\fR
|
||||||
|
Audible alert (bell) (Unicode U+000007).
|
||||||
|
.TP 7
|
||||||
|
\e\fBb\fR
|
||||||
|
Backspace (Unicode U+000008).
|
||||||
|
.TP 7
|
||||||
|
\e\fBf\fR
|
||||||
|
Form feed (Unicode U+00000C).
|
||||||
|
.TP 7
|
||||||
|
\e\fBn\fR
|
||||||
|
Newline (Unicode U+00000A).
|
||||||
|
.TP 7
|
||||||
|
\e\fBr\fR
|
||||||
|
Carriage-return (Unicode U+00000D).
|
||||||
|
.TP 7
|
||||||
|
\e\fBt\fR
|
||||||
|
Tab (Unicode U+000009).
|
||||||
|
.TP 7
|
||||||
|
\e\fBv\fR
|
||||||
|
Vertical tab (Unicode U+00000B).
|
||||||
|
.TP 7
|
||||||
|
\e\fB<newline>\fIwhiteSpace\fR
|
||||||
|
.
|
||||||
|
A single space character replaces the backslash, newline, and all spaces
|
||||||
|
and tabs after the newline. This backslash sequence is unique in that it
|
||||||
|
is replaced in a separate pre-pass before the command is actually parsed.
|
||||||
|
This means that it will be replaced even when it occurs between braces,
|
||||||
|
and the resulting space will be treated as a word separator if it is not
|
||||||
|
in braces or quotes.
|
||||||
|
.TP 7
|
||||||
|
\e\e
|
||||||
|
Backslash
|
||||||
|
.PQ \e "" .
|
||||||
|
.TP 7
|
||||||
|
\e\fIooo\fR
|
||||||
|
.
|
||||||
|
The digits \fIooo\fR (one, two, or three of them) give a eight-bit octal
|
||||||
|
value for the Unicode character that will be inserted, in the range
|
||||||
|
\fI000\fR\(en\fI377\fR (i.e., the range U+000000\(enU+0000FF).
|
||||||
|
The parser will stop just before this range overflows, or when
|
||||||
|
the maximum of three digits is reached. The upper bits of the Unicode
|
||||||
|
character will be 0.
|
||||||
|
.TP 7
|
||||||
|
\e\fBx\fIhh\fR
|
||||||
|
.
|
||||||
|
The hexadecimal digits \fIhh\fR (one or two of them) give an eight-bit
|
||||||
|
hexadecimal value for the Unicode character that will be inserted. The upper
|
||||||
|
bits of the Unicode character will be 0 (i.e., the character will be in the
|
||||||
|
range U+000000\(enU+0000FF).
|
||||||
|
.TP 7
|
||||||
|
\e\fBu\fIhhhh\fR
|
||||||
|
.
|
||||||
|
The hexadecimal digits \fIhhhh\fR (one, two, three, or four of them) give a
|
||||||
|
sixteen-bit hexadecimal value for the Unicode character that will be
|
||||||
|
inserted. The upper bits of the Unicode character will be 0 (i.e., the
|
||||||
|
character will be in the range U+000000\(enU+00FFFF).
|
||||||
|
.TP 7
|
||||||
|
\e\fBU\fIhhhhhhhh\fR
|
||||||
|
.
|
||||||
|
The hexadecimal digits \fIhhhhhhhh\fR (one up to eight of them) give a
|
||||||
|
twenty-one-bit hexadecimal value for the Unicode character that will be
|
||||||
|
inserted, in the range U+000000\(enU+10FFFF. The parser will stop just
|
||||||
|
before this range overflows, or when the maximum of eight digits
|
||||||
|
is reached. The upper bits of the Unicode character will be 0.
|
||||||
|
.RS
|
||||||
|
.PP
|
||||||
|
The range U+010000\(enU+10FFFD is reserved for the future.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Backslash substitution is not performed on words enclosed in braces,
|
||||||
|
except for backslash-newline as described above.
|
||||||
|
.RE
|
||||||
|
.IP "[10] \fBComments.\fR"
|
||||||
|
If a hash character
|
||||||
|
.PQ #
|
||||||
|
appears at a point where Tcl is
|
||||||
|
expecting the first character of the first word of a command,
|
||||||
|
then the hash character and the characters that follow it, up
|
||||||
|
through the next newline, are treated as a comment and ignored.
|
||||||
|
The comment character only has significance when it appears
|
||||||
|
at the beginning of a command.
|
||||||
|
.IP "[11] \fBOrder of substitution.\fR"
|
||||||
|
Each character is processed exactly once by the Tcl interpreter
|
||||||
|
as part of creating the words of a command.
|
||||||
|
For example, if variable substitution occurs then no further
|
||||||
|
substitutions are performed on the value of the variable; the
|
||||||
|
value is inserted into the word verbatim.
|
||||||
|
If command substitution occurs then the nested command is
|
||||||
|
processed entirely by the recursive call to the Tcl interpreter;
|
||||||
|
no substitutions are performed before making the recursive
|
||||||
|
call and no additional substitutions are performed on the result
|
||||||
|
of the nested script.
|
||||||
|
.RS
|
||||||
|
.PP
|
||||||
|
Substitutions take place from left to right, and each substitution is
|
||||||
|
evaluated completely before attempting to evaluate the next. Thus, a
|
||||||
|
sequence like
|
||||||
|
.PP
|
||||||
|
.CS
|
||||||
|
set y [set x 0][incr x][incr x]
|
||||||
|
.CE
|
||||||
|
.PP
|
||||||
|
will always set the variable \fIy\fR to the value, \fI012\fR.
|
||||||
|
.RE
|
||||||
|
.IP "[12] \fBSubstitution and word boundaries.\fR"
|
||||||
|
Substitutions do not affect the word boundaries of a command,
|
||||||
|
except for argument expansion as specified in rule [5].
|
||||||
|
For example, during variable substitution the entire value of
|
||||||
|
the variable becomes part of a single word, even if the variable's
|
||||||
|
value contains spaces.
|
||||||
|
.SH KEYWORDS
|
||||||
|
backslash, command, comment, script, substitution, variable
|
||||||
|
'\" Local Variables:
|
||||||
|
'\" mode: nroff
|
||||||
|
'\" fill-column: 78
|
||||||
|
'\" End:
|
||||||
1174
samples/Groff/fsinterface.ms
Normal file
1174
samples/Groff/fsinterface.ms
Normal file
File diff suppressed because it is too large
Load Diff
165
samples/PicoLisp/simul.l
Normal file
165
samples/PicoLisp/simul.l
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
# 11dec13abu
|
||||||
|
# (c) Software Lab. Alexander Burger
|
||||||
|
|
||||||
|
(de permute (Lst)
|
||||||
|
(ifn (cdr Lst)
|
||||||
|
(cons Lst)
|
||||||
|
(mapcan
|
||||||
|
'((X)
|
||||||
|
(mapcar
|
||||||
|
'((Y) (cons X Y))
|
||||||
|
(permute (delete X Lst)) ) )
|
||||||
|
Lst ) ) )
|
||||||
|
|
||||||
|
(de subsets (N Lst)
|
||||||
|
(cond
|
||||||
|
((=0 N) '(NIL))
|
||||||
|
((not Lst))
|
||||||
|
(T
|
||||||
|
(conc
|
||||||
|
(mapcar
|
||||||
|
'((X) (cons (car Lst) X))
|
||||||
|
(subsets (dec N) (cdr Lst)) )
|
||||||
|
(subsets N (cdr Lst)) ) ) ) )
|
||||||
|
|
||||||
|
(de shuffle (Lst)
|
||||||
|
(by '(NIL (rand)) sort Lst) )
|
||||||
|
|
||||||
|
(de samples (Cnt Lst)
|
||||||
|
(make
|
||||||
|
(until (=0 Cnt)
|
||||||
|
(when (>= Cnt (rand 1 (length Lst)))
|
||||||
|
(link (car Lst))
|
||||||
|
(dec 'Cnt) )
|
||||||
|
(pop 'Lst) ) ) )
|
||||||
|
|
||||||
|
|
||||||
|
# Genetic Algorithm
|
||||||
|
(de gen ("Pop" "Cond" "Re" "Mu" "Se")
|
||||||
|
(until ("Cond" "Pop")
|
||||||
|
(for ("P" "Pop" "P" (cdr "P"))
|
||||||
|
(set "P"
|
||||||
|
(maxi "Se" # Selection
|
||||||
|
(make
|
||||||
|
(for ("P" "Pop" "P")
|
||||||
|
(rot "P" (rand 1 (length "P")))
|
||||||
|
(link # Recombination + Mutation
|
||||||
|
("Mu" ("Re" (pop '"P") (pop '"P"))) ) ) ) ) ) ) )
|
||||||
|
(maxi "Se" "Pop") )
|
||||||
|
|
||||||
|
|
||||||
|
# Alpha-Beta tree search
|
||||||
|
(de game ("Flg" "Cnt" "Moves" "Move" "Cost")
|
||||||
|
(let ("Alpha" '(1000000) "Beta" -1000000)
|
||||||
|
(recur ("Flg" "Cnt" "Alpha" "Beta")
|
||||||
|
(let? "Lst" ("Moves" "Flg")
|
||||||
|
(if (=0 (dec '"Cnt"))
|
||||||
|
(loop
|
||||||
|
("Move" (caar "Lst"))
|
||||||
|
(setq "*Val" (list ("Cost" "Flg") (car "Lst")))
|
||||||
|
("Move" (cdar "Lst"))
|
||||||
|
(T (>= "Beta" (car "*Val"))
|
||||||
|
(cons "Beta" (car "Lst") (cdr "Alpha")) )
|
||||||
|
(when (> (car "Alpha") (car "*Val"))
|
||||||
|
(setq "Alpha" "*Val") )
|
||||||
|
(NIL (setq "Lst" (cdr "Lst")) "Alpha") )
|
||||||
|
(setq "Lst"
|
||||||
|
(sort
|
||||||
|
(mapcar
|
||||||
|
'(("Mov")
|
||||||
|
(prog2
|
||||||
|
("Move" (car "Mov"))
|
||||||
|
(cons ("Cost" "Flg") "Mov")
|
||||||
|
("Move" (cdr "Mov")) ) )
|
||||||
|
"Lst" ) ) )
|
||||||
|
(loop
|
||||||
|
("Move" (cadar "Lst"))
|
||||||
|
(setq "*Val"
|
||||||
|
(if (recurse (not "Flg") "Cnt" (cons (- "Beta")) (- (car "Alpha")))
|
||||||
|
(cons (- (car @)) (cdar "Lst") (cdr @))
|
||||||
|
(list (caar "Lst") (cdar "Lst")) ) )
|
||||||
|
("Move" (cddar "Lst"))
|
||||||
|
(T (>= "Beta" (car "*Val"))
|
||||||
|
(cons "Beta" (cdar "Lst") (cdr "Alpha")) )
|
||||||
|
(when (> (car "Alpha") (car "*Val"))
|
||||||
|
(setq "Alpha" "*Val") )
|
||||||
|
(NIL (setq "Lst" (cdr "Lst")) "Alpha") ) ) ) ) ) )
|
||||||
|
|
||||||
|
|
||||||
|
### Grids ###
|
||||||
|
(de grid (DX DY FX FY)
|
||||||
|
(let Grid
|
||||||
|
(make
|
||||||
|
(for X DX
|
||||||
|
(link
|
||||||
|
(make
|
||||||
|
(for Y DY
|
||||||
|
(set
|
||||||
|
(link
|
||||||
|
(if (> DX 26)
|
||||||
|
(box)
|
||||||
|
(intern (pack (char (+ X 96)) Y)) ) )
|
||||||
|
(cons (cons) (cons)) ) ) ) ) ) )
|
||||||
|
(let West (and FX (last Grid))
|
||||||
|
(for (Lst Grid Lst)
|
||||||
|
(let
|
||||||
|
(Col (pop 'Lst)
|
||||||
|
East (or (car Lst) (and FX (car Grid)))
|
||||||
|
South (and FY (last Col)) )
|
||||||
|
(for (L Col L)
|
||||||
|
(with (pop 'L)
|
||||||
|
(set (: 0 1) (pop 'West)) # west
|
||||||
|
(con (: 0 1) (pop 'East)) # east
|
||||||
|
(set (: 0 -1) South) # south
|
||||||
|
(con (: 0 -1) # north
|
||||||
|
(or (car L) (and FY (car Col))) )
|
||||||
|
(setq South This) ) )
|
||||||
|
(setq West Col) ) ) )
|
||||||
|
Grid ) )
|
||||||
|
|
||||||
|
(de west (This)
|
||||||
|
(: 0 1 1) )
|
||||||
|
|
||||||
|
(de east (This)
|
||||||
|
(: 0 1 -1) )
|
||||||
|
|
||||||
|
(de south (This)
|
||||||
|
(: 0 -1 1) )
|
||||||
|
|
||||||
|
(de north (This)
|
||||||
|
(: 0 -1 -1) )
|
||||||
|
|
||||||
|
(de disp ("Grid" "How" "Fun" "X" "Y" "DX" "DY")
|
||||||
|
(setq "Grid"
|
||||||
|
(if "X"
|
||||||
|
(mapcar
|
||||||
|
'((L) (flip (head "DY" (nth L "Y"))))
|
||||||
|
(head "DX" (nth "Grid" "X")) )
|
||||||
|
(mapcar reverse "Grid") ) )
|
||||||
|
(let (N (+ (length (cdar "Grid")) (or "Y" 1)) Sp (length N))
|
||||||
|
("border" north)
|
||||||
|
(while (caar "Grid")
|
||||||
|
(prin " " (align Sp N) " "
|
||||||
|
(and "How" (if (and (nT "How") (west (caar "Grid"))) " " '|)) )
|
||||||
|
(for L "Grid"
|
||||||
|
(prin
|
||||||
|
("Fun" (car L))
|
||||||
|
(and "How" (if (and (nT "How") (east (car L))) " " '|)) ) )
|
||||||
|
(prinl)
|
||||||
|
("border" south)
|
||||||
|
(map pop "Grid")
|
||||||
|
(dec 'N) )
|
||||||
|
(unless (> (default "X" 1) 26)
|
||||||
|
(space (inc Sp))
|
||||||
|
(for @ "Grid"
|
||||||
|
(prin " " (and "How" " ") (char (+ 96 "X")))
|
||||||
|
(T (> (inc '"X") 26)) )
|
||||||
|
(prinl) ) ) )
|
||||||
|
|
||||||
|
(de "border" (Dir)
|
||||||
|
(when "How"
|
||||||
|
(space Sp)
|
||||||
|
(prin " +")
|
||||||
|
(for L "Grid"
|
||||||
|
(prin (if (and (nT "How") (Dir (car L))) " +" "---+")) )
|
||||||
|
(prinl) ) )
|
||||||
2
vendor/grammars/AutoHotkey
vendored
2
vendor/grammars/AutoHotkey
vendored
Submodule vendor/grammars/AutoHotkey updated: 9b42c86e75...8a9bb55597
2
vendor/grammars/Docker.tmbundle
vendored
2
vendor/grammars/Docker.tmbundle
vendored
Submodule vendor/grammars/Docker.tmbundle updated: 8f28cd8714...8ff6e62c89
2
vendor/grammars/Handlebars
vendored
2
vendor/grammars/Handlebars
vendored
Submodule vendor/grammars/Handlebars updated: 35d821569d...e331daf059
2
vendor/grammars/InnoSetup
vendored
2
vendor/grammars/InnoSetup
vendored
Submodule vendor/grammars/InnoSetup updated: 875ba96c32...417c64d7b3
2
vendor/grammars/NimLime
vendored
2
vendor/grammars/NimLime
vendored
Submodule vendor/grammars/NimLime updated: 663b417558...4ab90608c1
2
vendor/grammars/SublimePapyrus
vendored
2
vendor/grammars/SublimePapyrus
vendored
Submodule vendor/grammars/SublimePapyrus updated: 26036db16d...db14899948
1
vendor/grammars/atom-fsharp
vendored
Submodule
1
vendor/grammars/atom-fsharp
vendored
Submodule
Submodule vendor/grammars/atom-fsharp added at 919a4d895a
2
vendor/grammars/carto-atom
vendored
2
vendor/grammars/carto-atom
vendored
Submodule vendor/grammars/carto-atom updated: c00fb6c461...60c8774b02
2
vendor/grammars/dart-sublime-bundle
vendored
2
vendor/grammars/dart-sublime-bundle
vendored
Submodule vendor/grammars/dart-sublime-bundle updated: 4c599ca5f2...67f23dfef2
2
vendor/grammars/factor
vendored
2
vendor/grammars/factor
vendored
Submodule vendor/grammars/factor updated: aa1a5f22ba...3705d6e387
1
vendor/grammars/fsharpbinding
vendored
1
vendor/grammars/fsharpbinding
vendored
Submodule vendor/grammars/fsharpbinding deleted from ad3f073464
2
vendor/grammars/grace-tmbundle
vendored
2
vendor/grammars/grace-tmbundle
vendored
Submodule vendor/grammars/grace-tmbundle updated: 2fba162ce7...9e8bb893f0
2
vendor/grammars/graphviz.tmbundle
vendored
2
vendor/grammars/graphviz.tmbundle
vendored
Submodule vendor/grammars/graphviz.tmbundle updated: 2760230b50...d1d489f893
2
vendor/grammars/haxe-sublime-bundle
vendored
2
vendor/grammars/haxe-sublime-bundle
vendored
Submodule vendor/grammars/haxe-sublime-bundle updated: 487bb30d3a...7fb8855dd6
2
vendor/grammars/language-clojure
vendored
2
vendor/grammars/language-clojure
vendored
Submodule vendor/grammars/language-clojure updated: efe9297f7b...81e089cc55
2
vendor/grammars/language-coffee-script
vendored
2
vendor/grammars/language-coffee-script
vendored
Submodule vendor/grammars/language-coffee-script updated: 203cbf0929...99f29d259f
2
vendor/grammars/language-csharp
vendored
2
vendor/grammars/language-csharp
vendored
Submodule vendor/grammars/language-csharp updated: d07ba8f168...8745f4e545
2
vendor/grammars/language-gfm
vendored
2
vendor/grammars/language-gfm
vendored
Submodule vendor/grammars/language-gfm updated: 998b156ada...7cb930dcaf
2
vendor/grammars/language-javascript
vendored
2
vendor/grammars/language-javascript
vendored
Submodule vendor/grammars/language-javascript updated: 9f55d13319...601cb6cb8f
1
vendor/grammars/language-jsoniq
vendored
Submodule
1
vendor/grammars/language-jsoniq
vendored
Submodule
Submodule vendor/grammars/language-jsoniq added at 20214d61b4
2
vendor/grammars/language-python
vendored
2
vendor/grammars/language-python
vendored
Submodule vendor/grammars/language-python updated: 00529e6915...db14372b47
2
vendor/grammars/language-shellscript
vendored
2
vendor/grammars/language-shellscript
vendored
Submodule vendor/grammars/language-shellscript updated: abf186b46f...c09554aa3c
2
vendor/grammars/language-yaml
vendored
2
vendor/grammars/language-yaml
vendored
Submodule vendor/grammars/language-yaml updated: ce8b441467...ee5ab88f59
2
vendor/grammars/latex.tmbundle
vendored
2
vendor/grammars/latex.tmbundle
vendored
Submodule vendor/grammars/latex.tmbundle updated: b244177ac8...a20438e8e4
2
vendor/grammars/php-smarty.tmbundle
vendored
2
vendor/grammars/php-smarty.tmbundle
vendored
Submodule vendor/grammars/php-smarty.tmbundle updated: 6f3630fe0d...3e673e1980
2
vendor/grammars/php.tmbundle
vendored
2
vendor/grammars/php.tmbundle
vendored
Submodule vendor/grammars/php.tmbundle updated: 0239f475bb...1cba1ac4a9
2
vendor/grammars/sass-textmate-bundle
vendored
2
vendor/grammars/sass-textmate-bundle
vendored
Submodule vendor/grammars/sass-textmate-bundle updated: 8444f9796e...95e492c5e8
2
vendor/grammars/smali-sublime
vendored
2
vendor/grammars/smali-sublime
vendored
Submodule vendor/grammars/smali-sublime updated: 0aabf9def8...b9eba91397
2
vendor/grammars/sublime-better-typescript
vendored
2
vendor/grammars/sublime-better-typescript
vendored
Submodule vendor/grammars/sublime-better-typescript updated: b956adec0a...8c0bd800d9
2
vendor/grammars/sublime-mask
vendored
2
vendor/grammars/sublime-mask
vendored
Submodule vendor/grammars/sublime-mask updated: 55f087b49e...a7f3baacf6
2
vendor/grammars/sublime-rust
vendored
2
vendor/grammars/sublime-rust
vendored
Submodule vendor/grammars/sublime-rust updated: 454e0960c1...386d8fcdc5
2
vendor/grammars/sublime_cobol
vendored
2
vendor/grammars/sublime_cobol
vendored
Submodule vendor/grammars/sublime_cobol updated: b4e9df7799...e7ec606b51
Reference in New Issue
Block a user