summaryrefslogtreecommitdiff
path: root/GOALS.txt
diff options
context:
space:
mode:
Diffstat (limited to 'GOALS.txt')
-rw-r--r--GOALS.txt46
1 files changed, 46 insertions, 0 deletions
diff --git a/GOALS.txt b/GOALS.txt
new file mode 100644
index 0000000..a906a2a
--- /dev/null
+++ b/GOALS.txt
@@ -0,0 +1,46 @@
+== 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++?)