On Thu, Oct 18, 2007 at 09:04:39AM +0200, Ovanes Markarian wrote:
Hello Zeljko,
may be another approach? Why not using a template method and static concepts inside a function, which ensure that a parameter is of correct type?
Hmm, I didn't quite get you. But I want to match both on *type* and *value* as shown in this rule:
| (Insn "addq", Reg "%rsp") -> (* do something *)
The type here is (Insn, Reg) [particular types of larger variants]; each component is also matched on the particular value ("addq" and "%rsp" strings).
| (_, Imm x) -> (* any 1st item; the 2nd must be Imm type, and the x variable is bound to the value carried by the 2nd
The type here is doesn't matter and (Imm x) - this is a match only on type where the variable x gets bound to the value carried by the variant type.