From 7411333f9ab42ba741bcca4749594a1e564a2b7e Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Thu, 23 Apr 2015 15:46:06 +0700 Subject: [PATCH] src: handle new bitwise operators Signed-off-by: Jean Privat --- src/modelize/modelize_property.nit | 2 ++ src/nitni/nitni_base.nit | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modelize/modelize_property.nit b/src/modelize/modelize_property.nit index 3243f96..092acad 100644 --- a/src/modelize/modelize_property.nit +++ b/src/modelize/modelize_property.nit @@ -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}.") diff --git a/src/nitni/nitni_base.nit b/src/nitni/nitni_base.nit index 5e3b7a6..616d4ea 100644 --- a/src/nitni/nitni_base.nit +++ b/src/nitni/nitni_base.nit @@ -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 -- 1.7.9.5