37 lines
		
	
	
		
			No EOL
		
	
	
		
			839 B
		
	
	
	
		
			Raku
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			No EOL
		
	
	
		
			839 B
		
	
	
	
		
			Raku
		
	
	
	
	
	
-- $Source$
 | 
						|
-- $State$
 | 
						|
 | 
						|
-- This is unpleasant. LLgen can generate an arbitrary number of output files,
 | 
						|
-- which means we need our own output filename generator.
 | 
						|
 | 
						|
LLgen = simple {
 | 
						|
	class = "LLgen",
 | 
						|
	command = {
 | 
						|
		"rm -f %out%",
 | 
						|
		"cd %out[1]:dirname% && %TOOLDIR%LLgen %in%"
 | 
						|
	},
 | 
						|
	
 | 
						|
	outputs = {"%U%/" },
 | 
						|
	__outputs = function(self, inputs)
 | 
						|
		local o = simple.__outputs(self, inputs)[1]
 | 
						|
		
 | 
						|
		local outputs = {o.."Lpars.h", o.."Lpars.c"}
 | 
						|
		
 | 
						|
		for _, i in ipairs(inputs) do
 | 
						|
			i = string.gsub(i, "^.*/", "")
 | 
						|
			i = string.gsub(i, "%.g$", ".c")
 | 
						|
			table.insert(outputs, o..i)
 | 
						|
		end
 | 
						|
		
 | 
						|
		return outputs
 | 
						|
	end
 | 
						|
}
 | 
						|
 | 
						|
-- Revision history
 | 
						|
-- $Log$
 | 
						|
-- Revision 1.2  2006-11-11 22:59:01  dtrg
 | 
						|
-- Now uses the version of LLgen included with the ACK instead of the standalone version.
 | 
						|
--
 | 
						|
-- Revision 1.1  2006/07/20 23:18:18  dtrg
 | 
						|
-- First version in CVS.
 | 
						|
-- |