@@ -377,3 +377,40 @@ QAST::Operations.add_core_pirop_mapping('unshift_s', 'unshift', '0Ps');
377
377
QAST ::Operations. add_core_pirop_mapping(' unshift_i' , ' unshift' , ' 0Pi' );
378
378
QAST ::Operations. add_core_pirop_mapping(' unshift_n' , ' unshift' , ' 0Pn' );
379
379
QAST ::Operations. add_core_pirop_mapping(' splice' , ' splice' , ' 0PPii' );
380
+
381
+ # repr-level aggregate operations
382
+ QAST ::Operations. add_core_pirop_mapping(' r_atpos' , ' repr_at_pos_obj' , ' PPi' );
383
+ QAST ::Operations. add_core_pirop_mapping(' r_atpos_i' , ' repr_at_pos_int' , ' IPi' );
384
+ QAST ::Operations. add_core_pirop_mapping(' r_atpos_n' , ' repr_at_pos_num' , ' NPi' );
385
+ QAST ::Operations. add_core_pirop_mapping(' r_bindpos' , ' repr_bind_pos_obj' , ' 2PiP' );
386
+ QAST ::Operations. add_core_pirop_mapping(' r_bindpos_i' , ' repr_bind_pos_int' , ' 2Pii' );
387
+ QAST ::Operations. add_core_pirop_mapping(' r_bindpos_n' , ' repr_bind_pos_num' , ' 2Pin' );
388
+
389
+ # object opcodes
390
+ QAST ::Operations. add_core_pirop_mapping(' bindattr' , ' setattribute' , ' 3PPsP' );
391
+ QAST ::Operations. add_core_pirop_mapping(' bindattr_i' , ' repr_bind_attr_int' , ' 3PPsi' );
392
+ QAST ::Operations. add_core_pirop_mapping(' bindattr_n' , ' repr_bind_attr_num' , ' 3PPsn' );
393
+ QAST ::Operations. add_core_pirop_mapping(' bindattr_s' , ' repr_bind_attr_str' , ' 3PPss' );
394
+ QAST ::Operations. add_core_pirop_mapping(' getattr' , ' getattribute' , ' PPPs' );
395
+ QAST ::Operations. add_core_pirop_mapping(' getattr_i' , ' repr_get_attr_int' , ' IPPs' );
396
+ QAST ::Operations. add_core_pirop_mapping(' getattr_n' , ' repr_get_attr_num' , ' NPPs' );
397
+ QAST ::Operations. add_core_pirop_mapping(' getattr_s' , ' repr_get_attr_str' , ' SPPs' );
398
+ QAST ::Operations. add_core_pirop_mapping(' create' , ' repr_instance_of' , ' PP' );
399
+ QAST ::Operations. add_core_pirop_mapping(' clone' , ' clone' , ' PP' );
400
+ QAST ::Operations. add_core_pirop_mapping(' isconcrete' , ' repr_defined' , ' IP' );
401
+ QAST ::Operations. add_core_pirop_mapping(' iscont' , ' is_container' , ' IP' );
402
+ QAST ::Operations. add_core_pirop_mapping(' isnull' , ' isnull' , ' IP' );
403
+ QAST ::Operations. add_core_pirop_mapping(' isnull_s' , ' isnull' , ' IS' );
404
+ QAST ::Operations. add_core_pirop_mapping(' istrue' , ' istrue' , ' IP' );
405
+ QAST ::Operations. add_core_pirop_mapping(' istype' , ' type_check' , ' IPP' );
406
+ QAST ::Operations. add_core_pirop_mapping(' null' , ' null' , ' P' );
407
+ QAST ::Operations. add_core_pirop_mapping(' unbox_i' , ' repr_unbox_int' , ' IP' );
408
+ QAST ::Operations. add_core_pirop_mapping(' unbox_n' , ' repr_unbox_num' , ' NP' );
409
+ QAST ::Operations. add_core_pirop_mapping(' unbox_s' , ' repr_unbox_str' , ' SP' );
410
+ QAST ::Operations. add_core_pirop_mapping(' box_i' , ' repr_box_int' , ' PiP' );
411
+ QAST ::Operations. add_core_pirop_mapping(' box_n' , ' repr_box_num' , ' PnP' );
412
+ QAST ::Operations. add_core_pirop_mapping(' box_s' , ' repr_box_str' , ' PsP' );
413
+ QAST ::Operations. add_core_pirop_mapping(' where' , ' get_id' , ' IP' );
414
+
415
+ # serialization context related opcodes
416
+ QAST ::Operations. add_core_pirop_mapping(' sha1' , ' nqp_sha1' , ' Ss' );
0 commit comments