Blob Blame History Raw
# morphological combination rules for words of the form
# a^m b^n c^m | a^m b^n c^n

initial <>, rules r1;

combi_rule r1( $state, $link ):
  require $link = A;
  $state :=+ <A>;
  result $state, rules r1, r2;
end;

combi_rule r2( $state, $link ):
  require $link = B;
  $state :=+ <B>;
  result $state, rules r2, r3, r4;
end;

combi_rule r3( $state, $link ):
  require $link = C and $state.1L = A;
  $state :=- 1L;
  result $state, rules r3, finish;
end;

combi_rule r4( $state, $link ):
  require $link = C and $state.1R = B;
  $state :=- 1R;
  result $state, rules r4, finish;
end;
  
end_rule finish( $state ):
  require $state.1L = $state.1R;
  result nil, accept;
end finish;

# end of file =================================================================