Grammalecte  Diff

Differences From Artifact [2cfd595b69]:

To Artifact [20229cb495]:


563
564
565
566
567
568
569

570

571
572
573
574
575
576
577
563
564
565
566
567
568
569
570

571
572
573
574
575
576
577
578







+
-
+







    # removing comments, zeroing empty lines, creating definitions, storing tests, merging rule lines
    print("  parsing rules...")
    global dDEF
    lLine = []
    lRuleLine = []
    lTest = []
    lOpt = []
    zBookmark = re.compile("^!!+")
    printBookmark(0, "PASS 0: PARAGRAPH BY PARAGRAPH", 0)

    for i, sLine in enumerate(lRules, 1):
        if sLine.startswith('#END'):
            printBookmark(0, "BREAK BY #END", i)
            break
        elif sLine.startswith("#"):
            pass
        elif sLine.startswith("DEF:"):
586
587
588
589
590
591
592
593
594
595
596




597
598
599
600
601
602
603
604
587
588
589
590
591
592
593




594
595
596
597

598
599
600
601
602
603
604







-
-
-
-
+
+
+
+
-







        elif sLine.startswith("TODO:"):
            pass
        elif sLine.startswith(("OPTGROUP/", "OPTSOFTWARE:", "OPT/", "OPTLANG/", "OPTLABEL/", "OPTPRIORITY/")):
            lOpt.append(sLine)
        elif re.match("[  \t]*$", sLine):
            pass
        elif sLine.startswith("!!"):
            if sLine[2:].strip():
                printBookmark(1, sLine[2:].strip(), i)
        elif sLine.startswith("[++]"):
            printBookmark(0, "PASS 1: SENTENCE BY SENTENCE", i)
            m = zBookmark.search(sLine)
            nExMk = len(m.group(0))
            if sLine[nExMk:].strip():
                printBookmark(nExMk-2, sLine[nExMk:].strip(), i)
            lRuleLine.append([i, "[++]"])
        elif sLine.startswith(("    ", "\t")):
            lRuleLine[len(lRuleLine)-1][1] += " " + sLine.strip()
        else:
            lRuleLine.append([i, sLine.strip()])

    # generating options files
    print("  parsing options...")