== 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 and 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 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++?)