Supported features
- Variables
- Declaration
- Global variables
- Initialization
- Assignment
- Automatic type conversion
- Variable list
- Array variables declaration
- Sized
- Unsized
- Multiple inline variables declaration
- With pointers
- Declaration
- Functions
- Declaration with no definition
- Declaration with definition
- Arguments
- Recursion
- Types
- Pointers
- Arrays
- Multi-dimensional arrays
- Structures
- Declaration with no definition
- Declaration with definition
- Initialization
- Unions
- Enums
- Typedefs
- Statements
-
if
-
for
- With empty body
- With multiple increments
-
do
-
while
-
switch
-
case
-
default
-
break
-
continue
-
return
-
goto
-
- Expressions
- Array indexing
- List initialization
- Structure property access
- Pointer property access
- Function call
- Type casting
- Arithmetic
- Addition (+)
- Subtraction (-)
- Multiplication (*)
- Division (/)
- Modulo (%)
- Prefix increment (++)
- Prefix decrement (--)
- Postfix increment (++)
- Postfix decrement (--)
- Bitwise operations
- Bitwise AND (&)
- Bitwise OR (|)
- Bitwise XOR (^)
- Bitwise NOT (~)
- Bitwise Left Shift (<<)
- Bitwise Right Shift (>>)
- Logical operations
- Logical AND (&&)
- Logical OR (||)
- Logical NOT (!)
- Conditional operations
- Equality (==)
- Inequality (!=)
- Less than (<)
- Less than or equal to (<=)
- Greater than (>)
- Greater than or equal to (>=)
- Assignment operations
- Basic assignment (=)
- Addition assignment (+=)
- Subtraction assignment (-=)
- Multiplication assignment (*=)
- Division assignment (/=)
- Modulo assignment (%=)
- Bitwise AND assignment (&=)
- Bitwise OR assignment (|=)
- Bitwise XOR assignment (^=)
- Bitwise Left Shift assignment (<<=)
- Bitwise Right Shift assignment (>>=)
- Ternary operator (?:)
- Pointers operations
- Pointer dereference (*)
- Pointer addition (+)
- Pointer subtraction (-)
- Prefix pointer increment (++)
- Prefix pointer decrement (--)
- Postfix pointer increment (++)
- Postfix pointer decrement (--)
- Value address (&)
- Misc
- Comments
- Single-line comments
- Multi-line comments
-
sizeof
- Comments
- Preprocessor directives
-
#define A B
-
#define F(x) x
-
#define F(x) x ## 1
-
#undef A
-
#if A
-
#ifdef A
-
#ifndef A
-
#else
-
#elif A
-
#endif
-
#include <stdlib.h>
-
#include "./locallib.h"
-
- Standard Library
stdlib.h
-
atof
-
atoi
-
atol
-
strtod
-
strtol
-
strtoul
-
calloc
-
free
-
malloc
-
realloc
-
abort
-
atexit
-
exit
-
getenv
-
system
-
bsearch
-
qsort
-
abs
-
div
-
labs
-
ldiv
-
rand
-
srand
-
mblen
-
mbstowcs
-
mbtowc
-
wcstombs
-
wctomb
-
assert.h
-
assert
-
string.h
-
memset
-
memchr
-
memcmp
-
memcpy
-
memmove
-
strcat
-
strncat
-
strchr
-
strcmp
-
strncmp
-
strcoll
-
strncpy
-
strcspn
-
strerror
-
strlen
-
strpbrk
-
strrchr
-
strspn
-
strtok
-
strxfrm
-