From 95060a31f56b05d2ac6dd87c9d102f76be1b8174 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sun, 5 Dec 2021 08:21:19 +1100 Subject: [PATCH] updates --- 00-TODO | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/00-TODO b/00-TODO index a973953..c4978a7 100644 --- a/00-TODO +++ b/00-TODO @@ -4,8 +4,12 @@ ### Current version (Cataract Creek) +- allow global names to be used before they are declared. Assume global + if undeclared, and complain in final analysis. + If used in 'use' and 'case', then make it a label +- avoid definition loops in global constants - allow type names to be used before declared. Need to re-evaluate all - type sizes after parse. + type sizes after parse. avoid loops - resolve the HACK of allowing assign from struct when name starts space. - '?' prefix operator returns Boolean, index operator for strings. Can be used to test for end-of-string @@ -18,6 +22,7 @@ - int nat cyc {i,n,c}{8,16,32,64} - maybe not cyc - it needs size. - ops: # & | ~ &~ - no shift: use (N * #shift) or (N / #shift) - op= +- make '.' modifier interpolate a deref if needed - enum, with multi-valued names. enum foo { yes, no, many(10) } bar:foo=.yes; if bar == .no... if ?bar.many: print bar.many, "items" Maybe .true and .false for Boolean @@ -25,8 +30,6 @@ type is evident. - set, with bool or int members. set foo { pinned, memalloc, priority(4) } bar:foo = .memalloc | .priority(2). if bar.pinned: bar.priority += 1 -- allow global names to be used before they are declared. Assume global - if undeclared, and complain in final analysis. . array slices - references to arrays - array access to read bytes from strings. How to get length? "?string[4]" ?? array[] gets length?? -- 2.43.0