2016-07-12 6 views
0

Я начал писать компилятор brainfuck в bash.
«Компилятор» переводит код, чтобы скомпилировать его, используя gcc.
Проблема заключается в том, когда я пытаюсь запустить его, он выводит сообщение об ошибке:Отсутствует оператор в цикле `for`

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

(на английском языке:

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

)

Как я мог понять, он говорит, что является ошибкой в ​​строке 111:

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

(Полный текст code)

Но я не вижу.

Если ошибка причина для цикла, вы можете сказать мне, как сделать цикл, как в Python:

for i in range(15): 
    ... 

Заранее спасибо

ответ

1

Используйте С-стиль for цикл:

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

Спасибо за этот ответ, это помогло много ^^ –

0

Вы не можете использовать переменные внутри {m..n} конструкция; использовать seq вместо:

for i in $(seq 0 ${#src})# line 109 
do      # line 110 
    case ${src:$i:1} in # line 111 
Смежные вопросы