@@ -7,17 +7,20 @@ my %documented_ops := find_documented_opcodes();
7
7
my % ops := hash_of_vms();
8
8
9
9
% ops <jvm > := find_opcodes(
10
- : file( " src/vm/jvm/QAST/Compiler.nqp" ),
10
+ : files([ " src/vm/jvm/QAST/Compiler.nqp" ] ),
11
11
: keywords(<map_classlib_core_op add_core_op map_jvm_core_op >)
12
12
);
13
13
14
14
% ops <parrot > := find_opcodes(
15
- : file(" src/vm/parrot/QAST/Operations.nqp" ),
16
- : keywords(<add_core_op add_core_pirop_mapping >)
15
+ : files([
16
+ " src/vm/parrot/QAST/Operations.nqp" ,
17
+ " src/vm/parrot/NQP/Ops.nqp"
18
+ ]),
19
+ : keywords(<add_core_op add_core_pirop_mapping add_hll_op >)
17
20
);
18
21
19
22
% ops <moar > := find_opcodes(
20
- : file( " src/vm/moar/QAST/QASTOperationsMAST.nqp" ),
23
+ : files([ " src/vm/moar/QAST/QASTOperationsMAST.nqp" ] ),
21
24
: keywords(<add_core_op add_core_moarop_mapping >)
22
25
);
23
26
@@ -53,14 +56,17 @@ for @*vms -> $vm {
53
56
}
54
57
}
55
58
56
- sub find_opcodes (: $ file , : @ keywords ) {
59
+ sub find_opcodes (: @ files , : @ keywords ) {
57
60
my % ops := nqp ::hash();
58
- my @ lines := nqp :: split (" \n " , nqp ::readallfh(nqp :: open ($ file ," r" )));
59
- for @ lines -> $ line {
60
- next unless $ line ~~ / @ keywords /;
61
- $ line := nqp :: split (" '" , $ line )[1 ];
62
- next unless nqp :: chars ($ line );
63
- % ops {$ line } := 1 ;
61
+ for @ files -> $ file {
62
+ my @ lines := nqp :: split (" \n " , nqp ::readallfh(nqp :: open ($ file ," r" )));
63
+ for @ lines -> $ line {
64
+ next unless $ line ~~ / @ keywords /;
65
+ my @ pieces := nqp :: split (" '" , $ line );
66
+ $ line := @ pieces [1 ] eq ' nqp' ?? @ pieces [3 ] !! @ pieces [1 ];
67
+ next unless nqp :: chars ($ line );
68
+ % ops {$ line } := 1 ;
69
+ }
64
70
}
65
71
return % ops ;
66
72
}
0 commit comments