Index: trunk/scconfig/hooks.c =================================================================== --- trunk/scconfig/hooks.c (revision 30834) +++ trunk/scconfig/hooks.c (revision 30835) @@ -540,13 +540,13 @@ require("parsgen/byaccic/*", 0, 0); require("parsgen/ureglex/*", 0, 0); if (!istrue(get("parsgen/byaccic/presents")) || !istrue(get("parsgen/ureglex/presents"))) - put("/local/pcb/want_byaccic", sfalse); + put("/local/pcb/want_parsgen_byaccic", sfalse); else - put("/local/pcb/want_byaccic", strue); + put("/local/pcb/want_parsgen_byaccic", strue); } else { report("byaccic/ureglex are disabled, among with parser generation.\n"); - put("/local/pcb/want_byaccic", sfalse); + put("/local/pcb/want_parsgen_byaccic", sfalse); } if (get("cc/rdynamic") == NULL) Index: trunk/src/Makefile.in =================================================================== --- trunk/src/Makefile.in (revision 30834) +++ trunk/src/Makefile.in (revision 30835) @@ -284,6 +284,8 @@ put /local/pcb/mod/CFLAGS {} put /local/pcb/mod/YACC {} put /local/pcb/mod/LEX {} +put /local/pcb/mod/BYACCIC {} +put /local/pcb/mod/UREGLEX {} put /local/pcb/tmpasm/buildin {../src_plugins/Buildin.tmpasm} put /local/pcb/tmpasm/plugin {../src_plugins/Plugin.tmpasm} Index: trunk/src_plugins/Common_enabled.tmpasm =================================================================== --- trunk/src_plugins/Common_enabled.tmpasm (revision 30834) +++ trunk/src_plugins/Common_enabled.tmpasm (revision 30835) @@ -1,4 +1,4 @@ -# explicit rules: .y -> .c +# explicit rules: .y -> .c (bison) # do not assume old yacc to work to different file names, do the generation # in a separate directory to allow parallel compilation with -j switch /local/pcb/mod/YACC @@ -28,7 +28,7 @@ end end -# explicit rules: .l -> .c +# explicit rules: .l -> .c (flex) # do not assume old lex to work to different file names, do the generation # in a separate directory to allow parallel compilation with -j switch /local/pcb/mod/LEX @@ -58,6 +58,65 @@ end end + + +# explicit rules: .y -> .c (byaccic) +switch /local/pcb/mod/BYACCIC + case {^$} end + default + foreach /local/n in /local/pcb/mod/BYACCIC + put /local/bn /local/n + sub {/local/bn} {^.*/} {} + put /local/dn /local/n + sub {/local/dn} {/[^/]*$} {} + + if /local/pcb/want_parsgen_byaccic + then + append /local/pcb/RULES [@ +# yacc for @/local/pcb/mod@ +@/local/n@.c @/local/n@.h: @/local/n@.y + cd @/local/dn@ && byaccic -o @ /local/bn@.c -H @/local/bn@.h -v @/local/bn@.desc -d @/local/bn@.y +@] + else + append /local/pcb/RULES [@ +# dummy byaccic for @/local/pcb/mod@ +@/local/n@.c @/local/n@.h: + echo "skipping byaccic..." +@] + end + end + end +end + +# explicit rules: .l -> .c (ureglex) +switch /local/pcb/mod/UREGLEX + case {^$} end + default + foreach /local/n in /local/pcb/mod/UREGLEX + if /local/pcb/want_parsgen_byaccic + then + put /local/bn /local/n + sub {/local/bn} {^.*/} {} + put /local/dn /local/n + sub {/local/dn} {/[^/]*$} {} + + append /local/pcb/RULES [@ +# lex for @/local/pcb/mod@ +@/local/n@.c @/local/n@.h: @/local/n@.l + cd @/local/dn@ && ureglex -c @/local/bn@.c -h @/local/bn@.h -l @/local/bn@.l +@] + else + append /local/pcb/RULES [@ +# dummy ureglex for @/local/pcb/mod@ +@/local/n@.c: + echo "skipping ureglex..." +@] + end + end + end +end + + put /local/pcb/mod/enabled {1} include /local/pcb/tmpasm/plugin_conf @@ -74,6 +133,8 @@ put /local/pcb/mod/CFLAGS {} put /local/pcb/mod/YACC {} put /local/pcb/mod/LEX {} +put /local/pcb/mod/BYACCIC {} +put /local/pcb/mod/UREGLEX {} put /local/pcb/mod/SPHASH {} put /local/pcb/mod/CLEANFILES {} put /local/pcb/mod/DISTCLEANFILES {}