Index: p/src/sen-l/Makefile
===================================================================
--- app/src/sen-l/Makefile	(revision 8d3e6ab33b2b6727eb54bb3498a0ba2af9ca9ea1)
+++ 	(revision )
@@ -1,12 +1,0 @@
-
-sen: sen.l
-	flex -osen.c sen.l
-	cc -O3 -o sen sen.c -lfl
-
-copy:
-ifdef UTT_BIN_DIR
-	cp sen ${UTT_BIN_DIR}
-endif
-
-clean:
-	rm sen.c sen
Index: p/src/sen-l/sen.l
===================================================================
--- app/src/sen-l/sen.l	(revision 25ae32e4c2354e0ed6756bbe1de83f39cd814652)
+++ 	(revision )
@@ -1,80 +1,0 @@
-%{
-     int pos=0,len=0;
-
-     void set_position();
-%}
-
-ul		[A-Z¡ÆÊ£ÑÓŠ¯¬]
-ll		[a-z±æê³ñó¶¿Œ]
-l		ul|ll
-n		[0-9]+
-s		[ \t]+
-
-
-ab1		(mgr|in¿|prof|hab|doc|dyr|kier|zast)
-ab2		(ul|pl|al)
-
-abrv		(ab1|ab2)
-
-SEG             .*\n
-N		{n}{s}{n}{s}N{s}.*\n
-S		{n}{s}{n}{s}S{s}.*\n
-P		{n}{s}{n}{s}P{s}.*\n
-W		{n}{s}{n}{s}W{s}.*\n
-UL		{n}{s}{n}{s}W{s}{ul}.*\n
-Cap		{n}{s}{n}{s}W{s}{ul}{ll}*.*\n
-POINT		{n}{s}{n}{s}P{s}\.({s}.*)?\n
-QMARK		{n}{s}{n}{s}P{s}\?({s}.*)?\n
-EXCL		{n}{s}{n}{s}P{s}\!({s}.*)?\n
-DASH		{n}{s}{n}{s}P{s}\-({s}.*)?\n
-POINTS		{POINT}+
-
-ABRV		{n}{s}{n}{s}W{s}{abrv}({s}.*)?\n
-
-EOS		{POINT}|{POINTS}|{QMARK}|{EXCL}
-
-
-%%
-
-
-{N}({POINT}{N})+		ECHO; set_position();
-({UL}{POINT}{S}?)+{Cap} 	ECHO; set_position();
-{ABRV}{POINT}                   ECHO; set_position();
-
-
-{P}/{S}{DASH}			ECHO; set_position(); print_EOS();
-{EOS}/{S}({Cap}|{P}|{N})	ECHO; set_position(); print_EOS();
-
-.*                              ECHO; set_position();
-
-<<EOF>>				printf("%04d 00 EOS *\n",pos+len); exit(1);
-
-%%
-
-int main()
-{
-  printf("0000 00 BOS *\n");
-  yylex();
-}
-
-int yywrap()
-{
-  return 1;
-}
-
-void set_position()
-{
-  char *lastseg, *tmp;
-  yytext[yyleng-1]='\0';
-  if(tmp=strrchr(yytext,'\n'))
-    lastseg=tmp+1;
-  else
-    lastseg=yytext;
-  sscanf(lastseg,"%d %d", &pos, &len);
-  yytext[yyleng-1]='\n';
-}
-
-int print_EOS()
-{
-  printf("%04d 00 EOS *\n%04d 00 BOS *\n",pos+len,pos+len);
-}
Index: auto/output/Makefile
===================================================================
--- auto/output/Makefile	(revision 12743b9e8ce96f3f0d743ab0459dacbc0fe2690c)
+++ auto/output/Makefile	(revision 1e551bdd1bf6aaf003fd1ba34eca63b8fcc7b5ba)
@@ -43,5 +43,5 @@
 VPATH = ./src
 
-PROGRAMS = tok
+PROGRAMS = tok sen
 
 TOK_OBJ_FILES = tok.o tok_cmdline.o
@@ -49,4 +49,7 @@
 TOK_GGO_FILES = tok_cmdline.ggo
 tok.o: tok_cmdline.h
+
+SEN_OBJ_FILES = sen.o
+SEN_FLEX_FILES = sen.l
 
 CONFIG_FILES = src/config.h Makefile
