@danielx/civet 0.1.0 → 0.1.1

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/README.md CHANGED
@@ -57,6 +57,7 @@ Things Kept from CoffeeScript
57
57
  - `@id` -> `this.id`
58
58
  - TODO
59
59
  - `"""` Strings (for compatibility with existing .coffee code)
60
+ - `///` Heregexp
60
61
 
61
62
  Things Removed from CoffeeScript
62
63
  ---
@@ -65,6 +66,7 @@ Things Removed from CoffeeScript
65
66
  - `off` (use `false`)
66
67
  - `do` keyword (replaced with JS `do`)
67
68
  - `for from` (use JS `for of`)
69
+ - Array slices `list[0...2]` (use `list.slice(0, 2)`)
68
70
  - Comprensions (a case could be made for keeping them)
69
71
  - Iteration expression results
70
72
  - Implicit declarations
@@ -93,6 +95,7 @@ Things Added that CoffeeScript didn't
93
95
  - `case` statement
94
96
  - `while`
95
97
  - `do`
98
+ - Const assignment shorthand `a := b` -> `const a = b`; `{a, b} := c` -> `const {a, b} = c`
96
99
  - Convenience for ES6+ Features
97
100
  - `<` as `extends` shorthand
98
101
  - `@#id` -> `this.#id` shorthand for private identifiers
