]> ocean-lang.org Git - ocean-D/blobdiff - 00-TODO
devel - working on twod
[ocean-D] / 00-TODO
diff --git a/00-TODO b/00-TODO
index 8c0efc77bafe710ae709f0a582f47232ed876ca7..5675fdb226b41beb48c4ba1f0111494811589e7c 100644 (file)
--- a/00-TODO
+++ b/00-TODO
@@ -1,24 +1,24 @@
 This is a living document - delete things when done.  Avoid discussion.
 
 Current version (Cataract Creek)
-- Warn when left-recursive symbols appear elsewhere, other than at the end
-  of a production.  Might have to special-case Newlines.
-- parser not to get into ERROR infinite loop
-- sort 'virtual' symbols to end
-- allow $xy instead of $3.  Chooses shortest bodysym with xy in that order
-    $xy_2 gives the second one
-- allow $TERM terminals to be listed.  If so, extras are errors
 - structs
-   - const fields
+   - const fields ... what does that mean?  Assign once as initialization?
+      Can be used for array size? What else?
    - anonymous field - array or struct (or pointer to these)
-      multiple anon struct ar allowed if they don't conflict
+      multiple anon struct are allowed if they don't conflict
    - [] can apply to anon array field
    - anon struct field gets fields interpolated
 
+   - anon fields have no name before the :, so
+       struct foobar:
+               :content
+               size:number
+
 - manifest values for arrays and structs [a,b,c]
     or [.foo=a, .bar=b] or [ [1]=a, [2]=b]
    That last doesn't parse easily, unless we require tags... not a good idea.
    [ .[1] = a, .[2] = b ] ?? Maybe.
+   or () to group, [] for index. To (.foo=a) ( [1] = b )
 - yet more operators
      << >> #
      bit-ops & | ~ &~