+ value = self.n_number.text.to_i
+ end
+end
+
+redef class AHexIntExpr
+ redef fun accept_literal(v)
+ do
+ var s = self.n_hex_number.text.substring_from(2).remove_underscores
+ if s.is_empty then
+ v.toolcontext.error(location, "Error: invalid hexadecimal literal")
+ return
+ end
+ value = s.to_hex
+ end
+end
+
+redef class ABinIntExpr
+ redef fun accept_literal(v)
+ do
+ var s = self.n_bin_number.text.substring_from(2).remove_underscores
+ if s.is_empty then
+ v.toolcontext.error(location, "Error: invalid binary literal")
+ return
+ end
+ value = s.to_bin
+ end
+end
+
+redef class AOctIntExpr
+ redef fun accept_literal(v)
+ do
+ var s = self.n_oct_number.text.substring_from(2).remove_underscores
+ if s.is_empty then
+ v.toolcontext.error(location, "Error: invalid octal literal")
+ return
+ end
+ value = s.to_oct