or not.
For those of you who know what 'lex' (flex) and 'yacc' (bison) are, I've
started on a little gutting of db.c for fun. So if you understand stuff
like:
parse_zone: KEY_ZON_START INTEGER NEWLINE { want_string = TRUE; }
STRING { want_string = FALSE; }
INTEGER INTEGER INTEGER INTEGER NEWLINE
zone_command
KEY_S NEWLINE
and:
<GRAB_LINE>[^\n]+ { yylval.cp_type = yytext; return LINE; }
<GRAB_LINE>{newline} { linenum++; yylval.cp_type = NULL; return NEWLINE; }
<BITV>{letter}+ { yylval.cp_type = yytext; return LETTERS; }
<BITV>{integer} { yylval.i_type = atol(yytext); return INTEGER; }
<BITV>{whitespace}+ { /* ZZZzzzz */ }
then you'll see what I mean. So far: parses (but does not actually load)
objects, mobiles, zones, and rooms. In the future it'll do shops and help
files. Do -not- actually apply this patch to your MUD, besides the fact
it'll not apply cleanly becaused I based it off my current working set of
CircleMUD and not bpl19.
Just take a look at db_parse.y and db_parse.l.
http://www.circlemud.org/~greerga/working/lexyacc.patch
The concept came from work I did for a senior project, located at:
http://www.circlemud.org/~greerga/software/algol60-mu-compiler/
(for the fatally curious)
--
George Greer
greerga@circlemud.org
[ Maybe I should open a "My Software" section to keep
up with the trend. At least the license is right.
Of course, then I'd actually need a web site and a
photo to go with it. ]
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST