「拡張子からコンソール実行」の版間の差分
YOS G-spec (トーク | 投稿記録) 編集の要約なし |
YOS G-spec (トーク | 投稿記録) 編集の要約なし |
||
| 10行目: | 10行目: | ||
JavaScript(Node.js、JScript、JScript.NET、Rhino)、TypeScript、CoffeeScript、VBScript、<br> | JavaScript(Node.js、JScript、JScript.NET、Rhino)、TypeScript、CoffeeScript、VBScript、<br> | ||
Ruby(JRuby、IronRuby)、Perl、Python(PyPy)、Lua(JIT)、C#、VB.NET、F#、PowerShell、<br> | Ruby(JRuby、IronRuby)、Perl、Python(PyPy)、Lua(JIT)、C#、VB.NET、F#、PowerShell、<br> | ||
C,C++(VC++、BCC32、G++) | C,C++(VC++、BCC32、G++)、D、Go、Java、Scala、Groovy、Ada(GNAT)、Pascal(FPC)、Fortran(G)、Haskell(GHC)<br> | ||
CommonLisp(CLISP、SBCL、MKCL、CCL)、Scheme(Gauche)、Clojure(JVM、CLR)、CASL | CommonLisp(CLISP、SBCL、MKCL、CCL)、Scheme(Gauche)、Clojure(JVM、CLR)、CASL II、NASM、.NetIL(ilasm)、BAT<br> | ||
<br> | <br> | ||
※ただし、基本的にはパスが通っていることが前提。<br> | ※ただし、基本的にはパスが通っていることが前提。<br> | ||
HSPはコマンドラインコンパイラが標準で用意されていないため断念。(同様になでしこ。)<br> | |||
公式プラグインの[[プラグイン:HSPコンパイル実行プラグイン|HSPコンパイル実行プラグイン]]をご利用ください。 | |||
== [[File:拡張子でコンソール実行.png]] ZIP == | == [[File:拡張子でコンソール実行.png]] ZIP == | ||
| 77行目: | 79行目: | ||
Case "l","lisp","lsp" | Case "l","lisp","lsp" | ||
ENGINE="clisp" | ENGINE="clisp" | ||
ENGINE="sbcl" | |||
'ENGINE="ccl" | 'ENGINE="ccl" | ||
'ENGINE="mkcl" | 'ENGINE="ccl64" | ||
ENGINE="mkcl" | |||
'Clojure | 'Clojure | ||
Case "clj" | Case "clj" | ||
| 90行目: | 93行目: | ||
Function ENGINE_PATH(file_format) | Function ENGINE_PATH(file_format) | ||
Select Case LCase(file_format) | Select Case LCase(file_format) | ||
'JScript.NET | |||
Case "jsc" | |||
ENGINE_PATH="%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727" | |||
'TypeScript | 'TypeScript | ||
Case "ts" | Case "ts" | ||
ENGINE_PATH="%ProgramFiles%\Microsoft SDKs\TypeScript\1.0" | 'ENGINE_PATH="%ProgramFiles%\Microsoft SDKs\TypeScript\1.0" | ||
'ENGINE_PATH="%APPDATA%\npm" | 'ENGINE_PATH="%ProgramFiles(x86)%\Microsoft SDKs\TypeScript\1.0" | ||
ENGINE_PATH="%APPDATA%\npm" | |||
'CoffeeScript | 'CoffeeScript | ||
Case "coffee" | Case "coffee" | ||
ENGINE_PATH="%APPDATA%\npm" | ENGINE_PATH="%APPDATA%\npm" | ||
'C# | 'C#, VB.NET | ||
Case "cs" | Case "cs","vb" | ||
ENGINE_PATH="%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319" | ENGINE_PATH="%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319" | ||
'ENGINE_PATH="%ProgramFiles%\MSBuild\12.0\Bin" | 'ENGINE_PATH="%ProgramFiles%\MSBuild\12.0\Bin" | ||
'ENGINE_PATH="%ProgramFiles%\MSBuild\14.0\Bin" | 'ENGINE_PATH="%ProgramFiles%\MSBuild\14.0\Bin" | ||
'ENGINE_PATH="%ProgramFiles(x86)%\MSBuild\12.0\Bin" | |||
'ENGINE_PATH="%ProgramFiles(x86)%\MSBuild\14.0\Bin" | |||
'F# | 'F# | ||
Case "fs" | Case "fs" | ||
ENGINE_PATH"%ProgramFiles%\Microsoft SDKs\F#\3.1\Framework\v4.0" | ENGINE_PATH"%ProgramFiles%\Microsoft SDKs\F#\3.1\Framework\v4.0" | ||
'ENGINE_PATH"%ProgramFiles(x86)%\Microsoft SDKs\F#\3.1\Framework\v4.0" | |||
'Rhino | 'Rhino | ||
Case "rhino" | Case "rhino" | ||
| 120行目: | 125行目: | ||
Case "cas" | Case "cas" | ||
ENGINE_PATH="%HOMEDRIVE%\javaCASL2" | ENGINE_PATH="%HOMEDRIVE%\javaCASL2" | ||
'NASM LINK用(VC++必須) | |||
Case "link" | |||
ENGINE_PATH="%ProgramFiles%\Microsoft Visual Studio 12.0\VC\bin" | |||
'ENGINE_PATH="%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\bin" | |||
Case "msvcrt" | |||
ENGINE_PATH="%ProgramFiles%\Microsoft Visual Studio 12.0\VC\lib" | |||
'ENGINE_PATH="%ProgramFiles(x86)%Microsoft Visual Studio 12.0\VC\lib" | |||
Case "kernel32" | |||
ENGINE_PATH="%ProgramFiles%\Microsoft SDKs\Windows\v7.1A\Lib" | |||
'ENGINE_PATH="%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Lib" | |||
Case "addlib" | |||
'ライブラリが他に必要であれば空白区切りで与えてください。 | |||
'(ファイルパスに空白を含む時は注意) | |||
ENGINE_PATH="" | |||
'NASM LINK用ここまで | |||
End Select | End Select | ||
End Function | End Function | ||
| 129行目: | 149行目: | ||
'ビルドメッセージ | 'ビルドメッセージ | ||
Dim BUILDED | Dim BUILDED | ||
BUILDED=" | BUILDED="Echo Complited." | ||
Dim doc_names:doc_names=Split(Document.Name,".") | Dim doc_names:doc_names=Split(Document.Name,".") | ||
| 136行目: | 156行目: | ||
Dim file_format:file_format=doc_names(UBound(doc_names)) | Dim file_format:file_format=doc_names(UBound(doc_names)) | ||
doc_names(UBound(doc_names))="" | doc_names(UBound(doc_names))="" | ||
Dim br:br=" & " '改行用 | |||
'拡張子を除いたファイル名 | '拡張子を除いたファイル名 | ||
| 160行目: | 182行目: | ||
TITLE="Node.js " & Document.Name | TITLE="Node.js " & Document.Name | ||
EXEC_COMMAND="node " | EXEC_COMMAND=Join(Array("node ",CMD_OPTION," ",Document.Name),"") | ||
Case "jscript" 'JScript | Case "jscript" 'JScript | ||
| 169行目: | 191行目: | ||
PKG_FILES=Document.Name | PKG_FILES=Document.Name | ||
TITLE="JScript.NET "+ Document.Name | TITLE="JScript.NET "+ Document.Name | ||
EXEC_COMMAND= _ | EXEC_COMMAND=Join(Array( _ | ||
""" | """",ENGINE_PATH(ENGINE(file_format)),"\jsc"" /nologo /out:", _ | ||
DOC_NAME | DOC_NAME,".exe ",PKG_FILES,br, _ | ||
DOC_NAME | DOC_NAME,".exe" _ | ||
),"") | |||
Case "rhino" 'Rhino | Case "rhino" 'Rhino | ||
TITLE="Rhino " & Document.Name | TITLE="Rhino " & Document.Name | ||
EXEC_COMMAND="java -jar " | EXEC_COMMAND=Join(Array("java -jar ",ENGINE_PATH(ENGINE(file_format)),"\js.jar ",Document.Name),"") | ||
End Select | End Select | ||
Case "ts" 'TypeScript | Case "ts" 'TypeScript | ||
TITLE="TypeScript to " & ENGINE("js") & " " & Document.Name | TITLE="TypeScript to " & ENGINE("js") & " " & Document.Name | ||
EXEC_COMMAND="""" | EXEC_COMMAND=Join(Array("""",ENGINE_PATH(file_format),"\tsc"" ",Document.Name,br),"") | ||
'エンジン選択 | 'エンジン選択 | ||
Select Case ENGINE("js") | Select Case ENGINE("js") | ||
Case "node" 'Node.js | Case "node" 'Node.js | ||
EXEC_COMMAND=EXEC_COMMAND | EXEC_COMMAND=Join(Array(EXEC_COMMAND, _ | ||
"node ",DOC_NAME,".js" _ | |||
),"") | |||
Case "jscript" 'JScript | Case "jscript" 'JScript | ||
EXEC_COMMAND=EXEC_COMMAND | EXEC_COMMAND=Join(Array(EXEC_COMMAND, _ | ||
"cscript //nologo //E:JScript " | "cscript //nologo //E:JScript ",DOC_NAME,".js" _ | ||
),"") | |||
Case "jsc" 'JScript.NET | Case "jsc" 'JScript.NET | ||
| 210行目: | 233行目: | ||
TITLE="CoffeeScript " & Document.Name | TITLE="CoffeeScript " & Document.Name | ||
EXEC_COMMAND="""" | EXEC_COMMAND=Join(Array( _ | ||
"""",ENGINE_PATH(file_format),"\coffee"" ",CMD_OPTION," ",Document.Name _ | |||
),"") | |||
Case "vbs" 'VBScript | Case "vbs" 'VBScript | ||
| 285行目: | 310行目: | ||
TITLE="C# "+ Document.Name | TITLE="C# "+ Document.Name | ||
EXEC_COMMAND= _ | EXEC_COMMAND=Join(Array( _ | ||
"""" | """",ENGINE_PATH(file_format),"\csc"" ", _ | ||
" /nologo /out:" | "/nologo /out:",DOC_NAME,".exe ",PKG_FILES," /optimize+",br, _ | ||
DOC_NAME | DOC_NAME,".exe" _ | ||
),"") | |||
Case "vb" 'VB.NET | Case "vb" 'VB.NET | ||
| 301行目: | 327行目: | ||
TITLE="VB.NET "+ Document.Name | TITLE="VB.NET "+ Document.Name | ||
EXEC_COMMAND= _ | EXEC_COMMAND=Join(Array( _ | ||
"""" | """",ENGINE_PATH(file_format),"\vbc""", _ | ||
" /nologo /out:" | " /nologo /out:",DOC_NAME,".exe ",PKG_FILES," /optimize+",br, _ | ||
DOC_NAME | DOC_NAME,".exe" _ | ||
),"") | |||
Case "fs" 'F# | Case "fs" 'F# | ||
| 310行目: | 337行目: | ||
TITLE="F# "+ Document.Name | TITLE="F# "+ Document.Name | ||
EXEC_COMMAND= _ | EXEC_COMMAND=Join(Array( _ | ||
"""" | """",ENGINE_PATH(file_format),"\fsc""", _ | ||
" --nologo --out:" | " --nologo --out:",DOC_NAME,".exe ",PKG_FILES," --optimize+",br, _ | ||
DOC_NAME | DOC_NAME,".exe" _ | ||
),"") | |||
Case "ps1" 'PowerShell | Case "ps1" 'PowerShell | ||
| 323行目: | 351行目: | ||
Case "cl" 'Visual C++ | Case "cl" 'Visual C++ | ||
TITLE="Visual C++ " & Document.Name | TITLE="Visual C++ " & Document.Name | ||
EXEC_COMMAND="cl " | EXEC_COMMAND=Join(Array( _ | ||
"cl ",Document.Name,br, _ | |||
DOC_NAME,".exe" _ | |||
),"") | |||
Case "bcc32" 'Borland C++ | Case "bcc32" 'Borland C++ | ||
TITLE="Borland C++ " & Document.Name | TITLE="Borland C++ " & Document.Name | ||
EXEC_COMMAND="bcc32 " | EXEC_COMMAND=Join(Array( _ | ||
"bcc32 ",Document.Name,br, _ | |||
DOC_NAME,".exe" _ | |||
),"") | |||
Case "g++" 'GCC C++ | Case "g++" 'GCC C++ | ||
TITLE="GCC C++ " & Document.Name | TITLE="GCC C++ " & Document.Name | ||
EXEC_COMMAND="g++ " | EXEC_COMMAND=Join(Array( _ | ||
"g++ ",Document.Name,br, _ | |||
DOC_NAME,".exe" _ | |||
),"") | |||
End Select | End Select | ||
Case "d" 'D言語 | Case "d" 'D言語 | ||
TITLE="D言語 " & Document.Name | TITLE="D言語 " & Document.Name | ||
EXEC_COMMAND="dmd " & Document.Name & | EXEC_COMMAND="dmd " & Document.Name & br & DOC_NAME & ".exe" | ||
Case "go" 'Go | Case "go" 'Go | ||
| 349行目: | 386行目: | ||
Case "adb" 'Ada | Case "adb" 'Ada | ||
TITLE="GNAT Ada " & Document.Name | TITLE="GNAT Ada " & Document.Name | ||
EXEC_COMMAND="gnatmake " | EXEC_COMMAND=Join(Array( _ | ||
"gnatmake ",Document.Name,br _ | |||
,DOC_NAME,".exe" _ | |||
),"") | |||
Case "java" 'Java | Case "java" 'Java | ||
'jar化は手順が面倒そうなので保留 | 'jar化は手順が面倒そうなので保留 | ||
TITLE="Java " & Document.Name | TITLE="Java " & Document.Name | ||
EXEC_COMMAND="javac " | EXEC_COMMAND=Join(Array( _ | ||
"java " | "javac ",Document.Name,br, _ | ||
"java ",DOC_NAME _ | |||
),"") | |||
Case "scala" 'Scala | Case "scala" 'Scala | ||
| 379行目: | 421行目: | ||
Case "hs" 'Haskell | Case "hs" 'Haskell | ||
TITLE="GHC " & Document.Name | TITLE="GHC " & Document.Name | ||
EXEC_COMMAND="ghc --make " | EXEC_COMMAND=Join(Array( _ | ||
"ghc --make ",Document.Name,br, _ | |||
DOC_NAME,".exe" _ | |||
),"") | |||
Case "l","lisp","lsp" 'LISP, CommonLisp | Case "l","lisp","lsp" 'LISP, CommonLisp | ||
| 393行目: | 438行目: | ||
TITLE="CLISP " & Document.Name | TITLE="CLISP " & Document.Name | ||
EXEC_COMMAND="clisp " | EXEC_COMMAND=Join(Array("clisp ",CMD_OPTION," ",Document.Name),"") | ||
Case "sbcl" 'SteelBankCommonLisp | Case "sbcl" 'SteelBankCommonLisp | ||
| 410行目: | 455行目: | ||
End If | End If | ||
TITLE="SBCL " & Document.Name | TITLE="SBCL " & Document.Name | ||
EXEC_COMMAND="sbcl --script " | EXEC_COMMAND=Join(Array( _ | ||
"sbcl --script ",CMD_OPTION," ",Document.Name _ | |||
),"") | |||
Case "ccl" 'ClozureLisp | Case "ccl" 'ClozureLisp | ||
'オプション無し。コンパイルはlispファイルに以下のような設定文を書き加える。 | |||
'(ccl:save-application "hello.exe" ;ファイル名 | |||
' :toplevel-function #'main ;初期起動関数 | |||
' :prepend-kernel t) | |||
TITLE="ClozureLisp " & Document.Name | TITLE="ClozureLisp " & Document.Name | ||
EXEC_COMMAND="wx86cl --load " & Document.Name | EXEC_COMMAND="wx86cl --load " & Document.Name | ||
Case "ccl64" 'ClozureLisp64 | |||
TITLE="ClozureLisp " & Document.Name | |||
EXEC_COMMAND="wx86cl64 --load " & Document.Name | |||
Case "mkcl" 'ManKaiCommonLisp | Case "mkcl" 'ManKaiCommonLisp | ||
| 424行目: | 478行目: | ||
ElseIf load_option(";exe") Then | ElseIf load_option(";exe") Then | ||
TITLE="MKCL " & Document.Name | TITLE="MKCL " & Document.Name | ||
CMD_OPTION="-not-fasl-p -compile " | CMD_OPTION=Join(Array( _ | ||
"timeout /t 1 > nul | "-not-fasl-p -compile ",Document.Name,br, _ | ||
"mkcl -o " | "timeout /t 1 > nul",br, _ | ||
BUILDED | "mkcl -o ",DOC_NAME,".exe -link ",DOC_NAME,".o",br, _ | ||
BUILDED _ | |||
),"") | |||
'mkcl -not-fasl-p -compile a.lisp & mkcl -o a.exe -link a.o | 'mkcl -not-fasl-p -compile a.lisp & mkcl -o a.exe -link a.o | ||
'exe化失敗を防ぐためにwaitの小細工 | 'exe化失敗を防ぐためにwaitの小細工 | ||
| 448行目: | 504行目: | ||
version=Split(ENGINE_PATH(ENGINE(file_format)),"-") | version=Split(ENGINE_PATH(ENGINE(file_format)),"-") | ||
TITLE="Clojure " & Document.Name | TITLE="Clojure " & Document.Name | ||
EXEC_COMMAND= _ | EXEC_COMMAND=Join(Array( _ | ||
"java -jar """ | "java -jar """,ENGINE_PATH(ENGINE(file_format)), _ | ||
"\clojure-" | "\clojure-",version(UBound(version)),".jar"" ",Document.Name _ | ||
),"") | |||
Case "clojure-clr" 'ClojureCLR | Case "clojure-clr" 'ClojureCLR | ||
| 459行目: | 516行目: | ||
Case "pas","pp" 'PASCAL | Case "pas","pp" 'PASCAL | ||
TITLE="FreePascal " & Document.Name | TITLE="FreePascal " & Document.Name | ||
EXEC_COMMAND="fpc " | EXEC_COMMAND=Join(Array( _ | ||
"fpc ",Document.Name,br, _ | |||
DOC_NAME,".exe" _ | |||
),"") | |||
Case "f","f90","f95","f03" 'Fortran | Case "f","f90","f95","f03" 'Fortran | ||
TITLE="GFortran " & Document.Name | TITLE="GFortran " & Document.Name | ||
EXEC_COMMAND="gfortran -o " | EXEC_COMMAND=Join(Array( _ | ||
"gfortran -o ",DOC_NAME," ",Document.Name,br, _ | |||
DOC_NAME,".exe" _ | |||
),"") | |||
Case "cas" 'CASL II | Case "cas" 'CASL II | ||
TITLE="Java CASL II " & Document.Name | TITLE="Java CASL II " & Document.Name | ||
EXEC_COMMAND="java -jar """ | EXEC_COMMAND=Join(Array( _ | ||
"java -jar " | "java -jar """,ENGINE_PATH(file_format),"\casl2.jar"" ",Document.Name,br, _ | ||
"java -jar ",ENGINE(file_format),"\run.jar ",DOC_NAME,".obj" _ | |||
),"") | |||
Case "asm" 'NASM | |||
TITLE="NAST " & Document.Name | |||
EXEC_COMMAND=Join(Array("nasm -f win32 ",Document.Name,br, _ | |||
"""",ENGINE_PATH("link"),"\link"" /nologo /out:",DOC_NAME,".exe ",DOC_NAME,".obj ", _ | |||
"""",ENGINE_PATH("msvcrt"),"\msvcrt.lib"" """,ENGINE_PATH("kernel32"),"\Kernel32.lib"" ", _ | |||
ENGINE_PATH("addlib"),br, _ | |||
DOC_NAME,".exe" _ | |||
),"") | |||
Case "il" '.NetILアセンブラ | |||
TITLE=".NetIL " & Document.Name | |||
EXEC_COMMAND=Join(Array( _ | |||
"ilasm /nologo /quiet ",Document.Name,br, _ | |||
DOC_NAME,".exe" _ | |||
),"") | |||
Case "bat" 'BAT | Case "bat" 'BAT | ||
| 476行目: | 557行目: | ||
Case Else | Case Else | ||
TITLE=Document.Name | TITLE=Document.Name | ||
EXEC_COMMAND= Document.Name | EXEC_COMMAND=Document.Name | ||
End Select | End Select | ||
'コマンドライン起動 | 'コマンドライン起動 | ||
Dim cmd:Set cmd = CreateObject("WScript.Shell") | Dim cmd:Set cmd = CreateObject("WScript.Shell") | ||
cmd.Run _ | cmd.Run Join(Array( _ | ||
"cmd /C """ | "cmd /C """, _ | ||
"title " | "title ",TITLE,br, _ | ||
"cd/d " | "cd/d ",Document.Path,br, _ | ||
DEL_BINARY() | DEL_BINARY(), _ | ||
EXEC_COMMAND | EXEC_COMMAND,br, _ | ||
"pause > nul | "pause > nul",br, _ | ||
"exit""",1 | "exit"""),""),1 | ||
Set cmd=Nothing | Set cmd=Nothing | ||
| 500行目: | 581行目: | ||
Function DEL_BINARY() | Function DEL_BINARY() | ||
If load_option("delexe") Then | If load_option("delexe") Then | ||
DEL_BINARY="del " | DEL_BINARY=Join(Array("del ",DOC_NAME,".exe",br),"") | ||
ElseIf load_option("delclass") Then | ElseIf load_option("delclass") Then | ||
DEL_BINARY="del " | DEL_BINARY=Join(Array("del ",DOC_NAME,".class",br),"") | ||
Else | Else | ||
DEL_BINARY="" | DEL_BINARY="" | ||
スポンサーリンク