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
separate between ints and floats, added language regarding the
type of numeric literals)
- added language with respect to the scope of labels
- introduced ideal types for the purpose of the spec
- added language to expressions, operands
- added some more formal language about ideal type conversion
(probably not 100% correct yet)
R=r
DELTA=145 (69 added, 4 deleted, 72 changed)
OCL=15165
CL=15186
(work now with Ken's latest compiler fix)
- exoanded test cases accordingly
- fixed a type in the spec (thx r)
R=r
DELTA=65 (62 added, 2 deleted, 1 changed)
OCL=15050
CL=15050
- fixed several examples to use new function type syntax
- added list of open spec issues to todo.txt
R=r
DELTA=143 (88 added, 8 deleted, 47 changed)
OCL=14974
CL=15007
- removed "func" from function type
- make it work by changing composite literal syntax to use {} instead of ()
FunctionType is now more in line with the rest of the declarations, as the
keyword "func" is now really part of the declaration and not part of the type.
R=r,ken
DELTA=49 (14 added, 12 deleted, 23 changed)
OCL=14864
CL=14955