@@ -58,4 +61,6 @@
 .INTERMEDIATE: \$(patsubst %.ggo,%.c,\$(TOK_GGO_FILES))
 .INTERMEDIATE: \$(patsubst %.ggo,%.h,\$(TOK_GGO_FILES))
+
+.INTERMEDIATE: \$(patsubst %.l,%.c,\$(SEN_FLEX_FILES))
 
 .PHONY: all
@@ -80,4 +85,5 @@
 	\$(RM) \$(patsubst %.ggo,%.c,\$(TOK_GGO_FILES))
 	\$(RM) \$(patsubst %.ggo,%.h,\$(TOK_GGO_FILES))
+	\$(RM) \$(patsubst %.l,%.c,\$(SEN_FLEX_FILES))
 
 .PHONY: distclean
@@ -100,8 +106,8 @@
 
 %.c: %.ggo
-	gengetopt --input $< --file-name \$(patsubst %.c,%,\$@) --conf-parser
+	gengetopt --input $< --file-name \$(basename \$@) --conf-parser
 
 %.h: %.ggo
-	gengetopt --input $< --file-name \$(patsubst %.h,%,\$@) --conf-parser
+	gengetopt --input $< --file-name \$(basename \$@) --conf-parser
 
 %: %.o
Index: src/sen.l
===================================================================
--- src/sen.l	(revision 1e551bdd1bf6aaf003fd1ba34eca63b8fcc7b5ba)
+++ src/sen.l	(revision 1e551bdd1bf6aaf003fd1ba34eca63b8fcc7b5ba)
@@ -0,0 +1,95 @@
+%{
+
+  void print_EOS(void);
+  void set_position(void);
+
+  int pos=0;
+  int len=0;
+
+%}
+
+ul      [A-Z¡ÆÊ£ÑÓŠ¯¬]
+ll		  [a-z±æê³ñó¶¿Œ]
+l       ul|ll
+n       [0-9]+
+s       [ \t]+
+
+
+ab1     (mgr|in¿|prof|hab|doc|dyr|kier|zast)
+ab2     (ul|pl|al)
+
+abrv    (ab1|ab2)
+
+SEG     .*\n
+N       {n}{s}{n}{s}N{s}.*\n
+S       {n}{s}{n}{s}S{s}.*\n
+P       {n}{s}{n}{s}P{s}.*\n
+W       {n}{s}{n}{s}W{s}.*\n
+UL      {n}{s}{n}{s}W{s}{ul}.*\n
+Cap     {n}{s}{n}{s}W{s}{ul}{ll}*.*\n
+POINT   {n}{s}{n}{s}P{s}\.({s}.*)?\n
+QMARK   {n}{s}{n}{s}P{s}\?({s}.*)?\n
+EXCL    {n}{s}{n}{s}P{s}\!({s}.*)?\n
+DASH    {n}{s}{n}{s}P{s}\-({s}.*)?\n
+POINTS  {POINT}+
+
+ABRV    {n}{s}{n}{s}W{s}{abrv}({s}.*)?\n
+
+EOS     {POINT}|{POINTS}|{QMARK}|{EXCL}
+
+
+%%
+
+
+{N}({POINT}{N})+          { ECHO; set_position(); }
+({UL}{POINT}{S}?)+{Cap}   { ECHO; set_position(); }
+{ABRV}{POINT}             { ECHO; set_position(); }
+
+
+{P}/{S}{DASH}             { ECHO; set_position(); print_EOS(); }
+{EOS}/{S}({Cap}|{P}|{N})  { ECHO; set_position(); print_EOS(); }
+
+.*                        { ECHO; set_position(); }
+
+<<EOF>>                   { printf("%04d 00 EOS *\n",pos+len); exit(1); }
+
+%%
+
+int main()
+{
+  printf("0000 00 BOS *\n");
+  yylex();
+  return 0;
+}
+
+int yywrap()
+{
+  return 1;
+}
+
+void set_position()
+{
+  char *lastseg;
+  char *tmp;
+
+  yytext[yyleng-1] = '\0';
+
+  tmp = strrchr(yytext, '\n');
+  if( tmp )
+  {
+    lastseg = tmp + 1;
+  }
+  else
+  {
+    lastseg = yytext;
+  }
+
+  sscanf(lastseg, "%d %d", &pos, &len);
+  yytext[yyleng-1] = '\n';
+
+}
+
+void print_EOS()
+{
+  printf("%04d 00 EOS *\n%04d 00 BOS *\n", pos+len, pos+len);
+}
