DELIMITERS = "<.>" "<!>" "<?>" "<...>" ;

SETS

LIST N = n;
LIST Adj = adj;
LIST Adv = adv;
LIST Verb = vblex;
LIST Vbser = vbser;
LIST Prn = prn;
LIST MaleNoun = (n m);
LIST FemaleNoun = (n f);
LIST NorPrn = n prn;

LIST Sg = sg;
LIST Pl = pl;
LIST P1 = p1;
LIST P2 = p2;
LIST P3 = p3;
LIST M = m;
LIST F = f;

SECTION

# NOUN

# Select noun if preceded by an adjective.
SELECT N IF (0 N) (0 Verb) (-1 Adj) ;


# Adjective

# Select adjective if followed by a noun.
SELECT Adj IF (0 Adj) (0 Adv) (1 N);


# Adverb

# Select adverb if followed by a verb.
SELECT Adv IF (0 Adj) (0 Adv) (1 Verb);


# VERBS

# Select verb if preceded by an adverb.
SELECT Verb IF (0 N) (0 Verb) (-1 Adv) ;

# Prefer singular for verbs if preceded by a singular noun or pronoun
SELECT Sg IF (0 Verb) (-1* (NorPrn sg));

# Prefer plural for verbs if preceded by a plural noun or pronoun
SELECT Pl IF (0 Verb) (-1* (NorPrn pl));

# Prefer 1st person for verbs if preceded by a 1st person noun or pronoun
SELECT P1 IF (0 Verb) (-1* (NorPrn p1));

# Prefer 2nd person for verbs if preceded by a 2nd person noun or pronoun
SELECT P2 IF (0 Verb) (-1* (NorPrn p2));

# Prefer 3rd person for verbs if preceded by a 3rd person noun or pronoun
SELECT P3 IF (0 Verb) (-1* (NorPrn p3));

# Prefer masculine for verbs if preceded by a masculine noun or pronoun
SELECT M IF (0 Verb) (-1* (NorPrn m));

# Prefer feminine for verbs if preceded by a feminine noun or pronoun
SELECT F IF (0 Verb) (-1* (NorPrn f));


# Resources:
# http://visl.sdu.dk/cg3.html
# http://groups.google.com/group/constraint-grammar
# http://kevindonnelly.org.uk/2010/05/constraint-grammar-tutorial/
# https://wiki.apertium.org/wiki/Constraint_Grammar
# https://wiki.apertium.org/wiki/Apertium_and_Constraint_Grammar