diff options
Diffstat (limited to 'libacc/FEATURES')
-rw-r--r-- | libacc/FEATURES | 89 |
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). - |