Skip to content

Releases: vorotynsky/Kroha

Kroha v1.3

20 Nov 16:45
Compare
Choose a tag to compare

Better syntax

  • Multiple parser error messages.
  • Optional semicolons.
  • Optional braces and parenthesis.
  • Optional program declaration (program {}). It can be an omitted, single line or with braces.

Kroha v1.2

17 Oct 11:42
v1.2
68d44fe
Compare
Choose a tag to compare

Growing tree

Syntax tree

  • Applied some ideas from the "Tree that grows".

Errors

  • New format of error messages, added source position.
  • Fix bug: lose same errors on one line.

Kroha v1.1

07 Sep 21:17
09b6c68
Compare
Choose a tag to compare

Features

Backend:

  • Extract common things to Kroha.Backend.Common.
  • Type system config for backends. A backend can define allowed registers, types, sizes and allowed casts.

Error handling:

  • User friendly errors.
  • Same operations can throw many errors.
  • Exit status code

Fixes

  • Global scope behaviour. Now declarations available before definitions.

Kroha

02 Sep 10:58
v1.0
e48e668
Compare
Choose a tag to compare

Kroha

Kroha is a new language.

Changed syntax for loops and other elements.
Assembly output is formated (with indents).
Fixed bug with call stack (add sp, X).

Inline registers

08 Jul 15:11
v0.4
ec4a7c2
Compare
Choose a tag to compare

Inline registers

Added inline registers. Now you can use registers like %ax.

Fixed stack alignment, after function call (add sp, size).
Global variables pushed as pointers, but counted as variables.

Global scope

07 Jun 21:57
v0.3
ecaa904
Compare
Choose a tag to compare

Globals

Language

Added program keyword. All code should be inside program { }. It allows for creating multiple frames in the program.

Support for ip, sp, bp, si, di, cs, ds, ss, es, fs registers.

Added global variables and constants. Global variables are placed in .data, constants are in .rodata.

Added fake variables and frames. A fake variable or a label added their name into the global scope but creates nothing in assembly code.

Backend

Downgraded NASM backend to 16-bit.

Fixes

Fixed bug with variables started from do.

Errors

27 May 18:35
f4e65cc
Compare
Choose a tag to compare

Created error handling with Eiter
The parser was remade with parsec

It works!

20 May 20:36
v0.1
9a78d71
Compare
Choose a tag to compare

The minimal valuable compiler generates NASM.