slre - Super Light Regular Expression library URL: http://slre.sourceforge.net/ Just ported to mbed.

Dependencies:   mbed

Committer:
rolf
Date:
Wed Nov 18 18:01:01 2009 +0000
Revision:
0:e0b85a04e7e5

        

Who changed what in which revision?

UserRevisionLine numberNew 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 }