== Requirements == (1) URI parser fully conforming to the latest URI RFC. Currently this is RFC 3986: http://tools.ietf.org/html/rfc3986 (2) Based on an LL(1) grammar, at least mainly. Not using a jump table but one function per rule instead. (3) Library licensed under "New BSD license". http://www.opensource.org/licenses/bsd-license.php Test suite code licensed under LGPL. http://www.opensource.org/licenses/lgpl-license.php (4) Written in ANSI/ISO C. (5) Portable. Must compile with GCC, MinGW, Visual Studio 200[35]. (6) "OOP-C" -> thread safe, no shared globals between two parser "instances" (7) Support for <char> and <wchar_t> without internal conversion. Two versions of all functions from the public interface. (8) Doxygen Code documentation at least for all interface functions and structures. http://www.stack.nl/~dimitri/doxygen/index.html (9) Sun Java code conventions for all C/C++ code. http://java.sun.com/docs/codeconv/ (10) #include "xxx" for files in same folder. #include <xxx> for files from include folders. (11) Use GoogleTest for unit testing. https://github.com/google/googletest (12) Implement algorithm for reference resolution (13) Implement algorithm for normalization and comparison == Optional goals == (A) C++ Wrapper classes (uriparser++?)