gpt4 book ai didi

parsing - 在CUP : How to make something optional to parse?中

转载 作者:行者123 更新时间:2023-12-02 13:19:31 24 4
gpt4 key购买 nike

     PROC_DECL -> "proc" [ "ret" TYPE ] NAME
"(" [ PARAM_DECL { "," PARAM_DECL } ] ")"
"{" { DECL } { STMT } "}"

这是过程声明的语法。

不做多种情况,怎么说“ret”TYPE是可选的?

最佳答案

使用另一个产生式,例如 ret_stmt,它可以为空或包含单个返回语句,因此在您的 .cup 文件中您将拥有以下产生式:

ret_stmt ::= // empty 
{: /*your action for empty return statement*/ :}
// Single return statement
| "ret":r TYPE:t
{: /*your action for single return statement*/ :}

PROC_DECL ::= "proc":p ret_stmt:r NAME:n
"(" param_list:pl ")"
"{" { DECL } { STMT } "}"
{: /*your action for procedure declaration statement*/ :}

您可以使用类似的方法进行参数声明,添加生产 param_list。

关于parsing - 在CUP : How to make something optional to parse?中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15064980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com