diff options
Diffstat (limited to 'tnslc/compile/var.tnsl')
| -rw-r--r-- | tnslc/compile/var.tnsl | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/tnslc/compile/var.tnsl b/tnslc/compile/var.tnsl index 4425cf7..33c3973 100644 --- a/tnslc/compile/var.tnsl +++ b/tnslc/compile/var.tnsl @@ -108,6 +108,8 @@ struct Var { /; init (~parse.Node tn, id) self.name = utils.strcpy(id`.data) self.ptrc.init(4) + self.loc = 0 + self._tn = tn self._id = id ;/ @@ -153,6 +155,23 @@ struct Var { self.ptrc.push(~ptr) ;/ + /; is_reg_passed [bool] + /; if (self.ptrc.count > 0) + return true + ;/ + return false + ;/ + + /; actual_size [uint] + /; if (self.ptrc.count > 0) + return 8 + ;; else if (self._type == NULL) + return 0 + ;/ + + return self._type`.size + ;/ + # Sets up both the ptrc and the _type members, requires # parent module for resolution of types /; _resolve_type (~Module parent) @@ -195,8 +214,8 @@ struct Var { ;; else t = _tn`.sub.get(idx) /; if (t`._type == parse.NTYPE_ID) - ~void str = t`.data - strv.push(str) + ~uint8 str = t`.data + strv.push(~str) ;; else running = false ;/ |