marko/compiler/ast/ElseIf.js
2015-12-28 21:55:29 -07:00

26 lines
611 B
JavaScript

'use strict';
var Node = require('./Node');
class ElseIf extends Node {
constructor(def) {
super('ElseIf');
this.test = def.test;
this.body = this.makeContainer(def.body);
this.else = def.else;
this.matched = false;
}
generateCode(codegen) {
if (!this.matched) {
codegen.addError('Unmatched else statement');
return;
}
var ifStatement = codegen.builder.ifStatement(this.test, this.body, this.else);
codegen.write('else ');
codegen.generateCode(ifStatement);
}
}
module.exports = ElseIf;