-
Notifications
You must be signed in to change notification settings - Fork 1
Introduction
This Wiki should help you learn the things you need to learn about the project, help you navigate, and also provide further help when you need it. But first, let's start with the introduction!
First, before we discuss anything, we need to talk about the beginning. During the time of 2024-2025, long before I, the author,
first knew about GitHub, the creator of the project with the username: johnryzon123 started the project Ry1; it's a
C++-based language, and it had evolved to Ry2, but he realized that he was using too much AI and many heavy tools, which makes
the project unoptimized. So he made CRy; now it's a C-based language, which I later heard about and started committing,
and after some time of talking, we talked about a new language. And on the 22nd of July of 2026, we started
Ciya is designed for speed and is a successor to the past CRy; also, the name Ciya came from the Tagalog word Siya, meaning
she or he. Also, after that, we created a website for Ciya here: Click me using simple HTML and CSS.
So, you may first see the project and think you can't face it; it's also me when I first saw it, but
don't need to panic, because firstly, you can see the folders; src is where the main code sits
and if you want to commit to the main code then go there. Next is the include folder which is where the
header sits. If you want to change something in the header files, go there. Inside the src folder, there is a subfolder named utils which has... you guessed it,
it holds utility source code such as the REPL and getline. You may also see lexer/, which is where the lexer sits. And
going back to the include folder, the utils is for the header of the utilities, the lexer is the lexer header, but
what's misc? It actually stands for miscellaneous (meaning others or etc.), like I/O errors, compiler errors, and the exit success file.
Note: The main entry point is in src/main.c
If you know the location of the files, let's understand each file. Firstly, we have the lexer; the lexer turns the code from human-readable to machine-coded, or it'll turn into smaller parts like identifiers, operators, etc., and we now have a basic lexer. And also, we made the repl, which means It'll get the command and run it; if the input doesn't equal a known command, it'll be rejected.
##Where's the code?
Firstly, if you're looking for the code, then you may see two branches: main and development. And the main branch is the one that's
tested and more stable, and it's where the default one is, but it's old, and the lexer is outdated. But the development one has the
newest feature, but it could have hidden bugs or be easy to seg fault it. You should help us with the development branch
even though it's a temporary branch and will be deleted after we finish the whole lexer and move to the parser.
So, if you want the most stable but outdated one, or just help us with the README, then the main is for you, else, if you can help us with the development, contribute to the developement.
I hope the guide helps, but if you have any problems or have anything to ask, I'll reply in a few hours to a few days later. Hope you have a good day =).
Main author of this wiki, Nguyễn Phước Thành Lâm
Copyright (C) 2026 Johnryzon Z. Abejero, Nguyễn Phước Thành Lâm