@quenk/wml 2.10.3 → 2.10.4
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.js +1 -2
- package/lib/compile/codegen.js.map +1 -1
- package/lib/compile/codegen.ts +1 -2
- package/lib/parse/ast.d.ts +2 -3
- package/lib/parse/ast.js +2 -3
- package/lib/parse/ast.js.map +1 -1
- package/lib/parse/ast.ts +1 -2
- package/lib/parse/generated.js +1946 -1848
- package/lib/parse/test.js +0 -2
- package/lib/parse/test.js.map +1 -1
- package/lib/parse/test.ts +0 -6
- package/lib/parse/wml.y +62 -80
- package/package.json +4 -1
package/lib/parse/test.js
CHANGED
|
@@ -221,8 +221,6 @@ exports.tests = {
|
|
|
221
221
|
'[context] should mark nested properties as optional if all are': "{% context Paper where object.\"type\"?: String %}",
|
|
222
222
|
'should parse type statements': "{% type Type = String | Number | Boolean | Type[] | Type -> Type %}",
|
|
223
223
|
'should parse tupe types': "{% type Tuple = [Number, String, Number] %}",
|
|
224
|
-
'should parse primitives used as type': '{% type Prims = 1|2|"three"|true|false|"1,2,three,true,false" %}',
|
|
225
|
-
'should parse this type': '{% type SortDir = 1 | -1 %}',
|
|
226
224
|
'should parse type assertion': '<Panel onClick={{ \e -> [*User]foo(e) }} />',
|
|
227
225
|
'should parse partial application in expression': '<Link ww:text={{truncate(50)(@text)}} />',
|
|
228
226
|
'should transform special primitives': "<div>\n {% for kind in [\n String,\n Boolean,\n Number,\n Object,\n Undefined,\n Null,\n Void,\n Never,\n Any] %}\n {{ kind | text }}\n {% endfor %}\n </div>",
|
package/lib/parse/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"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"}
|
package/lib/parse/test.ts
CHANGED
|
@@ -556,12 +556,6 @@ export const tests: { [key: string]: any } = {
|
|
|
556
556
|
|
|
557
557
|
'should parse tupe types': `{% type Tuple = [Number, String, Number] %}`,
|
|
558
558
|
|
|
559
|
-
'should parse primitives used as type':
|
|
560
|
-
'{% type Prims = 1|2|"three"|true|false|"1,2,three,true,false" %}',
|
|
561
|
-
|
|
562
|
-
'should parse this type':
|
|
563
|
-
'{% type SortDir = 1 | -1 %}',
|
|
564
|
-
|
|
565
559
|
'should parse type assertion':
|
|
566
560
|
'<Panel onClick={{ \e -> [*User]foo(e) }} />',
|
|
567
561
|
|
package/lib/parse/wml.y
CHANGED
|
@@ -439,15 +439,6 @@ non_function_type
|
|
|
439
439
|
: constructor_type
|
|
440
440
|
{ $$ = $1; }
|
|
441
441
|
|
|
442
|
-
| string_literal
|
|
443
|
-
{ $$ = $1; }
|
|
444
|
-
|
|
445
|
-
| number_literal
|
|
446
|
-
{ $$ = $1; }
|
|
447
|
-
|
|
448
|
-
| boolean_literal
|
|
449
|
-
{ $$ = $1; }
|
|
450
|
-
|
|
451
442
|
| record_type
|
|
452
443
|
{ $$ = $1; }
|
|
453
444
|
|
|
@@ -480,19 +471,10 @@ list_type
|
|
|
480
471
|
{ $$ = new yy.ast.ListType(
|
|
481
472
|
new yy.ast.ConstructorType($1, []), @$); }
|
|
482
473
|
|
|
483
|
-
|
|
474
|
+
| cons type_parameters '[' ']'
|
|
484
475
|
{ $$ = new yy.ast.ListType(
|
|
485
476
|
new yy.ast.ConstructorType($1, $2), @$); }
|
|
486
477
|
|
|
487
|
-
| string_literal '[' ']'
|
|
488
|
-
{ $$ = new yy.ast.ListType($1, @$); }
|
|
489
|
-
|
|
490
|
-
| number_literal '[' ']'
|
|
491
|
-
{ $$ = new yy.ast.ListType($1, @$); }
|
|
492
|
-
|
|
493
|
-
| boolean_literal '[' ']'
|
|
494
|
-
{ $$ = new yy.ast.ListType($1, @$); }
|
|
495
|
-
|
|
496
478
|
| record_type '[' ']'
|
|
497
479
|
{ $$ = new yy.ast.ListType($1, @$); }
|
|
498
480
|
|
|
@@ -508,7 +490,6 @@ list_type
|
|
|
508
490
|
;
|
|
509
491
|
|
|
510
492
|
tuple_type
|
|
511
|
-
|
|
512
493
|
: '[' ']'
|
|
513
494
|
{ $$ = new yy.ast.TupleType([], @$); }
|
|
514
495
|
|
|
@@ -747,19 +728,10 @@ characters
|
|
|
747
728
|
;
|
|
748
729
|
|
|
749
730
|
arguments
|
|
750
|
-
: '(' ')'
|
|
751
|
-
{$$ = []; }
|
|
752
|
-
|
|
753
|
-
| '(' argument_list ')'
|
|
754
|
-
{$$ = $2; }
|
|
755
|
-
|
|
756
|
-
;
|
|
757
|
-
|
|
758
|
-
argument_list
|
|
759
731
|
: expression
|
|
760
732
|
{$$ = [$1]; }
|
|
761
733
|
|
|
762
|
-
|
|
|
734
|
+
| arguments ',' expression
|
|
763
735
|
{$$ = $1.concat($3); }
|
|
764
736
|
;
|
|
765
737
|
|
|
@@ -817,21 +789,18 @@ unary_expression
|
|
|
817
789
|
|
|
818
790
|
| '(' expression ')' '??'
|
|
819
791
|
{$$ = new yy.ast.UnaryExpression($4, $2, @$); }
|
|
820
|
-
|
|
821
792
|
;
|
|
822
793
|
|
|
823
794
|
type_assertion
|
|
824
|
-
|
|
825
795
|
: '[' '*' type ']' expression
|
|
826
796
|
{$$ = new yy.ast.TypeAssertion($3, $5, @$); }
|
|
827
797
|
;
|
|
828
798
|
|
|
829
799
|
simple_expression
|
|
830
800
|
: (
|
|
831
|
-
|
|
832
|
-
|fun_application
|
|
833
|
-
|construct_expression
|
|
801
|
+
construct_expression
|
|
834
802
|
|call_expression
|
|
803
|
+
|view_construction
|
|
835
804
|
|member_expression
|
|
836
805
|
|literal
|
|
837
806
|
|context_property
|
|
@@ -842,31 +811,11 @@ simple_expression
|
|
|
842
811
|
;
|
|
843
812
|
|
|
844
813
|
view_construction
|
|
845
|
-
: '<'
|
|
846
|
-
{ $$ = new yy.ast.ViewConstruction($2,
|
|
847
|
-
;
|
|
848
|
-
|
|
849
|
-
fun_application
|
|
850
|
-
: '<' fun_target type_arguments arguments '>'
|
|
851
|
-
{ $$ = new yy.ast.FunApplication($2, $3, $4, @$); }
|
|
852
|
-
|
|
853
|
-
| '<' fun_target arguments '>'
|
|
854
|
-
{ $$ = new yy.ast.FunApplication($2, [], $3, @$); }
|
|
855
|
-
|
|
856
|
-
| '<' fun_target '>'
|
|
857
|
-
{ $$ = new yy.ast.FunApplication($2, [], [], @$); }
|
|
858
|
-
|
|
859
|
-
;
|
|
860
|
-
|
|
861
|
-
fun_target
|
|
862
|
-
: identifier
|
|
863
|
-
{ $$ = $1; }
|
|
864
|
-
|
|
865
|
-
| context_property
|
|
866
|
-
{ $$ = $1; }
|
|
814
|
+
: '<' simple_expression '>'
|
|
815
|
+
{ $$ = new yy.ast.ViewConstruction($2, @$); }
|
|
867
816
|
|
|
868
|
-
| '(' expression ')'
|
|
869
|
-
{ $$ = $
|
|
817
|
+
| '<' '(' expression ')' '>'
|
|
818
|
+
{ $$ = new yy.ast.ViewConstruction($3, @$); }
|
|
870
819
|
;
|
|
871
820
|
|
|
872
821
|
type_arguments
|
|
@@ -883,37 +832,67 @@ type_arg_list
|
|
|
883
832
|
;
|
|
884
833
|
|
|
885
834
|
construct_expression
|
|
886
|
-
: cons arguments
|
|
887
|
-
{ $$ = new yy.ast.ConstructExpression($1, $
|
|
835
|
+
: cons '(' arguments ')'
|
|
836
|
+
{ $$ = new yy.ast.ConstructExpression($1, $3, @$); }
|
|
837
|
+
|
|
838
|
+
| cons '(' ')'
|
|
839
|
+
{ $$ = new yy.ast.ConstructExpression($1, [], @$); }
|
|
888
840
|
;
|
|
889
841
|
|
|
890
842
|
call_expression
|
|
891
|
-
: identifier type_arguments arguments
|
|
892
|
-
{$$ = new yy.ast.CallExpression($1, $2, $
|
|
843
|
+
: identifier type_arguments '(' arguments ')'
|
|
844
|
+
{$$ = new yy.ast.CallExpression($1, $2, $4, @$); }
|
|
893
845
|
|
|
894
|
-
| identifier
|
|
895
|
-
{$$ = new yy.ast.CallExpression($1, [],
|
|
846
|
+
| identifier type_arguments '(' ')'
|
|
847
|
+
{$$ = new yy.ast.CallExpression($1, $2, [], @$); }
|
|
896
848
|
|
|
897
|
-
|
|
|
898
|
-
{$$ = new yy.ast.CallExpression($1,
|
|
849
|
+
| identifier '(' arguments ')'
|
|
850
|
+
{$$ = new yy.ast.CallExpression($1, [], $3, @$); }
|
|
899
851
|
|
|
900
|
-
|
|
|
901
|
-
{$$ = new yy.ast.CallExpression($1, [],
|
|
852
|
+
| identifier '(' ')'
|
|
853
|
+
{$$ = new yy.ast.CallExpression($1, [], [], @$); }
|
|
902
854
|
|
|
903
|
-
|
|
|
904
|
-
{$$ = new yy.ast.CallExpression($1, $2, $
|
|
855
|
+
| context_property type_arguments '(' arguments ')'
|
|
856
|
+
{$$ = new yy.ast.CallExpression($1, $2, $4, @$); }
|
|
905
857
|
|
|
906
|
-
|
|
|
907
|
-
{$$ = new yy.ast.CallExpression($1, [],
|
|
858
|
+
| context_property type_arguments '(' ')'
|
|
859
|
+
{$$ = new yy.ast.CallExpression($1, $2, [], @$); }
|
|
908
860
|
|
|
909
|
-
| '('
|
|
910
|
-
{$$ = new yy.ast.CallExpression($
|
|
861
|
+
| context_property '(' arguments ')'
|
|
862
|
+
{$$ = new yy.ast.CallExpression($1, [], $3, @$); }
|
|
911
863
|
|
|
912
|
-
| '('
|
|
913
|
-
{$$ = new yy.ast.CallExpression($
|
|
864
|
+
| context_property '(' ')'
|
|
865
|
+
{$$ = new yy.ast.CallExpression($1, [], [], @$); }
|
|
914
866
|
|
|
915
|
-
|
|
|
916
|
-
{$$ = new yy.ast.CallExpression($1,
|
|
867
|
+
| member_expression type_arguments '(' arguments ')'
|
|
868
|
+
{$$ = new yy.ast.CallExpression($1, $2, $4, @$); }
|
|
869
|
+
|
|
870
|
+
| member_expression type_arguments '(' ')'
|
|
871
|
+
{$$ = new yy.ast.CallExpression($1, $2, [], @$); }
|
|
872
|
+
|
|
873
|
+
| member_expression '(' arguments ')'
|
|
874
|
+
{$$ = new yy.ast.CallExpression($1, [], $3, @$); }
|
|
875
|
+
|
|
876
|
+
| member_expression '(' ')'
|
|
877
|
+
{$$ = new yy.ast.CallExpression($1, [], [], @$); }
|
|
878
|
+
|
|
879
|
+
| '(' expression ')' type_arguments '(' arguments ')'
|
|
880
|
+
{$$ = new yy.ast.CallExpression($2, $4, $6, @$); }
|
|
881
|
+
|
|
882
|
+
| '(' expression ')' type_arguments '(' ')'
|
|
883
|
+
{$$ = new yy.ast.CallExpression($2, $4, [], @$); }
|
|
884
|
+
|
|
885
|
+
| '(' expression ')' '(' arguments ')'
|
|
886
|
+
{$$ = new yy.ast.CallExpression($2, [], $5, @$); }
|
|
887
|
+
|
|
888
|
+
| '(' expression ')' '(' ')'
|
|
889
|
+
{$$ = new yy.ast.CallExpression($2, [], [], @$); }
|
|
890
|
+
|
|
891
|
+
| call_expression '(' arguments ')'
|
|
892
|
+
{$$ = new yy.ast.CallExpression($1, [], $3, @$); }
|
|
893
|
+
|
|
894
|
+
| call_expression '(' ')'
|
|
895
|
+
{$$ = new yy.ast.CallExpression($1, [], [], @$); }
|
|
917
896
|
;
|
|
918
897
|
|
|
919
898
|
member_expression
|
|
@@ -947,6 +926,9 @@ member_expression
|
|
|
947
926
|
|
|
948
927
|
| member_expression '.' unqualified_identifier
|
|
949
928
|
{$$ = new yy.ast.MemberExpression($1, $3, @$); }
|
|
929
|
+
|
|
930
|
+
| member_expression '[' string_literal ']'
|
|
931
|
+
{$$ = new yy.ast.MemberExpression($1, $3, @$); }
|
|
950
932
|
;
|
|
951
933
|
|
|
952
934
|
function_expression
|
|
@@ -990,7 +972,7 @@ list
|
|
|
990
972
|
: '[' ']'
|
|
991
973
|
{$$ = new yy.ast.List([], @$); }
|
|
992
974
|
|
|
993
|
-
| '['
|
|
975
|
+
| '[' arguments ']'
|
|
994
976
|
{$$ = new yy.ast.List($2, @$); }
|
|
995
977
|
;
|
|
996
978
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenk/wml",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.4",
|
|
4
4
|
"description": "(WML) is a DSL for describing user interfaces in web applications.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "./node_modules/.bin/mocha $(find -name *_test.ts)"
|
|
8
|
+
},
|
|
6
9
|
"types": "lib/index.d.ts",
|
|
7
10
|
"files": [
|
|
8
11
|
"lib"
|