aboutsummaryrefslogtreecommitdiffstats
path: root/doc/syntax/precedence.rdoc
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-15 04:33:28 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-15 04:33:28 +0000
commit68b072bfbabdcd78b4d7980c15ab83163ecbacd3 (patch)
tree3dfa99c599b64a1d73a54714fd5e38a62caa2989 /doc/syntax/precedence.rdoc
parent108f3acbe41ec2de5164109ee80377fe31951e08 (diff)
downloadruby-68b072bfbabdcd78b4d7980c15ab83163ecbacd3.tar.gz
* doc/syntax/methods.rdoc (Method Names): Added method names including
operator methods. * doc/syntax/methods.rdoc (Return Values): Added note that assignment methods ignore return values. * doc/syntax/precedence.rdoc: Added document describing precedence. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'doc/syntax/precedence.rdoc')
-rw-r--r--doc/syntax/precedence.rdoc60
1 files changed, 60 insertions, 0 deletions
diff --git a/doc/syntax/precedence.rdoc b/doc/syntax/precedence.rdoc
new file mode 100644
index 0000000000..515626c74f
--- /dev/null
+++ b/doc/syntax/precedence.rdoc
@@ -0,0 +1,60 @@
+= Precedence
+
+From highest to lowest, this is the precedence table for ruby. High precedence
+operations happen before low precedence operations.
+
+ !, ~, unary +
+
+ **
+
+ unary -
+
+ *, /, %
+
+ +, -
+
+ <<, >>
+
+ &
+
+ |, ^
+
+ >, >=, <, <=
+
+ <=>, ==, ===, !=, =~, !~
+
+ &&
+
+ ||
+
+ .., ...
+
+ ?, :
+
+ modifier-rescue
+
+ =, +=, -=, etc.
+
+ defined?
+
+ not
+
+ or, and
+
+ modifier-if, modifier-unless, modifier-while, modifier-until
+
+ { } blocks
+
+Unary <code>+</code> and unary <code>-</code> are for <code>+1</code>,
+<code>-1</code> or <code>-(a + b)</code>.
+
+Modifier-if, modifier-unless, etc. are for the modifier versions of those
+keywords. For example, this is a modifier-unless expression:
+
+ a += 1 unless a.zero?
+
+<code>{ ... }</code> blocks have priority below all listed operations, but
+<code>do ... end</code> blocks have lower priority.
+
+All other words in the precedence table above are keywords.
+