roussillon-type-system

Crates.ioroussillon-type-system
lib.rsroussillon-type-system
version0.3.8
sourcesrc
created_at2024-06-09 20:31:07.708502
updated_at2024-09-06 21:39:24.872853
descriptionA type system for a programming language
homepage
repository
max_upload_size
id1266611
size60,468
(Trehinos)

documentation

README

Roussillon : Type System

This crate is an incomplete library with a clear goal of helping create a programming language.

This crate provides some structs and traits to manage types and typed values.

This crate goal IS NOT to manage memory allocation.

Type system

Types module

This module offers a way to mark some data with a type.

Primitive types

These are the necessary types to construct any other meaningful type. Usually, these are "machine types" :

  • Boolean
  • Byte
  • Bytes
  • Float
  • Integer
  • Reference
  • List

The "tuple" type

  • Tuple

Algebraic Data Types

  • SumType
  • ProductType

Custom types (ADT with an Identifier)

  • Enumeration (values are called unions)
  • Structure

Functional

  • FunctionType

Value module

The value module provides ways to create values from all types in the types module.

The provided constructible values are :

  • Boolean
  • Bytes (arbitrarily size)
    • Byte (8 bits)
    • Word (16)
    • Quad (32)
    • Long (64)
    • Wide (128)
  • Integer
  • Float
  • Reference
  • List
  • Sequence (Tuple values)
  • Sum (SumpType values)
  • Product (ProductType values)
  • Union (Enumeration values)
  • Record (Structure values)
  • FunctionBody

License

(c) 2024 Sébastien Geldreich

This work is published under the MIT License.

Commit count: 0

cargo fmt