mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
61 lines
1.2 KiB
JavaScript
61 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
var Node = require('./Node');
|
|
|
|
class SequenceExpression extends Node {
|
|
constructor(def) {
|
|
super('SequenceExpression');
|
|
this.expressions = def.expressions;
|
|
}
|
|
|
|
generateCode(codegen) {
|
|
this.expressions = codegen.generateCode(this.expressions);
|
|
return this;
|
|
}
|
|
|
|
writeCode(writer) {
|
|
|
|
for (var i=0; i<this.expressions.length; i++) {
|
|
var expression = this.expressions[i];
|
|
|
|
if (i !== 0) {
|
|
writer.write(', ');
|
|
}
|
|
|
|
writer.write(expression);
|
|
}
|
|
}
|
|
|
|
isCompoundExpression() {
|
|
return true;
|
|
}
|
|
|
|
toJSON() {
|
|
return {
|
|
type: 'SequenceExpression',
|
|
expressions: this.expressions
|
|
};
|
|
}
|
|
|
|
walk(walker) {
|
|
this.expressions = walker.walk(this.expressions);
|
|
}
|
|
|
|
toString() {
|
|
var code = '';
|
|
|
|
for (var i=0; i<this.expressions.length; i++) {
|
|
var expression = this.expressions[i];
|
|
|
|
if (i !== 0) {
|
|
code += ', ';
|
|
}
|
|
|
|
code += expression;
|
|
}
|
|
|
|
return code;
|
|
}
|
|
}
|
|
|
|
module.exports = SequenceExpression; |