@danielx/civet 0.4.19-pre.5 → 0.4.19-pre.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -548,6 +548,7 @@ var Civet = (() => {
548
548
  IfClause,
549
549
  UnlessClause,
550
550
  IfExpression,
551
+ UnlessExpression,
551
552
  ExpressionBlock,
552
553
  NestedBlockExpressions,
553
554
  NestedBlockExpression,
@@ -1064,14 +1065,15 @@ var Civet = (() => {
1064
1065
  }
1065
1066
  var ExpressionizedStatement$0 = DebuggerExpression;
1066
1067
  var ExpressionizedStatement$1 = IfExpression;
1067
- var ExpressionizedStatement$2 = IterationExpression;
1068
- var ExpressionizedStatement$3 = SwitchExpression;
1069
- var ExpressionizedStatement$4 = ThrowExpression;
1068
+ var ExpressionizedStatement$2 = UnlessExpression;
1069
+ var ExpressionizedStatement$3 = IterationExpression;
1070
+ var ExpressionizedStatement$4 = SwitchExpression;
1071
+ var ExpressionizedStatement$5 = ThrowExpression;
1070
1072
  function ExpressionizedStatement(state) {
1071
1073
  if (state.tokenize) {
1072
- return $TOKEN("ExpressionizedStatement", state, ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state) || ExpressionizedStatement$4(state));
1074
+ return $TOKEN("ExpressionizedStatement", state, ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state) || ExpressionizedStatement$4(state) || ExpressionizedStatement$5(state));
1073
1075
  } else {
1074
- return ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state) || ExpressionizedStatement$4(state);
1076
+ return ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state) || ExpressionizedStatement$4(state) || ExpressionizedStatement$5(state);
1075
1077
  }
1076
1078
  }
