The Aburiscript compiler provides robust support for the standard C language, aiming for compliance with C99/C11 while supporting several common GNU/Clang/Apple extensions.
- Control Flow:
if,else,while,do-while,for,switch,case,break,continue,goto, andreturn. - Data Types:
- Standard integers (
char,short,int,long,long long) withsigned/unsignedmodifiers. - Floating-point types (
float,double). - Pointers, multidimensional arrays, and function pointers.
- Standard integers (
- Complex Types:
structanduniondeclarations, including bitfields.enumdeclarations.
- Functions: Variadic functions (
...) utilizingstdarg.h/__builtin_va_*.
- Compound Literals: e.g.,
(struct Point){1, 2}. - Designated Initializers: e.g.,
struct Config c = { .timeout = 10, .url = "localhost" };. - Variable Length Arrays (VLAs): Arrays whose size is determined at runtime.
- Complex Numbers:
_Complextype and__real__/__imag__extraction.
_Static_assertfor compile-time assertions._Thread_localfor thread-local storage duration._Alignasfor memory alignment specifications.
- Apple Blocks: Support for closures using the
^syntax and the__blockstorage specifier. - Attributes: GNU-style
__attribute__((...))for features likepackedandalways_inline. - Builtins: Native compiler built-ins such as
__builtin_offsetofand__builtin_types_compatible_p. - Inline Assembly: Support for inline
asm()statements with constraints.