gazprea Logo
  • Gazprea

Language Specification

  • 1. Keywords
  • 2. Identifiers
  • 3. Namespaces
  • 4. Comments
  • 5. Declarations
    • 5.1. Special cases
  • 6. Constant Expressions
    • 6.1. Rules for Constant Expressions
    • 6.2. Constant Expressions with Aggregate Types
  • 7. Type Qualifiers
    • 7.1. Const
    • 7.2. Var
    • 7.3. Type Inference Using Qualifiers
  • 8. Types
    • 8.1. Boolean
      • 8.1.1. Declaration
      • 8.1.2. Literals
      • 8.1.3. Operations
      • 8.1.4. Type Casting and Implicit Casts
    • 8.2. Character
      • 8.2.1. Declaration
      • 8.2.2. Literals and Escape Sequences
      • 8.2.3. Operations
      • 8.2.4. Type Casting and Implicit Casts
    • 8.3. Integer
      • 8.3.1. Declaration
      • 8.3.2. Literals
      • 8.3.3. Operations
      • 8.3.4. Type Casting and Implicit Casts
    • 8.4. Real
      • 8.4.1. Declaration
      • 8.4.2. Literals
      • 8.4.3. Operations
      • 8.4.4. Type Casting and Implicit Casts
    • 8.5. Tuples
      • 8.5.1. Declaration
      • 8.5.2. Access
      • 8.5.3. Literals
      • 8.5.4. Operations
      • 8.5.5. Unpacking
      • 8.5.6. Type Casting and Implicit Casts
    • 8.6. Structs
      • 8.6.1. Declaration
      • 8.6.2. Type Aliasing
      • 8.6.3. Access
      • 8.6.4. Literals
      • 8.6.5. Operations
      • 8.6.6. Type Casting and Implicit Casts
      • 8.6.7. Struct Namespacing and Type Identity
    • 8.7. Arrays
      • 8.7.1. Sizing
      • 8.7.2. Declaration
      • 8.7.3. Construction
      • 8.7.4. Arrays Versus Vectors
      • 8.7.5. Operations
      • 8.7.6. Array Slices
      • 8.7.7. Type Casting and Implicit Casts
    • 8.8. Vectors
      • 8.8.1. Declaration
      • 8.8.2. Operations
      • 8.8.3. Method Calls
    • 8.9. String
      • 8.9.1. Declaration
      • 8.9.2. Literals
      • 8.9.3. Operations
      • 8.9.4. Type Casting and Implicit Casts
    • 8.10. Matrices
      • 8.10.1. Declaration
      • 8.10.2. Construction
      • 8.10.3. Operations
      • 8.10.4. Type Casting and Implicit Casts
    • 8.11. Storable Types, Nesting, and Recursion
  • 9. Type Inference
  • 10. Type Casting
    • 10.1. Scalar to Scalar
    • 10.2. Scalar to Array
    • 10.3. Array to Array
    • 10.4. Multi-dimensional Arrays
    • 10.5. Array and Vector
    • 10.6. Tuple to Tuple
    • 10.7. Structs
  • 11. Implicit Casts
    • 11.1. Scalars
    • 11.2. Scalar to Array
    • 11.3. Tuple to Tuple
    • 11.4. Array to/from Vector
    • 11.5. Array to Array
    • 11.6. Character Array to/from String
  • 12. Typealias
  • 13. Streams
    • 13.1. Output Stream
      • 13.1.1. Output Format
    • 13.2. Input Stream
      • 13.2.1. Input Format
      • 13.2.2. Error Handling
  • 14. Expressions
    • 14.1. Table of Operator Precedence
    • 14.2. Generators
    • 14.3. Domain Expressions
  • 15. Statements
    • 15.1. Assignment Statements
    • 15.2. Block Statements
    • 15.3. If/Else Statements
    • 15.4. Loop
      • 15.4.1. Infinite Loop
      • 15.4.2. Predicated Loop
      • 15.4.3. Iterator Loop
    • 15.5. Break
    • 15.6. Continue
    • 15.7. Return
    • 15.8. Stream Statements
  • 16. Functions
    • 16.1. Syntax
    • 16.2. Prototypes
    • 16.3. Composite Type Parameters
    • 16.4. Function Namespacing
  • 17. Procedures
    • 17.1. Syntax
    • 17.2. Prototypes
    • 17.3. Main
    • 17.4. Implicit Casts of Arguments
    • 17.5. Aliasing
    • 17.6. Composite Type Parameters
    • 17.7. Mutating Array and Vector Parameters
    • 17.8. Procedure Namespacing
  • 18. Globals
    • 18.1. Variable Declarations
  • 19. Built-in Functions, Procedures and Methods
    • 19.1. Signatures
    • 19.2. Vector and String Methods
    • 19.3. Length
    • 19.4. Rows and Columns
    • 19.5. Reverse
    • 19.6. Format
    • 19.7. Stream State
  • 20. Flags
    • 20.1. The -O2 Flag
    • 20.2. Testing Policy
  • 21. Errors
    • 21.1. Gazprea Errors
  • 22. Glossary
    • 22.1. Terms
    • 22.2. Authoritative sources
    • 22.3. On writing glossaries

Implementation

  • Architecture
  • Backend
    • Memory Management
    • Runtime Libraries
  • Compiler Implementation — Part 1
  • Compiler Implementation — Part 2
  • Errors (Implementation)
    • Syntax Errors
    • Compile-time Errors
    • Run-time Errors
    • More Examples
    • How to Write an Error Test Case
    • How to make the Tester Happy
  • Project Management
    • Best practices
    • Marks
    • Enforcing them
gazprea
  • Search


© Copyright 2025, cmput415.

Built with Sphinx using a theme provided by Read the Docs.