Skip to content

Latest commit

 

History

History
134 lines (130 loc) · 3.28 KB

File metadata and controls

134 lines (130 loc) · 3.28 KB

Preface

Milestones for Glint compilers to hit, basically.

Support Levels

SUPPORT LEVEL 0 (ZERO)
Unsupported
SUPPORT LEVEL 1 (ONE)
Acknowledgment, Lexical Analysis (Tokens!)
SUPPORT LEVEL 2 (TWO)
Understanding, Syntactic Analysis (AST Generated)
SUPPORT LEVEL 3 (THREE)
Checking, Semantic Analysis (Rules and Types!)
SUPPORT LEVEL 4 (FOUR)
Code Generation

Qualifications

Self-Evaluating Expressions

Integers

Decimal, no prefix

Hexadecimal, 0x prefix

Binary, 0b prefix

Octal, 0o prefix

Booleans

true

false

Character Literal

String Literal

Inescapable Strings, ' delimiter

Escapable Strings, " delimiter

Escape \\ as \
Escape \" as "
Escape \' as '
Escape \n as newline
Escape \r as carriage return
Escape \t as horizontal tab
Escape \v as vertical tab
Escape \f as new page
Escape \b as backspace
Escape \a as audible bell
Escape \0 as NUL byte
Escape \x{00} as hexadecimal value
Escape \u{0000} as Unicode codepoint U+{0000}

Compound Literal with !{

Basic Expressions

Block

Parentheses

Return

Explicit Lambda

sizeof

alignof

Declarations

Type Declared

Uninitialized, x : <type>

Initialized, x : <type> = <value>

export

external

Type Inferred, x :: <value>

Type Declaration

Struct

Union

Sum

Cereal

Arbitrary Integer

Assignment

Basic, To Variable of Type from Value of Same Type

To Sum Type from one of Sum’s Part Types

To Sum Type from Sum Type

To Supplanted Member

To Multiple Layer Supplanted Member

To Array from Array

To Array from Dynamic Array

To Dynamic Array from Array

To Dynamic Array from Dynamic Array

Operators

Unary

Minus, -

Plus, +

Dereference, @

Addressof, &

Bitwise Negation, ~

has

MinusMinus, --

PlusPlus, ++

Logical Negation, not and !

Binary

Plus, +

Minus, -

Multiply, *

Divide, /

Modulo/Remainder, %

Logical Conjunction, and

Logical Disjunction, or

Comparison

Less Than, <
Greater Than, >
Less Than or Equal to, <=
Greater Than or Equal to, >=
Not Equal, !=
Equal, ===

Subscript, [

Member Access, .

Basic
To Sum Type
To Supplanted Member

Bitwise

Shift Left, <<
Shift Right, >>
Conjunction, &
Disjunction, |
Exclusive Disjunction, ^

Assignment

Basic, :=
Addition, +=
Subtraction, -=
Multiplication, *=
Division, /=
Modulo/Remainder, %=
Bitwise Conjunction, &=
Bitwise Disjunction, |=
Bitwise Exclusive Disjunction, ^=
Bitwise Negation, ~=

Type-Inferrred Declaration and Assignment, ::

Append Element to Dynamic Array

Prepend Element to Dynamic Array

Insert Element to Dynamic Array

Control Flow

if/else

while

cfor

match on Sum Type

Lexer Macros

Basic Macros

Macros w/ Arguments

Expression Arguments

Eval-once Expression Arguments

gensym

Error on Unhygienic Expansion