-
Notifications
You must be signed in to change notification settings - Fork 36
Language Spec Outline
This document is an outline for the HLSL language specification being written over here. This page only exists to facilitate organizing the effort to write the spec and help people contributing to the spec have a full idea of the scope and organization. The spec itself is built after each change and the latest built artifacts can be found on the GitHub.IO page in HTML and PDF.
The introduction describes the scope of the document and provides background context including references, definitions of terms, and the basis of the program execution and memory models.
This chapter should fully describe the basic lexical constructs that form a program. And the fundamental basis for how a compiler processes source files.
Missing sections:
- Identifiers
- Keywords
- Operators and punctuators
This chapter defines basic terms and mechanisms that the language builds from. These concepts should cover foundational concepts like the definitions, names, variables and scope.
This section will also include a definition of the memory and execution models for the language.
Missing sections:
- Scope
- Name Lookup
- Memory and object model
- Execution Model
This chapter describes the standard set of conversions for how an object is converted from one type to another.
- Primary Expressions - In Progress
- Postfix Expressions - In Progress
- Unary Expressions
- Explicit Type Conversion
- Arithmetic and Logical Operators
- Addition and Subtraction Operators
- Multiplication and Division Operators
- Shift Operators
- Equality and Relational Operators
- Bitwise Operators
- Conditional Operator
- Assignment and Compound Assignment
- Comma Operator
- Constant Expressions
- Labeled Statements - Needs Revisiting
- Expression Statement
- Compound Statement
- Selection Statement
- Iteration Statement
- Declaration Statement
- Statement Attributes - In Progress
C++ Spec has a section [stmt.ambig]
which we need to review as well.