🇬🇧
Styio Developer Manual
English
English
  • Overview
  • Unka's Diary
    • 2024-2025
  • Dev Env
    • Introduction
    • Preparation
      • Windows
      • Linux
      • MacOS
    • LLVM
    • Docker
      • Pull Image
      • Create Container
      • Versions
      • Others
    • Visual Studio Code
    • MSVC
  • Rules
    • 1. Pay only what you need.
  • Milestones
    • Task Board
    • History
    • IF YOU DON'T KNOW WHAT TO DO
  • Possible Optimizations
    • Parse URLs
  • Dark Magic
    • Enable Hyper-V
  • Thinking
    • Add A New AST
    • Decisions
    • Questions
    • Other Questions
    • Value
    • Outcome
Powered by GitBook
On this page
  • [E1] Code Text Locate
  • [E1] Error Message Format
  • [E1] For Parsing (Parser Error)
  • [E1] For Type Checking (Type Error)
  • [TInfer1] Type Check: Integer, Float
  • [TInfer1] Type Convert: Integer -> Float
  • [I1] Arithmetic Calculation
  • [I1] Custom Type
  • [I1] Constant Initialization
  • [DS1] Array (Fixed Length)
  • [DS1] Struct
  • Heterogeneous: Any
  • [DS1] List
  • Homogeneous
  • Heterogeneous: Any
  • [DS1] String
  • [F1] URLs Are Not Strings
  • [O1] Parse URLs
  1. Milestones

Task Board

Code
Name

I[0-9]+

Implementation

DS[0-9]+

Data Structure

F[0-9]+

Feature

O[0-9]+

Optimization

E[0-9]+

Exception

TSys[0-9]+

Type System

TInfer[0-9]+

Type Inference

Gen[0-9]+

LLVM IR Generation

[E1] Code Text Locate

Done (Method)

Use global position to locate the line number (binary search).

Add extra line seperation.

Lable the current line with offset (position of curr char - start of this line).

Derived Problem

  1. How to design and implement exceptions for a compiler?

[E1] Error Message Format

[E1] For Parsing (Parser Error)

[E1] For Type Checking (Type Error)

[TInfer1] Type Check: Integer, Float

[TInfer1] Type Convert: Integer -> Float

[I1] Arithmetic Calculation

Types:

  1. [ true | false ]

  2. i32, i64

  3. f32, f64

Operators:

  1. Addition ( + )

  2. Subtraction ( - )

  3. Mutiplication ( * )

  4. Division ( / )

  5. Modulo ( % )

[I1] Custom Type

[I1] Constant Initialization

Types:

  1. Integer: i32, i64

  2. Float: f32, f64

  3. Resource Identifier

[DS1] Array (Fixed Length)

[DS1] Struct

Heterogeneous: Any

[DS1] List

Homogeneous

Integer

  1. i32 (type: int / integer)

  2. i64

Float / Double

  1. f32 (type: float)

  2. f64 (type: double)

Heterogeneous: Any

[DS1] String

struct {
  ptr,
  len,
  capacity
}

[F1] URLs Are Not Strings

We need a feasible way to create, modify and operates URLs.

[O1] Parse URLs

Previous1. Pay only what you need.NextHistory

Last updated 1 year ago

Exception Handling in LLVM — LLVM 18.0.0git documentation
Logo
Java's URL.equals() Performs DNS Resolution | Hacker News
Logo