/pascal2c

It's like Typescript, but converts Pascal a C. (Challenge)

Primary LanguageCGNU General Public License v3.0GPL-3.0

pascal2c is at the moment an Pascal AST interpreter currently in
development. The name is misleading because it may give the
impression that it converts Pascal code to C code, and this is the
intention, but at the moment I'll only work in the AST library
to decode and understand Pascal code, and maybe later I'll work in
a tool that spits the equivalent C code.

How to compile this
===================

Install CMake. Then:

		cmake -B build
		make -C build


What can I do with this?
========================

Currently nothing. Come back when the parser is able to generate
a tree for an entire Pascal source code file.


Work in progress
================

Current tasks (non-finite list):

- [x] Write a scanner that can convert an input into Pascal tokens
- [!] Write a parser that converts Pascal tokens into the expressions
- [ ] ??????

An interesting thing to test later is that the expression parser is
properly written by checking if I can convert back every expression into
the equivalent Pascal code.

Parts of the compiler grammar that are implemented:

- [x] Identifier
- [x] Variable
- [x] Unsigned number
- [x] Expression
- [x] Simple expression
- [x] Term
- [x] Factor
- [x] Unsigned constant
- [x] Parameter list
- [x] Unsigned integer
- [x] Constant
- [x] Simple type
- [x] Field list
- [x] Type
- [x] Statement
- [x] Block
- [x] Program


Bugs:

* The scanner should accept length metadata when printing variables, such as value:5:2.
  TODO: Where the f**k is this documented in FPC so that I can see how they implement this on their AST.