0

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)

文字列引数を渡すにはどうすればよいですか?

4

1 に答える 1