The Scaly Programming Language


Table of Contents
1 Introduction
Overview
Design Philosophy
Implementation Status
2 Lexical Structure
Overview
Whitespace and Line Breaks
Comments
Literals
Integer Literals
Floating-Point Literals
String Literals
Character Literals
Boolean Literals
Identifiers
3 Grammar
4 Definitions
Overview
Definitions
Structure Definitions
Union Definitions
5 Expressions
Overview
Literals
Boolean Literals
Integer Literals
Hexadecimal Literals
Floating-Point Literals
String Literals
Character Literals
Operations
Prefix Functions
Operator Chains
Parentheses and Grouping
Identifier Shapes
Let Bindings
If Expressions
Match Expressions
Choose Expressions
Basic Choose
Choose with Result
Choose Else Branch
A. Standard Library Reference
Types
define Sum(left: int, right: int)
define Difference(left: int, right: int)
define Product(left: int, right: int)
define Quotient(left: int, right: int)
Operators
operator +(left: int, right: int) returns Sum
operator -(left: int, right: int) returns Difference
operator *(left: int, right: int) returns Product
operator /(left: int, right: int) returns Quotient
operator div(left: int, right: int) returns int
operator mod(left: int, right: int) returns int
operator =(left: int, right: int) returns bool
operator <>(left: int, right: int) returns bool
operator <(left: int, right: int) returns bool
operator >(left: int, right: int) returns bool
operator <=(left: int, right: int) returns bool
operator >=(left: int, right: int) returns bool
Functions
function -(right: int) returns int
function +(right: int) returns int
function abs(x: int) returns int