diff options
author | Lennart Poettering <lennart@poettering.net> | 2005-11-20 22:15:04 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2005-11-20 22:15:04 +0000 |
commit | 0ff40b23e97276fe829677f9fa0118b0bdb4d6ab (patch) | |
tree | 9ca9be2d9b727c6fcf80a7feb1f1bb7926265693 | |
parent | d011c663380dbf6e0e6a67d0555d67f3ce544e83 (diff) |
initial version
git-svn-id: file:///home/lennart/svn/public/sse/trunk@3 5fbabb74-0606-0410-a5e4-b5cc6a42724e
-rw-r--r-- | Makefile | 15 | ||||
-rw-r--r-- | lex-c.l | 87 | ||||
-rwxr-xr-x | sse-feed | 26 | ||||
-rw-r--r-- | sse.sql | 29 |
4 files changed, 157 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3830946 --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +CLAGS=-Wextra -g -O2 -pipe +LIBS=-lfl + +all: lex-c + +lex-c.yy.c: lex-c.l + flex -o $@ $^ + +lex-c: lex-c.yy.o + $(CC) -o $@ $^ $(LIBS) + +clean: + rm -f *.o lex-c.yy.c lex-c + +.PHONY: all clean @@ -0,0 +1,87 @@ +/* --c-mode-- */ + +%{ + +#include <stdio.h> + + +%} + +%Start DEF CCOMMENT CPPCOMMENT STRING CHAR PREPROC + +IDCHAR [_a-zA-Z0-9] +NIDCHAR [^_a-zA-Z0-9] + +%% + + BEGIN DEF; + +<DEF>^#ifn?def | +<DEF>^#if | +<DEF>^#define | +<DEF>^#undef ; + +<DEF>^#. { BEGIN CPPCOMMENT; } + +<DEF>"/*" { BEGIN CCOMMENT; } +<CCOMMENT>"*/" { BEGIN DEF; } +<CCOMMENT>\n | +<CCOMMENT>. ; + +<DEF>"//" { BEGIN CPPCOMMENT; } +<CPPCOMMENT>\n { BEGIN DEF; } +<CPPCOMMENT>. ; + +<DEF>"\"" { BEGIN STRING; } +<STRING>"\"" { BEGIN DEF; } +<STRING>. | +<STRING>\n ; + +<DEF>"'" { BEGIN CHAR; } +<CHAR>"'" { BEGIN DEF; } +<CHAR>\n | +<CHAR>. ; + +<DEF>auto{NIDCHAR} | +<DEF>break{NIDCHAR} | +<DEF>case{NIDCHAR} | +<DEF>char{NIDCHAR} | +<DEF>const{NIDCHAR} | +<DEF>continue{NIDCHAR} | +<DEF>default{NIDCHAR} | +<DEF>do{NIDCHAR} | +<DEF>double{NIDCHAR} | +<DEF>else{NIDCHAR} | +<DEF>enum{NIDCHAR} | +<DEF>extern{NIDCHAR} | +<DEF>float{NIDCHAR} | +<DEF>for{NIDCHAR} | +<DEF>goto{NIDCHAR} | +<DEF>if{NIDCHAR} | +<DEF>int{NIDCHAR} | +<DEF>long{NIDCHAR} | +<DEF>register{NIDCHAR} | +<DEF>return{NIDCHAR} | +<DEF>short{NIDCHAR} | +<DEF>signed{NIDCHAR} | +<DEF>sizeof{NIDCHAR} | +<DEF>static{NIDCHAR} | +<DEF>struct{NIDCHAR} | +<DEF>switch{NIDCHAR} | +<DEF>typedef{NIDCHAR} | +<DEF>union{NIDCHAR} | +<DEF>unsigned{NIDCHAR} | +<DEF>void{NIDCHAR} | +<DEF>volatile{NIDCHAR} | +<DEF>while{NIDCHAR} { yyless(yyleng-1); } + +<DEF>[a-zA-Z_][a-zA-Z_0-9]{3,} { printf("%s\n", yytext); } + +<DEF>"\n" | +<DEF>. ; + +%% + +int main(int argc, char *argv[]) { + yylex(); +} diff --git a/sse-feed b/sse-feed new file mode 100755 index 0000000..d16dfef --- /dev/null +++ b/sse-feed @@ -0,0 +1,26 @@ +#!/usr/bin/python + +import sys, os + +def handle_file(path, dirpath, filename): + global ms + + extension = filename.split(".")[-1] + + if extension in ("c", "h"): + print "C source %s %s %s" % (path, dirpath, filename) + +def handle_tree(path): + + path = os.path.realpath(path) + + for dirpath, dirs, files in os.walk(path): + for f in files: + assert path, dirpath[:len(path)] + + dirpath = dirpath[len(path):] + + handle_file(path, dirpath, f) + +for a in sys.argv[1:]: + handle_tree(a) @@ -0,0 +1,29 @@ +DROP TABLE word; +DROP TABLE file; +DROP TABLE package; + +CREATE TABLE word ( + text VARCHAR(40) NOT NULL, + type ENUM ('word', 'subword') DEFAULT 'word' NOT NULL, + file_id INTEGER UNSIGNED NOT NULL, + cnt INTEGER UNSIGNED NOT NULL, + PRIMARY KEY (text, type, file_id) +); + +CREATE TABLE file ( + id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, + package_id INTEGER UNSIGNED NOT NULL, + path VARBINARY(255) NOT NULL, + language_id TINYINT UNSIGNED NOT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE package ( + id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, + filename VARBINARY(255) NOT NULL, + url VARBINARY(255) NOT NULL, + timestamp TIMESTAMP NOT NULL, + md CHAR(32) NOT NULL, + PRIMARY KEY(id), + KEY (md) +); |