Commit fd1f3830 authored by Rob Pike's avatar Rob Pike

autogenerate the table of contents

R=rsc
DELTA=149  (1 added, 145 deleted, 3 changed)
OCL=25231
CL=25234
parent 4501d348
This document is a semi-formal specification of the Go systems
programming language.
<p>
<font color=red>
This document is not ready for external review, it is under active development.
Any part may change substantially as design progresses.
</font>
<!--
Biggest open issues:
[ ] General iterators
......@@ -143,143 +135,6 @@ Timeline (9/5/08):
- Jan 1, 2009: enough support to write interesting programs
-->
<h2>Contents</h2>
<p>
TODO: This should be autogenerated but that will take work to make h3s appear in this list
</p>
<ul>
<li>Introduction
<li>Notation
<li>Source code representation
<ul>
<li>Characters
<li>Letters and digits
</ul>
<li>Vocabulary
<ul>
<li>Identifiers
<li>Numeric literals
<li>Character and string literals
<li>Operators and delimitors
<li>Reserved words
</ul>
<li>Declarations and scope rules
<ul>
<li>Predeclared identifiers
<li>Exported identifiers
<li>Const declarations
<ul>
<li>Iota
</ul>
<li>Type declarations
<li>Variable declarations
</ul>
<li>Types
<ul>
<li>Basic types
<ul>
<li>Arithmetic types
<li>Booleans
<li>Strings
</ul>
<li>Array types
<li>Struct types
<li>Pointer types
<li>Function types
<li>Interface types
<li>Slice types
<li>Map types
<li>Channel types
<li>Type equality
</ul>
<li>Expressions
<ul>
<li>Operands
<ul>
<li>Constants
<li>Qualified identifiers
<li>Composite literals
<li>Function literals
</ul>
<li>Primary expressions
<ul>
<li>Selectors
<li>Indexes
<li>Slices
<li>Type guards
<li>Calls
<ul>
<li>Parameter passing
</ul>
</ul>
<li>Operators
<ul>
<li>Arithmetic operators
<ul>
<li>Integer overflow
</ul>
<li>Comparison operators
<li>Logical operators
<li>Address operators
<li>Communication operators
</ul>
<li>Constant expressions
</ul>
<li>Statements
<ul>
<li>Label declarations
<li>Expression statements
<li>IncDec statements
<li>Assignments
<li>If statements
<li>Switch statements
<li>For statements
<li>Go statements
<li>Select statements
<li>Return statements
<li>Break statements
<li>Continue statements
<li>Label declaration
<li>Goto statements
<li>Defer statements
</ul>
<li>Function declarations
<ul>
<li>Method declarations
<li>Predeclared functions
<ul>
<li>Length and capacity
<li>Conversions
<li>Allocation
<li>Making slices, maps, and channels
</ul>
</ul>
<li>Packages
<li>Program initialization and execution
<li>Systems considerations
<ul>
<li>Package unsafe
<li>Size and alignment guarantees
</ul>
</ul>
<hr>
<h2>Introduction</h2>
<p>
......@@ -301,7 +156,7 @@ compile/link model to generate executable binaries.
The grammar is compact and regular, allowing for easy analysis by
automatic tools such as integrated development environments.
</p>
<hr>
<h2>Notation</h2>
<p>
The syntax is specified using Extended Backus-Naur Form (EBNF):
......@@ -344,6 +199,7 @@ The form <tt>"a ... b"</tt> represents the set of characters from
Where possible, recursive productions are used to express evaluation order
and operator precedence syntactically.
</p>
<hr>
<h2>Source code representation</h2>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment