Migration to new build system.
* sen moved and checked
This commit is contained in:
parent
12743b9e8c
commit
1e551bdd1b
@ -1,12 +0,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
|
|
@ -1,80 +0,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);
|
|
||||||
}
|
|
@ -42,13 +42,16 @@ ALL_FFLAGS = -t \$(FFLAGS)
|
|||||||
|
|
||||||
VPATH = ./src
|
VPATH = ./src
|
||||||
|
|
||||||
PROGRAMS = tok
|
PROGRAMS = tok sen
|
||||||
|
|
||||||
TOK_OBJ_FILES = tok.o tok_cmdline.o
|
TOK_OBJ_FILES = tok.o tok_cmdline.o
|
||||||
TOK_FLEX_FILES = tok.l
|
TOK_FLEX_FILES = tok.l
|
||||||
TOK_GGO_FILES = tok_cmdline.ggo
|
TOK_GGO_FILES = tok_cmdline.ggo
|
||||||
tok.o: tok_cmdline.h
|
tok.o: tok_cmdline.h
|
||||||
|
|
||||||
|
SEN_OBJ_FILES = sen.o
|
||||||
|
SEN_FLEX_FILES = sen.l
|
||||||
|
|
||||||
CONFIG_FILES = src/config.h Makefile
|
CONFIG_FILES = src/config.h Makefile
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
@ -58,6 +61,8 @@ CONFIG_FILES = src/config.h Makefile
|
|||||||
.INTERMEDIATE: \$(patsubst %.ggo,%.c,\$(TOK_GGO_FILES))
|
.INTERMEDIATE: \$(patsubst %.ggo,%.c,\$(TOK_GGO_FILES))
|
||||||
.INTERMEDIATE: \$(patsubst %.ggo,%.h,\$(TOK_GGO_FILES))
|
.INTERMEDIATE: \$(patsubst %.ggo,%.h,\$(TOK_GGO_FILES))
|
||||||
|
|
||||||
|
.INTERMEDIATE: \$(patsubst %.l,%.c,\$(SEN_FLEX_FILES))
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: \$(PROGRAMS)
|
all: \$(PROGRAMS)
|
||||||
|
|
||||||
@ -79,6 +84,7 @@ clean:
|
|||||||
\$(RM) \$(patsubst %.l,%.c,\$(TOK_FLEX_FILES))
|
\$(RM) \$(patsubst %.l,%.c,\$(TOK_FLEX_FILES))
|
||||||
\$(RM) \$(patsubst %.ggo,%.c,\$(TOK_GGO_FILES))
|
\$(RM) \$(patsubst %.ggo,%.c,\$(TOK_GGO_FILES))
|
||||||
\$(RM) \$(patsubst %.ggo,%.h,\$(TOK_GGO_FILES))
|
\$(RM) \$(patsubst %.ggo,%.h,\$(TOK_GGO_FILES))
|
||||||
|
\$(RM) \$(patsubst %.l,%.c,\$(SEN_FLEX_FILES))
|
||||||
|
|
||||||
.PHONY: distclean
|
.PHONY: distclean
|
||||||
distclean: clean
|
distclean: clean
|
||||||
@ -99,10 +105,10 @@ uninstall:
|
|||||||
\$(FLEX) -t \$< > \$@
|
\$(FLEX) -t \$< > \$@
|
||||||
|
|
||||||
%.c: %.ggo
|
%.c: %.ggo
|
||||||
gengetopt --input $< --file-name \$(patsubst %.c,%,\$@) --conf-parser
|
gengetopt --input $< --file-name \$(basename \$@) --conf-parser
|
||||||
|
|
||||||
%.h: %.ggo
|
%.h: %.ggo
|
||||||
gengetopt --input $< --file-name \$(patsubst %.h,%,\$@) --conf-parser
|
gengetopt --input $< --file-name \$(basename \$@) --conf-parser
|
||||||
|
|
||||||
%: %.o
|
%: %.o
|
||||||
\$(CC) \$? -o \$@ \$(ALL_LDFLAGS) \$(ALL_CFLAGS) \$(ALL_LDLIBS)
|
\$(CC) \$? -o \$@ \$(ALL_LDFLAGS) \$(ALL_CFLAGS) \$(ALL_LDLIBS)
|
||||||
|
95
src/sen.l
Normal file
95
src/sen.l
Normal file
@ -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);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user