iXML Community Group Test Suite

23 Oct 2023 (22 Nov 2023)

Top-level catalog for tests in the iXML Community Group Test Suite.

Tests have been contributed from several sources, but the core of the test collection are the tests contributed by Steven Pemberton in December 2021.

Tests producing parse trees

22 Nov 2022

Tests provided by Steven Pemberton in December 2021, with corrections of 21 December. Reorganized by Norm Tovey-Walsh, February 2022.

version-decl

Created 27 May 2022 by MSM

Invisible XML Grammar

ixml version "1.0".

S = 'abc', done
  ; [#00BF], 'x', [], 'x?'
  ; [#00BF], 'y', []+, 'y?'
  ; [#00A1], 'z', []?, 'z!'
  ; [#00A1], 'w', []*, 'w!'

  ; 'v', ~[], 'v'
  ; 'u', ~[]+, 'u'
  ; 't', ~[]?, 't'
  ; 's', ~[]*, 's'
.

done = [#1F63A].

Test case: Grammar test

Repository URI: …/tests/correct/test-catalog.xml

Expected result

<ixml>
   <prolog>
      <version string="1.0"/>
   </prolog>
   <rule name="S">
      <alt>
         <literal string="abc"/>
         <nonterminal name="done"/>
      </alt>
      <alt>
         <inclusion>
            <member hex="00BF"/>
         </inclusion>
         <literal string="x"/>
         <inclusion/>
         <literal string="x?"/>
      </alt>
      <alt>
         <inclusion>
            <member hex="00BF"/>
         </inclusion>
         <literal string="y"/>
         <repeat1>
            <inclusion/>
         </repeat1>
         <literal string="y?"/>
      </alt>
      <alt>
         <inclusion>
            <member hex="00A1"/>
         </inclusion>
         <literal string="z"/>
         <option>
            <inclusion/>
         </option>
         <literal string="z!"/>
      </alt>
      <alt>
         <inclusion>
            <member hex="00A1"/>
         </inclusion>
         <literal string="w"/>
         <repeat0>
            <inclusion/>
         </repeat0>
         <literal string="w!"/>
      </alt>
      <alt>
         <literal string="v"/>
         <exclusion/>
         <literal string="v"/>
      </alt>
      <alt>
         <literal string="u"/>
         <repeat1>
            <exclusion/>
         </repeat1>
         <literal string="u"/>
      </alt>
      <alt>
         <literal string="t"/>
         <option>
            <exclusion/>
         </option>
         <literal string="t"/>
      </alt>
      <alt>
         <literal string="s"/>
         <repeat0>
            <exclusion/>
         </repeat0>
         <literal string="s"/>
      </alt>
   </rule>
   <rule name="done">
      <alt>
         <inclusion>
            <member hex="1F63A"/>
         </inclusion>
      </alt>
   </rule>
</ixml>