Getting Started
Tutorial
Principles
Coding Conventions
Reference
Grammar
Items
Annotations
Types
Patterns
Expressions
Statements
Modules
Packages
Sockets
Repository
Discord
The Virdant Hardware Language
Reference
View page source
Reference
This is the Virdant language reference.
Grammar
Tokenization
Whitespace
Comments
Line Comments
Docstrings
Package Docstrings
Identifiers
Keywords
Literals
Dontcare
Hole Expressions
Items
Module Definitions
Struct Type Definitions
Union Type Definitions
Enum Type Definitions
Builtin Type Definitions
Socket Definitions
Annotations
Syntax
Where Annotations Appear
Types
Built-in Types
Struct Types
Union Types
Enum Types
Generics and Parameterized Types
Type Expressions
Kind System
Patterns
Enum Patterns
Union Patterns
Valid Patterns
Literal Patterns
Exhaustiveness
The else Arm
Patterns in Match Statements
Expressions
Grammar
Precedence and Associativity
Literals
Paths
Struct Construction
Field Projection
Indexing and Slicing
Union Construction
When Expressions
Match Expressions
Function Calls
Unary Operators
Binary Operators
Type Ascriptions
Dontcare
The ? Expression
Statements
Component Declarations
Driver Statements
Instance Declarations
Socket Instance Declarations
Conditional Statements
Match Statements
The Unused Statement
on Clause
it Block
Modules
Module Body
Ports
Wires
Registers
Assignments
Module Instances
Socket Instances
Match Statements
Unused Declarations
The it Identifier
On Clause
Driver Blocks
Packages
Package Structure
Import Statements
Fully-Qualified Names
Exporting Declarations
Package Dependency
Package-Level Documentation
Sockets
Socket Definitions
Socket Instances
Bidirectional Connections
Accessing Socket Ports
Sockets as Interfaces