1DOLLY 72PACKAGE flex3REQUIRES HOST runtime@045# flex 2.5.4 as Thomas Dickey maintains it (reflex), from upstream's release6# archive, unchanged: it writes a scanner itself, where flex since 2.5.317# starts m4 by fork, which fails here. lex is the same program. Slop does not8# run its configure, so config.h says what it would find here. Its own9# grammar is compiled by yacc, and a scanner seldom goes without a grammar,10# so the yacc package comes with it.11FROM /v0.1.4/demos/tools/Dollyfile-tools-build 81e1c1bc8b06c83b1daead6c8f09bc8b1382e8fe165f896a98109396b58bb30512INSTALL /v0.1.4/demos/tools/Dollyfile-yacc 897fd130f6a1e780e8bcc7022405ef6a97e96946df2c71632d2a0a0158dff1af1314REQUIRES HEADER libc15REQUIRES TOOL   ar16REQUIRES TOOL   cc17REQUIRES TOOL   cp18REQUIRES TOOL   echo19REQUIRES TOOL   gzip20REQUIRES TOOL   ln21REQUIRES TOOL   make22REQUIRES TOOL   mkdir23REQUIRES TOOL   mv24REQUIRES TOOL   tar25REQUIRES TOOL   test26REQUIRES TOOL   yacc27REQUIRES TOOL   text-page2829SOURCE /v0.1.4/dist/static/tools/reflex-20260131.tgz ab51a65f33623bb9a3877fc5991ca7960b2421ed112d94c733d85597991748bd /tmp/reflex.tgz30SLOP gzip -dc /tmp/reflex.tgz | tar -xf - -C /tmp3132FILE /tmp/reflex-20260131/config.h33    #define HAVE_ALLOCA 134    #define HAVE_ALLOCA_H 135    #define HAVE_INTTYPES_H 136    #define HAVE_STDINT_H 137    #define HAVE_STDLIB_H 138    #define HAVE_STDNORETURN_H 139    #define HAVE_STRINGS_H 140    #define HAVE_STRING_H 141    #define HAVE_SYS_STAT_H 142    #define HAVE_SYS_TYPES_H 143    #define HAVE_UNISTD_H 144    #define MIXEDCASE_FILENAMES 145    #define STDC_HEADERS 146    #define STDC_NORETURN 147FILE /tmp/flex.mk48    .RECIPEPREFIX := >49    S := /tmp/reflex-2026013150    BIN := /usr/bin51    LIB := /usr/lib52    # The sources of upstream's Makefile. Its scanner ships generated, as53    # initscan.c; its grammar does not.54    NAMES := ccl dfa ecs gen main misc nfa parse scan skel sym tblcmp yylex55    all: $(BIN)/flex $(LIB)/libfl.a56    $(BIN)/flex: $(addprefix $S/,$(addsuffix .o,$(NAMES)))57    >cc $^ -o $@58    $(LIB)/libfl.a: $S/libmain.o $S/libyywrap.o59    >ar rcs $@ $^60    $S/parse.c: $S/parse.y61    >cd $S && yacc -d parse.y && mv y.tab.c parse.c && mv y.tab.h parse.h62    $S/scan.c: $S/initscan.c63    >cp $< $@64    $(addprefix $S/,$(addsuffix .o,$(NAMES))): $S/parse.c65    $S/%.o: $S/%.c $S/config.h66    >cc -O2 -DHAVE_CONFIG_H -I $S -c $< -o $@67SLOP make -j4 -f /tmp/flex.mk68SLOP ln -s flex /usr/bin/lex69SLOP cp /tmp/reflex-20260131/FlexLexer.h /usr/include/FlexLexer.h70SLOP mkdir -p /usr/share/licenses/flex71SLOP cp /tmp/reflex-20260131/COPYING /usr/share/licenses/flex/COPYING72SLOP text-page /tmp/reflex-20260131/flex.17374# A scanner that counts the numbers in its input.75FILE /tmp/flex-check/count.l76    %{77    static int numbers;78    %}79    %%80    [0-9]+ numbers++;81    .|\n ;82    %%83    int main(void) { yylex(); printf("%d\n", numbers); return 0; }84SLOP CWD /tmp/flex-check flex -o count.c count.l && cc count.c -lfl -o count && test "$(echo 'a 1 bb 22 c 333' | ./count)" = 38586EXPORTS TOOL   flex87EXPORTS TOOL   lex88EXPORTS LIB    fl        /usr/lib/libfl.a89EXPORTS HEADER FlexLexer /usr/include/FlexLexer.h90FILE /usr/share/licenses/flex/COPYING91FILE /usr/share/man/cat1/flex.192