Rolf Meyer
/
slre
slre - Super Light Regular Expression library URL: http://slre.sourceforge.net/ Just ported to mbed.
main.cpp@0:e0b85a04e7e5, 2009-11-18 (annotated)
- Committer:
- rolf
- Date:
- Wed Nov 18 18:01:01 2009 +0000
- Revision:
- 0:e0b85a04e7e5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rolf | 0:e0b85a04e7e5 | 1 | #include "mbed.h" |
rolf | 0:e0b85a04e7e5 | 2 | #include "slre.h" |
rolf | 0:e0b85a04e7e5 | 3 | |
rolf | 0:e0b85a04e7e5 | 4 | DigitalOut led(LED1); |
rolf | 0:e0b85a04e7e5 | 5 | /* |
rolf | 0:e0b85a04e7e5 | 6 | class RegEx { |
rolf | 0:e0b85a04e7e5 | 7 | RegEx(char *ex); |
rolf | 0:e0b85a04e7e5 | 8 | match(char *str, Groups *) |
rolf | 0:e0b85a04e7e5 | 9 | } |
rolf | 0:e0b85a04e7e5 | 10 | */ |
rolf | 0:e0b85a04e7e5 | 11 | int main() { |
rolf | 0:e0b85a04e7e5 | 12 | char *buf = "GET /foo.bar?query=moo HTTP/1.5\r\n"; |
rolf | 0:e0b85a04e7e5 | 13 | struct slre slre; |
rolf | 0:e0b85a04e7e5 | 14 | struct cap captures[4 + 1]; |
rolf | 0:e0b85a04e7e5 | 15 | |
rolf | 0:e0b85a04e7e5 | 16 | if (!slre_compile(&slre, "^(GET|POST) (\\S+) HTTP/(\\S+?)\r\n")) { |
rolf | 0:e0b85a04e7e5 | 17 | printf("Error compiling RE: %s\n", slre.err_str); |
rolf | 0:e0b85a04e7e5 | 18 | } else if (!slre_match(&slre, buf, strlen(buf), captures)) { |
rolf | 0:e0b85a04e7e5 | 19 | printf("Not a valid HTTP request\n" ); |
rolf | 0:e0b85a04e7e5 | 20 | } else { |
rolf | 0:e0b85a04e7e5 | 21 | printf("Request line length: %d\n", captures[0].len); |
rolf | 0:e0b85a04e7e5 | 22 | printf("Method: %.*s\n", captures[1].len, captures[1].ptr); |
rolf | 0:e0b85a04e7e5 | 23 | printf("URI: %.*s\n", captures[2].len, captures[2].ptr); |
rolf | 0:e0b85a04e7e5 | 24 | } |
rolf | 0:e0b85a04e7e5 | 25 | while(1) { |
rolf | 0:e0b85a04e7e5 | 26 | led = !led; |
rolf | 0:e0b85a04e7e5 | 27 | wait(0.2); |
rolf | 0:e0b85a04e7e5 | 28 | } |
rolf | 0:e0b85a04e7e5 | 29 | } |