什么是Naur Text-Processing

时间:2017-05-25 06:30:11

标签: algorithm

有人可以用外行的方式向我解释 Naur文字处理规则的内容吗?我无法理解规则的含义,例如逐行格式换行符

1 个答案:

答案 0 :(得分:1)

想象一下,你有一个文字,比如说

  

Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do   eiusmod tempor incididunt ut labore et dolore magna aliqua。\ n ent   ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut   aliquip ex ea commodo consequat。 Duis aute irure dolor in   代表性的velitate velit esse cillum dolore eu fugiat nulla   pariatur。 Excepteur sint occaecat cupidatat non proident,sunt in   culpa qui officia deserunt mollit anim id est laborum。

该文字包含三种种字符:

  1. 空格(
  2. 换行符(\n
  3. 字母(所有其他字符:字母,数字,标点符号......)
  4. 您必须以最有效的方式将给定文本拆分 (您希望获得尽可能少的行),但拆分必须符合限制:

    1. 新行字符\n 必须开始新行
    2. 可以拆分文本并在空间上开始新行
    3. 每行最多可包含 <{em> MaxPos(给定常量)字符。
    4. MaxPos = 30上面的示例中,我们可以拆分为

         Lorem ipsum dolor sit amet, 
         consectetur adipiscing elit, 
         sed do eiusmod tempor 
         incididunt ut labore et 
         dolore magna aliqua.\n      <- \n New Line must break; we can't add "Ut" in the line
         Ut enim ad minim veniam,
         ...
      

      这些拆分打破了规则,以及无效的原因

         Lorem ipsum dolor sit amet, consectetur <- The line is too long, exceeds MaxPos = 30
         ...
      
         Lorem ipsum dolor sit amet, 
         consectetur adipiscing elit, 
         sed do eiusmod tempor incidi <- wrong split: we can split on spaces only
         dunt
         ... 
      
         Lorem ipsum dolor sit amet, 
         consectetur adipiscing elit, 
         sed do eiusmod tempor 
         incididunt ut labore et 
         dolore magna aliqua.\nUt enim <- \n (New Line) must start a new line
         ad minim veniam, quis nostrud
         ...