From: "alexeymuranov (Alexey Muranov)" <redmine@...> Date: 2012-11-22T02:36:03+09:00 Subject: [ruby-core:49824] [ruby-trunk - Feature #7336] Flexiable OPerator Precedence Issue #7336 has been updated by alexeymuranov (Alexey Muranov). trans (Thomas Sawyer) wrote: > @nobu LOL! I would if I could! Actually, I've thought more than once that progress in keyboard input totally stagnated in the late 80s. Why can't we type superscripts and subscripts and make good use of it! An use MS Word as IDE, please ;). ---------------------------------------- Feature #7336: Flexiable OPerator Precedence https://bugs.ruby-lang.org/issues/7336#change-33409 Author: trans (Thomas Sawyer) Status: Rejected Priority: Normal Assignee: Category: core Target version: next minor =begin If Ruby classes could provide some means for redefining operator precedence, it would provide the flexibility useful to some DSL use-cases. My particular application, for instance, is in an SI units system gem that could use `^` to mean power of the unit (e.g. 1.meter^3 would mean cubic meters). But to do that right the operator needs a higher precedence. I don't expect it to be something commonly used, obviously, but it certain use cases like mine it is practically essential. I first suggested that (({#^})) be given a higher precedence and XOR get another operator in #6678. I was not surprised that it was rejected, but I figured it was the proper first step, before proposing this much broader feature request. As for notation, I suppose the simplest means if to create class method that can move the precedence to a position relative to another, e.g. class Unit precedence :^, :** Which is to say, move (({#^})) operator to a precedence above (({#**})). =end -- http://bugs.ruby-lang.org/