Attribute-Value Structures (AVS)

Enter attribute-value structures A and B with units separated by spaces:
A: B:
  1. The examples are deliberately simple and do not reflect any particular mainstream theory.
  2. The attribute-value structures represent tree-graphs, and have the following syntax, expressed as a hybrid BNF rule and regular expression (see also the examples provided):
    'AVS := [ ( attribute ( atom | AVS ) )* ]',
    where '[' and ']' are plain characters, '(' and ')' are grouping symbols, '|' is the exclusive or operator, and '*' is the Kleene star.
  3. Attributes and values always occur pairwise. A corrective is included in case as value value is missing (i.e. if there is not an even number of elements in an AVS): an additional attribute name is added.
  4. Input:
    1. The only permitted characters are alphanumerics, spaces and square brackets, and for visual (but not formal) separation also '-' and '+'. Other characters are filtered out.
    2. Atoms (attributes or atomic values) must be separated by white spaces. Otherwise as much white space can be used as needed for visual convenience.
    3. The length of strings which can be transmitted to the server is limited. In the present case, the the field is 100 characters in length, but the character string should scroll to 600 characters, which will be sufficient for most demonstration purposes. However, note that some web servers do not support the transmission of such long input strings.
  5. Output:
    1. The output is formatted with square brackets '[' and ']' delimiting the AVS, attributes in upper case, atom values in lower case, colon ':' as a separator between attributes and values.
    2. Differences: either contradictory (marked with '!'), or in A and not in B, or in B and not in A.