Software zum Installieren eines Smart-Mirror Frameworks , zum Nutzen von hochschulrelevanten Informationen, auf einem Raspberry-Pi.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

gatherSequenceExpressions.js 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = gatherSequenceExpressions;
  6. var _getBindingIdentifiers = require("../retrievers/getBindingIdentifiers");
  7. var _generated = require("../validators/generated");
  8. var _generated2 = require("../builders/generated");
  9. var _cloneNode = require("../clone/cloneNode");
  10. function gatherSequenceExpressions(nodes, scope, declars) {
  11. const exprs = [];
  12. let ensureLastUndefined = true;
  13. for (const node of nodes) {
  14. if (!(0, _generated.isEmptyStatement)(node)) {
  15. ensureLastUndefined = false;
  16. }
  17. if ((0, _generated.isExpression)(node)) {
  18. exprs.push(node);
  19. } else if ((0, _generated.isExpressionStatement)(node)) {
  20. exprs.push(node.expression);
  21. } else if ((0, _generated.isVariableDeclaration)(node)) {
  22. if (node.kind !== "var") return;
  23. for (const declar of node.declarations) {
  24. const bindings = (0, _getBindingIdentifiers.default)(declar);
  25. for (const key of Object.keys(bindings)) {
  26. declars.push({
  27. kind: node.kind,
  28. id: (0, _cloneNode.default)(bindings[key])
  29. });
  30. }
  31. if (declar.init) {
  32. exprs.push((0, _generated2.assignmentExpression)("=", declar.id, declar.init));
  33. }
  34. }
  35. ensureLastUndefined = true;
  36. } else if ((0, _generated.isIfStatement)(node)) {
  37. const consequent = node.consequent ? gatherSequenceExpressions([node.consequent], scope, declars) : scope.buildUndefinedNode();
  38. const alternate = node.alternate ? gatherSequenceExpressions([node.alternate], scope, declars) : scope.buildUndefinedNode();
  39. if (!consequent || !alternate) return;
  40. exprs.push((0, _generated2.conditionalExpression)(node.test, consequent, alternate));
  41. } else if ((0, _generated.isBlockStatement)(node)) {
  42. const body = gatherSequenceExpressions(node.body, scope, declars);
  43. if (!body) return;
  44. exprs.push(body);
  45. } else if ((0, _generated.isEmptyStatement)(node)) {
  46. if (nodes.indexOf(node) === 0) {
  47. ensureLastUndefined = true;
  48. }
  49. } else {
  50. return;
  51. }
  52. }
  53. if (ensureLastUndefined) {
  54. exprs.push(scope.buildUndefinedNode());
  55. }
  56. if (exprs.length === 1) {
  57. return exprs[0];
  58. } else {
  59. return (0, _generated2.sequenceExpression)(exprs);
  60. }
  61. }