意外令牌附近的Pascal语法错误

时间:2018-10-15 23:35:34

标签: syntax compiler-errors pascal

我正在尝试找出这段Pascal代码的问题

function Factorial(n: integer): integer;
begin
  if n = 0 then
    Result := 1
  else if n > 0 then
    Result := Factorial(n - 1) * n; 
end;

运行代码时出现错误 -bash:意外令牌'n:'附近的语法错误

任何人都可以知道为什么吗?我使用的是fpc(免费的pascal编译器),此代码用于其他Pascal编译器吗?

1 个答案:

答案 0 :(得分:2)

该代码在fpc中可以正常编译。

根据您引用的错误消息,如@KenWhite所说,听起来您使用的是错误的工具来尝试对其进行编译-bash是Linux的操作系统外壳,它是{{1} } 错误信息。 bash不能用于编译Pascal代码。

我建议您下载并使用Lazarus,它是fpc的免费软件IDE,可在Linux和Windows上运行。一旦在系统上安装了Lazarus,就创建一个新项目(从Lazarus的新项目类型列表中创建一个“简单项目”。然后将代码复制/粘贴到项目源的bash上方,然后保存并编译它并且您将看到Lazarus报告成功编译了该项目。

顺便说一句,代码中有一个遗漏-它仅涵盖n大于或等于零的情况,因此对于n小于零的函数,结果不确定。