package/dist/browser.js CHANGED
@@ -410,6 +410,8 @@ var Civet = (() => {
410
410
  Expression,
411
411
  Arguments,
412
412
  ArgumentList,
413
+ NestedArgumentList,
414
+ NestedArgument,
413
415
  CommaExpression,
414
416
  BinaryOpExpression,
415
417
  UnaryExpression,
@@ -721,19 +723,20 @@ var Civet = (() => {
721
723
  var $L110 = $L("as");
722
724
  var $L111 = $L("from");
723
725
  var $L112 = $L("export");
724
- var $L113 = $L('"""');
725
- var $L114 = $L('"');
726
- var $L115 = $L("'");
727
- var $L116 = $L("\\");
728
- var $L117 = $L("`");
729
- var $L118 = $L("${");
730
- var $L119 = $L("/*");
731
- var $L120 = $L("*/");
732
- var $L121 = $L("###");
733
- var $L122 = $L("interface");
734
- var $L123 = $L("[]");
735
- var $L124 = $L(" ");
736
- var $L125 = $L(" ");
726
+ var $L113 = $L(":=");
727
+ var $L114 = $L('"""');
728
+ var $L115 = $L('"');
729
+ var $L116 = $L("'");
730
+ var $L117 = $L("\\");
731
+ var $L118 = $L("`");
732
+ var $L119 = $L("${");
733
+ var $L120 = $L("/*");
734
+ var $L121 = $L("*/");
735
+ var $L122 = $L("###");
736
+ var $L123 = $L("interface");
737
+ var $L124 = $L("[]");
738
+ var $L125 = $L(" ");
739
+ var $L126 = $L(" ");
737
740
  var $R0 = $R(new RegExp("(of)(?!\\p{ID_Continue})", "suy"));
738
741
  var $R1 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
739
742
  var $R2 = $R(new RegExp("\\p{ID_Continue}", "suy"));
@@ -791,7 +794,7 @@ var Civet = (() => {
791
794
  return Expression$0(state);
792
795
  }
793
796
  }
794
- var Arguments$0 = $S($EXPECT($L1, fail, 'Arguments "("'), $C(ArgumentList, __), $E($S($EXPECT($L0, fail, 'Arguments ","'), __)), $EXPECT($L2, fail, 'Arguments ")"'));
797
+ var Arguments$0 = $S($EXPECT($L1, fail, 'Arguments "("'), $E(ArgumentList), $E($S(__, $EXPECT($L0, fail, 'Arguments ","'))), __, $EXPECT($L2, fail, 'Arguments ")"'));
795
798
  function Arguments(state) {
796
799
  if (state.verbose)
797
800
  console.log("ENTER:", "Arguments");
@@ -801,14 +804,38 @@ var Civet = (() => {
801
804
  return Arguments$0(state);
802
805
  }
803
806
  }
804
- var ArgumentList$0 = $S(Expression, $Q(CommaExpression));
807
+ var ArgumentList$0 = $S($Y(EOS), NestedArgumentList);
808
+ var ArgumentList$1 = $S(__, Expression, $Q(CommaExpression));
805
809
  function ArgumentList(state) {
810
+ if (state.tokenize) {
811
+ return $TOKEN("ArgumentList", state, ArgumentList$0(state) || ArgumentList$1(state));
812
+ } else {
813
+ return ArgumentList$0(state) || ArgumentList$1(state);
814
+ }
815
+ }
816
+ var NestedArgumentList$0 = $TS($S(PushIndent, $Q(NestedArgument), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
817
+ var args = $2;
818
+ if (args.length)
819
+ return args;
820
+ return $skip;
821
+ });
822
+ function NestedArgumentList(state) {
823
+ if (state.verbose)
824
+ console.log("ENTER:", "NestedArgumentList");
825
+ if (state.tokenize) {
826
+ return $TOKEN("NestedArgumentList", state, NestedArgumentList$0(state));
827
+ } else {
828
+ return NestedArgumentList$0(state);
829
+ }
830
+ }
831
+ var NestedArgument$0 = $S(Nested, Expression, ParameterElementDelimiter);
832
+ function NestedArgument(state) {
806
833
  if (state.verbose)
807
- console.log("ENTER:", "ArgumentList");
834
+ console.log("ENTER:", "NestedArgument");
808
835
  if (state.tokenize) {
809
- return $TOKEN("ArgumentList", state, ArgumentList$0(state));
836
+ return $TOKEN("NestedArgument", state, NestedArgument$0(state));
810
837
  } else {
811
- return ArgumentList$0(state);
838
+ return NestedArgument$0(state);
812
839
  }
813
840
  }
814
841
  var CommaExpression$0 = $S(__, $EXPECT($L0, fail, 'CommaExpression ","'), __, Expression);
@@ -2300,13 +2327,18 @@ var Civet = (() => {
2300
2327
  }
2301
2328
  }
2302
2329
  var LexicalDeclaration$0 = $S($C($EXPECT($L95, fail, 'LexicalDeclaration "let"'), $EXPECT($L96, fail, 'LexicalDeclaration "const"')), __, LexicalBinding, $Q($S(__, $EXPECT($L0, fail, 'LexicalDeclaration ","'), __, LexicalBinding)));
2330
+ var LexicalDeclaration$1 = $T($S($C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, $EXPECT($L113, fail, 'LexicalDeclaration ":="'), AssignmentExpression), function(value) {
2331
+ var bind = value[0];
2332
+ var suffix = value[1];
2333
+ var ws = value[2];
2334
+ var exp = value[4];
2335
+ return ["const ", bind, suffix, ws, "=", exp];
2336
+ });
2303
2337
  function LexicalDeclaration(state) {
2304
- if (state.verbose)
2305
- console.log("ENTER:", "LexicalDeclaration");
2306
2338
  if (state.tokenize) {
2307
- return $TOKEN("LexicalDeclaration", state, LexicalDeclaration$0(state));
2339
+ return $TOKEN("LexicalDeclaration", state, LexicalDeclaration$0(state) || LexicalDeclaration$1(state));
2308
2340
  } else {
2309
- return LexicalDeclaration$0(state);
2341
+ return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
2310
2342
  }
2311
2343
  }
2312
2344
  var LexicalBinding$0 = $S(BindingPattern, $E(TypeSuffix), Initializer);
@@ -2419,11 +2451,11 @@ var Civet = (() => {
2419
2451
  return HexLiteral$0(state);
2420
2452
  }
2421
2453
  }
2422
- var StringLiteral$0 = $T($S($EXPECT($L113, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""'), $TEXT($Q(TripleDoubleStringCharacter)), $EXPECT($L113, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""')), function(value) {
2454
+ var StringLiteral$0 = $T($S($EXPECT($L114, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""'), $TEXT($Q(TripleDoubleStringCharacter)), $EXPECT($L114, fail, 'StringLiteral "\\\\\\"\\\\\\"\\\\\\""')), function(value) {
2423
2455
  return ["`", value[1], "`"];
2424
2456
  });
2425
- var StringLiteral$1 = $S($EXPECT($L114, fail, 'StringLiteral "\\\\\\""'), $TEXT($Q(DoubleStringCharacter)), $EXPECT($L114, fail, 'StringLiteral "\\\\\\""'));
2426
- var StringLiteral$2 = $S($EXPECT($L115, fail, `StringLiteral "\\\\'"`), $TEXT($Q(SingleStringCharacter)), $EXPECT($L115, fail, `StringLiteral "\\\\'"`));
2457
+ var StringLiteral$1 = $S($EXPECT($L115, fail, 'StringLiteral "\\\\\\""'), $TEXT($Q(DoubleStringCharacter)), $EXPECT($L115, fail, 'StringLiteral "\\\\\\""'));
2458
+ var StringLiteral$2 = $S($EXPECT($L116, fail, `StringLiteral "\\\\'"`), $TEXT($Q(SingleStringCharacter)), $EXPECT($L116, fail, `StringLiteral "\\\\'"`));
2427
2459
  function StringLiteral(state) {
2428
2460
  if (state.tokenize) {
2429
2461
  return $TOKEN("StringLiteral", state, StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state));
@@ -2459,7 +2491,7 @@ var Civet = (() => {
2459
2491
  return TripleDoubleStringCharacter$0(state);
2460
2492
  }
2461
2493
  }
2462
- var EscapeSequence$0 = $TEXT($S($EXPECT($L116, fail, 'EscapeSequence "\\\\\\\\"'), $EXPECT($R12, fail, "EscapeSequence /./")));
2494
+ var EscapeSequence$0 = $TEXT($S($EXPECT($L117, fail, 'EscapeSequence "\\\\\\\\"'), $EXPECT($R12, fail, "EscapeSequence /./")));
2463
2495
  function EscapeSequence(state) {
2464
2496
  if (state.verbose)
2465
2497
  console.log("ENTER:", "EscapeSequence");
@@ -2508,7 +2540,7 @@ var Civet = (() => {
2508
2540
  return RegularExpressionFlags$0(state);
2509
2541
  }
2510
2542
  }
2511
- var TemplateLiteral$0 = $S($EXPECT($L117, fail, 'TemplateLiteral "`"'), $Q($C(TemplateCharacters, TemplateSubstitution)), $EXPECT($L117, fail, 'TemplateLiteral "`"'));
2543
+ var TemplateLiteral$0 = $S($EXPECT($L118, fail, 'TemplateLiteral "`"'), $Q($C(TemplateCharacters, TemplateSubstitution)), $EXPECT($L118, fail, 'TemplateLiteral "`"'));
2512
2544
  function TemplateLiteral(state) {
2513
2545
  if (state.verbose)
2514
2546
  console.log("ENTER:", "TemplateLiteral");
@@ -2518,7 +2550,7 @@ var Civet = (() => {
2518
2550
  return TemplateLiteral$0(state);
2519
2551
  }
2520
2552
  }
2521
- var TemplateSubstitution$0 = $S($EXPECT($L118, fail, 'TemplateSubstitution "${"'), __, Expression, __, $EXPECT($L15, fail, 'TemplateSubstitution "}"'));
2553
+ var TemplateSubstitution$0 = $S($EXPECT($L119, fail, 'TemplateSubstitution "${"'), __, Expression, __, $EXPECT($L15, fail, 'TemplateSubstitution "}"'));
2522
2554
  function TemplateSubstitution(state) {
2523
2555
  if (state.verbose)
2524
2556
  console.log("ENTER:", "TemplateSubstitution");
@@ -2575,7 +2607,7 @@ var Civet = (() => {
2575
2607
  return MultiLineComment$0(state) || MultiLineComment$1(state);
2576
2608
  }
2577
2609
  }
2578
- var JSMultiLineComment$0 = $S($EXPECT($L119, fail, 'JSMultiLineComment "/*"'), $TEXT($Q($S($N($EXPECT($L120, fail, 'JSMultiLineComment "*/"')), $EXPECT($R12, fail, "JSMultiLineComment /./")))), $EXPECT($L120, fail, 'JSMultiLineComment "*/"'));
2610
+ var JSMultiLineComment$0 = $S($EXPECT($L120, fail, 'JSMultiLineComment "/*"'), $TEXT($Q($S($N($EXPECT($L121, fail, 'JSMultiLineComment "*/"')), $EXPECT($R12, fail, "JSMultiLineComment /./")))), $EXPECT($L121, fail, 'JSMultiLineComment "*/"'));
2579
2611
  function JSMultiLineComment(state) {
2580
2612
  if (state.verbose)
2581
2613
  console.log("ENTER:", "JSMultiLineComment");
@@ -2599,7 +2631,7 @@ var Civet = (() => {
2599
2631
  return CoffeeSingleLineComment$0(state);
2600
2632
  }
2601
2633
  }
2602
- var CoffeeMultiLineComment$0 = $T($S($EXPECT($L121, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($EXPECT($L121, fail, 'CoffeeMultiLineComment "###"')), $EXPECT($R12, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L121, fail, 'CoffeeMultiLineComment "###"')), function(value) {
2634
+ var CoffeeMultiLineComment$0 = $T($S($EXPECT($L122, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($EXPECT($L122, fail, 'CoffeeMultiLineComment "###"')), $EXPECT($R12, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L122, fail, 'CoffeeMultiLineComment "###"')), function(value) {
2603
2635
  return ["/*", value[1], "*/"];
2604
2636
  });
2605
2637
  function CoffeeMultiLineComment(state) {
@@ -2611,7 +2643,7 @@ var Civet = (() => {
2611
2643
  return CoffeeMultiLineComment$0(state);
2612
2644
  }
2613
2645
  }
2614
- var InlineComment$0 = $S($EXPECT($L119, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L120, fail, 'InlineComment "*/"')), $EXPECT($R20, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L120, fail, 'InlineComment "*/"'));
2646
+ var InlineComment$0 = $S($EXPECT($L120, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L121, fail, 'InlineComment "*/"')), $EXPECT($R20, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L121, fail, 'InlineComment "*/"'));
2615
2647
  function InlineComment(state) {
2616
2648
  if (state.verbose)
2617
2649
  console.log("ENTER:", "InlineComment");
@@ -2672,7 +2704,7 @@ var Civet = (() => {
2672
2704
  return StatementDelimiter$0(state) || StatementDelimiter$1(state);
2673
2705
  }
2674
2706
  }
2675
- var TypeDeclaration$0 = $T($S($EXPECT($L122, fail, 'TypeDeclaration "interface"'), $Q(TrailingComment), IdentifierName, InterfaceBlock), function(value) {
2707
+ var TypeDeclaration$0 = $T($S($EXPECT($L123, fail, 'TypeDeclaration "interface"'), $Q(TrailingComment), IdentifierName, InterfaceBlock), function(value) {
2676
2708
  return { "ts": true, "children": value };
2677
2709
  });
2678
2710
  function TypeDeclaration(state) {
@@ -2732,7 +2764,7 @@ var Civet = (() => {
2732
2764
  }
2733
2765
  var Type$0 = InterfaceBlock;
2734
2766
  var Type$1 = $S($Q(_), FunctionType);
2735
- var Type$2 = $S($Q(_), IdentifierName, $Q($S($EXPECT($L25, fail, 'Type "."'), IdentifierName)), $E(TypeArguments), $Q($EXPECT($L123, fail, 'Type "[]"')));
2767
+ var Type$2 = $S($Q(_), IdentifierName, $Q($S($EXPECT($L25, fail, 'Type "."'), IdentifierName)), $E(TypeArguments), $Q($EXPECT($L124, fail, 'Type "[]"')));
2736
2768
  var Type$3 = $S($Q(_), NumericLiteral);
2737
2769
  var Type$4 = $S($Q(_), StringLiteral);
2738
2770
  var Type$5 = $S($Q(_), $EXPECT($L82, fail, 'Type "void"'));
@@ -2943,7 +2975,7 @@ var Civet = (() => {
2943
2975
  return Init$0(state);
2944
2976
  }
2945
2977
  }
2946
- var Indent$0 = $TV($Q($C($EXPECT($L124, fail, 'Indent " "'), $EXPECT($L125, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
2978
+ var Indent$0 = $TV($Q($C($EXPECT($L125, fail, 'Indent " "'), $EXPECT($L126, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
2947
2979
  return $1.length;
2948
2980
  });
2949
2981
  function Indent(state) {
@@ -3041,7 +3073,6 @@ var Civet = (() => {
3041
3073
  return "";
3042
3074
  }
3043
3075
  if (!node.children) {
3044
- debugger;
3045
3076
  throw new Error("Unknown node", JSON.stringify(node));
3046
3077
  }
3047
3078
  return node.children.map(function(child) {