summaryrefslogtreecommitdiff
path: root/public/vendor/codemirror/mode/yacas
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/yacas
parent3a305b8258782797b328f2ce46e8bb74e9603594 (diff)
Update to move custom CodeMirror codebase to our own repo and update webpack build config
Diffstat (limited to 'public/vendor/codemirror/mode/yacas')
-rw-r--r--public/vendor/codemirror/mode/yacas/index.html87
-rw-r--r--public/vendor/codemirror/mode/yacas/yacas.js204
2 files changed, 0 insertions, 291 deletions
diff --git a/public/vendor/codemirror/mode/yacas/index.html b/public/vendor/codemirror/mode/yacas/index.html
deleted file mode 100644
index 8e52cafb..00000000
--- a/public/vendor/codemirror/mode/yacas/index.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!doctype html>
-
-<title>CodeMirror: yacas 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=yacas.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="#">yacas</a>
- </ul>
-</div>
-
-<article>
-<h2>yacas mode</h2>
-
-
-<textarea id="yacasCode">
-// example yacas code
-Graph(edges_IsList) <-- [
- Local(v, e, f, t);
-
- vertices := {};
-
- ForEach (e, edges) [
- If (IsList(e), e := Head(e));
- {f, t} := Tail(Listify(e));
-
- DestructiveAppend(vertices, f);
- DestructiveAppend(vertices, t);
- ];
-
- Graph(RemoveDuplicates(vertices), edges);
-];
-
-10 # IsGraph(Graph(vertices_IsList, edges_IsList)) <-- True;
-20 # IsGraph(_x) <-- False;
-
-Edges(Graph(vertices_IsList, edges_IsList)) <-- edges;
-Vertices(Graph(vertices_IsList, edges_IsList)) <-- vertices;
-
-AdjacencyList(g_IsGraph) <-- [
- Local(l, vertices, edges, e, op, f, t);
-
- l := Association'Create();
-
- vertices := Vertices(g);
- ForEach (v, vertices)
- Association'Set(l, v, {});
-
- edges := Edges(g);
-
- ForEach(e, edges) [
- If (IsList(e), e := Head(e));
- {op, f, t} := Listify(e);
- DestructiveAppend(Association'Get(l, f), t);
- If (String(op) = "<->", DestructiveAppend(Association'Get(l, t), f));
- ];
-
- l;
-];
-</textarea>
-
-<script>
- var yacasEditor = CodeMirror.fromTextArea(document.getElementById('yacasCode'), {
- mode: 'text/x-yacas',
- lineNumbers: true,
- matchBrackets: true
- });
-</script>
-
-<p><strong>MIME types defined:</strong> <code>text/x-yacas</code> (yacas).</p>
-</article>
diff --git a/public/vendor/codemirror/mode/yacas/yacas.js b/public/vendor/codemirror/mode/yacas/yacas.js
deleted file mode 100644
index 30bd60b2..00000000
--- a/public/vendor/codemirror/mode/yacas/yacas.js
+++ /dev/null
@@ -1,204 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-// Yacas mode copyright (c) 2015 by Grzegorz Mazur
-// Loosely based on mathematica mode by Calin Barbat
-
-(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('yacas', function(_config, _parserConfig) {
-
- function words(str) {
- var obj = {}, words = str.split(" ");
- for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
- return obj;
- }
-
- var bodiedOps = words("Assert BackQuote D Defun Deriv For ForEach FromFile " +
- "FromString Function Integrate InverseTaylor Limit " +
- "LocalSymbols Macro MacroRule MacroRulePattern " +
- "NIntegrate Rule RulePattern Subst TD TExplicitSum " +
- "TSum Taylor Taylor1 Taylor2 Taylor3 ToFile " +
- "ToStdout ToString TraceRule Until While");
-
- // patterns
- var pFloatForm = "(?:(?:\\.\\d+|\\d+\\.\\d*|\\d+)(?:[eE][+-]?\\d+)?)";
- var pIdentifier = "(?:[a-zA-Z\\$'][a-zA-Z0-9\\$']*)";
-
- // regular expressions
- var reFloatForm = new RegExp(pFloatForm);
- var reIdentifier = new RegExp(pIdentifier);
- var rePattern = new RegExp(pIdentifier + "?_" + pIdentifier);
- var reFunctionLike = new RegExp(pIdentifier + "\\s*\\(");
-
- 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.tokenize = tokenComment;
- return state.tokenize(stream, state);
- }
- if (stream.eat("/")) {
- stream.skipToEnd();
- return "comment";
- }
- }
-
- // go back one character
- stream.backUp(1);
-
- // update scope info
- var m = stream.match(/^(\w+)\s*\(/, false);
- if (m !== null && bodiedOps.hasOwnProperty(m[1]))
- state.scopes.push('bodied');
-
- var scope = currentScope(state);
-
- if (scope === 'bodied' && ch === '[')
- state.scopes.pop();
-
- if (ch === '[' || ch === '{' || ch === '(')
- state.scopes.push(ch);
-
- scope = currentScope(state);
-
- if (scope === '[' && ch === ']' ||
- scope === '{' && ch === '}' ||
- scope === '(' && ch === ')')
- state.scopes.pop();
-
- if (ch === ';') {
- while (scope === 'bodied') {
- state.scopes.pop();
- scope = currentScope(state);
- }
- }
-
- // look for ordered rules
- if (stream.match(/\d+ *#/, true, false)) {
- return 'qualifier';
- }
-
- // look for numbers
- if (stream.match(reFloatForm, true, false)) {
- return 'number';
- }
-
- // look for placeholders
- if (stream.match(rePattern, true, false)) {
- return 'variable-3';
- }
-
- // match all braces separately
- if (stream.match(/(?:\[|\]|{|}|\(|\))/, true, false)) {
- return 'bracket';
- }
-
- // literals looking like function calls
- if (stream.match(reFunctionLike, true, false)) {
- stream.backUp(1);
- return 'variable';
- }
-
- // all other identifiers
- if (stream.match(reIdentifier, true, false)) {
- return 'variable-2';
- }
-
- // operators; note that operators like @@ or /; are matched separately for each symbol.
- if (stream.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/, true, false)) {
- return 'operator';
- }
-
- // everything else is an error
- 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((next = stream.next()) != null) {
- if (prev === '*' && next === '/') {
- state.tokenize = tokenBase;
- break;
- }
- prev = next;
- }
- return 'comment';
- }
-
- function currentScope(state) {
- var scope = null;
- if (state.scopes.length > 0)
- scope = state.scopes[state.scopes.length - 1];
- return scope;
- }
-
- return {
- startState: function() {
- return {
- tokenize: tokenBase,
- scopes: []
- };
- },
- token: function(stream, state) {
- if (stream.eatSpace()) return null;
- return state.tokenize(stream, state);
- },
- indent: function(state, textAfter) {
- if (state.tokenize !== tokenBase && state.tokenize !== null)
- return CodeMirror.Pass;
-
- var delta = 0;
- if (textAfter === ']' || textAfter === '];' ||
- textAfter === '}' || textAfter === '};' ||
- textAfter === ');')
- delta = -1;
-
- return (state.scopes.length + delta) * _config.indentUnit;
- },
- electricChars: "{}[]();",
- blockCommentStart: "/*",
- blockCommentEnd: "*/",
- lineComment: "//"
- };
-});
-
-CodeMirror.defineMIME('text/x-yacas', {
- name: 'yacas'
-});
-
-});