summaryrefslogtreecommitdiffstats
path: root/libacc/FEATURES
diff options
context:
space:
mode:
Diffstat (limited to 'libacc/FEATURES')
-rw-r--r--libacc/FEATURES89
1 files changed, 0 insertions, 89 deletions
diff --git a/libacc/FEATURES b/libacc/FEATURES
deleted file mode 100644
index 20f9d98..0000000
--- a/libacc/FEATURES
+++ /dev/null
@@ -1,89 +0,0 @@
-
-Supported C language subset:
-
- - Expressions:
-
- * binary operators, by decreasing priority order: '*' '/' '%',
- '+' '-', '>>' '<<', '<' '<=' '>' '>=', '==' '!=', '&',
- '^', '|', '=', '&&', '||'.
-
- * '&&' and '||' have the same semantics as C : left to right
- evaluation and early exit.
-
- * Parenthesis are supported.
-
- * Comma operator is supported.
-
- * Trinary operator (?:) is not supported.
-
- * Unary operators: '&', '*' (pointer indirection), '-'
- (negation), '+', '!', '~', '++' and '--'.
-
- * Pointer indirection ('*') is supported.
-
- * Square brackets are supported.
-
- * '=' and <op>= are supported.
-
- * Function calls are supported with standard Linux calling
- convention. Function pointers are supported.
- Functions can be used before being declared.
-
- - sizeof() is not supported.
-
- - Types:
- + int, short, char, float, double
- + pointers
- + variables can be initialized in declarations.
- + Only ANSI-style function declarations are supported.
- - "..." is not supported.
- - short is supported
- - const is not supported
- - signed and unsigned are not supported.
- - arrays are supported
- - long doubles are not supported
- - structs and unions are supported
- - typedef is supported
- - explicit storage class specifiers are not supported: register, auto, static, extern
-
- - Unknown functions and variables are bound at compile time by calling
- back to the caller. For the 'acc' command-line tool unknown functions
- and variables are looked up using dlsym, to allow using many libc
- functions and variables.
-
- - Instructions: blocks ('{' '}') are supported as in C. 'if' and
- 'else' can be used for tests. The 'while' and 'for' C constructs
- are supported for loops. 'break' can be used to exit
- loops. 'return' is used for the return value of a function.
-
- - switch / case is not supported.
- - goto and labels are not supported.
- - continue is not supported.
-
- - Identifiers are parsed the same way as C. Local variables are
- handled, but there is no local name space (not a problem if
- different names are used for local and global variables).
-
- - Numbers can be entered in decimal, hexadecimal ('0x' or '0X'
- prefix), or octal ('0' prefix).
-
- - Float and double constants are supported.
-
- - '#define' is supported without function like arguments.
- - Macro recursion is allowed.
- - Self-referential macros are handled as in gcc.
- - '#pragma' is supported. The pragma text is passed to a callback function,
- and is used to implement meta-information.
- - Other preprocessor directives are ignored.
-
- - C Strings and C character constants are supported. All ANSI C
- character escapes are supported.
-
- - Both C comments ( /* */ ) and C++ comments ( // ... end-of-line ) are
- supported.
-
- - Some syntax errors are reported, others may cause a crash.
-
- - Memory: the code, data, and symbol sizes are limited to 100KB
- (it can be changed in the source code).
-