K フレームワークでは、 の-c
スイッチを使用しkrun
て、他の変数を初期設定に渡し、次に default を渡すことができます$PGM
。たとえば、次のコードがある場合があります。
configuration <T color="yellow">
<k color="green"> $PGM:Pgm </k>
<something> $SOMEARG:Int </something>
</T>
と実行するkompile imp.k; krun tests/sum.imp -cSOMEARG=3
と、$SOMEARG
変数は値を取得します3
。ただし、文字列を渡そうとすると問題が発生します。
configuration <T color="yellow">
<k color="green"> $PGM:Pgm </k>
<something> $SOMEARG:String </something>
</T>
の後kompile
、コマンド
krun tests/sum.imp -cSOMEARG=\"hello\" --debug
出力:
org.kframework.utils.errorsystem.KEMException: [Error] Critical: Parser returned a non-zero exit code: 113
Stdout:
Stderr:
[Error] Inner Parser: Parse error: unexpected token 'hello'.
Source(<command line: -e>)
Location(1,1,1,6)
at org.kframework.utils.errorsystem.KEMException.create(KEMException.java:130)
at org.kframework.utils.errorsystem.KEMException.criticalError(KEMException.java:39)
at org.kframework.krun.KRun.externalParse(KRun.java:237)
at org.kframework.krun.KRun.parseConfigVars(KRun.java:161)
at org.kframework.krun.KRun.run(KRun.java:77)
at org.kframework.krun.KRunFrontEnd.run(KRunFrontEnd.java:95)
at org.kframework.main.FrontEnd.main(FrontEnd.java:62)
at org.kframework.main.Main.runApplication(Main.java:118)
at org.kframework.main.Main.runApplication(Main.java:108)
at org.kframework.main.Main.main(Main.java:56)
文字列引数を渡すにはどうすればよいですか?