+ _mtype = t
+ if t != null then self.is_typed = true
+ _value = value
+ _n_integer = new TInteger # dummy
+ end
+
+ redef fun clone: SELF
+ do
+ return new AIntegerExpr.make(value, mtype)
+ end
+end
+
+redef class AFloatExpr
+
+ private init make(value: nullable Float, t: nullable MType)
+ do
+ _mtype = t
+ if t != null then self.is_typed = true
+ _value = value
+ _n_float = new TFloat # dummy
+ end
+
+ redef fun clone: SELF
+ do
+ return new AFloatExpr.make(value, mtype)
+ end
+end
+
+redef class ATrueExpr
+
+ private init make(t: nullable MType)
+ do
+ init_atrueexpr(new TKwtrue, null)
+ _mtype = t
+ if t != null then self.is_typed = true
+ end
+
+ redef fun clone: SELF
+ do
+ return new ATrueExpr.make(mtype)
+ end
+end
+
+redef class AFalseExpr
+
+ private init make(t: nullable MType)
+ do
+ init_afalseexpr(new TKwfalse, null)
+ _mtype = t
+ if t != null then self.is_typed = true
+ end
+
+ redef fun clone: SELF
+ do
+ return new AFalseExpr.make(mtype)
+ end
+end
+
+redef class ACharExpr
+
+ # `token_text` represent the real value as it's present in a file not only the char.
+ # `token_text` is needed if you want to use some methods (for exemple: `prefix`, `suffix` or `is_code_point methods`)
+ private init make(value: nullable Char, t: nullable MType, token_text: nullable String)
+ do
+ _value = value
+ _mtype = t
+ _n_char = new TChar
+ if token_text != null then n_char.text = token_text
+ if t != null then self.is_typed = true
+ end
+
+ redef fun clone: SELF
+ do
+ var self_clone = new ACharExpr.make(self.value, mtype, n_char.text)
+ return self_clone