File tree Expand file tree Collapse file tree 3 files changed +28
-5
lines changed Expand file tree Collapse file tree 3 files changed +28
-5
lines changed Original file line number Diff line number Diff line change @@ -15,10 +15,8 @@ class QAST::Node {
15
15
has % ! hash ;
16
16
17
17
has $ ! node ;
18
- has str $ ! named ;
19
18
has $ ! returns ;
20
19
has int $ ! arity ;
21
- has int $ ! flat ;
22
20
has str $ ! childorder ;
23
21
24
22
method new (* @ children , * % options ) {
@@ -31,11 +29,28 @@ class QAST::Node {
31
29
}
32
30
33
31
method node (* @ value ) { $ ! node := @ value [0 ] if @ value ; $ ! node }
34
- method named (* @ value ) { $ ! named := @ value [0 ] if @ value ; $ ! named || " " }
35
32
method returns (* @ value ) { $ ! returns := @ value [0 ] if @ value ; $ ! returns }
36
- method arity (* @ value ) { $ ! arity := @ value [0 ] if @ value ; $ ! arity }
37
- method flat (* @ value ) { $ ! flat := @ value [0 ] if @ value ; $ ! flat }
38
33
method childorder (* @ value ) { $ ! childorder := @ value [0 ] if @ value ; $ ! childorder || " " }
34
+ method arity (* @ value ) { $ ! arity := @ value [0 ] if @ value ; $ ! arity }
35
+
36
+ method named (* @ value ) {
37
+ if @ value {
38
+ self . HOW . mixin(self , QAST ::SpecialArg);
39
+ self . named(@ value [0 ]);
40
+ }
41
+ else {
42
+ " "
43
+ }
44
+ }
45
+ method flat (* @ value ) {
46
+ if @ value {
47
+ self . HOW . mixin(self , QAST ::SpecialArg);
48
+ self . flat (@ value [0 ]);
49
+ }
50
+ else {
51
+ 0
52
+ }
53
+ }
39
54
40
55
method list () { @ ! array }
41
56
method pop () { nqp :: pop (self . list) }
Original file line number Diff line number Diff line change
1
+ role QAST::SpecialArg {
2
+ has str $ ! named ;
3
+ has int $ ! flat ;
4
+
5
+ method named (* @ value ) { $ ! named := @ value [0 ] if @ value ; $ ! named || " " }
6
+ method flat (* @ value ) { $ ! flat := @ value [0 ] if @ value ; $ ! flat }
7
+ }
Original file line number Diff line number Diff line change @@ -70,6 +70,7 @@ QAST_PIR = QAST.pir
70
70
QAST_PBC = QAST.pbc
71
71
QAST_SOURCES = \
72
72
src/QAST/CompileTimeValue.nqp \
73
+ src/QAST/SpecialArg.nqp \
73
74
src/QAST/Node.nqp \
74
75
src/QAST/Regex.nqp \
75
76
src/QAST/IVal.nqp \
You can’t perform that action at this time.
0 commit comments