-
Notifications
You must be signed in to change notification settings - Fork 82
Open
Labels
Description
Describe the bug
I want to run Rascal on the command line and include Rascal input directly in the shell script as a so-called here document. This gives a java.lang.StringIndexOutOfBoundsException in the progress bar.
To Reproduce
Define runTest.sh as:
java -Xmx1G -Xss32m -jar target/rascal-0.42.1-SNAPSHOT.jar <<EOF
import IO;
println("***");
EOF
Now run sh runTest.sh as follows:
% sh runTest.sh
[INFO] Bootstrap |std:///| = |jar+file:///Users/paulklint/git/rascal/target/rascal-0.42.1-SNAPSHOT.jar!/org/rascalmpl/library|
[INFO] Bootstrap runtime = |file:///Users/paulklint/git/rascal/target/rascal-0.42.1-SNAPSHOT.jar|
[INFO] pom.xml: Rascal version is 0.42.1-SNAPSHOT
[INFO] pom.xml: Detected Rascal project self-application
[INFO] pom.xml: Project root is |file:///Users/paulklint/git/rascal/|
[INFO] pom.xml: Bin folder is |file:///Users/paulklint/git/rascal/target/classes|
[INFO] pom.xml: Source module path is:
- |std:///|
- |file:///Users/paulklint/git/rascal/src/org/rascalmpl/compiler|
- |file:///Users/paulklint/git/rascal/src/org/rascalmpl/tutor|
- |file:///Users/paulklint/git/rascal/test/org/rascalmpl/test/data|
- |file:///Users/paulklint/git/rascal/test/org/rascalmpl/benchmark|
- |mvn://org.rascalmpl--typepal--0.16.6-RC2|
[INFO] pom.xml: Library module (and classes) path is:
- |file:///Users/paulklint/git/rascal/target/rascal-0.42.1-SNAPSHOT.jar|
java.lang.StringIndexOutOfBoundsException: begin 0, end -19, length 15
(internal error)
at $(|main:///_dollar_|)
java.lang.StringIndexOutOfBoundsException: begin 0, end -19, length 15
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
at java.base/java.lang.String.substring(String.java:1874)
at org.rascalmpl.repl.TerminalProgressBarMonitor$ProgressBar.write(TerminalProgressBarMonitor.java:408)
at org.rascalmpl.repl.TerminalProgressBarMonitor.printBars(TerminalProgressBarMonitor.java:478)
at org.rascalmpl.repl.TerminalProgressBarMonitor.jobStart(TerminalProgressBarMonitor.java:536)
at org.rascalmpl.ideservices.BasicIDEServices.jobStart(BasicIDEServices.java:125)
at org.rascalmpl.interpreter.Evaluator.jobStart(Evaluator.java:351)
at org.rascalmpl.debug.IRascalMonitor.jobStart(IRascalMonitor.java:40)
at org.rascalmpl.debug.IRascalMonitor.job(IRascalMonitor.java:101)
at org.rascalmpl.interpreter.Evaluator.eval(Evaluator.java:1065)
at org.rascalmpl.interpreter.Evaluator.eval(Evaluator.java:924)
at org.rascalmpl.interpreter.Evaluator.eval(Evaluator.java:875)
at org.rascalmpl.repl.rascal.RascalInterpreterREPL.handleInput(RascalInterpreterREPL.java:236)
at org.rascalmpl.repl.rascal.RascalReplServices.handleInput(RascalReplServices.java:109)
at org.rascalmpl.repl.BaseREPL.handleInput(BaseREPL.java:217)
at org.rascalmpl.repl.BaseREPL.run(BaseREPL.java:134)
at org.rascalmpl.shell.REPLRunner.run(REPLRunner.java:30)
at org.rascalmpl.shell.RascalShell.main(RascalShell.java:65)
rascal>|prompt:///|(0,7,<1,0>,<1,7>): Undeclared variable: println
Advice: |https://www.rascal-mpl.org/docs/Rascal/Errors/CompileTimeErrors/UndeclaredVariable|
rascal>Quiting REPL
Expected behavior
Proper execution of the print statement in the example above.
Additional context
This works well when the Rascal statement are entered manually.
Reactions are currently unavailable