ACC

ACC is the official ACS compiler.

Download

GitHub

Caveats

Local variable names can conflict with global names

#define SOMENAME1 1
int somename2 = 2;
function void somename3(void) {}
function f(int somename1) // ERROR
{
int somename2; // ERROR
int somename3; // ERROR
}

Local variables can't have the same names as any global names (function, constant, variable names). Unlike other compilers, local variable names don't shadow the global names, but trigger a compiler error.

(void) is mandatory

function void f(void) {} // OK
function void g() {} // ERROR

For some reason, writing (void) for empty argument list is mandatory, unlike other compilers.

No "fixed" type

There is no type called fixed in ACC. Only int, bool and str.