;English Grammar ;Determiners (D,att,%x)(NB,%y):=(%y,+att=%x); (N,%x)(D,att,AFT,%y):=(%x,+att=%y); (ANUM,ORD,%y)(NB,%x):=(XB(%x;%y,+adjt,+mod),+NB,%z); (D,att,%x)([of])(NP,%y):=(%y,+att=%x); (D,att,%x)(NP,%y):=(%y,+att=%x); (NPR,%x)([of])(NP,%y):=(qua(%y;%x),LEX=N,XP=NP); (ANUM,%x)(HYPHEN)(N,%y):=(qua(%y;%x),LEX=J,XP=JP); (@pl,{@multal|@paucal|@all|@both}):=(-@pl); ;Degree (J,CMP):=(-CMP,+att=@more); (J,SUP):=(-SUP,+att=@most); ;Quantifiers (ANUM,^ORD,%y)(NB,%x):=(XB(%x;%y,+adjt,+qua),+NB,%z); ;Possessive (POD,%x)(NB,%y):=(XP(%y;%x,+spec,+pos),+LEX=N,+XP=NP,%z); (N,%x)([of])(SPR,%y):=(XB(%x;%y,+adjt,+pos),%z); (N,%x)(PTC,GNT)(N,%y):=(XB(%y;%x,+adjt,+pos),%z); ([whose],%x)(N,%y):=(XB(%y;%x,+adjt,+pos),%z); ;Intensifiers (SAV,att,%x)({AB|JB|DB},%y):=(%y,+att=%x); (SAV,^att,%x)({AB|JB|DB},%y):=(XB(%y;%x,+adjt,+man),%z); ([almost])(XB,%x):=(%x,+att=@almost); (XB,%x)([again]):=(%x,+att=@iterative); ({AB|JB},%x)([enough]):=(%x,+att=@enough); ([as])({AP|JP},%x)([as])({AP|JP},%x):=(XB(%x,+att=@equal;%y,+adjt,+bas,+att=@as),%z); ;Relative pronouns (NB,%x)(RPR)(VB,%y):=(%x)(XP(%y;%x,+spec),+att=@relative); (NB,%x)(RPR)(NP,%y)(VB,%z):=(%x)(XP(XB(%z,+att=@relative;%x,+comp);%y,+spec)); ;Copula VC(%x,COP;%y)VA(%x;%z):=VC(%x;%y)VA(%y;%z); VC(%x,COP;%y)VS(%x;%z):=aoj(%y,+att=%x;%z); ;Tense and aspect ([to])(BLK)(V,%x):=(%x,+INF); (AUX,PRS)(V,GER,%x):=(+TNS,+ASP,+att=@present,+att=@progressive,%x); (AUX,PAS)(V,GER,%x):=(+TNS,+ASP,+att=@past,+att=@progressive,%x); (AUX,PTP,%x)(V,GER,%y):=(-GER,+ASP,+PTP,+att=@progressive,+att=%x,%y); (AUX,INF,%x)(V,GER,%y):=(+ASP,+att=@progressive,+att=%x,%y); ({[will]|['ll]|[won't]},%x)([have])(V,PTP,%y):=(+TNS,+ASP,+att=@future,+att=@anterior,+att=%x,%y); ({[would]|['d]|[wouldn't]},%x)([have])(V,PTP,%y):=(+TNS,+ASP,+att=@past,+att=@posterior,+att=@perfective,+att=%x,%y); ({[have]|[has]|['ve]|[hasn't]|[haven't]},%x)(V,PTP,%y):=(+TNS,+ASP,+att=@present,+att=@perfect,+att=%x,%y); ({[had]|['d]|[hadn't]},%x)(V,PTP,%y):=(+TNS,+ASP,+att=@past,+att=@anterior,+att=%x,%y); ({[will]|['ll]|[won't]},%x)(V,INF,%y):=(+TNS,+att=@future,+att=%x,%y); ({[would]|['d]|[wouldn't]},%x)(V,INF,%y):=(+TNS,+ASP,+att=@past,+att=@posterior,+att=%x,%y); ([going to])(V,INF,%y):=(+ASP,-INF,+att=@recent,+att=@future,%y); ([used to])(V,INF,%y):=(+ASP,-INF,+att=@habitual,%y); ([just])(V,%x):=(+ASP,+att=@recent,%x); ({[did]|[didn't]},%x)(V,INF,%y):=(+TNS,+att=%x,%y); (^AUX,^" ")({^AUX|COP},PRS,^TNS,^N):=()(+TNS,+att=@present); (^AUX,^" ")({^AUX|COP},PAS,^TNS):=()(+TNS,+att=@past); ;Modality (MOV,%x)(V,%y):=(%y,+att=%x); ;Aspect ([still])({V|J},%x):=(%x,+att=@continuative); ([already])({V|J},%x):=(%x,+att=@perfective); ({V|J},%x)([already]):=(%x,+att=@perfective); ;Prepositions ([from])(%x,XP)([on]):=(%x,-LEX,-XP,+LEX=P,+XP=PP,+adjt,+rel=man,+att=@from_on); (P,^PP,%x)(XP,^DP,^PP,%y)({XP|PUT|STAIL|CTAIL},%z):=(%y,-LEX,-XP,+LEX=P,+XP=PP,+adjt,+rel=%x,+att=%x)(%z); ;Number (N,PLR):=(-PLR,+att=@pl); (N,PLRT):=(-PLRT,+att=@pl); ;Numbers ;Cardinals ({SHEAD|CHEAD|^BLK,^ANUM},%x)([a],%z)({"hundred"|"thousand"|"million"|"billion"|"trillion"},%y):=(%x)("1",[1],[[1]],U,CDN,ANUM,%w)(%y); ({SHEAD|CHEAD|^BLK,^ANUM,^[a]},%x)({"hundred"|"thousand"|"million"|"billion"|"trillion"},%y):=(%x)("1",[1],[[1]],U,CDN,ANUM,%y); (ANUM,%x)(HYPHEN)(ANUM,%y):=(%x)(%y); (ANUM,%x)([and])(ANUM,%y):=(%x)(%y); (ANUM,%x)(COMMA,%y)(ANUM,%z):=(%x&%z); (ANUM,%x)(PUT,PERCENTAGE,%y):=(%x&%y,-PUT); (ANUM,%x)(FSLASH,%y)(ANUM,%z):=(%x&%y&%z,-FSLASH,+FRACTION); (ANUM,%x)(PERIOD,%y)(ANUM,%z,^DECIMAL):=(%x&%y&%z,-PUT,-PERIOD,+DECIMAL); (ANUM,%x)([point],%y)(ANUM,%z):=(ANUM,%x)(".",[[.]],PERIOD,%w)(ANUM,%z); (ANUM,MILLION,%x)({^ANUM,^BLK,^PUT,^[and]|STAIL|CTAIL},%y):=(%x)([[0]],[0],"0",THOUSAND,ANUM)(%y); (ANUM,MILLION,%x)(ANUM,^THOUSAND,%y)({^ANUM,^U,^BLK|STAIL|CTAIL},%z):=(%x)([[0]],[0],"0",THOUSAND,ANUM)(%y)(%z); ({SHEAD|CHEAD|^BLK,^ANUM},%x)(ANUM,MILLION,%y)(ANUM,THOUSAND,^000,%z):=(%x)(%y)([[0]],[0],"0",0,ANUM)(%z); ({SHEAD|CHEAD|^BLK,^ANUM},%x)(ANUM,MILLION,%y)(ANUM,THOUSAND,000,%z):=(%x)(%y&%z,-MILLION); (ANUM,BILLION,%x)({^ANUM,^BLK,^PUT,^[and]|STAIL|CTAIL},%y):=(%x)([[0]],[0],"0",MILLION,ANUM)(%y); (ANUM,BILLION,%x)(ANUM,^MILLION,%y)({^ANUM,^U,^BLK|STAIL|CTAIL},%z):=(%x)([[0]],[0],"0",MILLION,ANUM)(%y)(%z); ({SHEAD|CHEAD|^BLK,^ANUM},%x)(ANUM,BILLION,%y)(ANUM,MILLION,^000,%z):=(%x)(%y)([[0]],[0],"0",0,ANUM)(%z); ({SHEAD|CHEAD|^BLK,^ANUM},%x)(ANUM,BILLION,%y)(ANUM,MILLION,000,%z):=(%x)(%y&%z,-BILLION); (ANUM,TRILLION,%x)({^ANUM,^BLK,^PUT,^[and]|STAIL|CTAIL},%y):=(%x)([[0]],[0],"0",BILLION,ANUM)(%y); (ANUM,TRILLION,%x)(ANUM,^BILLION,%y)({^ANUM,^U,^BLK|STAIL|CTAIL},%z):=(%x)([[0]],[0],"0",BILLION,ANUM)(%y)(%z); ({SHEAD|CHEAD|^BLK,^ANUM},%x)(ANUM,TRILLION,%y)(ANUM,BILLION,^000,%z):=(%x)(%y)([[0]],[0],"0",0,ANUM)(%z); ({SHEAD|CHEAD|^BLK,^ANUM},%x)(ANUM,TRILLION,%y)(ANUM,BILLION,000,%z):=(%x)(%y&%z,-TRILLION); ([0],0,%x)(ANUM,^00,^000,%y):=(%x&%y,-0,+00); ([0],0,%x)(ANUM,00,^000,%y):=(%x&%y,-0,-00,+000); (ANUM,THOUSAND,%x)({^ANUM,^BLK,^PUT,^[and]|STAIL|CTAIL},%y):=(%x)([[0]],[0],"0",HUNDRED,ANUM)(%y); (ANUM,THOUSAND,%x)(ANUM,^HUNDRED,%y)({^[hundred],^BLK|STAIL|CTAIL},%z):=(%x)([[0]],[0],"0",HUNDRED,ANUM)(%y)(%z); ({SHEAD|CHEAD|^BLK,^ANUM},%z)(ANUM,THOUSAND,%x)(ANUM,HUNDRED,%y):=(%z)(%x&%y,-THOUSAND); ({SHEAD|CHEAD|^BLK},%z)(ANUM,HUNDRED,%x)({^ANUM,^BLK,^PUT,^[and]|ANUM,^DOZEN,^00|STAIL|CTAIL},%y):=(%z)(%x)([[0]],[0],"0",DOZEN,ANUM)(%y); ({SHEAD|CHEAD|^BLK},%z)(ANUM,HUNDRED,%x)(ANUM,00,%y):=(%z)(%x&%y,-HUNDRED,-00,+000); ({SHEAD|CHEAD|^BLK},%z)(ANUM,DOZEN,%x)({^ANUM,^BLK,^PUT,^[and]|"thousand"|"million"|"billion"|"trillion"|STAIL|CTAIL},%y):=(%z)(%x)([[0]],[0],"0",ANUM)(%y); ({SHEAD|CHEAD|^BLK},%z)(ANUM,DOZEN,%x)(ANUM,%y):=(%z)(%x&%y,-DOZEN,+00); (ANUM,%x)("trillion"):=(%x,+TRILLION); (ANUM,%x)("billion"):=(%x,+BILLION); (ANUM,%x)("million"):=(%x,+MILLION); (ANUM,%x)("thousand"):=(%x,+THOUSAND); (ANUM,%x)("hundred"):=(%x,+HUNDRED); ;Ordinals ({ANUM|CDN},%x)([st]):=(%x,ORD,att=@ordinal); ({ANUM|CDN},%x)([nd]):=(%x,ORD,att=@ordinal); ({ANUM|CDN},%x)([rd]):=(%x,ORD,att=@ordinal); ({ANUM|CDN},%x)([th]):=(%x,ORD,att=@ordinal); (ORD,%x)([s]):=(%x); ;Fractions ([a],%a)(ANUM,ORD,%x)([of],%y):=("1",[[1]],ANUM,CDN,%b)(%x)(%y); ([a])(BLK)([half]):=("1/2",[[1/2]],[1/2],U,ANUM,PTN,W); (ANUM,CDN,%x)({[half]|[halves]},%y):=(%x)("2",[2],[[2]],U,ANUM,ORD,%z); (ANUM,CDN,%x)({[quarter]|[quarters]},%y):=(%x)("4",[4],[[4]],U,ANUM,ORD,%z); (ANUM,CDN,%x)(ANUM,PTN,%y):=(%x)(" ",[ ],[[ ]],JOIN,%w)(%y); (ANUM,CDN,%x)(JOIN,%y)(ANUM,PTN,%z):=(%x&%y&%z,-CDN,-JOIN); (ANUM,CDN,%x)(ANUM,ORD,%y):=(%x)("/",[[/]])(%y); (ANUM,CDN,%x)("/",%z)(ANUM,ORD,%y):=(%x&%z&%y,-CDN,-ORD,+PTN); (PTN,%x)([of]):=(%x); (PTN,@ordinal):=(-@ordinal); ;Others (ANUM,%x)({[s]|['s]},I):=(%x,-ANUM,-TEMP,+W,+LEX=N,att=@pl); (ANUM,%x)("times"):=(%x,+@times,+A,+AAV); (U,^DOZEN,^HUNDRED,^THOUSAND,^MILLION,^BILLION,^TRILLION,^ORD,^PTN,%x)(U,^DOZEN,^HUNDRED,^THOUSAND,^MILLION,^BILLION,^TRILLION,^ORD,^PTN,%y)({^ANUM,^BLK|STAIL|CTAIL},%z):=(%x&%y)(%z); ;Negation ({[not]|[n't]})(%x,^TEMP,^BLK):=(+att=@not,%x); ;Auxiliaries ({[do]|[does]})(V,%x):=(%x,+TNS,+att=@present); ;Conjunctions ;Complementizers (%x,V)(CMR)(VP,%y):=(XB(%x;%y,+comp,+rel=obj); ;Adverbializers (AVR,%x)(XP,%y):=(%y,-LEX,-XP,+LEX=C,+XP=CP,+adjt,+att=%x,+rel=%x); ;Correlative ([both])(NP,%x)([and])(NP,%y):=(XB(%x;%y,+adjt,+att=@and,+rel=and),+LEX=N,+XP=NP,,%z); ([either])(NP,%x)([or])(NP,%y):=(XB(%x;%y,+adjt,+att=@or,+rel=or),+LEX=N,+XP=NP,,%z); ([neither])(NP,%x)([nor])(NP,%y):=(XB(%x;%y,+adjt,+att=@and,+rel=and),+LEX=N,+XP=NP,,%z); ([not only])(NP,%x)([but also])(P,%y):=(XB(%x;%y,+adjt,+att=@and,+rel=and),+LEX=N,+XP=NP,%z); ([whether])(NP,%x)([or])(NP,%y):=(XB(%x;%y,+adjt,+att=@or,+rel=or),+LEX=N,+XP=NP,%z); ;Coordination (NP,%x)(COMMA,%c)(NP,%y)({[and]|[nor]})(NP,%z):=(%x)([and],+W,%a)(and(%z;%y),+LEX=N,+XP=NP,%yz); (VP,%x)(COMMA,%c)(VP,%y)({[and]|[nor]})(VP,%z):=(%x)([and],+W,%a)(and(%z;%y),+LEX=V,+XP=VP,%yz); (AP,%x)(COMMA,%c)(AP,%y)({[and]|[nor]})(AP,%z):=(%x)([and],+W,%a)(and(%z;%y),+LEX=A,+XP=AP,%yz); (JP,%x)(COMMA,%c)(JP,%y)({[and]|[nor]})(JP,%z):=(%x)([and],+W,%a)(and(%z;%y),+LEX=J,+XP=JP,%yz); (PP,%x)(COMMA,%c)(PP,%y)({[and]|[nor]})(PP,%z):=(%x)([and],+W,%a)(and(%z;%y),+LEX=P,+XP=PP,%yz); (NP,%x)(COMMA,%c)(NP,%y)([or])(NP,%z):=(%x)([or],+W,%a)(or(%z;%y),+LEX=N,+XP=NP,%yz); (VP,%x)(COMMA,%c)(VP,%y)([or])(VP,%z):=(%x)([or],+W,%a)(or(%z;%y),+LEX=V,+XP=VP,%yz); (AP,%x)(COMMA,%c)(AP,%y)([or])(AP,%z):=(%x)([or],+W,%a)(or(%z;%y),+LEX=A,+XP=AP,%yz); (JP,%x)(COMMA,%c)(JP,%y)([or])(JP,%z):=(%x)([or],+W,%a)(or(%z;%y),+LEX=J,+XP=JP,%yz); (PP,%x)(COMMA,%c)(PP,%y)([or])(PP,%z):=(%x)([or],+W,%a)(or(%z;%y),+LEX=P,+XP=PP,%yz); (VP,%x)({[and]|[nor]|COMMA})(VP,%y):=(and(%y;%x),+LEX=V,+XP=VP,%xy); (NP,%x)({[and]|[nor]|COMMA})(NP,%y):=(and(%y;%x),+LEX=N,+XP=NP,%xy); (AP,%x)({[and]|[nor]|COMMA})(AP,%y):=(and(%y;%x),+LEX=A,+XP=AP,%xy); (JP,%x)({[and]|[nor]|COMMA})(JP,%y):=(and(%y;%x),+LEX=J,+XP=JP,%xy); (PP,%x)({[and]|[nor]|COMMA})(PP,%y):=(and(%y;%x),+LEX=P,+XP=PP,%xy); (VP,%x)([or])(VP,%y):=(or(%y;%x),+LEX=V,+XP=VP,%xy); (NP,%x)([or])(NP,%y):=(or(%y;%x),+LEX=N,+XP=NP,%xy); (AP,%x)([or])(AP,%y):=(or(%y;%x),+LEX=A,+XP=AP,%xy); (JP,%x)([or])(JP,%y):=(or(%y;%x),+LEX=J,+XP=JP,%xy); (PP,%x)([or])(PP,%y):=(or(%y;%x),+LEX=P,+XP=PP,%xy); or(%a;and(%b1;%b2),%b):=or(%a;or(%b1;%b2),%b); ({^[and],^[nor],^[or],^COMMA,^BLK|SHEAD|CHEAD},%p)(XP,%x)(COMMA)(XP,%y)({^[and],^[nor],^[or],^COMMA,^BLK|STAIL|CTAIL},%s):=(%p)(%x)(%y)(%s); ;Pronouns (VB,%x)(FPR):=(%x,+att=@reflexive); (VB,%x)(CPR):=(%x,+att=@reciprocal); aoj(%x,SPR;%y):=pos(%y;%x); ;Syntactic structures (N,%y)(NB,%x)({XP|STAIL|CTAIL},%z):=(XB(%x,+att=%y;%y,-att,+adjt),+XB=NB,+LEX=N,%xy)(%z); ;Hours (ANUM,%x,^TIME)(":",%a)(ANUM,%y,^TIME)(":",%b)(ANUM,%z,^TIME):=(%x&%a&%y&%b&%z,+TIME,-HOUR,-MINUTE,-SECOND); (ANUM,%x,^TIME)(":",%a)(ANUM,%y,^TIME)({STAIL|CTAIL|^":"},%z):=(%x)(%a)(%y)(":")([[00]],+ANUM)(%z); (ANUM,%x)(BLK)({"s"|"sec"|"secs"|"second"|"seconds"}):=(%x,+SECOND); (ANUM,%x)(BLK)({"m"|"min"|"minute"|"minutes"}):=(%x,+MINUTE); (ANUM,%x)(BLK)({"h"|"hr"|"hour"|"hours"|"o'clock"}):=(%x,+HOUR); ({SHEAD|CHEAD|^MINUTE,^ANUM,^BLK,^":"},%x)(SECOND,%y):=(%x)([[00]],+ANUM,+MINUTE)(%y); ({SHEAD|CHEAD|^HOUR,^ANUM,^BLK,^":"},%x)(MINUTE,%y):=(%x)([[00]],+ANUM,+HOUR)(%y); (MINUTE,%x)({STAIL|CTAIL|^SECOND,^ANUM,^BLK,^":"},%y):=(%x)([[00]],+ANUM,+SECOND,%z)(%y); (HOUR,%x)({STAIL|CTAIL|^MINUTE,^ANUM,^BLK,^":"},%y):=(%x)([[00]],+ANUM,+MINUTE,%z)(%y); (HOUR,%x)(MINUTE,%y)(SECOND,%z):=(%x)(":")(%y)(":")(%z); (HOUR,%x)(":",%a)(MINUTE,%y)(":",%b)(SECOND,%z):=(%x&%a&%y&%b&%z,+TIME,-HOUR,-MINUTE,-SECOND); (ANUM,%x)([past])(ANUM,%y):=(%y,+HOUR)(%x,+MINUTE); (ANUM,%x)([to])(ANUM,%y):=(%y,+HOUR)(%x,+MINUTE); ([half])([an])([hour]):=([[30]],+ANUM,+MINUTE); ([half],%x)([past])(ANUM,%y):=(%y,+HOUR)([[30]],+ANUM,+MINUTE); ([a])(BLK)([quarter])(BLK)([past])(BLK)(ANUM,%y):=(%y,+HOUR)([[15]],+ANUM,+MINUTE); ([a])(BLK)([quarter])(BLK)([to])(BLK)(ANUM,%y):=(%y,+HOUR)([[45]],+ANUM,+MINUTE); ;Dates (YEAR,%x)({BC|AD|CE},%y):=(%x&%y); (MONTH,%x){(COMMA)|("")}("/([01][0-9])?[0-9][0-9]/",^YEAR,%y):=(%x)(%y,+YEAR); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"january"|"jan"}):=(%x,+DAY)([[1]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"february"|"feb"}):=(%x,+DAY)([[2]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"march"|"mar"}):=(%x,+DAY)([[3]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"april"|"apr"}):=(%x,+DAY)([[4]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"may"|"may"}):=(%x,+DAY)([[5]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"june"|"jun"}):=(%x,+DAY)([[6]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"july"|"jul"}):=(%x,+DAY)([[7]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"august"|"aug"}):=(%x,+DAY)([[8]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"september"|"sep"}):=(%x,+DAY)([[9]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"october"|"oct"}):=(%x,+DAY)([[10]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"november"|"nov"}):=(%x,+DAY)([[11]],+ANUM,+MONTH); (ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}({"december"|"dec"}):=(%x,+DAY)([[12]],+ANUM,+MONTH); ({"january"|"jan"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[1]],+ANUM,+MONTH); ({"february"|"feb"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[2]],+ANUM,+MONTH); ({"march"|"mar"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[3]],+ANUM,+MONTH); ({"april"|"apr"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[4]],+ANUM,+MONTH); ({"may"|"may"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[5]],+ANUM,+MONTH); ({"june"|"jun"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[6]],+ANUM,+MONTH); ({"july"|"jul"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[7]],+ANUM,+MONTH); ({"august"|"aug"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[8]],+ANUM,+MONTH); ({"september"|"sep"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[9]],+ANUM,+MONTH); ({"october"|"oct"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[10]],+ANUM,+MONTH); ({"november"|"nov"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[11]],+ANUM,+MONTH); ({"december"|"dec"})(ANUM,%x){({"st"|"nd"|"rd"|"th"})|("")}:=(%x,+DAY)([[12]],+ANUM,+MONTH); (DAY,%x)(MONTH,%y)(YEAR,%z):=(%x)("/")(%y)("/")(%z); (DAY,%x)("/",%a)(MONTH,%y)("/",%b)(YEAR,%z):=(%x&%a&%y&%b&%z,+DATE,-DAY,-MONTH,-YEAR); (DAY,%x)(MONTH,%y)({STAIL|CTAIL|^ANUM,^YEAR,^"/"}):=(%x)("/")(%y); (DAY,%x)("/",%a)(MONTH,%y):=(%x&%a&%y,+DATE,-DAY,-MONTH); ;Measures ;Punctuation (BLK):=; (XP,%x)(QMARK):=(%x,att=@interrogative); (XP,%x)(EMARK):=(%x,att=@exclamative); ;Proper Names (PPN,%a)(BLK,%b)(PPN,%c):=(%a&%b&%c,+TEMP,-BLK);