mirror of
https://github.com/vastxie/99AI.git
synced 2025-09-19 01:56:38 +08:00
9 lines
985 B
JavaScript
9 lines
985 B
JavaScript
|
|
/**
|
|
* 由 Fantastic-admin 提供技术支持
|
|
* Powered by Fantastic-admin
|
|
* https://fantastic-admin.github.io
|
|
*/
|
|
|
|
var u=/[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\"\\]/,f=/[\|\!\+\-\*\?\~\^\&]/,l=/^(OR|AND|NOT|TO)$/;function k(n){return parseFloat(n).toString()===n}function a(n){return function(e,r){for(var t=!1,o;(o=e.next())!=null&&!(o==n&&!t);)t=!t&&o=="\\";return t||(r.tokenize=i),"string"}}function c(n){return function(e,r){return n=="|"?e.eat(/\|/):n=="&"&&e.eat(/\&/),r.tokenize=i,"operator"}}function s(n){return function(e,r){for(var t=n;(n=e.peek())&&n.match(u)!=null;)t+=e.next();return r.tokenize=i,l.test(t)?"operator":k(t)?"number":e.peek()==":"?"propertyName":"string"}}function i(n,e){var r=n.next();return r=='"'?e.tokenize=a(r):f.test(r)?e.tokenize=c(r):u.test(r)&&(e.tokenize=s(r)),e.tokenize!=i?e.tokenize(n,e):null}const p={name:"solr",startState:function(){return{tokenize:i}},token:function(n,e){return n.eatSpace()?null:e.tokenize(n,e)}};export{p as solr};
|