UNPKG

@scalenc/nc-format

Version:

Library for handling TRUMPF NC file format.

54 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Writer = void 0; const Constants_1 = require("./Constants"); const StatementWriter_1 = require("./StatementWriter"); const TextWriter_1 = require("./TextWriter"); class Writer { stream = new TextWriter_1.TextWriter(); get text() { return this.stream.text; } static toStrings(ncText) { return ncText.blocks.map(Writer.write); } static toString(ncText, newLineChar = '\n') { return this.toStrings(ncText).join(newLineChar); } static write(block) { return new Writer().write(block).text.trimEnd(); } write(block) { this.writeLineNumber(block.blockNumber).writeLabels(block.labels).writeStatements(block.statements).writeComment(block.comment); return this; } writeLineNumber(blockNumber) { if (blockNumber) { this.stream.write(Constants_1.Constants.NUMBER_TOKEN); this.stream.write(blockNumber.toString()); } return this; } writeLabels(labels) { labels.forEach((label) => { this.stream.write(label); this.stream.write(Constants_1.Constants.COLON); }); return this; } writeStatements(statements) { if (statements.length) { const statementWriter = new StatementWriter_1.StatementWriter(this.stream); statements.forEach((statement) => statement.visit(statementWriter)); } return this; } writeComment(comment) { if (comment) { this.stream.write(Constants_1.Constants.COMMENT_CHAR); this.stream.write(comment); } } } exports.Writer = Writer; //# sourceMappingURL=Writer.js.map