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);
}
}
+ // sort tokens longest first..
+
+
+
// should not get here...
return this.tokens;
},
addStr : function (s,q) { //q == quoted..
q = q || false;
- s = q ? s : String.trim(s);
- if (!strlen(s)) {
+ s = q ? s : Roo.util.Format.trim(s);
+ if (!s.length) {
return;
}
+
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;
}
}
- 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;
- }
- function ungetChar()
+ },
+ ungetChar : function ()
{
this.i--;
}
-
-
-
+
+};
+
+Pman.SearchTokenizer.parse = function(v) {
+ var x = new Pman.SearchTokenizer(v);
+ return x.parse();
}
\ No newline at end of file