45 lines
657 B
Lua
45 lines
657 B
Lua
definerule("yacc",
|
|
{
|
|
srcs = { type="targets" },
|
|
commands = {
|
|
type="strings",
|
|
default={
|
|
"yacc -t -b %{dir}/y -d %{ins}"
|
|
}
|
|
},
|
|
},
|
|
function (e)
|
|
return normalrule {
|
|
name = e.name,
|
|
cwd = e.cwd,
|
|
ins = e.srcs,
|
|
outleaves = { "y.tab.c", "y.tab.h" },
|
|
label = e.label,
|
|
commands = e.commands,
|
|
}
|
|
end
|
|
)
|
|
|
|
definerule("flex",
|
|
{
|
|
srcs = { type="targets" },
|
|
commands = {
|
|
type="strings",
|
|
default={
|
|
"flex -s -t %{ins} > %{outs[1]}"
|
|
}
|
|
}
|
|
},
|
|
function (e)
|
|
return normalrule {
|
|
name = e.name,
|
|
cwd = e.cwd,
|
|
ins = e.srcs,
|
|
outleaves = { "lex.yy.c" },
|
|
label = e.label,
|
|
commands = e.commands
|
|
}
|
|
end
|
|
)
|
|
|