Instead of trying to make open arrays look like arrays (which they aren't,
they just look like them), I decided to call them "slice types". As a result
they have value semantics, and one can really talk about what they really are.
Note:
- There are lots of missing details
- There are probably lots of mistakes
Looking for some initial feedback.
R=r
DELTA=444 (180 added, 189 deleted, 75 changed)
OCL=21769
CL=22020
in favor of explicit constructs
- simpler, clearer, and shorter overall
- no spec changes
(in retrospect it was just a (my) mistake to put it in in the first place)
R=r
DELTA=55 (13 added, 28 deleted, 14 changed)
OCL=21434
CL=21462
- language for type guards
- fixed language for break statements
Also: Removed uses of "we" and replaced by impersonal language.
Minor cosmetic changes.
DELTA=237 (160 added, 34 deleted, 43 changed)
OCL=18620
CL=18800
spec.
I have deliberately removed the wording about receivers where it was
before because I think it needs to be more precise. There is a TODO.
DELTA=90 (54 added, 0 deleted, 36 changed)
OCL=17597
CL=17716
(for instance *p was not allowed on the left side of "="). Changed
to Expression everywhere (this is too liberal, UnaryExpr is probably
good enough, but it seems funny, and we need to check semantically
anyway). This matches 6g yacc.
- Write expression syntac recursively to express evaluation order
and precedence syntactically.
- Organized open issues list, folded in stuff from todo.txt which
is now obsolete.
R=r
DELTA=108 (41 added, 52 deleted, 15 changed)
OCL=16903
CL=16910
- more precise wording by having an explicit list of cases
- simplified statement list
R=r
DELTA=16 (10 added, 0 deleted, 6 changed)
OCL=16871
CL=16875
- language for selectors and array/map indices
- formal description of syntax notation used
- factor out common productions to better show
symmetries in grammar
R=r
DELTA=113 (77 added, 13 deleted, 23 changed)
OCL=16853
CL=16865
except in statement list, where it is expressed in words
- allow for empty import, const, type, and var decl lists inside ()'s
- fixed grammar for inc/dec statements
- added empty statement as it appears to be accepted by 6g
R=r
DELTA=75 (23 added, 21 deleted, 31 changed)
OCL=16785
CL=16785
- typename cannot refer to interface types
- clarified syntax
- added TODO re: type name issue with qualified identifiers
Changed/fixed order of operators/keywords.
R=r
DELTA=10 (3 added, 0 deleted, 7 changed)
OCL=16337
CL=16339
- added "..." to list of delimiters (slightly re-arranged that table)
- rename of 2 productions for more consistent naming
R=r
DELTA=20 (7 added, 1 deleted, 12 changed)
OCL=16101
CL=16103
- leave only basic type conversions in that section
- we have a section of composite literals which covers those
- we have a section prepared (but not written) on type guards
- the built-in function "convert" doesn't need to be exposed
as it is redundant
R=r
DELTA=101 (6 added, 77 deleted, 18 changed)
OCL=15986
CL=15991
- simplified Assignment syntax (only notational change)
- added TODOs
- made old text invisible by moving it into HTML comment
R=r
DELTA=107 (4 added, 95 deleted, 8 changed)
OCL=15972
CL=15987
2) Added proposal for making "if" statements consistent with the
other control structures.
R=r
DELTA=59 (32 added, 6 deleted, 21 changed)
OCL=15583
CL=15964
- clarified constants and constant expressions
- clarified type of array composite literals (fixed vs open arrays)
- clarified type of map composite literals (need to use '&' to get
a map pointer)
- added proposal for "if-else" (TBD)
- added TODO w/ respect to "x, ok = <-ch" (and for arrays)
R=r
DELTA=51 (35 added, 0 deleted, 16 changed)
OCL=15573
CL=15575