diff options
author | kpdecker <kpdecker@gmail.com> | 2014-11-05 21:57:09 -0600 |
---|---|---|
committer | kpdecker <kpdecker@gmail.com> | 2014-11-05 21:57:09 -0600 |
commit | a7000f81292816065b122389ea3454ad85c1798e (patch) | |
tree | d36603cffbf2e70186d6e1d5bfb14a17a4058900 /lib/handlebars/compiler/visitor.js | |
parent | 632fadcea39b6328983c459ff7e8c4010a976837 (diff) | |
download | handlebars.js-a7000f81292816065b122389ea3454ad85c1798e.zip handlebars.js-a7000f81292816065b122389ea3454ad85c1798e.tar.gz handlebars.js-a7000f81292816065b122389ea3454ad85c1798e.tar.bz2 |
Provide stubbed visitor implementation
Part of #889
Diffstat (limited to 'lib/handlebars/compiler/visitor.js')
-rw-r--r-- | lib/handlebars/compiler/visitor.js | 60 |
1 files changed, 58 insertions, 2 deletions
diff --git a/lib/handlebars/compiler/visitor.js b/lib/handlebars/compiler/visitor.js index 6a0373e..a4eb2b4 100644 --- a/lib/handlebars/compiler/visitor.js +++ b/lib/handlebars/compiler/visitor.js @@ -4,8 +4,64 @@ Visitor.prototype = { constructor: Visitor, accept: function(object) { - return this[object.type](object); - } + return object && this[object.type] && this[object.type](object); + }, + + program: function(program) { + var statements = program.statements, + i, l; + + for(i=0, l=statements.length; i<l; i++) { + this.accept(statements[i]); + } + }, + + block: function(block) { + this.accept(block.mustache); + this.accept(block.program); + this.accept(block.inverse); + }, + + mustache: function(mustache) { + this.accept(mustache.sexpr); + }, + + sexpr: function(sexpr) { + var params = sexpr.params, paramStrings = [], hash; + + this.accept(sexpr.id); + for(var i=0, l=params.length; i<l; i++) { + this.accept(params[i]); + } + this.accept(sexpr.hash); + }, + + hash: function(hash) { + var pairs = hash.pairs; + + for(var i=0, l=pairs.length; i<l; i++) { + this.accept(pairs[i][1]); + } + }, + + partial: function(partial) { + this.accept(partial.partialName); + this.accept(partial.context); + this.accept(partial.hash); + }, + PARTIAL_NAME: function(partialName) {}, + + DATA: function(data) { + this.accept(data.id); + }, + + STRING: function(string) {}, + NUMBER: function(number) {}, + BOOLEAN: function(bool) {}, + ID: function(id) {}, + + content: function(content) {}, + comment: function(comment) {} }; export default Visitor; |