This commit is contained in:
Iaatw
2026-05-08 13:39:01 +08:00
commit 6901a2071a
145 changed files with 420 additions and 0 deletions

View File

@@ -0,0 +1 @@
function e(e){for(var t={},n=e.split(` `),r=0;r<n.length;++r)t[n[r]]=!0;return t}var t=e(`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`),n=`(?:(?:\\.\\d+|\\d+\\.\\d*|\\d+)(?:[eE][+-]?\\d+)?)`,r=`(?:[a-zA-Z\\$'][a-zA-Z0-9\\$']*)`,i=new RegExp(n),a=new RegExp(r),o=RegExp(r+`?_`+r),s=RegExp(r+`\\s*\\(`);function c(e,n){var r=e.next();if(r===`"`)return n.tokenize=l,n.tokenize(e,n);if(r===`/`){if(e.eat(`*`))return n.tokenize=u,n.tokenize(e,n);if(e.eat(`/`))return e.skipToEnd(),`comment`}e.backUp(1);var c=e.match(/^(\w+)\s*\(/,!1);c!==null&&t.hasOwnProperty(c[1])&&n.scopes.push(`bodied`);var f=d(n);if(f===`bodied`&&r===`[`&&n.scopes.pop(),(r===`[`||r===`{`||r===`(`)&&n.scopes.push(r),f=d(n),(f===`[`&&r===`]`||f===`{`&&r===`}`||f===`(`&&r===`)`)&&n.scopes.pop(),r===`;`)for(;f===`bodied`;)n.scopes.pop(),f=d(n);return e.match(/\d+ *#/,!0,!1)?`qualifier`:e.match(i,!0,!1)?`number`:e.match(o,!0,!1)?`variableName.special`:e.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?`bracket`:e.match(s,!0,!1)?(e.backUp(1),`variableName.function`):e.match(a,!0,!1)?`variable`:e.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%|#)/,!0,!1)?`operator`:`error`}function l(e,t){for(var n,r=!1,i=!1;(n=e.next())!=null;){if(n===`"`&&!i){r=!0;break}i=!i&&n===`\\`}return r&&!i&&(t.tokenize=c),`string`}function u(e,t){for(var n,r;(r=e.next())!=null;){if(n===`*`&&r===`/`){t.tokenize=c;break}n=r}return`comment`}function d(e){var t=null;return e.scopes.length>0&&(t=e.scopes[e.scopes.length-1]),t}var f={name:`yacas`,startState:function(){return{tokenize:c,scopes:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!==c&&e.tokenize!==null)return null;var r=0;return(t===`]`||t===`];`||t===`}`||t===`};`||t===`);`)&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{electricInput:/[{}\[\]()\;]/,commentTokens:{line:`//`,block:{open:`/*`,close:`*/`}}}};export{f as yacas};