src: handle new bitwise operators
authorJean Privat <jean@pryen.org>
Thu, 23 Apr 2015 08:46:06 +0000 (15:46 +0700)
committerJean Privat <jean@pryen.org>
Fri, 24 Apr 2015 07:47:30 +0000 (14:47 +0700)
Signed-off-by: Jean Privat <jean@pryen.org>

src/modelize/modelize_property.nit
src/nitni/nitni_base.nit

index 3243f96..092acad 100644 (file)
@@ -801,6 +801,8 @@ redef class AMethPropdef
                                name = "unary +"
                        else if name == "-" and arity == 0 then
                                name = "unary -"
+                       else if name == "~" and arity == 0 then
+                               name = "unary ~"
                        else
                                if amethodid.is_binary and arity != 1 then
                                        modelbuilder.error(self.n_signature, "Syntax Error: binary operator `{name}` requires exactly one parameter; got {arity}.")
index 5e3b7a6..616d4ea 100644 (file)
@@ -32,6 +32,7 @@ redef class MMethod
                if nit_name == "-" then return "_minus"
                if nit_name == "unary -" then return "_unary_minus"
                if nit_name == "unary +" then return "_unary_plus"
+               if nit_name == "unary ~" then return "_unary_tilde"
                if nit_name == "*" then return "_star"
                if nit_name == "/" then return "_slash"
                if nit_name == "%" then return "_percent"
@@ -39,13 +40,17 @@ redef class MMethod
                if nit_name == "[]=" then return "_index_assign"
                if nit_name == "==" then return "_equal"
                if nit_name == "<" then return "_less"
-               if nit_name == ">" then return "_geater"
+               if nit_name == ">" then return "_greater"
                if nit_name == "<=" then return "_less_or_equal"
                if nit_name == ">=" then return "_greater_or_equal"
                if nit_name == "!=" then return "_not_equal"
                if nit_name == "<<" then return "_left"
                if nit_name == ">>" then return "_right"
                if nit_name == "<=>" then return "_starship"
+               if nit_name == "|" then return "_pipe"
+               if nit_name == "^" then return "_caret"
+               if nit_name == "&" then return "_amp"
+               if nit_name == "~" then return "_tilde"
 
                if nit_name.chars.last == '=' then return "{nit_name.substring(0, nit_name.length-1)}__assign"
                return nit_name