@quenk/wml 2.15.0 → 2.15.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/lib/compile/codegen.d.ts +2 -2
- package/lib/compile/codegen.js +10 -6
- package/lib/compile/codegen.js.map +1 -1
- package/lib/compile/codegen.ts +8 -5
- package/lib/parse/ast.d.ts +7 -1
- package/lib/parse/ast.js +10 -2
- package/lib/parse/ast.js.map +1 -1
- package/lib/parse/ast.ts +10 -1
- package/lib/parse/generated.js +9894 -10017
- package/lib/parse/test.js +7 -0
- package/lib/parse/test.js.map +1 -1
- package/lib/parse/test.ts +7 -0
- package/lib/parse/wml.y +24 -8
- package/package.json +1 -1
package/lib/parse/test.js
CHANGED
|
@@ -467,7 +467,14 @@ exports.tests = {
|
|
|
467
467
|
{% use view @path.to.View %}
|
|
468
468
|
{% use view SomeView(@) %}
|
|
469
469
|
{% use part path.to.part({}) %}
|
|
470
|
+
{% use part myPath with @ %}
|
|
470
471
|
</div>
|
|
471
472
|
`,
|
|
473
|
+
"should support function types with optional params": `
|
|
474
|
+
{% context FuncContext where
|
|
475
|
+
func0: String? -> Void,
|
|
476
|
+
func1: (String, Number?) -> Void
|
|
477
|
+
%}
|
|
478
|
+
`
|
|
472
479
|
};
|
|
473
480
|
//# sourceMappingURL=test.js.map
|
package/lib/parse/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":";;;AAAa,QAAA,KAAK,GAA2B;IAC3C,+BAA+B,EAAE;QAC/B,KAAK,EAAE,2CAA2C;KACnD;IACD,2BAA2B,EAAE;QAC3B,KAAK,EAAE,qCAAqC;KAC7C;IACD,uCAAuC,EAAE;QACvC,KAAK,EAAE,qDAAqD;KAC7D;IACD,iCAAiC,EAAE;QACjC,KAAK,EAAE,WAAW;KACnB;IACD,mDAAmD,EAAE;QACnD,KAAK,EAAE,6DAA6D;KACrE;IACD,mDAAmD,EAAE;QACnD,KAAK,EAAE,4BAA4B;KACpC;IACD,mDAAmD,EAAE;QACnD,KAAK,EAAE,8CAA8C;KACtD;IACD,2BAA2B,EAAE;QAC3B,KAAK,EAAE,uCAAuC;KAC/C;IACD,2CAA2C,EAAE;QAC3C,KAAK,EAAE,wDAAwD;KAChE;IACD,8CAA8C,EAAE;QAC9C,KAAK,EAAE,oEAAoE;KAC5E;IACD,iDAAiD,EAAE;QACjD,KAAK,EAAE,wBAAwB;KAChC;IACD,iDAAiD,EAAE;QACjD,KAAK,EACH,uDAAuD;YACvD,gCAAgC;KACnC;IACD,iDAAiD,EAAE;QACjD,KAAK,EACH,8CAA8C;YAC9C,gCAAgC;KACnC;IACD,+BAA+B,EAAE;QAC/B,KAAK,EACH,oCAAoC;YACpC,uCAAuC;YACvC,cAAc;YACd,oDAAoD;YACpD,gBAAgB;YAChB,kCAAkC;YAClC,+DAA+D;YAC/D,eAAe;YACf,aAAa;YACb,eAAe;YACf,UAAU;KACb;IACD,gCAAgC,EAAE;QAChC,KAAK,EACH,QAAQ;YACR,2BAA2B;YAC3B,wBAAwB;YACxB,cAAc;YACd,SAAS;KACZ;IACD,gCAAgC,EAAE;QAChC,KAAK,EACH,QAAQ;YACR,2BAA2B;YAC3B,kCAAkC;YAClC,cAAc;YACd,SAAS;KACZ;IACD,kCAAkC,EAAE;QAClC,KAAK,EAAE;;;;;;eAMI;KACZ;IACD,kCAAkC,EAAE;QAClC,KAAK,EAAE,yDAAyD;KACjE;IAED,mCAAmC,EAAE;QACnC,KAAK,EAAE,oCAAoC;KAC5C;IAED,6CAA6C,EAAE;QAC7C,KAAK,EAAE,kCAAkC;KAC1C;IAED,oBAAoB,EAAE;QACpB,KAAK,EAAE,yDAAyD;KACjE;IACD,+BAA+B,EAAE;QAC/B,KAAK,EAAE,4DAA4D;KACpE;IAED,8BAA8B,EAAE;QAC9B,KAAK,EAAE,+CAA+C;KACvD;IACD,iCAAiC,EAAE;QACjC,KAAK,EACH,kFAAkF;KACrF;IAED,oCAAoC,EAAE;QACpC,KAAK,EAAE;;;;;;;;;eASI;KACZ;IAED,iCAAiC,EAAE;QACjC,KAAK,EAAE,mCAAmC;KAC3C;IAED,sCAAsC,EAAE;QACtC,KAAK,EAAE,+CAA+C;KACvD;IAED,6CAA6C,EAAE;QAC7C,KAAK,EAAE,gEAAgE;KACxE;IAED,mCAAmC,EAAE;QACnC,KAAK,EAAE,wCAAwC;KAChD;IACD,uCAAuC,EAAE;QACvC,KAAK,EAAE,0BAA0B;KAClC;IACD,iCAAiC,EAAE;QACjC,KAAK,EAAE,qDAAqD;KAC7D;IACD,sDAAsD,EAAE;QACtD,KAAK,EAAE,yDAAyD;KACjE;IACD,sCAAsC,EAAE;;;;KAIrC;IACH,gCAAgC,EAAE;QAChC,KAAK,EAAE,+BAA+B;KACvC;IACD,2CAA2C,EAAE;QAC3C,KAAK,EAAE,4DAA4D;KACpE;IACD,qDAAqD,EAAE;QACrD,KAAK,EAAE;;;qBAGU;KAClB;IAED,0CAA0C,EAAE;QAC1C,KAAK,EAAE,gCAAgC;KACxC;IACD,mCAAmC,EAAE;QACnC,KAAK,EAAE,iEAAiE;KACzE;IACD,gCAAgC,EAAE;QAChC,KAAK,EAAE,yBAAyB;KACjC;IACD,8BAA8B,EAAE;QAC9B,KAAK,EAAE,+BAA+B;KACvC;IACD,2CAA2C,EAAE;QAC3C,KAAK,EAAE,gCAAgC;KACxC;IACD,oDAAoD,EAAE;QACpD,KAAK,EAAE,8BAA8B;KACtC;IACD,0BAA0B,EAAE;QAC1B,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAkDF;KACN;IAED,gCAAgC,EAAE;QAChC,KAAK,EACH,0BAA0B;YAC1B,2DAA2D;KAC9D;IAED,sCAAsC,EAAE;QACtC,KAAK,EACH,gCAAgC;YAChC,oEAAoE;YACpE,2BAA2B;KAC9B;IAED,qCAAqC,EACnC,uCAAuC;IAEzC,6CAA6C,EAC3C,8CAA8C;IAEhD,qCAAqC,EAAE;;;;;;;;WAQ9B;IAET,mCAAmC,EAAE,kDAAkD;IAEvF,sCAAsC,EAAE,uDAAuD;IAE/F,sCAAsC,EAAE,6DAA6D;IAErG,oDAAoD,EAAE,gDAAgD;IAEtG,0CAA0C,EAAE,8CAA8C;IAE1F,wDAAwD,EAAE,kDAAkD;IAE5G,gEAAgE,EAAE,oDAAoD;IAEtH,uDAAuD,EAAE,2CAA2C;IAEpG,qDAAqD,EAAE,sDAAsD;IAE7G,2CAA2C,EAAE,oDAAoD;IAEjG,8CAA8C,EAAE,4DAA4D;IAE5G,8CAA8C,EAAE,oEAAoE;IAEpH,mDAAmD,EAAE,yDAAyD;IAE9G,sDAAsD,EAAE,kEAAkE;IAE1H,sDAAsD,EAAE,2EAA2E;IAEnI,6CAA6C,EAAE,8CAA8C;IAE7F,gDAAgD,EAAE,gEAAgE;IAElH,gDAAgD,EAAE,+EAA+E;IAEjI,2CAA2C,EAAE,wDAAwD;IAErG,8CAA8C,EAAE,kEAAkE;IAElH,8CAA8C,EAAE,4EAA4E;IAE5H,2CAA2C,EAAE,8DAA8D;IAE3G,8CAA8C,EAAE,oFAAoF;IAEpI,8CAA8C,EAAE;;YAEtC;IAEV,+DAA+D,EAAE,wDAAwD;IAEzH,yDAAyD,EAAE,sDAAsD;IAEjH,4CAA4C,EAAE;QAC5C,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA+DC;KACT;IAED,4CAA4C,EAAE;QAC5C,KAAK,EAAE;;;;;;;;;;WAUA;KACR;IAED,kCAAkC,EAAE;QAClC,KAAK,EAAE;;;;;;;;;;;qEAW0D;KAClE;IAED,gEAAgE,EAAE,kDAAkD;IAEpH,8BAA8B,EAAE,qEAAqE;IAErG,yBAAyB,EAAE,6CAA6C;IAExE,6BAA6B,EAAE,8CAA8C;IAE7E,gDAAgD,EAC9C,0CAA0C;IAE5C,qCAAqC,EAAE;;;;;;;;;;;;;eAa1B;IAEb,sBAAsB,EAAE;;;;;;OAMnB;IAEL,+BAA+B,EAAE,+EAA+E;IAEhH,sCAAsC,EAAE,mFAAmF;IAE3H,mCAAmC,EAAE;;KAElC;IAEH,kCAAkC,EAAE;;;;KAIjC;IAEH,sCAAsC,EAAE,mCAAmC;IAE3E,qCAAqC,EAAE,6BAA6B;IAEpE,mDAAmD,EAAE,6DAA6D;IAElH,iDAAiD,EAAE;;;;;aAKxC;IAEX,oCAAoC,EAAE;;;;;WAK7B;IAET,uCAAuC,EAAE,8DAA8D;IAEvG,yDAAyD,EAAE,qDAAqD;IAEhH,gDAAgD,EAAE,wEAAwE;IAE1H,0CAA0C,EAAE;;;;;WAKnC;IAET,oDAAoD,EAAE,iCAAiC;IAEvF,8DAA8D,EAAE;;;;;;;;;;;;;;;;WAgBvD;IACT,gCAAgC,EAAE;;;;;;;;;;;;;;;;KAgB/B;IACH,8BAA8B,EAAE
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"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"}
|
package/lib/parse/test.ts
CHANGED
|
@@ -541,6 +541,13 @@ export const tests: { [key: string]: any } = {
|
|
|
541
541
|
{% use view @path.to.View %}
|
|
542
542
|
{% use view SomeView(@) %}
|
|
543
543
|
{% use part path.to.part({}) %}
|
|
544
|
+
{% use part myPath with @ %}
|
|
544
545
|
</div>
|
|
545
546
|
`,
|
|
547
|
+
"should support function types with optional params": `
|
|
548
|
+
{% context FuncContext where
|
|
549
|
+
func0: String? -> Void,
|
|
550
|
+
func1: (String, Number?) -> Void
|
|
551
|
+
%}
|
|
552
|
+
`
|
|
546
553
|
};
|
package/lib/parse/wml.y
CHANGED
|
@@ -434,7 +434,7 @@ part_statment
|
|
|
434
434
|
|
|
435
435
|
use_statement
|
|
436
436
|
: '{%' USE PART use_target WITH expression '%}'
|
|
437
|
-
{$$ = new yy.ast.UsePartStatement($4, $
|
|
437
|
+
{$$ = new yy.ast.UsePartStatement($4, $6, @$); }
|
|
438
438
|
|
|
439
439
|
| '{%' USE PART use_target '%}'
|
|
440
440
|
{$$ = new yy.ast.UsePartStatement($4, undefined, @$); }
|
|
@@ -481,6 +481,7 @@ type
|
|
|
481
481
|
{ $$ = $1; }
|
|
482
482
|
;
|
|
483
483
|
|
|
484
|
+
|
|
484
485
|
grouped_type
|
|
485
486
|
: '(' non_function_type ')'
|
|
486
487
|
{ $$ = $2; }
|
|
@@ -572,27 +573,42 @@ function_type
|
|
|
572
573
|
| '(' ')' '->' type
|
|
573
574
|
{ $$ = new yy.ast.FunctionType([], $4, @$); }
|
|
574
575
|
|
|
575
|
-
|
|
|
576
|
+
| function_type_parameter '->' type
|
|
576
577
|
{ $$ = new yy.ast.FunctionType([$1], $3, @$); }
|
|
577
578
|
|
|
578
|
-
|
|
579
|
-
// ambiguity that implicitly exists between the type sub rules
|
|
580
|
-
| grouped_type '->' type
|
|
579
|
+
| grouped_type '->' type
|
|
581
580
|
{ $$ = new yy.ast.FunctionType([$1], $3, @$); }
|
|
582
|
-
|
|
581
|
+
|
|
583
582
|
| '(' function_type_parameters ')' '->' type
|
|
584
583
|
{ $$ = new yy.ast.FunctionType($2, $5, @$); }
|
|
585
584
|
;
|
|
586
585
|
|
|
586
|
+
function_type_parameter
|
|
587
|
+
: non_function_type
|
|
588
|
+
{ $$ = $1; }
|
|
589
|
+
|
|
590
|
+
| optional_function_type
|
|
591
|
+
{ $$ = $1; }
|
|
592
|
+
;
|
|
593
|
+
|
|
594
|
+
optional_function_type
|
|
595
|
+
: non_function_type '?'
|
|
596
|
+
{ $$ = new yy.ast.OptionalType($1, @$); }
|
|
597
|
+
|
|
598
|
+
| '(' function_type ')' '?'
|
|
599
|
+
{ $$ = new yy.ast.OptionalType($1, @$); }
|
|
600
|
+
|
|
601
|
+
;
|
|
602
|
+
|
|
587
603
|
function_type_parameters
|
|
588
604
|
|
|
589
|
-
:
|
|
605
|
+
: function_type_parameter ',' function_type_parameter
|
|
590
606
|
{ $$ = [$1, $3]; }
|
|
591
607
|
|
|
592
608
|
| '(' function_type ')' ',' '(' function_type ')'
|
|
593
609
|
{ $$ = [$2, $6]; }
|
|
594
610
|
|
|
595
|
-
| function_type_parameters ','
|
|
611
|
+
| function_type_parameters ',' function_type_parameter
|
|
596
612
|
{ $$ = $1.concat($3); }
|
|
597
613
|
|
|
598
614
|
| function_type_parameters ',' '(' function_type ')'
|