# warn about a file type
#format is
# tag (unique) ~~ type regex (x) [~~ name regex (x) optional empty means .* ~~ missing source transform regex separated by && or map or nothing do not check]
# note that map is not evaluated but check with regex so please use correct form:
# map { 's/SOMEREGEXP/'.$_.'/'} qw(LIST)
#
# File should match both "type regex" and "name regex"
#
source-contains-prebuilt-binary             ~~ \bELF\b                                                                   ~~                                   ~~ map { 's/(?i)(?:\.(?:bin|elf|hs|oo?|out|so(?:\.\d+)*))?$/'.$_.'/'} qw(.asm .c .cpp .cxx .f .F .S)
source-contains-prebuilt-flash-object       ~~ ^Macromedia \s Flash                                                      ~~                                   ~~ s/(?i)\.swf$/.as/
source-contains-prebuilt-flash-project      ~~ ^Composite \s Document \s File                                            ~~ (?i)\.fla$                        ~~ s/(?i)\.fla$/.as/
source-contains-prebuilt-java-object        ~~ (?: Java [ ] (?:Jar [ ] file|archive [ ] data) | Zip [ ] archive | JAR)   ~~ (?i)\.jar$
source-contains-prebuilt-javascript-object  ~~ .*                                                                        ~~ (?i)[\.-](?:min|pack(?:ed)?)\.js$ ~~ s/(?i)[\.-](?:min|pack(?:ed)?)(?=\.js$)//
source-contains-prebuilt-python-object      ~~ ^python \s \d(\.\d+)? \s byte-compiled                                    ~~ .*                                ~~ s/(?i)(?<=\.py)[co]$//
source-contains-prebuilt-silverlight-object ~~ ^Zip \s archive \s data                                                   ~~ (?i)\.xac$
source-contains-prebuilt-windows-binary     ~~ \b(?:PE(?:32|64)|(?:MS-DOS|COFF)\s executable)\b
