2016-07-12 9 views
0

Ich habe angefangen einen Brainfuck Compiler in bash zu schreiben.
Der 'Compiler' übersetzt den Code in Assembly, um ihn unter Verwendung gcc zu kompilieren.
Das Problem ist, wenn ich versuche, es zu laufen, es diesen Fehler druckt:Fehlender Operator in einer `for` Schleife

$ ./compiler test.bf 
./compiler: Zeile 111: src: {0..45}: Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \"{0..45}\"). 

(In Englisch:

$ ./compiler test.bf 
./compiler: Line 111: src: {0..45}: Syntax Error: Operator excepted. (Causal Error Char is \"{0..45}\"). 

)

Wie ich verstehe könnte, sagt es, dass es ist ein Fehler in Zeile 111:

... 
for i in {0..${#src}}  # line 109 
do       # line 110 
    case ${src:$i:1} in  # line 111 
... 

(Hier ist die vollständige code)

Aber ich sehe keine.

Wenn die Fehlerursache für die for-Schleife ist, können Sie mir sagen, wie ein wie in Python for-Schleife zu machen:

for i in range(15): 
    ... 

Vielen Dank im Voraus

Antwort

1

Verwenden Sie den C-Stil for Schleife:

for ((i=0; i < ${#src}; i++)); do 
+0

Dank für diese Antwort, es hat mir sehr geholfen ^^ –

0

Sie keine Variablen innerhalb der verwenden können {m..n} Konstrukt; verwenden seq statt:

for i in $(seq 0 ${#src})# line 109 
do      # line 110 
    case ${src:$i:1} in # line 111