eclair snapshot
diff --git a/libacc/FEATURES b/libacc/FEATURES
new file mode 100644
index 0000000..97a876d
--- /dev/null
+++ b/libacc/FEATURES
@@ -0,0 +1,83 @@
+
+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 can be used for pointer arithmetic.
+
+        * '=' 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 not supported
+        - const is not supported
+        - arrays are not supported
+        - long doubles are not supported
+        - structs are not supported
+
+    - 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. No macro
+      recursion is tolerated. 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).
+