Add grammar.dd

Copy GRAMMAR sections from other files.
Fix style - Replace $(B ) to $(D )
Fix style - Insert space between tokens, remove MULTICOLS
.gitignore Makefile
Fix links
Sort out sections and non-terminal symbols

- Add 'type' section

- Collect functions in 'function' section
  `Constructor` `Destructor` `StructPostblit` `UnitTest` etc

- AggregateDeclaration
  Contains ClassDeclaration and InterfaceDeclaration

- [Bug fix] Move `Pragma` and `Property` in 'attributes' section
  `@safe`, `@trusted`, and `@system` should be a part of `Attribute`
Tweak grammar (1)

- Replace identical non-terminal symbols to general ones
  # `CCDeclarationBlock` to `DeclarationBlock`
  # `Declarations` to `DeclDefs`opt

- Remove `AliasThisDeclaration` so it's identical with `AliasThis`

- Rename to more general names: Postblit, Allocator, Deallocator

- Add AggregateBody, and replace other XXXBody to it

- Remove TemplateIdentifier, MixinIdentifier, and ConstraintExpression
  They are mostly redandant

- Rename `Aggregate` to `ForeachAggregate`
  Avoid confusion with `AggregateDeclaration`

- Use `TemplateParameters`

- Use `OPT` for the positions which can be empty
Tweak grammar (2)

- Tweak `AliasInitializer` grammar
  Resemble `AutoDeclaration`.

- Add `ExpInitializer`

- Merge `Lambda` into `FunctionLiteral`

- Replace `CastQual` to `TypeCtors`
  They are mostly identical.

- Add `SpecialKeyword`
Tweak grammar (3) - Bug fixes

- If `TemplateParameters` does not exist, `Constraint` must not appear.

- `StorageClass` and `Attribute` should be mostly same list
  `Attribute` should contain `pure` and `nothrow`

- Add missing `MemberFunctionAttributes`opt
  TODO: Currently (shared) static constructor cannot have postfix attributes.

- Add missing grammar for opaque class and interface

- Add Anon(Struct|Union)Declaration

- Fix `IfCondition`
Fix grammar bugs around `Declaration`

- `Declaration` should contain `(Aggregate|Enum|Import)Declaration`
  Otherwise we cannot use them in statement scope via `DeclarationStatement`.

- Move out `AliasThis` from `Declaration`
  It cannot appear in statement scope.

- `StorageClass` and `Attribute` should be mostly same list
  Add missing `LinkageAttribute` and `AlignAttribute` in `StorageClass`.
  Add missing `pure`, `nothrow` in the list of `Attribute`.
  Add missing `ref` in both `Attribute` and `StorageClass`.
fix Issue 10206 - User-defined attributes not documented well in language specification
Remove lex part from grammar.dd

It would be better that we leave them in lex.dd.
Update statement.dd

Corrected grammar of sentence by inserting a verb.
Update hash-map.dd

Enhanced readability by moving some text further down and adding an explanation of what is meant.
Update hash-map.dd

Improved readability by putting two similar sentences into one.
Merge pull request #434 from ralphtandetzky/patch-3

Update hash-map.dd
Merge pull request #433 from ralphtandetzky/patch-1

Update statement.dd
Merge pull request #430 from dawgfoto/ignoreMakefile

.gitignore Makefile
Update hash-map.dd

Fixed typo.
Merge pull request #436 from ralphtandetzky/patch-5

Update hash-map.dd