Execute CopyPasta Language: Difference between revisions
Added FreeBASIC
(Added Wren) |
(Added FreeBASIC) |
||
(6 intermediate revisions by 5 users not shown) | |||
Line 16:
|}
<br>
=={{header|11l}}==
{{trans|Python}}
<syntaxhighlight lang="11l">:start:
V source = File(:argv[1]).read()
V lines = source.split("\n")
V clipboard = ‘’
V loc = 0
L loc < lines.len
V command = lines[loc].trim(‘ ’)
X.try
I (command == ‘Copy’)
clipboard ‘’= lines[loc + 1]
E I (command == ‘CopyFile’)
I (lines[loc + 1] == ‘TheF*ckingCode’)
clipboard ‘’= source
E
V filetext = File(lines[loc + 1]).read()
clipboard ‘’= filetext
E I (command == ‘Duplicate’)
clipboard ‘’= clipboard * ((Int(lines[loc + 1])) - 1)
E I (command == ‘Pasta!’)
print(clipboard)
L.break
E
exit(‘unknown command '’command‘' encountered on line ’(loc + 1))
X.catch
exit(‘error while executing command '’command‘' on line ’(loc + 1))
loc += 2</syntaxhighlight>
=={{header|C++}}==
{{trans|Nanoquery}}
<
#include <iostream>
#include <sstream>
Line 151 ⟶ 186:
// return in case we never hit a 'Pasta!' statement
return 0;
}</
The following files were used for testing:
Line 213 ⟶ 248:
usage: ./copypasta [filename.cp]
</pre>
=={{header|FreeBASIC}}==
Building on Python and Phix solution
<syntaxhighlight lang="vbnet">' Rosetta Code problem: https://rosettacode.org/wiki/Execute_CopyPasta_Language
' by Jjuanhdez, 05/2024
#define isNumeric(s) Iif(Val(s) = 0 And s <> "0", False, True)
Const As String prog1_cp = "Copy" & Chr(10) & "Rosetta Code" & Chr(10) & "Duplicate" & Chr(10) & "2" & Chr(10) & "Pasta!" & Chr(10) & "La Vista"
Const As String prog2_cp = "CopyFile" & Chr(10) & "pasta.txt" & Chr(10) & "Duplicate" & Chr(10) & "1" & Chr(10) & "Pasta!"
Const As String prog3_cp = "Copy" & Chr(10) & "Invalid" & Chr(10) & " Duplicate" & Chr(10) & "1" & Chr(10) & "Goto" & Chr(10) & "3" & Chr(10) & "Pasta!"
Const As String prog4_cp = "CopyFile" & Chr(10) & "TheF*ckingCode" & Chr(10) & "Duplicate" & Chr(10) & "2" & Chr(10) & "Pasta!"
Const As String prog5_cp = "Copy" & Chr(10) & "Rosetta Code" & Chr(10) & "Duplicate" & Chr(10) & "A" & Chr(10) & "Pasta!"
Const As String doesntexist_cp = ""
Const As String pasta_txt = "The pasta.txt file."
Dim Shared As String prog
Dim Shared As String fake_files(1 To 7)
Dim Shared As String fake_texts(1 To 7)
fake_files(1) = "prog1.cp"
fake_files(2) = "prog2.cp"
fake_files(3) = "prog3.cp"
fake_files(4) = "prog4.cp"
fake_files(5) = "prog5.cp"
fake_files(6) = "doesntexist.cp"
fake_files(7) = "pasta.txt"
fake_texts(1) = prog1_cp
fake_texts(2) = prog2_cp
fake_texts(3) = prog3_cp
fake_texts(4) = prog4_cp
fake_texts(5) = prog5_cp
fake_texts(6) = doesntexist_cp
fake_texts(7) = pasta_txt
Function GetFileLines(Byval filename As String) As String
Dim As String lines, source, linea
Dim As Integer i = 0, k
For k = Lbound(fake_files) To Ubound(fake_files)
If filename = fake_files(k) Then
source = Iif(Command() = "", fake_texts(k), prog)
lines = ""
While i <= Len(source)
linea = ""
While i <= Len(source) And Mid(source, i, 1) <> Chr(10)
linea &= Mid(source, i, 1)
i += 1
Wend
lines &= Trim(linea) & Chr(10)
i += 1
Wend
Exit For
End If
Next
Return lines
End Function
Sub Interpret(Byval filename As String)
Dim As String linea, tmp, cmd, arg
Dim As String pgm = GetFileLines(filename)
Dim As String clipboard = ""
Dim As Integer pc = 1, l = 0
Print "interpret(" & filename & "):"
Do
If pc >= Len(pgm) Then
Print "No Pasta! Sucha mistaka to maka"
Exit Sub
End If
cmd = Trim(Mid(pgm, pc, Instr(pc, pgm, Chr(10)) - pc))
arg = Mid(pgm, pc + Len(cmd) + 1, Instr(pc + Len(cmd) + 1, pgm, Chr(10)) - pc - Len(cmd) - 1)
Select Case cmd
Case "Copy"
clipboard &= arg
l += 4
Case "CopyFile"
Dim As Integer fileNumber = Freefile
If arg = "TheF*ckingCode" Then
Open filename For Input As #fileNumber
Else
Open arg For Input As #fileNumber
If Err > 0 Then Print "Error: Could not open file "; arg
End If
Do While Not Eof(fileNumber)
Line Input #fileNumber, linea
tmp &= linea & Chr(10)
Loop
Close #fileNumber
clipBoard &= tmp
l += 2
Case "Duplicate"
If Not isNumeric(arg) Then
Print "Line " & l & ": wrong number of repetitions."
Exit Do
End If
tmp = ""
For i As Integer = 1 To Val(arg)
tmp &= clipboard
Next
clipboard &= tmp
l += 2
Case "Pasta!"
Print clipboard
Exit Sub
Case ""
pc -= 1
Case Else
Print "Line " & l & ": unknown command """ & cmd & """"
Exit Sub
End Select
pc += Len(cmd) + Len(arg) + 2
Loop
End Sub
Sub Main()
Dim As String cad, cl = Command()
Dim As Integer ff = Freefile
If cl <> "" Then
If Open(cl For Input As #ff) = 0 Then
While Not Eof(ff)
Line Input #ff, cad
prog &= Trim(cad) & Chr(10)
Wend
Close #ff
Else
Print "Error: Could not open file "; cl
Exit Sub
End If
Interpret(cl)
Else
For i As Integer = Lbound(fake_files) To Ubound(fake_files)-1
Interpret("prog" & (i) & ".cp")
Print
Next
End If
End Sub
Main()
Sleep</syntaxhighlight>
{{out}}
<pre>interpret(prog1.cp):
Rosetta CodeRosetta CodeRosetta Code
interpret(prog2.cp):
I'm the pasta.txt file.
I'm the pasta.txt file.
interpret(prog3.cp):
Line 6: unknown command "Goto"
interpret(prog4.cp):
CopyFile
TheF*ckingCode
Duplicate
2
Pasta!
CopyFile
TheF*ckingCode
Duplicate
2
Pasta!
CopyFile
TheF*ckingCode
Duplicate
2
Pasta!
interpret(prog5.cp):
Line 4: wrong number of repetitions.
interpret(prog6.cp):
Error: Could not open file doesntexist.cp</pre>
=={{header|Go}}==
Line 236 ⟶ 447:
8. When the program is about to end and the contents of the clipboard have (when appropriate) been printed out, the clipboard should be cleared.
<
package main
Line 325 ⟶ 536:
err = clipboard.WriteAll("") // clear clipboard
check(err)
}</
{{out}}
Line 379 ⟶ 590:
=={{header|Java}}==
{{trans|Nanoquery}}
<
import java.nio.file.Files;
import java.util.ArrayList;
Line 463 ⟶ 674:
}
}
}</
The following files were used for testing:
Line 527 ⟶ 738:
=={{header|Julia}}==
<
function interpretCopyPasta()
clipboard = String[]
Line 566 ⟶ 777:
interpretCopyPasta()
</
If run on the following CopyPasta "code" file:
<pre>
Line 608 ⟶ 819:
=={{header|Nanoquery}}==
<
def fatal_error(errtext)
println "%" + errtext
Line 661 ⟶ 872:
// increment past the command and the next line
loc += 2
end</
The following files were used for testing:
Line 723 ⟶ 934:
usage: copypasta.nq [filename.cp]
</pre>
=={{header|Nim}}==
<syntaxhighlight lang="nim">import os, strutils
type CopyPastaError = object of CatchableError
template raiseError(message: string, linenum = 0) =
let prefix = if linenum != 0: "Line $1: ".format(linenum) else: ""
raise newException(CopyPastaError, prefix & message)
proc copyPasta() =
## Load and execute a program.
var clipboard: string
if paramCount() != 1:
echo "usage: ", getAppFilename().lastPathPart, " filename.cp"
quit QuitFailure
let path = paramStr(1)
let code = try: path.readFile()
except IOError: raiseError("Unable to read file “$1”.".format(path))
let lines = code.splitLines()
var linenum = 1 # Starting at index one for line number.
while linenum <= lines.len:
let command = lines[linenum - 1].strip()
case command
of "Copy":
if linenum == lines.len: raiseError("missing string to copy.", linenum)
clipboard.add lines[linenum]
of "CopyFile":
if linenum == lines.len: raiseError("missing file to copy from.", linenum)
let fpath = lines[linenum]
if fpath == "TheF*ckingCode":
clipboard.add code
else:
let text = try: fpath.readFile()
except IOError: raiseError("unable to read file “$1”.".format(fpath), linenum)
clipboard.add text
of "Duplicate":
if linenum == lines.len: raiseError("missing number of repetitions.", linenum)
let n = try: lines[linenum].parseInt()
except: raiseError("wrong number of repetitions.", linenum + 1)
clipboard.add repeat(clipboard, n)
of "Pasta!":
stdout.write clipboard
break
of "": # Empty mine: skip.
inc linenum
continue
else:
raiseError("unknown command “$1”.".format(command), linenum)
inc linenum, 2
try:
copyPasta()
except CopyPastaError:
quit getCurrentExceptionMsg(), QuitFailure</syntaxhighlight>
{{out}}
<strong>File “prog1.cp”:</strong>
<pre>Copy
Rosetta Code
Duplicate
2
Pasta!</pre>
Result:
<pre>Rosetta CodeRosetta CodeRosetta Code</pre>
<strong>File “prog2.cp”:</strong>
<pre>CopyFile
pasta.txt
Duplicate
1
Pasta!</pre>
Result:
<pre>I'm the pasta.txt file.
I'm the pasta.txt file.</pre>
<strong>File “prog3.cp”:</strong>
<pre>Copy
Invalid
Duplicate
1
Goto
3
Pasta!</pre>
Result:
<pre>Line 6: unknown command “Goto”.</pre>
<strong>File “prog4.cp”:</strong>
<pre>CopyFile
TheF*ckingCode
Pasta!</pre>
Result:
<pre>CopyFile
TheF*ckingCode
Pasta!</pre>
<strong>File “prog5.cp”:</strong>
<pre>Copy
Rosetta code
Duplicate
A
Pasta!</pre>
Result:
<pre>Line 4: wrong number of repetitions.</pre>
=={{header|Perl}}==
<
use warnings;
use feature 'say';
Line 760 ⟶ 1,085:
}
unlink 'pasta.txt';</
{{out}}
<pre>Rosetta Code
Line 778 ⟶ 1,103:
If run without command-line parameters it fakes four runs.<br>
Assumes if clipboard is "hello ", Duplicate 2 should leave it as "hello hello hello ".
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">prog1_cp</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
Copy
Rosetta Code
Duplicate
2
Pasta!
La Vista
"""</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">prog2_cp</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
CopyFile
pasta.txt
Duplicate
1
Pasta!
"""</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">prog3_cp</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
Copy
Invalid
Duplicate
1
Goto
3
Pasta!
"""</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">pasta_txt</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
I'm the pasta.txt file.
"""</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">fake_files</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"prog1.cp"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"prog2.cp"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"prog3.cp"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"pasta.txt"</span><span style="color: #0000FF;">},</span>
<span style="color: #000000;">fake_texts</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span> <span style="color: #000000;">prog1_cp</span> <span style="color: #0000FF;">,</span> <span style="color: #000000;">prog2_cp</span> <span style="color: #0000FF;">,</span> <span style="color: #000000;">prog3_cp</span> <span style="color: #0000FF;">,</span> <span style="color: #000000;">pasta_txt</span> <span style="color: #0000FF;">}</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">get_file_lines</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">filename</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">lines</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">k</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">filename</span><span style="color: #0000FF;">,</span><span style="color: #000000;">fake_files</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">k</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">lines</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">split</span><span style="color: #0000FF;">(</span><span style="color: #000000;">fake_texts</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">],</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">,</span><span style="color: #004600;">false</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">elsif</span> <span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()=</span><span style="color: #004600;">JS</span>
<span style="color: #008080;">or</span> <span style="color: #7060A8;">get_file_type</span><span style="color: #0000FF;">(</span><span style="color: #000000;">filename</span><span style="color: #0000FF;">)!=</span><span style="color: #004600;">FILETYPE_FILE</span> <span style="color: #008080;">then</span>
<span style="color: #7060A8;">crash</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"file not found:%s"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">filename</span><span style="color: #0000FF;">})</span>
<span style="color: #008080;">else</span>
<span style="color: #000000;">lines</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">get_text</span><span style="color: #0000FF;">(</span><span style="color: #000000;">filename</span><span style="color: #0000FF;">,</span><span style="color: #004600;">GT_LF_STRIPPED</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">lines</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">procedure</span> <span style="color: #000000;">interpret</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">filename</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"\ninterpret(%s):\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">filename</span><span style="color: #0000FF;">})</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">pgm</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">get_file_lines</span><span style="color: #0000FF;">(</span><span style="color: #000000;">filename</span><span style="color: #0000FF;">)&{</span><span style="color: #008000;">""</span><span style="color: #0000FF;">}</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">clipboard</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">""</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">pc</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
<span style="color: #008080;">while</span> <span style="color: #004600;">true</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">pc</span><span style="color: #0000FF;">>=</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pgm</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span> <span style="color: #7060A8;">crash</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"No Pasta! Sucha mistaka to maka"</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">cmd</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">trim</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pgm</span><span style="color: #0000FF;">[</span><span style="color: #000000;">pc</span><span style="color: #0000FF;">]),</span> <span style="color: #000000;">arg</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">pgm</span><span style="color: #0000FF;">[</span><span style="color: #000000;">pc</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span>
<span style="color: #008080;">switch</span> <span style="color: #000000;">cmd</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">case</span> <span style="color: #008000;">"Copy"</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">clipboard</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">arg</span><span style="color: #0000FF;">&</span><span style="color: #008000;">"\n"</span>
<span style="color: #008080;">case</span> <span style="color: #008000;">"CopyFile"</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">clipboard</span> <span style="color: #0000FF;">&=</span> <span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">=</span><span style="color: #008000;">"TheF*ckingCode"</span><span style="color: #0000FF;">?</span><span style="color: #000000;">pgm</span><span style="color: #0000FF;">:</span><span style="color: #000000;">get_file_lines</span><span style="color: #0000FF;">(</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">)),</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">case</span> <span style="color: #008000;">"Duplicate"</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">clipboard</span> <span style="color: #0000FF;">&=</span> <span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">repeat</span><span style="color: #0000FF;">(</span><span style="color: #000000;">clipboard</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">to_integer</span><span style="color: #0000FF;">(</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">)),</span><span style="color: #008000;">""</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">case</span> <span style="color: #008000;">"Pasta!"</span><span style="color: #0000FF;">:</span> <span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">clipboard</span><span style="color: #0000FF;">);</span> <span style="color: #008080;">return</span>
<span style="color: #008080;">case</span> <span style="color: #008000;">""</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">pc</span> <span style="color: #0000FF;">-=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">;</span> <span style="color: #008080;">break</span> <span style="color: #000080;font-style:italic;">-- (skip blank lines [w/o arg])</span>
<span style="color: #008080;">else</span> <span style="color: #7060A8;">crash</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"unknown command: %s on line %d"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">cmd</span><span style="color: #0000FF;">,</span><span style="color: #000000;">pc</span><span style="color: #0000FF;">})</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">switch</span>
<span style="color: #000000;">pc</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">2</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #008080;">procedure</span> <span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">cl</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">command_line</span><span style="color: #0000FF;">()</span>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cl</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">2</span> <span style="color: #008080;">then</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">4</span> <span style="color: #008080;">do</span>
<span style="color:
<span style="color: #000000;">interpret</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"prog%d.cp"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">))</span>
<span style="color: #008080;">catch</span> <span style="color: #000000;">e</span>
<span style="color: #0000FF;">?</span><span style="color: #000000;">e</span><span style="color: #0000FF;">[</span><span style="color: #004600;">E_USER</span><span style="color: #0000FF;">]</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">try</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #008080;">elsif</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cl</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">3</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">interpret</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cl</span><span style="color: #0000FF;">[</span><span style="color: #000000;">3</span><span style="color: #0000FF;">])</span>
<span style="color: #008080;">else</span>
<span style="color: #7060A8;">crash</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"usage: CopyPasta filename"</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
<!--</syntaxhighlight>-->
{{out}}
<pre>
Line 879 ⟶ 1,208:
=={{header|Python}}==
{{trans|Nanoquery}}
<
# a function to handle fatal errors
Line 929 ⟶ 1,258:
# increment past the command and the next line
loc += 2
</syntaxhighlight>
The following files were used for testing:
Line 994 ⟶ 1,323:
=={{header|Raku}}==
(formerly Perl 6)
<syntaxhighlight lang="raku"
my @code = $code.split("\n")>>.trim.grep: *.so;
return "Program never ends!" unless grep { $_ eq 'Pasta!' }, @code;
Line 1,022 ⟶ 1,351:
"Copy\nRosetta Code\nDuplicate\n2\n\nPasta";
unlink 'pasta.txt';</
{{out}}
<pre>Rosetta Code
Line 1,038 ⟶ 1,367:
=={{header|Wren}}==
{{trans|Go}}
<
import "io" for File
Line 1,091 ⟶ 1,420:
}
var s = File.read(args[0])
interpret.call(s)</
{{out}}
Line 1,099 ⟶ 1,428:
=={{header|zkl}}==
<
pasta:=File(srcNm).read().howza(11); // zkl pastaprog.cp, stripped lines
foreach line in (pasta){
Line 1,130 ⟶ 1,459:
}catch(TheEnd){ error(w,"Error: End of file: ") }
catch{ error(w,wantInt and "Not an int: " or "Error: ") }
}</
Input programs:
<pre style="height:15ex">
|