;;; -*- Mode: tdl; Coding: utf-8; -*- ;;; ;;; Copyright (c) 2012 -- 2014 Stephan Oepen (oe@ifi.uio.no); ;;; see `LICENSE' for conditions. ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; processing of the (emerging) Grammar Markup Language (GML) ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; _fix_me_ ;; to get started on bracketed inputs, we assume there are no token ambiguities ;; at this stage (which will be true when working off REPP results, but is not ;; guaranteed to be true in general, i.e. for other sources of parser input). ;; (31-oct-12; oe) gml_head_tmr := token_mapping_rule & [ +INPUT < [ +FORM ^⌊→¦([^⌊¦⌋]+)¦?([^⌊¦⌋]*)⌋$, +ID [ LIST #front, LAST #middle ] ], [ +FORM #form, +CLASS #class, +TRAIT [ +UW #uw, +LB #lb, +RB #rb ], +PRED #pred, +CARG #carg, +TNT #tnt, +ID [ LIST #middle, LAST #back ], +FROM #from, +TO #to ] >, +OUTPUT < [ +FORM #form, +CLASS #trait, +TRAIT [ +UW #uw, +LB #lb, +RB #rb, +HD [ +LL.-CTYPE- "${uc(I1:+FORM:1)}", +TG "${I1:+FORM:2}" ] ], +PRED #pred, +CARG #carg, +TNT #tnt, +ID [ LIST #front, LAST #back ], +FROM #from, +TO #to ] >, +CONTEXT < >, +POSITION "I1, +OUTPUT < [ +TRAIT #trait & [ +HD.+TI #from ] ] >, +CONTEXT < > ]. gml_default_lb_tmr := one_one_tmt & [ +INPUT < [ +FORM #form, +CLASS #class, +TRAIT [ +UW #uw, +LB anti_bracket_list, +RB #rb, +HD #hd ], +PRED #pred, +CARG #carg, +TNT #tnt ] >, +OUTPUT < [ +FORM #form, +CLASS #class, +TRAIT [ +UW #uw, +LB bracket_null, +RB #rb, +HD #hd ], +PRED #pred, +CARG #carg, +TNT #tnt ] >, +CONTEXT < > ]. gml_default_rb_tmr := one_one_tmt & [ +INPUT < [ +FORM #form, +CLASS #class, +TRAIT [ +UW #uw, +LB #lb, +RB anti_bracket_list, +HD #hd ], +PRED #pred, +CARG #carg, +TNT #tnt ] >, +OUTPUT < [ +FORM #form, +CLASS #class, +TRAIT [ +UW #uw, +LB #lb, +RB bracket_null, +HD #hd ], +PRED #pred, +CARG #carg, +TNT #tnt ] >, +CONTEXT < > ]. gml_prefix_bracket_tmr := two_one_tmt & [ +INPUT < [ +FORM ^⌊\(⌋$ ], [ +FORM #form & ^[^⌊¦⌋]+$, +CLASS #class, +TRAIT [ +UW #uw, +LB #lb, +RB #rb, +HD #hd ], +PRED #pred, +CARG #carg, +TNT #tnt ] >, +OUTPUT < [ +FORM #form, +CLASS #trait, +TRAIT [ +UW #uw, +LB < ctype . #lb >, +RB #rb, +HD #hd ], +PRED #pred, +CARG #carg, +TNT #tnt ] >, +CONTEXT < > ]. gml_suffix_bracket_tmr := two_one_tmt & [ +INPUT < [ +FORM #form & ^[^⌊¦⌋]+$, +CLASS #class, +TRAIT [ +UW #uw, +LB #lb, +RB #rb, +HD #hd ] , +PRED #pred, +CARG #carg, +TNT #tnt ], [ +FORM ^⌊\)⌋$ ] >, +OUTPUT < [ +FORM #form, +CLASS #trait, +TRAIT [ +UW #uw, +LB #lb, +RB < ctype . #rb >, +HD #hd ], +PRED #pred, +CARG #carg, +TNT #tnt ] >, +CONTEXT < > ].