Syntax 基于语法图调用函数而不指定返回值

Syntax 基于语法图调用函数而不指定返回值,syntax,pascal,abstract-syntax-tree,bnf,Syntax,Pascal,Abstract Syntax Tree,Bnf,从中,语句定义为: 在这个图中,我不知道如何将函数作为语句调用;调用它的唯一方法是创建一个新的临时变量,然后将所需函数作为表达式赋给它 我如何在不指定返回值的情况下调用函数?阅读规范后,我发现Pascal不支持函数语句。所以调用它们的唯一方法是使用临时变量 simple-statement = empty-statement | assignment-statement | procedure-statement | goto-statement 在阅读

从中,语句定义为:

在这个图中,我不知道如何将函数作为语句调用;调用它的唯一方法是创建一个新的临时变量,然后将所需函数作为表达式赋给它

我如何在不指定返回值的情况下调用函数?

阅读规范后,我发现Pascal不支持
函数语句
。所以调用它们的唯一方法是使用临时变量

simple-statement =
      empty-statement
    | assignment-statement
    | procedure-statement
    | goto-statement
在阅读了规范之后,我发现Pascal不支持
函数语句
。所以调用它们的唯一方法是使用临时变量

simple-statement =
      empty-statement
    | assignment-statement
    | procedure-statement
    | goto-statement

图中描述的Pascal版本显然没有任何能力将函数作为语句调用;只能调用过程(从顶部开始的第三个分支)。Pascal实现之间有很多差异,我不知道这种限制有多普遍。@jasonharper除了
ISO 7185:1990
specs之外,你知道迄今为止任何其他Pascal官方规范吗?是的。标准Pascal对函数返回值的要求很严格。如果不需要返回值,则必须使用一个过程;只能调用过程(从顶部开始的第三个分支)。Pascal实现之间有很多差异,我不知道这种限制有多普遍。@jasonharper除了
ISO 7185:1990
specs之外,你知道迄今为止任何其他Pascal官方规范吗?是的。标准Pascal对函数返回值的要求很严格。如果不需要返回值,则必须使用procedure.IIRC,将函数作为语句调用也不是早期Turbo Pascal的一部分。直到后来,函数结果才可以被丢弃。即使是现在,您仍然需要启用扩展语法来使用函数语句。@DavidHeffernan您在Turbal Pascal中所说的“EXCENT语法”是什么意思?@MiP我指的是Turbo Pascal变成的东西,DelphiLook up switch$X+IIRC,将函数作为语句调用也不是早期Turbo Pascal的一部分。直到后来,函数结果才可以被丢弃。即使现在,您仍然需要启用扩展语法才能使用函数语句。@DavidHeffernan您在Turbal Pascal中所说的“EXCENT语法”是什么意思?@MiP我指的是Turbo Pascal变成了什么,DelphiLook up switch$X+