summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-03-22 22:59:23 +0100
committerAraq <rumpf_a@web.de>2014-03-22 22:59:23 +0100
commitb76d2eac7f551cafa0ac797330e3bd0650ab26d9 (patch)
tree2b8496ee88de8853c9ff4672c0deae1dce974c56
parent5f64d7a35389a5f4cac82a44a3f5f9414c2c3fbb (diff)
downloadNim-b76d2eac7f551cafa0ac797330e3bd0650ab26d9.tar.gz
fixes #1006
-rw-r--r--compiler/c2nim/cparse.nim3
-rw-r--r--compiler/semgnrc.nim2
-rw-r--r--doc/manual.txt17
3 files changed, 14 insertions, 8 deletions
diff --git a/compiler/c2nim/cparse.nim b/compiler/c2nim/cparse.nim
index 86533fe26..52d50ca39 100644
--- a/compiler/c2nim/cparse.nim
+++ b/compiler/c2nim/cparse.nim
@@ -1279,7 +1279,8 @@ proc leftBindingPower(p : var TParser, tok : ref TToken) : int =
   of pxComma:
     return 10
     # throw == 20
-  of pxAsgn, pxPlusAsgn, pxMinusAsgn, pxStarAsgn, pxSlashAsgn, pxModAsgn, pxShlAsgn, pxShrAsgn, pxAmpAsgn, pxHatAsgn, pxBarAsgn:
+  of pxAsgn, pxPlusAsgn, pxMinusAsgn, pxStarAsgn, pxSlashAsgn, pxModAsgn, 
+     pxShlAsgn, pxShrAsgn, pxAmpAsgn, pxHatAsgn, pxBarAsgn:
     return 30
   of pxConditional:
     return 40
diff --git a/compiler/semgnrc.nim b/compiler/semgnrc.nim
index ffc1a43b2..2de397e25 100644
--- a/compiler/semgnrc.nim
+++ b/compiler/semgnrc.nim
@@ -94,6 +94,8 @@ proc semGenericStmt(c: PContext, n: PNode,
     let luf = if withinMixin notin flags: {checkUndeclared} else: {}
     var s = qualifiedLookUp(c, n, luf)
     if s != nil: result = semGenericStmtSymbol(c, n, s)
+    else:
+      
     # XXX for example: ``result.add`` -- ``add`` needs to be looked up here...
   of nkEmpty, nkSym..nkNilLit:
     # see tests/compile/tgensymgeneric.nim:
diff --git a/doc/manual.txt b/doc/manual.txt
index 5c4aa2c17..c2acd3e6a 100644
--- a/doc/manual.txt
+++ b/doc/manual.txt
@@ -499,18 +499,21 @@ other binary operators are left-associative.
 Precedence
 ----------
 
-For operators that are not keywords the precedence is determined by the
-following rules: 
+Unary operators always bind stronger than any binary 
+operator: ``$a + b`` is ``($a) + b`` and not ``$(a + b)``.
 
-If the operator ends with ``=`` and its relevant character is none of 
-``<``, ``>``, ``!``, ``=``, ``~``, ``?``, it is an *assignment operator* which
-has the lowest precedence.
-
-If the operator's relevant character is ``@`` it is a `sigil-like`:idx: 
+If an unary operator's relevant character is ``@`` it is a `sigil-like`:idx: 
 operator which binds stronger than a ``primarySuffix``: ``@x.abc`` is parsed
 as ``(@x).abc`` whereas ``$x.abc`` is parsed as ``$(x.abc)``.
 
 
+For binary operators that are not keywords the precedence is determined by the
+following rules:
+
+If the operator ends with ``=`` and its relevant character is none of 
+``<``, ``>``, ``!``, ``=``, ``~``, ``?``, it is an *assignment operator* which
+has the lowest precedence.
+
 Otherwise precedence is determined by the relevant character.
 
 ================  ===============================================  ==================  ===============