39 lines
1.3 KiB
Ruby
Executable File
39 lines
1.3 KiB
Ruby
Executable File
# regenerates all parser generated files in a source tree
|
|
|
|
puts "Deleting all *_parser.h files"
|
|
|
|
|
|
Dir.glob(File.join("**", "*_parser.{h,.h??????,xsd,xsd??????}")) do |filename|
|
|
puts "Deleting #{filename}"
|
|
File.unlink(filename)
|
|
end
|
|
|
|
|
|
puts "Looking for .PSC files - deleting any generated .cpp or .h files!"
|
|
Dir.glob(File.join("**", "*.psc")) do |filename|
|
|
# check for .cpp and .h files - see if they are 1) writable and 2) appear to be generated
|
|
baseName = filename.sub(/\.psc$/, "")
|
|
Dir.glob(baseName + ".{cpp,cpp??????,h,h??????}") do |generatedName|
|
|
if File.exists?(generatedName) and File.writable?(generatedName) then
|
|
|
|
# does it look generated?
|
|
headerCheckOneResult = false
|
|
headerCheckTwoResult = false
|
|
headerCheckThreeResult = false
|
|
|
|
File.open(generatedName) do |f|
|
|
f.each do |line|
|
|
headerCheckOneResult = headerCheckOneResult || (line =~ /This file was generated by parCodeGen/)
|
|
headerCheckTwoResult = headerCheckTwoResult || (line =~ /CHANGES WILL BE OVERWRITTEN/)
|
|
headerCheckThreeResult = headerCheckThreeResult || (line =~ /DO NOT COMMIT/)
|
|
end
|
|
end
|
|
|
|
if headerCheckOneResult && headerCheckTwoResult && headerCheckThreeResult then
|
|
puts "Deleting autogenerated file #{generatedName}"
|
|
File.unlink(generatedName)
|
|
end
|
|
end
|
|
end
|
|
end
|