Brian C
12 years ago
3 changed files with 24 additions and 11 deletions
@ -1,20 +1,24 @@ |
|||||
'use strict'; |
'use strict'; |
||||
|
|
||||
var BinaryNode = require(__dirname + '/binary'); |
var BinaryNode = require(__dirname + '/binary'); |
||||
|
var TextNode = require(__dirname + '/text'); |
||||
module.exports = require(__dirname).define({ |
module.exports = require(__dirname).define({ |
||||
type: 'WHERE', |
type: 'WHERE', |
||||
|
expr: function(other) { |
||||
|
return typeof other === 'string' ? new TextNode('('+other+')') : other; |
||||
|
}, |
||||
or: function(other) { |
or: function(other) { |
||||
return this.nodes.push(new BinaryNode({ |
return this.nodes.push(new BinaryNode({ |
||||
left: this.nodes.pop(), |
left: this.nodes.pop(), |
||||
operator: 'OR', |
operator: 'OR', |
||||
right: other |
right: this.expr(other) |
||||
})); |
})); |
||||
}, |
}, |
||||
and: function(other) { |
and: function(other) { |
||||
return this.nodes.push(new BinaryNode({ |
return this.nodes.push(new BinaryNode({ |
||||
left: this.nodes.pop(), |
left: this.nodes.pop(), |
||||
operator: 'AND', |
operator: 'AND', |
||||
right: other |
right: this.expr(other) |
||||
})); |
})); |
||||
} |
} |
||||
}); |
}); |
||||
|
Loading…
Reference in new issue