! Copyright (C) 2009, 2011 Slava Pestov. ! See https://factorcode.org/license.txt for BSD license. USING: accessors arrays assocs compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.instructions.syntax fry functors generic.parser kernel lexer namespaces parser sequences sets slots words ; IN: compiler.cfg.renaming.functor ! Like compiler.cfg.def-use, but for changing operands : slot-change-quot ( slots quot -- quot' ) '[ [ _ ] dip changer-word [ ] 2sequence ] map [ ] join [ drop ] append ; > ] map DEF-QUOT slot-change-quot ] bi define ] each insn-classes get special-vreg-insns diff [ insn-use-slots empty? ] reject [ [ \ rename-insn-uses create-method-in ] [ insn-use-slots [ name>> ] map USE-QUOT slot-change-quot ] bi define ] each insn-classes get [ insn-temp-slots empty? ] reject [ [ \ rename-insn-temps create-method-in ] [ insn-temp-slots [ name>> ] map TEMP-QUOT slot-change-quot ] bi define ] each ;FUNCTOR> SYNTAX: RENAMING: scan-token scan-object scan-object scan-object define-renaming ;