Mario Romano 29df96a085 react app
2016-04-06 17:52:19 +01:00

52 lines
1.0 KiB
JavaScript

/**
* Track current position in code generation.
*/
"use strict";
var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"];
exports.__esModule = true;
var Position = (function () {
function Position() {
_classCallCheck(this, Position);
this.line = 1;
this.column = 0;
}
/**
* Push a string to the current position, mantaining the current line and column.
*/
Position.prototype.push = function push(str) {
for (var i = 0; i < str.length; i++) {
if (str[i] === "\n") {
this.line++;
this.column = 0;
} else {
this.column++;
}
}
};
/**
* Unshift a string from the current position, mantaining the current line and column.
*/
Position.prototype.unshift = function unshift(str) {
for (var i = 0; i < str.length; i++) {
if (str[i] === "\n") {
this.line--;
} else {
this.column--;
}
}
};
return Position;
})();
exports["default"] = Position;
module.exports = exports["default"];