Coder Social home page Coder Social logo

yagipy / althea Goto Github PK

View Code? Open in Web Editor NEW
21.0 21.0 1.0 189 KB

Althea is a programming language providing reference counting with ownership analysis.

License: Mozilla Public License 2.0

Dockerfile 0.92% Makefile 0.12% Rust 96.66% C 0.48% HCL 1.81% Shell 0.02%

althea's Introduction

althea's People

Contributors

linjiansi avatar yagipy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

linjiansi

althea's Issues

Enable issue form template

Overview

  • 良いタイミングで戻す
  • #16

Requirements

  • issueを作成する際に指定したフォームが表示されること

Compiling to Object Code

Overview

  • Compiling to Object Code

Requirements

  • Need to compile to object code
  • Compilation results need to be output to a file named out

Implement for

Overview

  • for文を実装する

Requirements

  • for文が実行できること
// 例
func main() u64 {
    for i = 0; i <= 5; i++ {
        println("Hello, world.")
    }
    0
}

Use cache in GitHub Actions

Overview

  • GitHub Actionsでキャッシュを使う

Requirements

  • GitHub Actionsでキャッシュが効いていること

Fix println

Overview

  • 改行されるようにする
  • 文字列リテラル以外も対応する
  • 同スコープ内で複数回printlnすると想定外の挙動になる部分を修正する

Requirements

func main() u64 {
    let a = 10
    println("Hello, world1")
    println("Hello, world2")
    println(a)
    println(10 + 2 * 3)
    0
}

// Hello, world1
// Hello, world2
// 10
// 16

Support Newline

Overview

  • \nがエスケープされてしまうのを解消する

Current behavior

下記コードを実行すると

func main() i32 {
    println("Hello, world\nThis is NewLine")
    0
}

下記が出力される(改行されない)

Hello, world\nThis is NewLine%

Expected behavior

上記と同じコードを実行すると、下記が出力される(改行される)

Hello, world
This is NewLine%

Additional Information

下記コードのように直接改行すると想定される挙動になるので、これを参考にしつつ進める

func main() i32 {
    println("Hello, world
This is NewLine")
    0
}
Hello, world
This is NewLine%

Lexerの段階で(--debugをつけると確認できる)、すでにエスケープされている可能性が高い

Ref

[WIP] Roadmap for v1

List of features/changes we want to finish before releasing an official v1 version:

Compiler

Syntax

  • Support if/else
  • Support for
  • Support let
  • Continue processing after match, if, etc.

Library

Test

Memory management

  • Support Garbage Collection

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.