在这个BNF语法中哪里匹配; 在“结束”之后

面具

阅读Pascal BNF语法,我无法理解为什么;要求end在函数定义后出现看到函数标题后function-blockblock可能会出现:

 function-declaration =
    function-heading ";" function-body |
    function-heading ";" directive |
    function-identification ";" function-body . 
function-body =
    block . 

begin出现时,它statement-par是的一部分,是块的一部分,它由处理statement-part,对吗?

 block =
    declaration-part statement-part . 
 statement-part =
    begin statement-sequence end .

注意statement-part关键字;之后没有end关键字,它也不是的一部分statement-sequence因此,我不知道编译器如何声称缺少;afterend关键字,如以下示例所示:

function myabs(i : integer) : integer;
begin
     if i < 0 then begin i := -i; end; < -- it's process by statement-sequence, so, ';' may appear
     myabs := i;
end; <-- it is the semicolon what about I'm speaking

我想念什么?我读错了语法吗?如果我忽略了所有我尝试过的Pascal编译器,都会给出一个错误。

伦纳特·雷杰布罗

结束后不必使用分号。就那么简单。

分号用于分隔语句。因此,如果不是最后一条语句,则只需要在结束后加上分号即可。如果是最后一条语句,则应改为句号。

现在,BNF中可能还存在一些错误,这意味着根据BNF,您不必在实际需要的地方使用分号,但找出这一点的唯一方法是分析整个BFN细节,我觉得这不是建设性的。:-)

但是在这种情况下,我认为您错过的是过程或函数声明必须以分号结尾

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在这个BNF语法中哪里匹配; 在“结束”之后

来自分类Dev

'在这个applescript中,行尾不能跟在这个“””之后

来自分类Dev

每行代码结束之后,开发人员工具中的== $ 0是什么?

来自分类Dev

每行代码结束之后,开发人员工具中的== $ 0是什么?

来自分类Dev

如果结束字符串与给定字符串匹配,则在破折号之后删除字符串

来自分类Dev

在这个简单的示例中,在componentDidMount()之后无法使用findDOMNode()找到“ ref”

来自分类Dev

在消息框之后结束子程序

来自分类Dev

如何在java中结束这个语句

来自分类Dev

正确匹配语法突出显示中的开始和结束大括号

来自分类Dev

在SQL Server中结束过程创建的语法

来自分类Dev

Verilog中的语法错误即将结束

来自分类Dev

如何确定日期是否在周期结束之后

来自分类Dev

在开始睡眠(或直到脚本结束)之后,对象输出的怪异延迟

来自分类Dev

for循环之后执行的代码,在结束循环之前执行

来自分类Dev

为什么length属性在JavaScript的结束标记之后出现

来自分类Dev

Excel VBA-while语句仅在with语句之后结束

来自分类Dev

在选择开始日期之后设置结束日期

来自分类Dev

Fullcalendar SQL获取事件,该事件在视图开始之前开始,在视图结束之后结束

来自分类Dev

将 phpcs 配置为在结束括号之后和结束括号之前禁止空格

来自分类Dev

我在这个 SPARQL 查询中的错误在哪里?

来自分类Dev

这个循环将如何结束

来自分类Dev

这个循环将如何结束

来自分类Dev

我如何结束这个循环

来自分类Dev

在Python中结束评论

来自分类Dev

终端中的转义(结束)

来自分类Dev

在R中结束“ +”提示

来自分类Dev

设计中的会议结束

来自分类Dev

OpenSSH:如何结束匹配块

来自分类Dev

语法错误:bash中的文件意外结束错误

Related 相关文章

  1. 1

    在这个BNF语法中哪里匹配; 在“结束”之后

  2. 2

    '在这个applescript中,行尾不能跟在这个“””之后

  3. 3

    每行代码结束之后,开发人员工具中的== $ 0是什么?

  4. 4

    每行代码结束之后,开发人员工具中的== $ 0是什么?

  5. 5

    如果结束字符串与给定字符串匹配,则在破折号之后删除字符串

  6. 6

    在这个简单的示例中,在componentDidMount()之后无法使用findDOMNode()找到“ ref”

  7. 7

    在消息框之后结束子程序

  8. 8

    如何在java中结束这个语句

  9. 9

    正确匹配语法突出显示中的开始和结束大括号

  10. 10

    在SQL Server中结束过程创建的语法

  11. 11

    Verilog中的语法错误即将结束

  12. 12

    如何确定日期是否在周期结束之后

  13. 13

    在开始睡眠(或直到脚本结束)之后,对象输出的怪异延迟

  14. 14

    for循环之后执行的代码,在结束循环之前执行

  15. 15

    为什么length属性在JavaScript的结束标记之后出现

  16. 16

    Excel VBA-while语句仅在with语句之后结束

  17. 17

    在选择开始日期之后设置结束日期

  18. 18

    Fullcalendar SQL获取事件,该事件在视图开始之前开始,在视图结束之后结束

  19. 19

    将 phpcs 配置为在结束括号之后和结束括号之前禁止空格

  20. 20

    我在这个 SPARQL 查询中的错误在哪里?

  21. 21

    这个循环将如何结束

  22. 22

    这个循环将如何结束

  23. 23

    我如何结束这个循环

  24. 24

    在Python中结束评论

  25. 25

    终端中的转义(结束)

  26. 26

    在R中结束“ +”提示

  27. 27

    设计中的会议结束

  28. 28

    OpenSSH:如何结束匹配块

  29. 29

    语法错误:bash中的文件意外结束错误

热门标签

归档