summaryrefslogtreecommitdiff
path: root/GOALS.txt
blob: a906a2aff150e091d7b7e8949bcc264eeb7a7751 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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++?)