Я хотел поэкспериментировать с языком программирования Шекспира , поэтому я скачал его с здесь и выполнил Makefile, используя cd spl-1.2.1
Make
.
Компиляция spl2c
выполняется с парой предупреждений:
scanner.l:600: warning, rule cannot be matched
<stdout>:5808: warning: ‘yyunput’ defined but not used
И затем, когда он пытается скомпилировать все примеры, все идет наперекосяк:
../spl/bin/spl2c < fibonacci.spl > fibonacci.c
Warning at line 19: equality expected
Warning at line 28: equality expected
Warning at line 30: comment expected
Warning at line 30: comment expected
Warning at line 30: comment expected
Warning at line 30: comment expected
Warning at line 32: comment expected
Warning at line 32: comment expected
Warning at line 32: comment expected
Warning at line 32: comment expected
Warning at line 34: comment expected
Warning at line 34: comment expected
Warning at line 34: comment expected
Warning at line 34: comment expected
Warning at line 36: comment expected
Warning at line 36: comment expected
Warning at line 37: comment expected
Warning at line 37: comment expected
Warning at line 37: comment expected
Warning at line 37: colon expected
Warning at line 40: equality expected
Warning at line 51: comment expected
Warning at line 51: comment expected
Warning at line 51: comment expected
Warning at line 51: comment expected
Warning at line 51: comment expected
Warning at line 51: colon expected
Error at line 59: 'act [roman number]' or 'scene [roman number]' expected
1 errors and 27 warnings found. No code output.
Кто-нибудь может указать мне правильное направление для исправления этого? Мой первоначальный проект собирался изучать spl, не опираясь на отладочные компиляторы (я бы на самом деле хотел написать свой собственный компилятор, но сейчас я предпочел бы придерживаться своего первоначального проекта).
Я бегу OS X 10.6.2
, gcc version 4.2.1 (Apple Inc. build 5646) (dot 1)
, flex 2.5.35
и bison (GNU Bison) 2.3
.
РЕДАКТИРОВАТЬ: Для простых программ, не требующих gotos (например, hello.spl), вы можете обойти проблему, удалив все строки ACT / SCENE, кроме первой ACT I / SCENE I.