UNPKG

awv3

Version:
281 lines (220 loc) 6.88 kB
import _regeneratorRuntime from "@babel/runtime/regenerator"; /* * Abstract syntax tree of the ClassCad language. * API is closely based on python ast module, see there for class/method help. */ var Ast = /*#__PURE__*/ function () { function Ast() { var i = 0; for (var _iterator = this.iter_fields(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; var _ref3; if (_isArray) { if (_i >= _iterator.length) break; _ref3 = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref3 = _i.value; } var _ref4 = _ref3; var _name = _ref4[0]; var _field = _ref4[1]; this[_name] = (_ref = i++, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref]); } } var _proto = Ast.prototype; _proto.iter_fields = /*#__PURE__*/ _regeneratorRuntime.mark(function iter_fields() { var _iterator2, _isArray2, _i2, _ref5, _field2; return _regeneratorRuntime.wrap(function iter_fields$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _iterator2 = this.constructor._fields, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator](); case 1: if (!_isArray2) { _context.next = 7; break; } if (!(_i2 >= _iterator2.length)) { _context.next = 4; break; } return _context.abrupt("break", 16); case 4: _ref5 = _iterator2[_i2++]; _context.next = 11; break; case 7: _i2 = _iterator2.next(); if (!_i2.done) { _context.next = 10; break; } return _context.abrupt("break", 16); case 10: _ref5 = _i2.value; case 11: _field2 = _ref5; _context.next = 14; return [_field2, this[_field2]]; case 14: _context.next = 1; break; case 16: case "end": return _context.stop(); } } }, iter_fields, this); }); _proto.iter_child_nodes = /*#__PURE__*/ _regeneratorRuntime.mark(function iter_child_nodes() { var _iterator3, _isArray3, _i3, _ref7, _ref8, _name2, _field3, _iterator4, _isArray4, _i4, _ref9, _item; return _regeneratorRuntime.wrap(function iter_child_nodes$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _iterator3 = this.iter_fields(), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator](); case 1: if (!_isArray3) { _context2.next = 7; break; } if (!(_i3 >= _iterator3.length)) { _context2.next = 4; break; } return _context2.abrupt("break", 39); case 4: _ref7 = _iterator3[_i3++]; _context2.next = 11; break; case 7: _i3 = _iterator3.next(); if (!_i3.done) { _context2.next = 10; break; } return _context2.abrupt("break", 39); case 10: _ref7 = _i3.value; case 11: _ref8 = _ref7; _name2 = _ref8[0]; _field3 = _ref8[1]; if (!(_field3 instanceof Ast)) { _context2.next = 19; break; } _context2.next = 17; return _field3; case 17: _context2.next = 37; break; case 19: if (!(_field3 instanceof Array)) { _context2.next = 37; break; } _iterator4 = _field3, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator](); case 21: if (!_isArray4) { _context2.next = 27; break; } if (!(_i4 >= _iterator4.length)) { _context2.next = 24; break; } return _context2.abrupt("break", 37); case 24: _ref9 = _iterator4[_i4++]; _context2.next = 31; break; case 27: _i4 = _iterator4.next(); if (!_i4.done) { _context2.next = 30; break; } return _context2.abrupt("break", 37); case 30: _ref9 = _i4.value; case 31: _item = _ref9; if (!(_item instanceof Ast)) { _context2.next = 35; break; } _context2.next = 35; return _item; case 35: _context2.next = 21; break; case 37: _context2.next = 1; break; case 39: case "end": return _context2.stop(); } } }, iter_child_nodes, this); }); _proto.walk = /*#__PURE__*/ _regeneratorRuntime.mark(function walk() { var _iterator5, _isArray5, _i5, _ref10, _child; return _regeneratorRuntime.wrap(function walk$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return this; case 2: _iterator5 = this.iter_child_nodes(), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator](); case 3: if (!_isArray5) { _context3.next = 9; break; } if (!(_i5 >= _iterator5.length)) { _context3.next = 6; break; } return _context3.abrupt("break", 17); case 6: _ref10 = _iterator5[_i5++]; _context3.next = 13; break; case 9: _i5 = _iterator5.next(); if (!_i5.done) { _context3.next = 12; break; } return _context3.abrupt("break", 17); case 12: _ref10 = _i5.value; case 13: _child = _ref10; return _context3.delegateYield(_child.walk(), "t0", 15); case 15: _context3.next = 3; break; case 17: case "end": return _context3.stop(); } } }, walk, this); }); return Ast; }(); export { Ast as default };