Add javascript
[gruntmaster-daemon.git] / gruntmaster-compile
index 6ff8dd75ce2b03629d06a4527851c44819298d98..3599621a741b3dab66170af972b7d349575b31e7 100755 (executable)
@@ -11,12 +11,13 @@ my $basename = fileparse $name, qr/\..*/;
 given ($format){
        exec 'gcc', qw/-DONLINE_JUDGE -std=gnu11 -Wall -Wextra -lm -O2 -o/, $basename, $name when 'C';
        exec 'g++', qw/-DONLINE_JUDGE -std=gnu++11 -Wall -Wextra -lm -O2 -o/, $basename, $name when 'CPP';
+
        when ('MONO') {
                system 'gmcs', '-d:ONLINE_JUDGE', $name and die "gmcs failed: errno=$! return=$?";
                rename "$basename.exe", $basename;
                chmod 0755, $basename;
        }
-       exec 'gmcs', '-d:ONLINE_JUDGE', $name when  'MONO';
+       exec 'gmcs', '-d:ONLINE_JUDGE', $name when 'MONO';
        when ('JAVA') {
                unlink $_ for <*.class>;
                system 'javac', $name and die "javac failed: errno=$! return=$?";
@@ -28,13 +29,30 @@ given ($format){
        exec 'go', qw/build -compiler gc/, $name when 'GOLANG';
        exec 'go', qw/build -compiler gccgo/, $name, when 'GCCGO';
        exec 'ghc', qw/-DONLINE_JUDGE -Wall -O2 -o/, $basename, $name when 'HASKELL';
+       exec 'rustc', qw/-O -o/, $basename, $name when 'RUST';
+       exec 'obc', qw/-x -o/, $basename, $name when 'OBERON';
+       exec 'ocamlopt', qw/-o/, $basename, $name when 'OCAML';
+       exec 'gdc', qw/-DONLINE_JUDGE -Wall -O2 -frelease -fno-bounds-check -o/, $basename, $name when 'D';
+
+       when ('BRAINFUCK') {
+               system 'bfc', $name and die "bfc failed: errno=$! return=$?";
+               rename "a.out", $basename;
+               chmod 0755, $basename;
+               exit
+       }
 
-       when ([qw/PERL PYTHON SBCL/]){
+       when ([qw/GOLFSCRIPT JAVASCRIPT JULIA PERL PHP PYTHON PYTHON3 RUBY SBCL/]){
                open IN, '<', $name;
                open OUT, '>', $basename;
-               print OUT "#!/usr/bin/perl\n"          if $_ eq 'PERL';
-               print OUT "#!/usr/bin/python\n"        if $_ eq 'PYTHON';
-               print OUT "#!/usr/bin/sbcl --script\n" if $_ eq 'SBCL';
+               print OUT "#!/usr/bin/golfscript\n"                                                             if $_ eq 'GOLFSCRIPT';
+               print OUT "#!/usr/bin/julia -O\n"                                                               if $_ eq 'JULIA';
+               print OUT "#!/usr/bin/node\n"                                                                   if $_ eq 'JAVASCRIPT';
+               print OUT "#!/usr/bin/perl\n"                                                                   if $_ eq 'PERL';
+               print OUT "#!/usr/bin/php -d ONLINE_JUDGE=true\n"                                               if $_ eq 'PHP';
+               print OUT "#!/usr/bin/python2.7\n"                                                              if $_ eq 'PYTHON';
+               print OUT "#!/usr/bin/python3\n"                                                                if $_ eq 'PYTHON3';
+               print OUT "#!/usr/bin/ruby\n"                                                                   if $_ eq 'RUBY';
+               print OUT "#!/usr/bin/sbcl --script\n"                                                          if $_ eq 'SBCL';
                print OUT while <IN>;
                close OUT;
                close IN;
@@ -59,12 +77,16 @@ gruntmaster-compile - Gruntmaster 6000 compiler frontend
 
 =head1 DESCRIPTION
 
-gruntmaster-compile is a very simple frontend to various comilers. It takes two arguments: the file format and the file name, and produces a compiled executable. The executable's name is the basename of the input file.
+gruntmaster-compile is a very simple frontend to various compilers. It takes two arguments: the file format and the file name, and produces a compiled executable. The executable's name is the basename of the input file.
 
 Compile commands for each format:
 
 =over
 
+=item BRAINFUCK
+
+  bfc $input
+
 =item C
 
   gcc -DONLINE_JUDGE -std=gnu11 -Wall -Wextra -O2 -o $output $input
@@ -81,6 +103,10 @@ Compile commands for each format:
 
   javac $input
 
+=item JULIA
+
+  cp $input $output
+
 =item PASCAL
 
   fpc -dONLINE_JUDGE -O2 $input
@@ -97,10 +123,26 @@ Compile commands for each format:
 
   ghc -DONLINE_JUDGE -Wall -O2 -o $output $input
 
+=item OCAML
+
+  ocamlc -o $output $input
+
+=item OBERON
+
+  obc -x -o $output $input
+
+=item RUST
+
+  rustc -O -o $output $input
+
 =item PERL
 
   cp $input $output
 
+=item PHP
+
+  cp $input $output
+
 =item PYTHON
 
   cp $input $output
This page took 0.010647 seconds and 4 git commands to generate.