summaryrefslogtreecommitdiffstats
path: root/lib/handlebars/compiler/visitor.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/handlebars/compiler/visitor.js')
-rw-r--r--lib/handlebars/compiler/visitor.js63
1 files changed, 31 insertions, 32 deletions
diff --git a/lib/handlebars/compiler/visitor.js b/lib/handlebars/compiler/visitor.js
index a4eb2b4..c0cfab6 100644
--- a/lib/handlebars/compiler/visitor.js
+++ b/lib/handlebars/compiler/visitor.js
@@ -4,64 +4,63 @@ Visitor.prototype = {
constructor: Visitor,
accept: function(object) {
- return object && this[object.type] && this[object.type](object);
+ return object && this[object.type](object);
},
- program: function(program) {
- var statements = program.statements,
+ Program: function(program) {
+ var body = program.body,
i, l;
- for(i=0, l=statements.length; i<l; i++) {
- this.accept(statements[i]);
+ for(i=0, l=body.length; i<l; i++) {
+ this.accept(body[i]);
}
},
- block: function(block) {
- this.accept(block.mustache);
+ MustacheStatement: function(mustache) {
+ this.accept(mustache.sexpr);
+ },
+
+ BlockStatement: function(block) {
+ this.accept(block.sexpr);
this.accept(block.program);
this.accept(block.inverse);
},
- mustache: function(mustache) {
- this.accept(mustache.sexpr);
+ PartialStatement: function(partial) {
+ this.accept(partial.partialName);
+ this.accept(partial.context);
+ this.accept(partial.hash);
},
- sexpr: function(sexpr) {
+ ContentStatement: function(content) {},
+ CommentStatement: function(comment) {},
+
+ SubExpression: function(sexpr) {
var params = sexpr.params, paramStrings = [], hash;
- this.accept(sexpr.id);
+ this.accept(sexpr.path);
for(var i=0, l=params.length; i<l; i++) {
this.accept(params[i]);
}
this.accept(sexpr.hash);
},
- hash: function(hash) {
+ PathExpression: function(path) {},
+
+ StringLiteral: function(string) {},
+ NumberLiteral: function(number) {},
+ BooleanLiteral: function(bool) {},
+
+ Hash: function(hash) {
var pairs = hash.pairs;
for(var i=0, l=pairs.length; i<l; i++) {
- this.accept(pairs[i][1]);
+ this.accept(pairs[i]);
}
},
-
- 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) {}
+ HashPair: function(pair) {
+ this.accept(pair.value);
+ }
};
export default Visitor;