如何使用逃生序列打印新线路



因此,我正在编写一个使用BNF语法生成句子的程序。假设我有一个语法文件:

<s>::=<np> <vp> 
<np>::=<dp> <adjp> <n>|<pn> 
<dp>::=the|a      
<adjp>::=<adj>|<adj> <adjp> 
<adj>::=big|fat|green|wonderful|faulty|subliminal|pretentious 
<n>::=dog|cat|man|university|father|mother|child|television 
<pn>::=John|Jane|Sally|Spot|Fred|Elmo 
<vp>::=<tv> <np>|<iv> 
<tv>::=hit|honored|kissed|helped 
<iv>::=died|collapsed|laughed|wept

我要求它打印一个随机的句子,它会选择一个选项,假设它,然后说它选择了约翰。然后我们之所以完成,是因为我们撞到了一个终端,然后去了。说它去了,然后选择笑了。我们会被约翰笑的句子。

我想做的就是添加p。意思是段落。我的段落公式将是

的线条
<p>::=<s> n <s> | <p>

我希望该 n以新行的形式出现,而是我的程序将其在终端中打印为 n,而不是将其视为逃生序列!我的程序要做的是,它将其插入每个令牌,如果它是终端,则将其变成一个字符串。为什么不起作用?注意:我无法显示我程序的实现详细信息。

<new_line> ::= 'x0A'

然后您可以使用

我可以修改我的程序以在bnf行中读取为char []数组。这将允许其解释逃生序列。然后,我可以将字符阵列转换为字符串并将其打印出来。我希望这对遇到类似问题的任何人有帮助。

最新更新