summaryrefslogtreecommitdiff
path: root/public/vendor/codemirror/mode/apl
diff options
context:
space:
mode:
authorWu Cheng-Han2016-11-28 01:36:48 +0800
committerWu Cheng-Han2016-11-28 01:36:48 +0800
commit9f79ed929e4156dc8b5b45161895d70d51cfa5a2 (patch)
tree760e0491a52558036b93b0c986e96aa95b4c0127 /public/vendor/codemirror/mode/apl
parent3a305b8258782797b328f2ce46e8bb74e9603594 (diff)
Update to move custom CodeMirror codebase to our own repo and update webpack build config
Diffstat (limited to 'public/vendor/codemirror/mode/apl')
-rw-r--r--public/vendor/codemirror/mode/apl/apl.js174
-rw-r--r--public/vendor/codemirror/mode/apl/index.html72
2 files changed, 0 insertions, 246 deletions
diff --git a/public/vendor/codemirror/mode/apl/apl.js b/public/vendor/codemirror/mode/apl/apl.js
deleted file mode 100644
index caafe4e9..00000000
--- a/public/vendor/codemirror/mode/apl/apl.js
+++ /dev/null
@@ -1,174 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-(function(mod) {
- if (typeof exports == "object" && typeof module == "object") // CommonJS
- mod(require("../../lib/codemirror"));
- else if (typeof define == "function" && define.amd) // AMD
- define(["../../lib/codemirror"], mod);
- else // Plain browser env
- mod(CodeMirror);
-})(function(CodeMirror) {
-"use strict";
-
-CodeMirror.defineMode("apl", function() {
- var builtInOps = {
- ".": "innerProduct",
- "\\": "scan",
- "/": "reduce",
- "⌿": "reduce1Axis",
- "⍀": "scan1Axis",
- "¨": "each",
- "⍣": "power"
- };
- var builtInFuncs = {
- "+": ["conjugate", "add"],
- "−": ["negate", "subtract"],
- "×": ["signOf", "multiply"],
- "÷": ["reciprocal", "divide"],
- "⌈": ["ceiling", "greaterOf"],
- "⌊": ["floor", "lesserOf"],
- "∣": ["absolute", "residue"],
- "⍳": ["indexGenerate", "indexOf"],
- "?": ["roll", "deal"],
- "⋆": ["exponentiate", "toThePowerOf"],
- "⍟": ["naturalLog", "logToTheBase"],
- "○": ["piTimes", "circularFuncs"],
- "!": ["factorial", "binomial"],
- "⌹": ["matrixInverse", "matrixDivide"],
- "<": [null, "lessThan"],
- "≤": [null, "lessThanOrEqual"],
- "=": [null, "equals"],
- ">": [null, "greaterThan"],
- "≥": [null, "greaterThanOrEqual"],
- "≠": [null, "notEqual"],
- "≡": ["depth", "match"],
- "≢": [null, "notMatch"],
- "∈": ["enlist", "membership"],
- "⍷": [null, "find"],
- "∪": ["unique", "union"],
- "∩": [null, "intersection"],
- "∼": ["not", "without"],
- "∨": [null, "or"],
- "∧": [null, "and"],
- "⍱": [null, "nor"],
- "⍲": [null, "nand"],
- "⍴": ["shapeOf", "reshape"],
- ",": ["ravel", "catenate"],
- "⍪": [null, "firstAxisCatenate"],
- "⌽": ["reverse", "rotate"],
- "⊖": ["axis1Reverse", "axis1Rotate"],
- "⍉": ["transpose", null],
- "↑": ["first", "take"],
- "↓": [null, "drop"],
- "⊂": ["enclose", "partitionWithAxis"],
- "⊃": ["diclose", "pick"],
- "⌷": [null, "index"],
- "⍋": ["gradeUp", null],
- "⍒": ["gradeDown", null],
- "⊤": ["encode", null],
- "⊥": ["decode", null],
- "⍕": ["format", "formatByExample"],
- "⍎": ["execute", null],
- "⊣": ["stop", "left"],
- "⊢": ["pass", "right"]
- };
-
- var isOperator = /[\.\/⌿⍀¨⍣]/;
- var isNiladic = /⍬/;
- var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;
- var isArrow = /←/;
- var isComment = /[⍝#].*$/;
-
- var stringEater = function(type) {
- var prev;
- prev = false;
- return function(c) {
- prev = c;
- if (c === type) {
- return prev === "\\";
- }
- return true;
- };
- };
- return {
- startState: function() {
- return {
- prev: false,
- func: false,
- op: false,
- string: false,
- escape: false
- };
- },
- token: function(stream, state) {
- var ch, funcName;
- if (stream.eatSpace()) {
- return null;
- }
- ch = stream.next();
- if (ch === '"' || ch === "'") {
- stream.eatWhile(stringEater(ch));
- stream.next();
- state.prev = true;
- return "string";
- }
- if (/[\[{\(]/.test(ch)) {
- state.prev = false;
- return null;
- }
- if (/[\]}\)]/.test(ch)) {
- state.prev = true;
- return null;
- }
- if (isNiladic.test(ch)) {
- state.prev = false;
- return "niladic";
- }
- if (/[¯\d]/.test(ch)) {
- if (state.func) {
- state.func = false;
- state.prev = false;
- } else {
- state.prev = true;
- }
- stream.eatWhile(/[\w\.]/);
- return "number";
- }
- if (isOperator.test(ch)) {
- return "operator apl-" + builtInOps[ch];
- }
- if (isArrow.test(ch)) {
- return "apl-arrow";
- }
- if (isFunction.test(ch)) {
- funcName = "apl-";
- if (builtInFuncs[ch] != null) {
- if (state.prev) {
- funcName += builtInFuncs[ch][1];
- } else {
- funcName += builtInFuncs[ch][0];
- }
- }
- state.func = true;
- state.prev = false;
- return "function " + funcName;
- }
- if (isComment.test(ch)) {
- stream.skipToEnd();
- return "comment";
- }
- if (ch === "∘" && stream.peek() === ".") {
- stream.next();
- return "function jot-dot";
- }
- stream.eatWhile(/[\w\$_]/);
- state.prev = true;
- return "keyword";
- }
- };
-});
-
-CodeMirror.defineMIME("text/apl", "apl");
-
-});
diff --git a/public/vendor/codemirror/mode/apl/index.html b/public/vendor/codemirror/mode/apl/index.html
deleted file mode 100644
index 53dda6b5..00000000
--- a/public/vendor/codemirror/mode/apl/index.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!doctype html>
-
-<title>CodeMirror: APL mode</title>
-<meta charset="utf-8"/>
-<link rel=stylesheet href="../../doc/docs.css">
-
-<link rel="stylesheet" href="../../lib/codemirror.css">
-<script src="../../lib/codemirror.js"></script>
-<script src="../../addon/edit/matchbrackets.js"></script>
-<script src="./apl.js"></script>
-<style>
- .CodeMirror { border: 2px inset #dee; }
- </style>
-<div id=nav>
- <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
-
- <ul>
- <li><a href="../../index.html">Home</a>
- <li><a href="../../doc/manual.html">Manual</a>
- <li><a href="https://github.com/codemirror/codemirror">Code</a>
- </ul>
- <ul>
- <li><a href="../index.html">Language modes</a>
- <li><a class=active href="#">APL</a>
- </ul>
-</div>
-
-<article>
-<h2>APL mode</h2>
-<form><textarea id="code" name="code">
-⍝ Conway's game of life
-
-⍝ This example was inspired by the impressive demo at
-⍝ http://www.youtube.com/watch?v=a9xAKttWgP4
-
-⍝ Create a matrix:
-⍝ 0 1 1
-⍝ 1 1 0
-⍝ 0 1 0
-creature ← (3 3 ⍴ ⍳ 9) ∈ 1 2 3 4 7 ⍝ Original creature from demo
-creature ← (3 3 ⍴ ⍳ 9) ∈ 1 3 6 7 8 ⍝ Glider
-
-⍝ Place the creature on a larger board, near the centre
-board ← ¯1 ⊖ ¯2 ⌽ 5 7 ↑ creature
-
-⍝ A function to move from one generation to the next
-life ← {∨/ 1 ⍵ ∧ 3 4 = ⊂+/ +⌿ 1 0 ¯1 ∘.⊖ 1 0 ¯1 ⌽¨ ⊂⍵}
-
-⍝ Compute n-th generation and format it as a
-⍝ character matrix
-gen ← {' #'[(life ⍣ ⍵) board]}
-
-⍝ Show first three generations
-(gen 1) (gen 2) (gen 3)
-</textarea></form>
-
- <script>
- var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
- lineNumbers: true,
- matchBrackets: true,
- mode: "text/apl"
- });
- </script>
-
- <p>Simple mode that tries to handle APL as well as it can.</p>
- <p>It attempts to label functions/operators based upon
- monadic/dyadic usage (but this is far from fully fleshed out).
- This means there are meaningful classnames so hover states can
- have popups etc.</p>
-
- <p><strong>MIME types defined:</strong> <code>text/apl</code> (APL code)</p>
- </article>