1
PROC_DECL -> "proc" [ "ret" TYPE ] NAME
"(" [ PARAM_DECL { "," PARAM_DECL } ] ")"
"{" { DECL } { STMT } "}"
這是過程聲明的語法。在CUP中:如何使某些東西可選來解析?
How do you say該「ret」類型是可選的,沒有多個案件?
PROC_DECL -> "proc" [ "ret" TYPE ] NAME
"(" [ PARAM_DECL { "," PARAM_DECL } ] ")"
"{" { DECL } { STMT } "}"
這是過程聲明的語法。在CUP中:如何使某些東西可選來解析?
How do you say該「ret」類型是可選的,沒有多個案件?
使用另一個生產,說ret_stmt,它可以是空的或包含一個return語句使你.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。