projects
/
Pman.Core
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pman.js
[Pman.Core]
/
Pman.SearchTokenizer.js
diff --git
a/Pman.SearchTokenizer.js
b/Pman.SearchTokenizer.js
index
7e839ed
..
8db0be1
100644
(file)
--- a/
Pman.SearchTokenizer.js
+++ b/
Pman.SearchTokenizer.js
@@
-14,8
+14,8
@@
Pman.SearchTokenizer = function(s)
{
Pman.SearchTokenizer = function(s)
{
- this.str =
s
;
- this.strlen =
s.length
;
+ this.str =
typeof(s) == 'string' ? s : ''
;
+ this.strlen =
typeof(s) == 'string' ? s.length : 0
;
this.i = 0;
this.tokens = [];
//print_r(this);
this.i = 0;
this.tokens = [];
//print_r(this);
@@
-49,6
+49,10
@@
Pman.SearchTokenizer.prototype = {
}
}
}
}
+ // sort tokens longest first..
+
+
+
// should not get here...
return this.tokens;
},
// should not get here...
return this.tokens;
},
@@
-101,37
+105,43
@@
Pman.SearchTokenizer.prototype = {
str += c;
}
str += c;
}
- }
- function addStr(s, q=false) { //q == quoted..
- s = q ? s : trim(s);
- if (!strlen(s)) {
+ },
+ addStr : function (s,q) { //q == quoted..
+ q = q || false;
+
+ s = q ? s : Roo.util.Format.trim(s);
+ if (!s.length) {
return;
}
return;
}
+
if (!q) {
if (!q) {
-
- if ((strtoupper(s) == 'AND') || (strtoupper(s) == 'OR')) {
- this.tokens[] = new Text_SearchParser_Token_Op(strtoupper(s));
+ if ((s.toUpperCase() == 'AND') || (s.toUpperCase() == 'OR')) {
+ this.tokens.push( { type: s.toUpperCase() });
return;
}
}
return;
}
}
- this.tokens
[] = new Text_SearchParser_Token_String(s
);
- }
+ this.tokens
.push( { type : 's' , v : s, q: q }
);
+ }
,
-
function getChar
()
+
getChar : function
()
{
{
+
if (this.i >= this.strlen) {
return false;
}
c = this.str[this.i];
this.i++;
return c;
if (this.i >= this.strlen) {
return false;
}
c = this.str[this.i];
this.i++;
return c;
- }
-
function ungetChar
()
+ }
,
+
ungetChar : function
()
{
this.i--;
}
{
this.i--;
}
-
-
-
+
+};
+
+Pman.SearchTokenizer.parse = function(v) {
+ var x = new Pman.SearchTokenizer(v);
+ return x.parse();
}
\ No newline at end of file
}
\ No newline at end of file