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
- verified that all text from go_lang.txt is either present in its
old form, or that we have corresponding updated sections for it
- delete go_lang.txt
R=r
DELTA=2389 (38 added, 2344 deleted, 7 changed)
OCL=14760
CL=14762
- All text taken from go_lang.txt (which is unchanged),
but added a contents section, and sorted the contents
section in a hopefully sensible manner to give it more
structure
- Reordered text to match order of contents section,
did not adjust the language (needs to be done),
but removed sections that were dulicates or invalid
High-level organization of the doc:
- Introduction
- Notation
- Source code representation
- Vocabulary
- Declarations and scope rules
- Types
- Expressions
- Statements
- Function declarations
- Packages
- Program initialization and execution
I hope this new structure will make it much clearer which
pieces are missing and where they need to go. go_lang.txt
has grown somewhat unstructured and new text was added as
we saw fit.
R=r
DELTA=2577 (2577 added, 0 deleted, 0 changed)
OCL=14639
CL=14639
A forward-declared (or not yet fully defined) type must be used
to construct (mutually) recursive type declarations. This simplifies
the compiler and resolves the issue at which scope the forward-
declared type is to be declared.
SVN=117770