summaryrefslogtreecommitdiff
path: root/public/vendor/codemirror/mode/mathematica
diff options
context:
space:
mode:
Diffstat (limited to 'public/vendor/codemirror/mode/mathematica')
-rw-r--r--public/vendor/codemirror/mode/mathematica/index.html72
-rw-r--r--public/vendor/codemirror/mode/mathematica/mathematica.js176
2 files changed, 0 insertions, 248 deletions
diff --git a/public/vendor/codemirror/mode/mathematica/index.html b/public/vendor/codemirror/mode/mathematica/index.html
deleted file mode 100644
index 57c42985..00000000
--- a/public/vendor/codemirror/mode/mathematica/index.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!doctype html>
-
-<title>CodeMirror: Mathematica 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=mathematica.js></script>
-<style type=text/css>
- .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
-</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="#">Mathematica</a>
- </ul>
-</div>
-
-<article>
-<h2>Mathematica mode</h2>
-
-
-<textarea id="mathematicaCode">
-(* example Mathematica code *)
-(* Dualisiert wird anhand einer Polarität an einer
- Quadrik $x^t Q x = 0$ mit regulärer Matrix $Q$ (also
- mit $det(Q) \neq 0$), z.B. die Identitätsmatrix.
- $p$ ist eine Liste von Polynomen - ein Ideal. *)
-dualize::"singular" = "Q must be regular: found Det[Q]==0.";
-dualize[ Q_, p_ ] := Block[
- { m, n, xv, lv, uv, vars, polys, dual },
- If[Det[Q] == 0,
- Message[dualize::"singular"],
- m = Length[p];
- n = Length[Q] - 1;
- xv = Table[Subscript[x, i], {i, 0, n}];
- lv = Table[Subscript[l, i], {i, 1, m}];
- uv = Table[Subscript[u, i], {i, 0, n}];
- (* Konstruiere Ideal polys. *)
- If[m == 0,
- polys = Q.uv,
- polys = Join[p, Q.uv - Transpose[Outer[D, p, xv]].lv]
- ];
- (* Eliminiere die ersten n + 1 + m Variablen xv und lv
- aus dem Ideal polys. *)
- vars = Join[xv, lv];
- dual = GroebnerBasis[polys, uv, vars];
- (* Ersetze u mit x im Ergebnis. *)
- ReplaceAll[dual, Rule[u, x]]
- ]
- ]
-</textarea>
-
-<script>
- var mathematicaEditor = CodeMirror.fromTextArea(document.getElementById('mathematicaCode'), {
- mode: 'text/x-mathematica',
- lineNumbers: true,
- matchBrackets: true
- });
-</script>
-
-<p><strong>MIME types defined:</strong> <code>text/x-mathematica</code> (Mathematica).</p>
-</article>
diff --git a/public/vendor/codemirror/mode/mathematica/mathematica.js b/public/vendor/codemirror/mode/mathematica/mathematica.js
deleted file mode 100644
index d6977088..00000000
--- a/public/vendor/codemirror/mode/mathematica/mathematica.js
+++ /dev/null
@@ -1,176 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-// Mathematica mode copyright (c) 2015 by Calin Barbat
-// Based on code by Patrick Scheibe (halirutan)
-// See: https://github.com/halirutan/Mathematica-Source-Highlighting/tree/master/src/lang-mma.js
-
-(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('mathematica', function(_config, _parserConfig) {
-
- // used pattern building blocks
- var Identifier = '[a-zA-Z\\$][a-zA-Z0-9\\$]*';
- var pBase = "(?:\\d+)";
- var pFloat = "(?:\\.\\d+|\\d+\\.\\d*|\\d+)";
- var pFloatBase = "(?:\\.\\w+|\\w+\\.\\w*|\\w+)";
- var pPrecision = "(?:`(?:`?"+pFloat+")?)";
-
- // regular expressions
- var reBaseForm = new RegExp('(?:'+pBase+'(?:\\^\\^'+pFloatBase+pPrecision+'?(?:\\*\\^[+-]?\\d+)?))');
- var reFloatForm = new RegExp('(?:' + pFloat + pPrecision + '?(?:\\*\\^[+-]?\\d+)?)');
- var reIdInContext = new RegExp('(?:`?)(?:' + Identifier + ')(?:`(?:' + Identifier + '))*(?:`?)');
-
- function tokenBase(stream, state) {
- var ch;
-
- // get next character
- ch = stream.next();
-
- // string
- if (ch === '"') {
- state.tokenize = tokenString;
- return state.tokenize(stream, state);
- }
-
- // comment
- if (ch === '(') {
- if (stream.eat('*')) {
- state.commentLevel++;
- state.tokenize = tokenComment;
- return state.tokenize(stream, state);
- }
- }
-
- // go back one character
- stream.backUp(1);
-
- // look for numbers
- // Numbers in a baseform
- if (stream.match(reBaseForm, true, false)) {
- return 'number';
- }
-
- // Mathematica numbers. Floats (1.2, .2, 1.) can have optionally a precision (`float) or an accuracy definition
- // (``float). Note: while 1.2` is possible 1.2`` is not. At the end an exponent (float*^+12) can follow.
- if (stream.match(reFloatForm, true, false)) {
- return 'number';
- }
-
- /* In[23] and Out[34] */
- if (stream.match(/(?:In|Out)\[[0-9]*\]/, true, false)) {
- return 'atom';
- }
-
- // usage
- if (stream.match(/([a-zA-Z\$]+(?:`?[a-zA-Z0-9\$])*::usage)/, true, false)) {
- return 'meta';
- }
-
- // message
- if (stream.match(/([a-zA-Z\$]+(?:`?[a-zA-Z0-9\$])*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/, true, false)) {
- return 'string-2';
- }
-
- // this makes a look-ahead match for something like variable:{_Integer}
- // the match is then forwarded to the mma-patterns tokenizer.
- if (stream.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/, true, false)) {
- return 'variable-2';
- }
-
- // catch variables which are used together with Blank (_), BlankSequence (__) or BlankNullSequence (___)
- // Cannot start with a number, but can have numbers at any other position. Examples
- // blub__Integer, a1_, b34_Integer32
- if (stream.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/, true, false)) {
- return 'variable-2';
- }
- if (stream.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/, true, false)) {
- return 'variable-2';
- }
- if (stream.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/, true, false)) {
- return 'variable-2';
- }
-
- // Named characters in Mathematica, like \[Gamma].
- if (stream.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/, true, false)) {
- return 'variable-3';
- }
-
- // Match all braces separately
- if (stream.match(/(?:\[|\]|{|}|\(|\))/, true, false)) {
- return 'bracket';
- }
-
- // Catch Slots (#, ##, #3, ##9 and the V10 named slots #name). I have never seen someone using more than one digit after #, so we match
- // only one.
- if (stream.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/, true, false)) {
- return 'variable-2';
- }
-
- // Literals like variables, keywords, functions
- if (stream.match(reIdInContext, true, false)) {
- return 'keyword';
- }
-
- // operators. Note that operators like @@ or /; are matched separately for each symbol.
- if (stream.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/, true, false)) {
- return 'operator';
- }
-
- // everything else is an error
- stream.next(); // advance the stream.
- return 'error';
- }
-
- function tokenString(stream, state) {
- var next, end = false, escaped = false;
- while ((next = stream.next()) != null) {
- if (next === '"' && !escaped) {
- end = true;
- break;
- }
- escaped = !escaped && next === '\\';
- }
- if (end && !escaped) {
- state.tokenize = tokenBase;
- }
- return 'string';
- };
-
- function tokenComment(stream, state) {
- var prev, next;
- while(state.commentLevel > 0 && (next = stream.next()) != null) {
- if (prev === '(' && next === '*') state.commentLevel++;
- if (prev === '*' && next === ')') state.commentLevel--;
- prev = next;
- }
- if (state.commentLevel <= 0) {
- state.tokenize = tokenBase;
- }
- return 'comment';
- }
-
- return {
- startState: function() {return {tokenize: tokenBase, commentLevel: 0};},
- token: function(stream, state) {
- if (stream.eatSpace()) return null;
- return state.tokenize(stream, state);
- },
- blockCommentStart: "(*",
- blockCommentEnd: "*)"
- };
-});
-
-CodeMirror.defineMIME('text/x-mathematica', {
- name: 'mathematica'
-});
-
-});