UNPKG

kuromoji

Version:

JavaScript implementation of Japanese morphological analyzer

71 lines (57 loc) 2.09 kB
/* * Copyright 2014 Takuya Asano * Copyright 2010-2014 Atilika Inc. and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ "use strict"; var ConnectionCosts = require("../ConnectionCosts"); /** * Builder class for constructing ConnectionCosts object * @constructor */ function ConnectionCostsBuilder() { this.lines = 0; this.connection_cost = null; } ConnectionCostsBuilder.prototype.putLine = function (line) { if (this.lines === 0) { var dimensions = line.split(" "); var forward_dimension = dimensions[0]; var backward_dimension = dimensions[1]; if (forward_dimension < 0 || backward_dimension < 0) { throw "Parse error of matrix.def"; } this.connection_cost = new ConnectionCosts(forward_dimension, backward_dimension); this.lines++; return this; } var costs = line.split(" "); if (costs.length !== 3) { return this; } var forward_id = parseInt(costs[0]); var backward_id = parseInt(costs[1]); var cost = parseInt(costs[2]); if (forward_id < 0 || backward_id < 0 || !isFinite(forward_id) || !isFinite(backward_id) || this.connection_cost.forward_dimension <= forward_id || this.connection_cost.backward_dimension <= backward_id) { throw "Parse error of matrix.def"; } this.connection_cost.put(forward_id, backward_id, cost); this.lines++; return this; }; ConnectionCostsBuilder.prototype.build = function () { return this.connection_cost; }; module.exports = ConnectionCostsBuilder;