1077
1079
  var Expression$0 = $TS($S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
@@ -1251,7 +1253,9 @@ var Civet = (() => {
1251
1253
  var exp = $2;
1252
1254
  var post = $3;
1253
1255
  if (post?.token === "?") {
1254
- return ["(", pre, "(", exp, ") != null)"];
1256
+ return {
1257
+ children: ["(", ...pre, "(", exp, ") != null)"]
1258
+ };
1255
1259
  }
1256
1260
  if (exp.type === "Literal") {
1257
1261
  if (pre.length === 1 && pre[0].token === "-") {
@@ -1271,12 +1275,16 @@ var Civet = (() => {
1271
1275
  exp.unshift(...pre);
1272
1276
  if (post)
1273
1277
  exp.push(post);
1274
- return exp;
1278
+ return {
1279
+ children: exp
1280
+ };
1275
1281
  } else {
1276
1282
  const result = [...pre, exp];
1277
1283
  if (post)
1278
1284
  result.push(post);
1279
- return result;
1285
+ return {
1286
+ children: result
1287
+ };
1280
1288
  }
1281
1289
  });
1282
1290
  var UnaryExpression$1 = $TS($S(CoffeeDoEnabled, Do, __, $C($S(LeftHandSideExpression, $N($S(__, AssignmentOpSymbol))), ArrowFunction, ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4) {
@@ -1568,8 +1576,21 @@ var Civet = (() => {
1568
1576
  return PrimaryExpression$0(state) || PrimaryExpression$1(state) || PrimaryExpression$2(state) || PrimaryExpression$3(state) || PrimaryExpression$4(state) || PrimaryExpression$5(state) || PrimaryExpression$6(state) || PrimaryExpression$7(state) || PrimaryExpression$8(state) || PrimaryExpression$9(state) || PrimaryExpression$10(state) || PrimaryExpression$11(state);
1569
1577
  }
1570
1578
  }
1571
- var ParenthesizedExpression$0 = $TS($S(OpenParen, ExtendedExpression, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4) {
1579
+ var ParenthesizedExpression$0 = $TS($S(OpenParen, ExtendedExpression, $E($S($Q(TrailingComment), PostfixStatement)), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1572
1580
  var exp = $2;
1581
+ var post = $3;
1582
+ if (post) {
1583
+ let clause;
1584
+ switch (post[1].type) {
1585
+ case "IterationStatement":
1586
+ case "ForStatement":
1587
+ clause = module.addPostfixStatement(exp, ...post);
1588
+ return module.expressionizeIteration(clause);
1589
+ case "IfStatement":
1590
+ clause = module.expressionizeIfClause(post[1], exp);
1591
+ return clause;
1592
+ }
1593
+ }
1573
1594
  return {
1574
1595
  type: "ParenthesizedExpression",
1575
1596
  expression: exp,
@@ -3282,31 +3303,11 @@ var Civet = (() => {
3282
3303
  }
3283
3304
  }
3284
3305
  var StatementListItem$0 = Declaration;
3285
- var StatementListItem$1 = $TS($S(Statement, $Q(TrailingComment), $E(PostfixStatement)), function($skip, $loc, $0, $1, $2, $3) {
3306
+ var StatementListItem$1 = $TS($S(Statement, $E($S($Q(TrailingComment), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
3286
3307
  var statement = $1;
3287
- var ws = $2;
3288
- var post = $3;
3289
- if (post) {
3290
- let children, expressions;
3291
- if (post.blockPrefix?.length) {
3292
- let indent = post.blockPrefix[0][0];
3293
- expressions = [...post.blockPrefix, [indent, statement]];
3294
- children = [" {\n", ...expressions, "\n", indent?.slice?.(0, -2), "}"];
3295
- } else {
3296
- expressions = [["", statement]];
3297
- children = [" { ", ...expressions, " }"];
3298
- }
3299
- const block = {
3300
- type: "BlockStatement",
3301
- children,
3302
- expressions
3303
- };
3304
- post.block = block;
3305
- post.children.push(block);
3306
- if (!module.isWhitespaceOrEmpty(ws))
3307
- post.children.push(ws);
3308
- return post;
3309
- }
3308
+ var post = $2;
3309
+ if (post)
3310
+ return module.addPostfixStatement(statement, ...post);
3310
3311
  return statement;
3311
3312
  });
3312
3313
  function StatementListItem(state) {
@@ -3434,16 +3435,7 @@ var Civet = (() => {
3434
3435
  var clause = $1;
3435
3436
  var b = $2;
3436
3437
  var e = $3;
3437
- clause.children.shift();
3438
- clause.children.push("?", b, ":");
3439
- if (e) {
3440
- e.splice(1, 1);
3441
- clause.children.push(e);
3442
- } else {
3443
- clause.children.push("void 0");
3444
- }
3445
- clause.type = "IfExpression";
3446
- return clause;
3438
+ return module.expressionizeIfClause(clause, b, e);
3447
3439
  });
3448
3440
  function IfExpression(state) {
3449
3441
  if (state.verbose)
@@ -3454,6 +3446,21 @@ var Civet = (() => {
3454
3446
  return IfExpression$0(state);
3455
3447
  }
3456
3448
  }
3449
+ var UnlessExpression$0 = $TS($S(UnlessClause, ExpressionBlock, $E($S(__, Else, ExpressionBlock))), function($skip, $loc, $0, $1, $2, $3) {
3450
+ var clause = $1;
3451
+ var b = $2;
3452
+ var e = $3;
3453
+ return module.expressionizeIfClause(clause, b, e);
3454
+ });
3455
+ function UnlessExpression(state) {
3456
+ if (state.verbose)
3457
+ console.log("ENTER:", "UnlessExpression");
3458
+ if (state.tokenize) {
3459
+ return $TOKEN("UnlessExpression", state, UnlessExpression$0(state));
3460
+ } else {
3461
+ return UnlessExpression$0(state);
3462
+ }
3463
+ }
3457
3464
  var ExpressionBlock$0 = $TS($S(InsertOpenParen, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
3458
3465
  var exps = $3;
3459
3466
  exps[exps.length - 1].pop();
@@ -3649,10 +3656,10 @@ var Civet = (() => {
3649
3656
  if ($3) {
3650
3657
  const indent = "".padStart((module.currentIndent + 1) * 2);
3651
3658
  module.insertTrimmingSpace($3, "");
3652
- $2.blockPrefix.push({
3659
+ $2.blockPrefix.push([indent, {
3653
3660
  type: "IfStatement",
3654
- children: [indent, "if (!(", $3, ")) continue\n"]
3655
- });
3661
+ children: ["if (!(", $3, ")) continue\n"]
3662
+ }]);
3656
3663
  }
3657
3664
  return $2;
3658
3665
  });
@@ -3762,7 +3769,7 @@ var Civet = (() => {
3762
3769
  children: ["let ", ...startRefDec, ...endRefDec, counterRef, " = ", varRef2, " = ", startRef, ...ascDec],
3763
3770
  names: []
3764
3771
  };
3765
- blockPrefix.push([{
3772
+ blockPrefix.push(["", {
3766
3773
  type: "AssignmentExpression",
3767
3774
  children: [],
3768
3775
  names: varRef2.names
@@ -3800,9 +3807,9 @@ var Civet = (() => {
3800
3807
  indexAssignment = [index, "="];
3801
3808
  assignmentNames.push(...index.names);
3802
3809
  }
3803
- blockPrefix.push([{
3810
+ blockPrefix.push([indent, {
3804
3811
  type: "AssignmentExpression",
3805
- children: [indent, varRef, " = ", expRef, "[", indexAssignment, counterRef, "]\n"],
3812
+ children: [varRef, " = ", expRef, "[", indexAssignment, counterRef, "]\n"],
3806
3813
  names: assignmentNames
3807
3814
  }]);
3808
3815
  return {
@@ -7112,6 +7119,39 @@ var Civet = (() => {
7112
7119
  Object.assign(module.config, directive.config);
7113
7120
  }
7114
7121
  });
7122
+ module.expressionizeIfClause = function(clause, b, e) {
7123
+ clause.children.shift();
7124
+ clause.children.push("?", b, ":");
7125
+ if (e) {
7126
+ e.splice(1, 1);
7127
+ clause.children.push(e);
7128
+ } else {
7129
+ clause.children.push("void 0");
7130
+ }
7131
+ clause.type = "IfExpression";
7132
+ return clause;
7133
+ };
7134
+ module.addPostfixStatement = function(statement, ws, post) {
7135
+ let children, expressions;
7136
+ if (post.blockPrefix?.length) {
7137
+ let indent = post.blockPrefix[0][0];
7138
+ expressions = [...post.blockPrefix, [indent, statement]];
7139
+ children = [" {\n", ...expressions, "\n", indent?.slice?.(0, -2), "}"];
7140
+ } else {
7141
+ expressions = [["", statement]];
7142
+ children = [" { ", ...expressions, " }"];
7143
+ }
7144
+ const block = {
7145
+ type: "BlockStatement",
7146
+ children,
7147
+ expressions
7148
+ };
7149
+ post.block = block;
7150
+ post.children.push(block);
7151
+ if (!module.isWhitespaceOrEmpty(ws))
7152
+ post.children.push(ws);
7153
+ return post;
7154
+ };
7115
7155
  module.expressionizeIteration = function(statement) {
7116
7156
  const resultsRef = {
7117
7157
  type: "Ref",
package/dist/main.js CHANGED
@@ -547,6 +547,7 @@ var require_parser = __commonJS({
547
547
  IfClause,
548
548
  UnlessClause,
549
549
  IfExpression,
550
+ UnlessExpression,
550
551
  ExpressionBlock,
551
552
  NestedBlockExpressions,
552
553
  NestedBlockExpression,
@@ -1063,14 +1064,15 @@ var require_parser = __commonJS({
1063
1064
  }
1064
1065
  var ExpressionizedStatement$0 = DebuggerExpression;
1065
1066
  var ExpressionizedStatement$1 = IfExpression;
1066
- var ExpressionizedStatement$2 = IterationExpression;
1067
- var ExpressionizedStatement$3 = SwitchExpression;
1068
- var ExpressionizedStatement$4 = ThrowExpression;
1067
+ var ExpressionizedStatement$2 = UnlessExpression;
1068
+ var ExpressionizedStatement$3 = IterationExpression;
1069
+ var ExpressionizedStatement$4 = SwitchExpression;
1070
+ var ExpressionizedStatement$5 = ThrowExpression;
1069
1071
  function ExpressionizedStatement(state) {
1070
1072
  if (state.tokenize) {
1071
- return $TOKEN("ExpressionizedStatement", state, ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state) || ExpressionizedStatement$4(state));
1073
+ return $TOKEN("ExpressionizedStatement", state, ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state) || ExpressionizedStatement$4(state) || ExpressionizedStatement$5(state));
1072
1074
  } else {
1073
- return ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state) || ExpressionizedStatement$4(state);
1075
+ return ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state) || ExpressionizedStatement$4(state) || ExpressionizedStatement$5(state);
1074
1076
  }
1075
1077
  }
1076
1078
  var Expression$0 = $TS($S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
@@ -1250,7 +1252,9 @@ var require_parser = __commonJS({
1250
1252
  var exp = $2;
1251
1253
  var post = $3;
1252
1254
  if (post?.token === "?") {
1253
- return ["(", pre, "(", exp, ") != null)"];
1255
+ return {
1256
+ children: ["(", ...pre, "(", exp, ") != null)"]
1257
+ };
1254
1258
  }
1255
1259
  if (exp.type === "Literal") {
1256
1260
  if (pre.length === 1 && pre[0].token === "-") {
@@ -1270,12 +1274,16 @@ var require_parser = __commonJS({
1270
1274
  exp.unshift(...pre);
1271
1275
  if (post)
1272
1276
  exp.push(post);
1273
- return exp;
1277
+ return {
1278
+ children: exp
1279
+ };
1274
1280
  } else {
1275
1281
  const result = [...pre, exp];
1276
1282
  if (post)
1277
1283
  result.push(post);
1278
- return result;
1284
+ return {
1285
+ children: result
1286
+ };
1279
1287
  }
1280
1288
  });
1281
1289
  var UnaryExpression$1 = $TS($S(CoffeeDoEnabled, Do, __, $C($S(LeftHandSideExpression, $N($S(__, AssignmentOpSymbol))), ArrowFunction, ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4) {
@@ -1567,8 +1575,21 @@ var require_parser = __commonJS({
1567
1575
  return PrimaryExpression$0(state) || PrimaryExpression$1(state) || PrimaryExpression$2(state) || PrimaryExpression$3(state) || PrimaryExpression$4(state) || PrimaryExpression$5(state) || PrimaryExpression$6(state) || PrimaryExpression$7(state) || PrimaryExpression$8(state) || PrimaryExpression$9(state) || PrimaryExpression$10(state) || PrimaryExpression$11(state);
1568
1576
  }
1569
1577
  }
1570
- var ParenthesizedExpression$0 = $TS($S(OpenParen, ExtendedExpression, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4) {
1578
+ var ParenthesizedExpression$0 = $TS($S(OpenParen, ExtendedExpression, $E($S($Q(TrailingComment), PostfixStatement)), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1571
1579
  var exp = $2;
1580
+ var post = $3;
1581
+ if (post) {
1582
+ let clause;
1583
+ switch (post[1].type) {
1584
+ case "IterationStatement":
1585
+ case "ForStatement":
1586
+ clause = module2.addPostfixStatement(exp, ...post);
1587
+ return module2.expressionizeIteration(clause);
1588
+ case "IfStatement":
1589
+ clause = module2.expressionizeIfClause(post[1], exp);
1590
+ return clause;
1591
+ }
1592
+ }
1572
1593
  return {
1573
1594
  type: "ParenthesizedExpression",
1574
1595
  expression: exp,
@@ -3281,31 +3302,11 @@ var require_parser = __commonJS({
3281
3302
  }
3282
3303
  }
3283
3304
  var StatementListItem$0 = Declaration;
3284
- var StatementListItem$1 = $TS($S(Statement, $Q(TrailingComment), $E(PostfixStatement)), function($skip, $loc, $0, $1, $2, $3) {
3305
+ var StatementListItem$1 = $TS($S(Statement, $E($S($Q(TrailingComment), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
3285
3306
  var statement = $1;
3286
- var ws = $2;
3287
- var post = $3;
3288
- if (post) {
3289
- let children, expressions;
3290
- if (post.blockPrefix?.length) {
3291
- let indent = post.blockPrefix[0][0];
3292
- expressions = [...post.blockPrefix, [indent, statement]];
3293
- children = [" {\n", ...expressions, "\n", indent?.slice?.(0, -2), "}"];
3294
- } else {
3295
- expressions = [["", statement]];
3296
- children = [" { ", ...expressions, " }"];
3297
- }
3298
- const block = {
3299
- type: "BlockStatement",
3300
- children,
3301
- expressions
3302
- };
3303
- post.block = block;
3304
- post.children.push(block);
3305
- if (!module2.isWhitespaceOrEmpty(ws))
3306
- post.children.push(ws);
3307
- return post;
3308
- }
3307
+ var post = $2;
3308
+ if (post)
3309
+ return module2.addPostfixStatement(statement, ...post);
3309
3310
  return statement;
3310
3311
  });
3311
3312
  function StatementListItem(state) {
@@ -3433,16 +3434,7 @@ var require_parser = __commonJS({
3433
3434
  var clause = $1;
3434
3435
  var b = $2;
3435
3436
  var e = $3;
3436
- clause.children.shift();
3437
- clause.children.push("?", b, ":");
3438
- if (e) {
3439
- e.splice(1, 1);
3440
- clause.children.push(e);
3441
- } else {
3442
- clause.children.push("void 0");
3443
- }
3444
- clause.type = "IfExpression";
3445
- return clause;
3437
+ return module2.expressionizeIfClause(clause, b, e);
3446
3438
  });
3447
3439
  function IfExpression(state) {
3448
3440
  if (state.verbose)
@@ -3453,6 +3445,21 @@ var require_parser = __commonJS({
3453
3445
  return IfExpression$0(state);
3454
3446
  }
3455
3447
  }
3448
+ var UnlessExpression$0 = $TS($S(UnlessClause, ExpressionBlock, $E($S(__, Else, ExpressionBlock))), function($skip, $loc, $0, $1, $2, $3) {
3449
+ var clause = $1;
3450
+ var b = $2;
3451
+ var e = $3;
3452
+ return module2.expressionizeIfClause(clause, b, e);
3453
+ });
3454
+ function UnlessExpression(state) {
3455
+ if (state.verbose)
3456
+ console.log("ENTER:", "UnlessExpression");
3457
+ if (state.tokenize) {
3458
+ return $TOKEN("UnlessExpression", state, UnlessExpression$0(state));
3459
+ } else {
3460
+ return UnlessExpression$0(state);
3461
+ }
3462
+ }
3456
3463
  var ExpressionBlock$0 = $TS($S(InsertOpenParen, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
3457
3464
  var exps = $3;
3458
3465
  exps[exps.length - 1].pop();
@@ -3648,10 +3655,10 @@ var require_parser = __commonJS({
3648
3655
  if ($3) {
3649
3656
  const indent = "".padStart((module2.currentIndent + 1) * 2);
3650
3657
  module2.insertTrimmingSpace($3, "");
3651
- $2.blockPrefix.push({
3658
+ $2.blockPrefix.push([indent, {
3652
3659
  type: "IfStatement",
3653
- children: [indent, "if (!(", $3, ")) continue\n"]
3654
- });
3660
+ children: ["if (!(", $3, ")) continue\n"]
3661
+ }]);
3655
3662
  }
3656
3663
  return $2;
3657
3664
  });
@@ -3761,7 +3768,7 @@ var require_parser = __commonJS({
3761
3768
  children: ["let ", ...startRefDec, ...endRefDec, counterRef, " = ", varRef2, " = ", startRef, ...ascDec],
3762
3769
  names: []
3763
3770
  };
3764
- blockPrefix.push([{
3771
+ blockPrefix.push(["", {
3765
3772
  type: "AssignmentExpression",
3766
3773
  children: [],
3767
3774
  names: varRef2.names
@@ -3799,9 +3806,9 @@ var require_parser = __commonJS({
3799
3806
  indexAssignment = [index, "="];
3800
3807
  assignmentNames.push(...index.names);
3801
3808
  }
3802
- blockPrefix.push([{
3809
+ blockPrefix.push([indent, {
3803
3810
  type: "AssignmentExpression",
3804
- children: [indent, varRef, " = ", expRef, "[", indexAssignment, counterRef, "]\n"],
3811
+ children: [varRef, " = ", expRef, "[", indexAssignment, counterRef, "]\n"],
3805
3812
  names: assignmentNames
3806
3813
  }]);
3807
3814
  return {
@@ -7111,6 +7118,39 @@ var require_parser = __commonJS({
7111
7118
  Object.assign(module2.config, directive.config);
7112
7119
  }
7113
7120
  });
7121
+ module2.expressionizeIfClause = function(clause, b, e) {
7122
+ clause.children.shift();
7123
+ clause.children.push("?", b, ":");
7124
+ if (e) {
7125
+ e.splice(1, 1);
7126
+ clause.children.push(e);
7127
+ } else {
7128
+ clause.children.push("void 0");
7129
+ }
7130
+ clause.type = "IfExpression";
7131
+ return clause;
7132
+ };
7133
+ module2.addPostfixStatement = function(statement, ws, post) {
7134
+ let children, expressions;
7135
+ if (post.blockPrefix?.length) {
7136
+ let indent = post.blockPrefix[0][0];
7137
+ expressions = [...post.blockPrefix, [indent, statement]];
7138
+ children = [" {\n", ...expressions, "\n", indent?.slice?.(0, -2), "}"];
7139
+ } else {
7140
+ expressions = [["", statement]];
7141
+ children = [" { ", ...expressions, " }"];
7142
+ }
7143
+ const block = {
7144
+ type: "BlockStatement",
7145
+ children,
7146
+ expressions
7147
+ };
7148
+ post.block = block;
7149
+ post.children.push(block);
7150
+ if (!module2.isWhitespaceOrEmpty(ws))
7151
+ post.children.push(ws);
7152
+ return post;
7153
+ };
7114
7154
  module2.expressionizeIteration = function(statement) {
7115
7155
  const resultsRef = {
7116
7156
  type: "Ref",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielx/civet",
3
- "version": "0.4.19-pre.5",
3
+ "version": "0.4.19-pre.6",
4
4
  "description": "CoffeeScript style syntax for TypeScript",
5
5
  "main": "dist/main.js",
6
6
  "exports": {