Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add markdown specification #9

Merged
merged 2 commits into from
Feb 1, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions spec/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
THE FOLLOWING NOTICE GOVERNS THE C# SPEC
=====

(c) Copyright 1999-2017 Microsoft Corporation. All rights reserved.
Microsoft, Windows, Visual Basic, Visual C#, and Visual C++ are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A. and/or other countries/regions.
Other product and company names mentioned herein may be the trademarks of their respective owners.
172 changes: 172 additions & 0 deletions spec/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
C# Language Specification
===========================
__Version 6__

*Microsoft has not yet released an official copy of the C#6 spec. This is an unofficial draft. __When Microsoft does release its official copy, before end 2016 at the latest, then this current repository will be deleted__. That's because I wouldn't want to have two copies of the C#6 spec floating around.*

<!--
(This document is also available for download: [csharp.pdf](CSharp%20Language%20Specification.pdf?raw=true) and [csharp.docx](CSharp%20Language%20Specification.docx?raw=true))
-->

* [Introduction](introduction.md)
* [Hello world](introduction.md#hello-world)
* [Program structure](introduction.md#program-structure)
* [Types and variables](introduction.md#types-and-variables)
* [Expressions](introduction.md#expressions)
* [Statements](introduction.md#statements)
* [Classes and objects](introduction.md#classes-and-objects)
* [Lexical structure](lexical-structure.md)
* [Programs](lexical-structure.md#programs)
* [Grammars](lexical-structure.md#grammars)
* [Lexical analysis](lexical-structure.md#lexical-analysis)
* [Tokens](lexical-structure.md#tokens)
* [Pre-processing directives](lexical-structure.md#pre-processing-directives)
* [Basic concepts](basic-concepts.md)
* [Application Startup](basic-concepts.md#application-startup)
* [Application termination](basic-concepts.md#application-termination)
* [Declarations](basic-concepts.md#declarations)
* [Members](basic-concepts.md#members)
* [Member access](basic-concepts.md#member-access)
* [Signatures and overloading](basic-concepts.md#signatures-and-overloading)
* [Scopes](basic-concepts.md#scopes)
* [Namespace and type names](basic-concepts.md#namespace-and-type-names)
* [Automatic memory management](basic-concepts.md#automatic-memory-management)
* [Execution order](basic-concepts.md#execution-order)
* [Types](types.md)
* [Value types](types.md#value-types)
* [Reference types](types.md#reference-types)
* [Boxing and unboxing](types.md#boxing-and-uboxing)
* [Constructed types](types.md#constructed-types)
* [Type parameters](types.md#type-parameters)
* [Expression tree types](types.md#expression-tree-types)
* [The dynamic type](types.md#the-dynamic-type)
* [Variables](variables.md)
* [Variable categories](variables.md#variable-categories)
* [Default values](variables.md#default-values)
* [Definite assignment](variables.md#definite-assignment)
* [Variable references](variables.md#variable-references)
* [Atomicity of variable references](variables.md#atomicity-of-variable-references)
* [Conversions](conversions.md)
* [Implicit conversions](conversions.md#implicit-conversions)
* [Explicit conversions](conversions.md#explicit-conversions)
* [Standard conversions](conversions.md#standard-conversions)
* [User-defined conversions](conversions.md#user-defined-conversions)
* [Anonymous function conversions](conversions.md#anonymous-function-conversions)
* [Method group conversions](conversions.md#method-group-conversions)
* [Expressions](expressions.md)
* [Expression classifications](expressions.md#expression-classification)
* [Static and Dynamic Binding](expressions.md#static-and-dynamic-binding)
* [Operators](expressions.md#operators)
* [Member lookup](expressions.md#member-lookup)
* [Function members](expressions.md#function-members)
* [Primary expressions](expressions.md#primary-expressions)
* [Unary operators](expressions.md#unary-operators)
* [Arithmetic operators](expressions.md#arithmetic-operators)
* [Shift operators](expressions.md#shift-operators)
* [Relational and type-testing operators](expressions.md#relational-and-type-testing-operators)
* [Logical operators](expressions.md#logical-operators)
* [Conditional logical operators](expressions.md#conditional-logical-operators)
* [The null coalescing operator](expressions.md#the-null-coalescing-operator)
* [Conditional operator](expressions.md#conditional-operator)
* [Anonymous function expressions](expressions.md#anonymous-function-expressions)
* [Query expressions](expressions.md#query-expressions)
* [Assignment operators](expressions.md#assignment-operators)
* [Expression](expressions.md#expression)
* [Constant expressions](expressions.md#constant-expressions)
* [Boolean expressions](expressions.md#boolean-expressions)
* [Statements](statements.md)
* [End points and reachability](statements.md#end-points-and-reachability)
* [Blocks](statements.md#blocks)
* [The empty statement](statements.md#the-empty-statement)
* [Labeled statements](statements.md#labeled-statements)
* [Declaration statements](statements.md#declaration-statements)
* [Expression statements](statements.md#expression-statements)
* [Selection statements](statements.md#selection-statements)
* [Iteration statements](statements.md#iteration-statements)
* [Jump statements](statements.md#jump-statements)
* [The try statement](statements.md#the-try-statement)
* [The checked and unchecked statements](statements.md#the-checked-and-unchecked-statements)
* [The lock statement](statements.md#the-lock-statement)
* [The using statement](statements.md#the-using-statement)
* [The yield statement](statements.md#the-yield-statement)
* [Namespaces](namespaces.md)
* [Compilation units](namespaces.md#compilation-units)
* [Namespace declarations](namespaces.md#namespace-declarations)
* [Extern aliases](namespaces.md#extern-aliases)
* [Using directives](namespaces.md#using-directives)
* [Namespace members](namespaces.md#namespace-members)
* [Type declarations](namespaces.md#type-declarations)
* [Namespace alias qualifiers](namespaces.md#namespace-alias-qualifiers)
* [Classes](classes.md)
* [Class declarations](classes.md#class-declarations)
* [Partial types](classes.md#partial-types)
* [Class members](classes.md#class-members)
* [Constants](classes.md#constants)
* [Fields](classes.md#fields)
* [Methods](classes.md#methods)
* [Properties](classes.md#properties)
* [Events](classes.md#events)
* [Indexers](classes.md#indexers)
* [Operators](classes.md#operators)
* [Instance constructors](classes.md#instance-constructors)
* [Static constructors](classes.md#static-constructors)
* [Destructors](classes.md#destructors)
* [Iterators](classes.md#iterators)
* [Structs](structs.md)
* [Struct declarations](structs.md#struct-declarations)
* [Struct members](structs.md#struct-members)
* [Class and struct differences](structs.md#class-and-struct-differences)
* [Struct examples](structs.md#struct-examples)
* [Arrays](arrays.md)
* [Array types](arrays.md#array-types)
* [Array creation](arrays.md#array-creation)
* [Array element access](arrays.md#array-element-access)
* [Array members](arrays.md#array-members)
* [Array covariance](arrays.md#array-covariance)
* [Array initializers](arrays.md#array-initializers)
* [Interfaces](interfaces.md)
* [Interface declarations](interfaces.md#interface-declarations)
* [Interface members](interfaces.md#interface-members)
* [Fully qualified interface member names](interfaces.md#fully-qualified-interface-member-names)
* [Interface implementations](interfaces.md#interface-implementations)
* [Enums](enums.md)
* [Enum declarations](enums.md#enum-declarations)
* [Enum modifiers](enums.md#enum-modifiers)
* [Enum members](enums.md#enum-members)
* [The System.Enum type](enums.md#the-systemenum-type)
* [Enum values and operations](enums.md#enum-values-and-operations)
* [Delegates](delegates.md)
* [Delegate declarations](delegates.md#delegate-declarations)
* [Delegate compatibility](delegates.md#delegate-compatibility)
* [Delegate instantiation](delegates.md#delegate-instantiation)
* [Delegate invocation](delegates.md#delegate-invocation)
* [Exceptions](exceptions.md)
* [Causes of exceptions](exceptions.md#causes-of-exceptions)
* [The System.Exception class](exceptions.md#the-systemexception-class)
* [How exceptions are handled](exceptions.md#how-exceptions-are-handled)
* [Common Exception Classes](exceptions.md#common-exception-classes)
* [Attributes](attributes.md)
* [Attribute classes](attributes.md#attribute-classes)
* [Attribute specification](attributes.md#attribute-specification)
* [Attribute instances](attributes.md#attribute-instances)
* [Reserved attributes](attributes.md#reserved-attributes)
* [Attributes for Interoperation](attributes.md#attributes-for-interoperation)
* [Unsafe code](unsafe-code.md)
* [Unsafe contexts](unsafe-code.md#unsafe-contexts-)
* [Pointer types](unsafe-code.md#pointer-types)
* [Fixed and moveable variables](unsafe-code.md#fixed-and-moveable-variables)
* [Pointer conversions](unsafe-code.md#pointer-conversions)
* [Pointers in expressions](unsafe-code.md#pointers-in-expressions)
* [The fixed statement](unsafe-code.md#the-fixed-statement)
* [Fixed size buffers](unsafe-code.md#fixed-size-buffers)
* [Stack allocation](unsafe-code.md#stack-allocation)
* [Dynamic memory allocation](unsafe-code.md#dynamic-memory-allocation)
* [Documentation comments](documentation-comments.md)
* [Introduction](documentation-comments.md#introduction)
* [Recommended tags](documentation-comments.md#recommended-tags)
* [Processing the documentation file](documentation-comments.md#processing-the-documentation-file)
* [An example](documentation-comments.md#an-example)

<!--
* Grammar: [csharp.html](http://ljw1004.github.io/csharpspec/csharp.html). Or download in ANTLR format: [csharp.g4](csharp.g4?raw=true).
-->
Loading