The ARF programming language
This repository has been archived on 2024-02-27. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2024-02-27 19:12:45 +00:00
analyzer wip 2022-10-25 11:26:17 -04:00
arfc
assets
examples
file
infoerr
lexer
parser MMM im so full from phrase analysis 2022-10-25 01:33:07 -04:00
testCommon
tests Add non-basic types to type section test case 2022-10-18 15:00:42 -04:00
translator
types
.editorconfig
.gitignore
go.mod
LICENSE
README.md Change new repo link in README 2024-02-27 19:12:45 +00:00

ARF

This repository is no longer being developed. The ARF language has since gone through several revisions and has been given a different name (FSPL), and the new version can be found here.

README of this repository:

The ARF programming language.

This is still under development and does not compile things yet. Once complete, it will serve as a temporary compiler that will be used to write a new one using the language itself.

The old repository can be found here.

ARF is a low level language with a focus on organization, modularization, and code clarity. Behind it's avant-garde syntax, its basically just a more refined version of C.

A directory of ARF files is called a module, and modules will compile to object files (one per module) using C as an intermediate language (maybe LLVM IR in the future).

Be sure to visit the wiki for more information.

Planned Features

  • Type definition through inheritence
  • Struct member functions
  • Go-style interfaces
  • Generics
  • A standard library (that can be dynamically linked)

Checklist

  • File reader
  • File -> tokens
  • Tokens -> syntax tree
  • Syntax tree -> semantic tree
  • Semantic tree -> C -> object file
  • Figure out HOW to implement generics
  • Create a standard library

Compiler Progress

Progress heatmap
  • Yellow: needs to be completed for the MVP
  • Lime: ongoing progress in this area
  • Green: Already completed