From aa7dbd1f8545fd7f293862b390bf1127d44c7826 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 16 Oct 2024 18:08:59 +0300 Subject: [PATCH 1/2] Exclude ligatures for [_|_] [_,_|_] [ _|_ ] [ _, _|_ ] from underscores lookup --- FiraCode.glyphs | 2 +- features/calt/underscores.fea | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/FiraCode.glyphs b/FiraCode.glyphs index a9fef028d8..37efda56bd 100644 --- a/FiraCode.glyphs +++ b/FiraCode.glyphs @@ -205,7 +205,7 @@ name = zero; notes = "Zero with a dot inside"; }, { -code = "lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub less.spacer bar.spacer greater' by less_bar_greater.liga;\012 sub less.spacer bar' greater by bar.spacer;\012 sub less' bar greater by less.spacer;\012} less_bar_greater;\012\012lookup bar_bar_bar_greater {\012 ignore sub bar bar' bar bar greater;\012 ignore sub bar' bar bar greater greater;\012 sub bar.spacer bar.spacer bar.spacer greater' by bar_bar_bar_greater.liga;\012 sub bar.spacer bar.spacer bar' greater by bar.spacer;\012 sub bar.spacer bar' bar greater by bar.spacer;\012 sub bar' bar bar greater by bar.spacer;\012} bar_bar_bar_greater;\012\012lookup less_bar_bar_bar {\012 ignore sub less less' bar bar bar;\012 ignore sub less' bar bar bar bar;\012 sub less.spacer bar.spacer bar.spacer bar' by less_bar_bar_bar.liga;\012 sub less.spacer bar.spacer bar' bar by bar.spacer;\012 sub less.spacer bar' bar bar by bar.spacer;\012 sub less' bar bar bar by less.spacer;\012} less_bar_bar_bar;\012\012lookup bar_bar_greater {\012 ignore sub bar bar' bar greater;\012 ignore sub bar' bar greater greater;\012 ignore sub less bar' bar greater;\012 sub bar.spacer bar.spacer greater' by bar_bar_greater.liga;\012 sub bar.spacer bar' greater by bar.spacer;\012 sub bar' bar greater by bar.spacer;\012} bar_bar_greater;\012\012lookup less_bar_bar {\012 ignore sub less less' bar bar;\012 ignore sub less' bar bar bar;\012 ignore sub less' bar bar greater;\012 sub less.spacer bar.spacer bar' by less_bar_bar.liga;\012 sub less.spacer bar' bar by bar.spacer;\012 sub less' bar bar by less.spacer;\012} less_bar_bar;\012\012lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub bar.spacer greater' by bar_greater.liga;\012 sub bar' greater by bar.spacer;\012} bar_greater;\012\012lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub less.spacer bar' by less_bar.liga;\012 sub less' bar by less.spacer;\012} less_bar;\012\012lookup bar_bar_bar {\012 ignore sub bar bar' bar bar;\012 ignore sub bar' bar bar bar;\012 sub bar.spacer bar.spacer bar' by bar_bar_bar.liga;\012 sub bar.spacer bar' bar by bar.spacer;\012 sub bar' bar bar by bar.spacer;\012} bar_bar_bar;\012\012lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 ignore sub [asterisk plus dollar] greater' greater greater;\012 sub greater.spacer greater.spacer greater' by greater_greater_greater.liga;\012 sub greater.spacer greater' greater by greater.spacer;\012 sub greater' greater greater by greater.spacer;\012} greater_greater_greater;\012\012lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 ignore sub less' less less [asterisk plus dollar];\012 sub less.spacer less.spacer less' by less_less_less.liga;\012 sub less.spacer less' less by less.spacer;\012 sub less' less less by less.spacer;\012} less_less_less;\012\012lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 ignore sub [hyphen equal] bar' bar;\012 ignore sub bar' bar hyphen;\012 ignore sub bar' bar equal [equal less greater bar colon exclam slash];\012 sub bar.spacer bar' by bar_bar.liga;\012 sub bar' bar by bar.spacer;\012} bar_bar;\012\012lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 ignore sub [asterisk plus dollar] greater' greater;\012 ignore sub [hyphen equal] greater' greater;\012 ignore sub greater' greater hyphen;\012 ignore sub greater' greater equal [equal less greater bar colon exclam slash];\012 sub greater.spacer greater' by greater_greater.liga;\012 sub greater' greater by greater.spacer;\012} greater_greater;\012\012lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 ignore sub less' less [asterisk plus dollar];\012 ignore sub [hyphen equal] less' less;\012 ignore sub less' less hyphen;\012 ignore sub less' less equal [equal less greater bar colon exclam slash];\012 sub less.spacer less' by less_less.liga;\012 sub less' less by less.spacer;\012} less_less;\012\012lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 ignore sub parenleft question less' exclam hyphen hyphen;\012 sub less.spacer exclam.spacer hyphen.spacer hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub less.spacer exclam.spacer hyphen' hyphen by hyphen.spacer;\012 sub less.spacer exclam' hyphen hyphen by exclam.spacer;\012 sub less' exclam hyphen hyphen by less.spacer;\012} less_exclam_hyphen_hyphen;\012\012lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub asciitilde.spacer asciitilde.spacer greater' by asciitilde_asciitilde_greater.liga;\012 sub asciitilde.spacer asciitilde' greater by asciitilde.spacer;\012 sub asciitilde' asciitilde greater by asciitilde.spacer;\012} asciitilde_asciitilde_greater;\012\012lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 ignore sub slash asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk slash;\012 sub asterisk.spacer asterisk.spacer asterisk' by asterisk_asterisk_asterisk.liga;\012 sub asterisk.spacer asterisk' asterisk by asterisk.spacer;\012 sub asterisk' asterisk asterisk by asterisk.spacer;\012} asterisk_asterisk_asterisk;\012\012lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 ignore sub parenleft question colon' colon colon;\012 ignore sub colon' colon colon [less greater];\012 ignore sub [less greater] colon' colon colon;\012 sub colon.spacer colon.spacer colon' by colon_colon_colon.liga;\012 sub colon.spacer colon' colon by colon.spacer;\012 sub colon' colon colon by colon.spacer;\012} colon_colon_colon;\012\012lookup colon_colon_equal {\012 ignore sub colon colon' colon equal;\012 ignore sub colon' colon equal equal;\012 ignore sub parenleft question colon' colon equal;\012 sub colon.spacer colon.spacer equal' by colon_colon_equal.liga;\012 sub colon.spacer colon' equal by colon.spacer;\012 sub colon' colon equal by colon.spacer;\012} colon_colon_equal;\012\012lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 ignore sub parenleft question equal' equal equal;\012 ignore sub parenleft question less equal' equal equal;\012 ignore sub less question equal' equal equal;\012 ignore sub bracketleft equal' equal equal;\012 ignore sub equal' equal equal bracketright;\012 ignore sub equal [colon exclam] equal' equal equal;\012 ignore sub [less greater bar slash] equal' equal equal;\012 ignore sub equal' equal equal [less greater bar slash];\012 ignore sub equal' equal equal [colon exclam] equal;\012 sub equal.spacer equal.spacer equal' by equal_equal_equal.liga;\012 sub equal.spacer equal' equal by equal.spacer;\012 sub equal' equal equal by equal.spacer;\012} equal_equal_equal;\012\012lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 ignore sub parenleft question exclam' equal equal;\012 ignore sub parenleft question less exclam' equal equal;\012 ignore sub equal exclam' equal equal;\012 sub exclam.spacer equal.spacer equal' by exclam_equal_equal.liga;\012 sub exclam.spacer equal' equal by equal.spacer;\012 sub exclam' equal equal by exclam.spacer;\012} exclam_equal_equal;\012\012lookup exclam_exclam_period {\012 ignore sub exclam exclam' exclam period;\012 ignore sub exclam' exclam period period;\012 ignore sub parenleft question exclam' exclam period;\012 ignore sub parenleft question less exclam' exclam period;\012 sub exclam.spacer exclam.spacer period' by exclam_exclam_period.liga;\012 sub exclam.spacer exclam' period by exclam.spacer;\012 sub exclam' exclam period by exclam.spacer;\012} exclam_exclam_period;\012\012lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub less.spacer asciitilde.spacer asciitilde' by less_asciitilde_asciitilde.liga;\012 sub less.spacer asciitilde' asciitilde by asciitilde.spacer;\012 sub less' asciitilde asciitilde by less.spacer;\012} less_asciitilde_asciitilde;\012\012lookup less_asciitilde_greater {\012 ignore sub less less' asciitilde greater;\012 ignore sub less' asciitilde greater greater;\012 sub less.spacer asciitilde.spacer greater' by less_asciitilde_greater.liga;\012 sub less.spacer asciitilde' greater by asciitilde.spacer;\012 sub less' asciitilde greater by less.spacer;\012} less_asciitilde_greater;\012\012lookup less_asterisk_greater {\012 sub less.spacer asterisk.spacer greater' by less_asterisk_greater.liga;\012 sub less.spacer asterisk' greater by asterisk.spacer;\012 sub less' asterisk greater by less.spacer;\012} less_asterisk_greater;\012\012lookup less_dollar_greater {\012 sub less.spacer dollar.spacer greater' by less_dollar_greater.liga;\012 sub less.spacer dollar' greater by dollar.spacer;\012 sub less' dollar greater by less.spacer;\012} less_dollar_greater;\012\012lookup less_plus_greater {\012 sub less.spacer plus.spacer greater' by less_plus_greater.liga;\012 sub less.spacer plus' greater by plus.spacer;\012 sub less' plus greater by less.spacer;\012} less_plus_greater;\012\012lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub less.spacer slash.spacer greater' by less_slash_greater.liga;\012 sub less.spacer slash' greater by slash.spacer;\012 sub less' slash greater by less.spacer;\012} less_slash_greater;\012\012lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub numbersign.spacer underscore.spacer parenleft' by numbersign_underscore_parenleft.liga;\012 sub numbersign.spacer underscore' parenleft by underscore.spacer;\012 sub numbersign' underscore parenleft by numbersign.spacer;\012} numbersign_underscore_parenleft;\012\012lookup period_period_equal {\012 ignore sub period period' period equal;\012 ignore sub period' period equal equal;\012 sub period.spacer period.spacer equal' by period_period_equal.liga;\012 sub period.spacer period' equal by period.spacer;\012 sub period' period equal by period.spacer;\012} period_period_equal;\012\012lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub period.spacer period.spacer less' by period_period_less.liga;\012 sub period.spacer period' less by period.spacer;\012 sub period' period less by period.spacer;\012} period_period_less;\012\012lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub period.spacer period.spacer period' by period_period_period.liga;\012 sub period.spacer period' period by period.spacer;\012 sub period' period period by period.spacer;\012} period_period_period;\012\012lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub plus.spacer plus.spacer plus' by plus_plus_plus.liga;\012 sub plus.spacer plus' plus by plus.spacer;\012 sub plus' plus plus by plus.spacer;\012} plus_plus_plus;\012\012lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub slash.spacer slash.spacer slash' by slash_slash_slash.liga;\012 sub slash.spacer slash' slash by slash.spacer;\012 sub slash' slash slash by slash.spacer;\012} slash_slash_slash;\012\012lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub w.spacer w.spacer w' by w_w_w.liga;\012 sub w.spacer w' w by w.spacer;\012 sub w' w w by w.spacer;\012} w_w_w;\012\012lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub ampersand.spacer ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by ampersand.spacer;\012} ampersand_ampersand;\012\012lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub asciicircum.spacer equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by asciicircum.spacer;\012} asciicircum_equal;\012\012lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub asciitilde.spacer asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by asciitilde.spacer;\012} asciitilde_asciitilde;\012\012lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub asciitilde.spacer at' by asciitilde_at.liga;\012 sub asciitilde' at by asciitilde.spacer;\012} asciitilde_at;\012\012lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub asciitilde.spacer greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by asciitilde.spacer;\012} asciitilde_greater;\012\012lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub asciitilde.spacer hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by asciitilde.spacer;\012} asciitilde_hyphen;\012\012lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 ignore sub slash asterisk' asterisk;\012 ignore sub asterisk' asterisk slash;\012 sub asterisk.spacer asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by asterisk.spacer;\012} asterisk_asterisk;\012\012lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub asterisk.spacer greater' by asterisk_greater.liga;\012 sub asterisk' greater by asterisk.spacer;\012} asterisk_greater;\012\012lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 ignore sub slash asterisk' slash;\012 ignore sub asterisk' slash asterisk;\012 sub asterisk.spacer slash' by asterisk_slash.liga;\012 sub asterisk' slash by asterisk.spacer;\012} asterisk_slash;\012\012lookup bar_braceright {\012 ignore sub bar bar' braceright;\012 ignore sub bar' braceright braceright;\012 ignore sub braceleft bar' braceright;\012 sub bar.spacer braceright' by bar_braceright.liga;\012 sub bar' braceright by bar.spacer;\012} bar_braceright;\012\012lookup bar_bracketright {\012 ignore sub bar bar' bracketright;\012 ignore sub bar' bracketright bracketright;\012 ignore sub bracketleft bar' bracketright;\012 sub bar.spacer bracketright' by bar_bracketright.liga;\012 sub bar' bracketright by bar.spacer;\012} bar_bracketright;\012\012lookup braceleft_bar {\012 ignore sub braceleft braceleft' bar;\012 ignore sub braceleft' bar bar;\012 ignore sub braceleft' bar braceright;\012 sub braceleft.spacer bar' by braceleft_bar.liga;\012 sub braceleft' bar by braceleft.spacer;\012} braceleft_bar;\012\012lookup bracketleft_bar {\012 ignore sub bracketleft bracketleft' bar;\012 ignore sub bracketleft' bar bar;\012 ignore sub bracketleft' bar bracketright;\012 sub bracketleft.spacer bar' by bracketleft_bar.liga;\012 sub bracketleft' bar by bracketleft.spacer;\012} bracketleft_bar;\012\012lookup bracketright_numbersign {\012 ignore sub bracketright bracketright' numbersign;\012 ignore sub bracketright' numbersign numbersign;\012 sub bracketright.spacer numbersign' by bracketright_numbersign.liga;\012 sub bracketright' numbersign by bracketright.spacer;\012} bracketright_numbersign;\012\012lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 ignore sub parenleft question colon' colon;\012 ignore sub colon' colon [less greater];\012 ignore sub [less greater] colon' colon;\012 sub colon.spacer colon' by colon_colon.liga;\012 sub colon' colon by colon.spacer;\012} colon_colon;\012\012lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 ignore sub parenleft question colon' equal;\012 ignore sub equal colon' equal;\012 sub colon.spacer equal' by colon_equal.liga;\012 sub colon' equal by colon.spacer;\012} colon_equal;\012\012lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub dollar.spacer greater' by dollar_greater.liga;\012 sub dollar' greater by dollar.spacer;\012} dollar_greater;\012\012lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 ignore sub parenleft question equal' equal;\012 ignore sub parenleft question less equal' equal;\012 ignore sub less question equal' equal;\012 ignore sub bracketleft equal' equal;\012 ignore sub equal' equal bracketright;\012 ignore sub equal [colon exclam] equal' equal;\012 ignore sub [less greater bar slash] equal' equal;\012 ignore sub equal' equal [less greater bar slash] ;\012 ignore sub equal' equal [colon exclam] equal;\012 sub equal.spacer equal' by equal_equal.liga;\012 sub equal' equal by equal.spacer;\012} equal_equal;\012\012lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 ignore sub parenleft question exclam' equal;\012 ignore sub parenleft question less exclam' equal;\012 ignore sub equal exclam' equal;\012 sub exclam.spacer equal' by exclam_equal.liga;\012 sub exclam' equal by exclam.spacer;\012} exclam_equal;\012\012lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 ignore sub parenleft question exclam' exclam;\012 ignore sub parenleft question less exclam' exclam;\012 sub exclam.spacer exclam' by exclam_exclam.liga;\012 sub exclam' exclam by exclam.spacer;\012} exclam_exclam;\012\012lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 ignore sub equal greater' equal;\012 ignore sub greater' equal [less greater bar colon exclam slash];\012 sub greater.spacer equal' by greater_equal.liga;\012 sub greater' equal by greater.spacer;\012} greater_equal;\012\012lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub hyphen.spacer asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by hyphen.spacer;\012} hyphen_asciitilde;\012\012lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 ignore sub [less greater bar] hyphen' hyphen;\012 ignore sub hyphen' hyphen [less greater bar];\012 sub hyphen.spacer hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by hyphen.spacer;\012} hyphen_hyphen;\012\012lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub less.spacer asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by less.spacer;\012} less_asciitilde;\012\012lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub less.spacer asterisk' by less_asterisk.liga;\012 sub less' asterisk by less.spacer;\012} less_asterisk;\012\012lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub less.spacer dollar' by less_dollar.liga;\012 sub less' dollar by less.spacer;\012} less_dollar;\012\012lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 ignore sub parenleft question less' equal;\012 ignore sub equal less' equal;\012 ignore sub less' equal [less greater bar colon exclam slash];\012 sub less.spacer equal' by less_equal.liga;\012 sub less' equal by less.spacer;\012} less_equal;\012\012lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub less.spacer greater' by less_greater.liga;\012 sub less' greater by less.spacer;\012} less_greater;\012\012lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub less.spacer plus' by less_plus.liga;\012 sub less' plus by less.spacer;\012} less_plus;\012\012lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub less.spacer slash' by less_slash.liga;\012 sub less' slash by less.spacer;\012} less_slash;\012\012lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub numbersign.spacer braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by numbersign.spacer;\012} numbersign_braceleft;\012\012lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub numbersign.spacer bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by numbersign.spacer;\012} numbersign_bracketleft;\012\012lookup numbersign_colon {\012 ignore sub numbersign numbersign' colon;\012 ignore sub numbersign' colon colon;\012 sub numbersign.spacer colon' by numbersign_colon.liga;\012 sub numbersign' colon by numbersign.spacer;\012} numbersign_colon;\012\012lookup numbersign_equal {\012 ignore sub numbersign numbersign' equal;\012 ignore sub numbersign' equal equal;\012 sub numbersign.spacer equal' by numbersign_equal.liga;\012 sub numbersign' equal by numbersign.spacer;\012} numbersign_equal;\012\012lookup numbersign_exclam {\012 ignore sub numbersign numbersign' exclam;\012 ignore sub numbersign' exclam exclam;\012 sub numbersign.spacer exclam' by numbersign_exclam.liga;\012 sub numbersign' exclam by numbersign.spacer;\012} numbersign_exclam;\012\012lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub numbersign.spacer parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by numbersign.spacer;\012} numbersign_parenleft;\012\012lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub numbersign.spacer question' by numbersign_question.liga;\012 sub numbersign' question by numbersign.spacer;\012} numbersign_question;\012\012lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub numbersign.spacer underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by numbersign.spacer;\012} numbersign_underscore;\012\012lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub percent.spacer percent' by percent_percent.liga;\012 sub percent' percent by percent.spacer;\012} percent_percent;\012\012lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub period.spacer period' by period_period.liga;\012 sub period' period by period.spacer;\012} period_period;\012\012lookup period_question {\012 ignore sub period period' question;\012 ignore sub period' question question;\012 sub period.spacer question' by period_question.liga;\012 sub period' question by period.spacer;\012} period_question;\012\012lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub plus.spacer greater' by plus_greater.liga;\012 sub plus' greater by plus.spacer;\012} plus_greater;\012\012lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub plus.spacer plus' by plus_plus.liga;\012 sub plus' plus by plus.spacer;\012} plus_plus;\012\012lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 ignore sub parenleft question' equal;\012 ignore sub less question' equal;\012 sub question.spacer equal' by question_equal.liga;\012 sub question' equal by question.spacer;\012} question_equal;\012\012lookup question_period {\012 ignore sub question question' period;\012 ignore sub question' period period;\012 sub question.spacer period' by question_period.liga;\012 sub question' period by question.spacer;\012} question_period;\012\012lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub question.spacer question' by question_question.liga;\012 sub question' question by question.spacer;\012} question_question;\012\012lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub semicolon.spacer semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by semicolon.spacer;\012} semicolon_semicolon;\012\012lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 ignore sub slash' asterisk slash;\012 ignore sub asterisk slash' asterisk;\012 sub slash.spacer asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by slash.spacer;\012} slash_asterisk;\012\012lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub slash.spacer greater' by slash_greater.liga;\012 sub slash' greater by slash.spacer;\012} slash_greater;\012\012lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 ignore sub equal slash' slash;\012 ignore sub slash' slash equal;\012 sub slash.spacer slash' by slash_slash.liga;\012 sub slash' slash by slash.spacer;\012} slash_slash;\012\012### Vertical-align colon/greater/less\012\012# :> :< >: <:\012# :>: :<:\012# <:> >:< <:< >:>\012# <::> <::< >::< >::>\012# <:::> <:::< >:::< >:::>\012# <::::> <::::< >::::< >::::>\012\012lookup center {\012 #574 :>= :<=\012 ignore sub colon' [less greater] [equal hyphen];\012\012 #1145 ::< ::> <:: >::\012 ignore sub colon colon' [less greater];\012 ignore sub [less greater]' colon colon;\012\012 # middles & ends\012 sub [less.center greater.center colon.center] colon' by colon.center;\012 sub colon.center [less greater]' by [less.center greater.center];\012\012 # starts\012 sub [less greater]' colon by [less.center greater.center];\012 sub colon' [less greater] by colon.center;\012} center;\012\012### Logical conjunction/disjunction #738\012\012lookup slash_backslash {\012 ignore sub @NotSpace slash' backslash;\012 ignore sub slash' backslash @NotSpace;\012 sub slash.spacer backslash' by slash_backslash.liga;\012 sub slash' backslash by slash.spacer;\012} slash_backslash;\012\012lookup backslash_slash {\012 ignore sub @NotSpace backslash' slash;\012 ignore sub backslash' slash @NotSpace;\012 sub backslash.spacer slash' by backslash_slash.liga;\012 sub backslash' slash by backslash.spacer;\012} backslash_slash;\012\012lookup hexadecimal_x {\012 ### 0xFF\012 sub [zero zero.zero] x' [@Digit @HexDigit] by x.multiply;\012 sub [zero.tosf zero.zero.tosf zero.tosf.zero] x' [@DigitTosf @HexDigit] by x.multiply.tosf;\012\012 ### 800x600\012 sub @Digit x' @Digit by x.multiply; \012 sub @DigitTosf x' @DigitTosf by x.multiply.tosf;\012} hexadecimal_x;\012\012### Long dashes\012\012sub twoemdash by hyphen_start.seq hyphen_end.seq;\012sub threeemdash by hyphen_start.seq hyphen_middle.seq hyphen_end.seq;\012\012lookup equal_arrows {\012 # Disable |||\012 ignore sub bar bar' bar equal;\012 ignore sub bar bar' equal;\012 ignore sub [equal_start.seq equal_middle.seq] bar' bar bar;\012\012 # equal middle & end\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' [equal less greater bar slash colon exclam] by equal_middle.seq;\012\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' by equal_end.seq;\012\012 # double middles\012 sub [equal_start.seq equal_middle.seq] less.spacer less' equal by less_less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] less' less equal by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' equal by greater_greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater equal by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' equal by bar_bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar equal by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' equal by slash_slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash equal by slash.spacer;\012\012 # single middles\012 sub [equal_start.seq equal_middle.seq] less' equal by less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' equal by greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' equal by bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' equal by slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] colon' equal by colon_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] exclam' equal by exclam_equal_middle.seq;\012\012 # double ends\012 sub [equal_start.seq equal_middle.seq] less.spacer less' by less_less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] less' less by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' by greater_greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' by bar_bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' by slash_slash_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash by slash.spacer;\012\012 # single ends\012 sub [equal_start.seq equal_middle.seq] less' by less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' by greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' by bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' by slash_equal_end.seq;\012\012 # double beginnings\012 sub less.spacer less' equal by less_less_equal_start.seq;\012 sub less' less equal by less.spacer;\012 sub greater.spacer greater' equal by greater_greater_equal_start.seq;\012 sub greater' greater equal by greater.spacer;\012 sub bar.spacer bar' equal by bar_bar_equal_start.seq;\012 sub bar' bar equal by bar.spacer;\012 sub slash.spacer slash' equal by slash_slash_equal_start.seq;\012 sub slash' slash equal by slash.spacer;\012\012 # Disable >=< #548\012 sub greater' equal less [equal less] by greater_equal_start.seq;\012 ignore sub greater' equal less;\012 \012 # Disable =< #479 #468 #424 #406 #355 #305\012 sub equal' less [equal less] by equal_start.seq;\012\012 # Disable =/ #1056\012 sub equal' slash [equal slash] by equal_start.seq; \012\012 # single beginnings\012 sub less' equal by less_equal_start.seq;\012 sub greater' equal by greater_equal_start.seq;\012 sub bar' equal [equal less greater bar colon exclam slash] by bar_equal_start.seq; # disable |= \012 sub slash' equal by slash_equal_start.seq;\012 sub equal' [equal greater bar colon exclam] by equal_start.seq;\012\012} equal_arrows;\012\012### fi/fl #795\012\012sub [f i.salt_low j.salt_low] [i j]' by [i.salt_low j.salt_low];\012sub [F T I l.salt_low] l' by l.salt_low;\012\012### Greek\012\012lookup caltGreekUCdiph {\012 sub @GreekUCdiphIOTA Iota' by Iotadieresis;\012 sub @GreekUCdiphUPSILON Upsilon' by Upsilondieresis;\012} caltGreekUCdiph;\012\012lookup caltGreekUC {\012 sub @GreekUCAcc' @GreekUC by @GreekUCcalt;\012 sub @GreekUC @GreekUCAcc' by @GreekUCcalt;\012 sub @GreekUCAcc' space @GreekUC by @GreekUCcalt;\012 sub @GreekUC space @GreekUCAcc' by @GreekUCcalt;\012} caltGreekUC;\012\012### Arbitrary-length arrows #346\012\012lookup hyphen_arrows {\012 # Disable |||\012 ignore sub bar bar' bar hyphen;\012 ignore sub bar bar' hyphen;\012 ignore sub [hyphen_start.seq hyphen_middle.seq] bar' bar bar;\012\012 # hyphen middle & end\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' [hyphen less greater bar] by hyphen_middle.seq;\012\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' by hyphen_end.seq;\012\012 # double middles\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' hyphen by less_less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less hyphen by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' hyphen by greater_greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater hyphen by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' hyphen by bar_bar_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar hyphen by bar.spacer;\012\012 # single middles\012 sub [hyphen_start.seq hyphen_middle.seq] less' hyphen by less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' hyphen by greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' hyphen by bar_hyphen_middle.seq;\012\012 # double ends\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' by less_less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' by greater_greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' by bar_bar_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar by bar.spacer;\012\012 # single ends\012 sub [hyphen_start.seq hyphen_middle.seq] less' by less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' by greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' by bar_hyphen_end.seq;\012\012 # double beginnings\012 sub less.spacer less' hyphen by less_less_hyphen_start.seq;\012 sub less' less hyphen by less.spacer;\012 sub greater.spacer greater' hyphen by greater_greater_hyphen_start.seq;\012 sub greater' greater hyphen by greater.spacer;\012 sub bar.spacer bar' hyphen by bar_bar_hyphen_start.seq;\012 sub bar' bar hyphen by bar.spacer;\012\012 # single beginnings\012 sub less' hyphen by less_hyphen_start.seq;\012 sub greater' hyphen by greater_hyphen_start.seq;\012 sub bar' hyphen by bar_hyphen_start.seq;\012 sub hyphen' [hyphen less greater bar] by hyphen_start.seq;\012} hyphen_arrows;\012\012### Lowercase/uppercase operators\012\012# Must go after hyphen_arrows.fea\012\012lookup lowercase_hyphen {\012 ignore sub @Tall \\hyphen' @Lowercase;\012 ignore sub @Lowercase \\hyphen' @Tall; \012 sub \\hyphen' @Lowercase by \\hyphen.lc;\012 sub @Lowercase \\hyphen' by \\hyphen.lc;\012} lowercase_hyphen;\012\012lookup lowercase_plus {\012 ignore sub @Tall \\plus' @Lowercase;\012 ignore sub @Lowercase \\plus' @Tall;\012 sub \\plus' @Lowercase by \\plus.lc;\012 sub @Lowercase \\plus' by \\plus.lc;\012} lowercase_plus;\012\012lookup lowercase_asterisk {\012 ignore sub @Tall \\asterisk' @Lowercase;\012 ignore sub @Lowercase \\asterisk' @Tall;\012 sub \\asterisk' @Lowercase by \\asterisk.lc;\012 sub @Lowercase \\asterisk' by \\asterisk.lc;\012} lowercase_asterisk;\012\012lookup lowercase_asteriskmath {\012 ignore sub @Tall \\asteriskmath' @Lowercase;\012 ignore sub @Lowercase \\asteriskmath' @Tall;\012 sub \\asteriskmath' @Lowercase by \\asteriskmath.lc;\012 sub @Lowercase \\asteriskmath' by \\asteriskmath.lc;\012} lowercase_asteriskmath;\012\012lookup uppercase_colon {\012 ignore sub @Tall \\colon' @Lowercase;\012 ignore sub @Lowercase \\colon' @Tall;\012 sub @Tall \\colon' by \\colon.uc;\012 sub \\colon' @Tall by \\colon.uc;\012# pos @Tall \\colon' <0 160 0 0>;\012# pos \\colon' @Tall <0 160 0 0>;\012} uppercase_colon;\012\012lookup numbersigns {\012 # middle parts\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' numbersign by numbersign_middle.seq;\012\012 # ends\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' by numbersign_end.seq;\012 \012 # beginnings\012 sub numbersign' numbersign by numbersign_start.seq; \012} numbersigns;\012\012lookup underscores {\012 # middle parts\012 sub [underscore_start.seq underscore_middle.seq] bar' underscore by bar_underscore_middle.seq;\012\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' bar underscore by underscore_middle.seq;\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' underscore by underscore_middle.seq;\012\012 # ends\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' by underscore_end.seq;\012 \012 # beginnings\012 sub underscore' bar underscore by underscore_start.seq; \012 sub underscore' underscore by underscore_start.seq; \012} underscores;"; +code = "lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub less.spacer bar.spacer greater' by less_bar_greater.liga;\012 sub less.spacer bar' greater by bar.spacer;\012 sub less' bar greater by less.spacer;\012} less_bar_greater;\012\012lookup bar_bar_bar_greater {\012 ignore sub bar bar' bar bar greater;\012 ignore sub bar' bar bar greater greater;\012 sub bar.spacer bar.spacer bar.spacer greater' by bar_bar_bar_greater.liga;\012 sub bar.spacer bar.spacer bar' greater by bar.spacer;\012 sub bar.spacer bar' bar greater by bar.spacer;\012 sub bar' bar bar greater by bar.spacer;\012} bar_bar_bar_greater;\012\012lookup less_bar_bar_bar {\012 ignore sub less less' bar bar bar;\012 ignore sub less' bar bar bar bar;\012 sub less.spacer bar.spacer bar.spacer bar' by less_bar_bar_bar.liga;\012 sub less.spacer bar.spacer bar' bar by bar.spacer;\012 sub less.spacer bar' bar bar by bar.spacer;\012 sub less' bar bar bar by less.spacer;\012} less_bar_bar_bar;\012\012lookup bar_bar_greater {\012 ignore sub bar bar' bar greater;\012 ignore sub bar' bar greater greater;\012 ignore sub less bar' bar greater;\012 sub bar.spacer bar.spacer greater' by bar_bar_greater.liga;\012 sub bar.spacer bar' greater by bar.spacer;\012 sub bar' bar greater by bar.spacer;\012} bar_bar_greater;\012\012lookup less_bar_bar {\012 ignore sub less less' bar bar;\012 ignore sub less' bar bar bar;\012 ignore sub less' bar bar greater;\012 sub less.spacer bar.spacer bar' by less_bar_bar.liga;\012 sub less.spacer bar' bar by bar.spacer;\012 sub less' bar bar by less.spacer;\012} less_bar_bar;\012\012lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub bar.spacer greater' by bar_greater.liga;\012 sub bar' greater by bar.spacer;\012} bar_greater;\012\012lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub less.spacer bar' by less_bar.liga;\012 sub less' bar by less.spacer;\012} less_bar;\012\012lookup bar_bar_bar {\012 ignore sub bar bar' bar bar;\012 ignore sub bar' bar bar bar;\012 sub bar.spacer bar.spacer bar' by bar_bar_bar.liga;\012 sub bar.spacer bar' bar by bar.spacer;\012 sub bar' bar bar by bar.spacer;\012} bar_bar_bar;\012\012lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 ignore sub [asterisk plus dollar] greater' greater greater;\012 sub greater.spacer greater.spacer greater' by greater_greater_greater.liga;\012 sub greater.spacer greater' greater by greater.spacer;\012 sub greater' greater greater by greater.spacer;\012} greater_greater_greater;\012\012lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 ignore sub less' less less [asterisk plus dollar];\012 sub less.spacer less.spacer less' by less_less_less.liga;\012 sub less.spacer less' less by less.spacer;\012 sub less' less less by less.spacer;\012} less_less_less;\012\012lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 ignore sub [hyphen equal] bar' bar;\012 ignore sub bar' bar hyphen;\012 ignore sub bar' bar equal [equal less greater bar colon exclam slash];\012 sub bar.spacer bar' by bar_bar.liga;\012 sub bar' bar by bar.spacer;\012} bar_bar;\012\012lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 ignore sub [asterisk plus dollar] greater' greater;\012 ignore sub [hyphen equal] greater' greater;\012 ignore sub greater' greater hyphen;\012 ignore sub greater' greater equal [equal less greater bar colon exclam slash];\012 sub greater.spacer greater' by greater_greater.liga;\012 sub greater' greater by greater.spacer;\012} greater_greater;\012\012lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 ignore sub less' less [asterisk plus dollar];\012 ignore sub [hyphen equal] less' less;\012 ignore sub less' less hyphen;\012 ignore sub less' less equal [equal less greater bar colon exclam slash];\012 sub less.spacer less' by less_less.liga;\012 sub less' less by less.spacer;\012} less_less;\012\012lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 ignore sub parenleft question less' exclam hyphen hyphen;\012 sub less.spacer exclam.spacer hyphen.spacer hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub less.spacer exclam.spacer hyphen' hyphen by hyphen.spacer;\012 sub less.spacer exclam' hyphen hyphen by exclam.spacer;\012 sub less' exclam hyphen hyphen by less.spacer;\012} less_exclam_hyphen_hyphen;\012\012lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub asciitilde.spacer asciitilde.spacer greater' by asciitilde_asciitilde_greater.liga;\012 sub asciitilde.spacer asciitilde' greater by asciitilde.spacer;\012 sub asciitilde' asciitilde greater by asciitilde.spacer;\012} asciitilde_asciitilde_greater;\012\012lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 ignore sub slash asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk slash;\012 sub asterisk.spacer asterisk.spacer asterisk' by asterisk_asterisk_asterisk.liga;\012 sub asterisk.spacer asterisk' asterisk by asterisk.spacer;\012 sub asterisk' asterisk asterisk by asterisk.spacer;\012} asterisk_asterisk_asterisk;\012\012lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 ignore sub parenleft question colon' colon colon;\012 ignore sub colon' colon colon [less greater];\012 ignore sub [less greater] colon' colon colon;\012 sub colon.spacer colon.spacer colon' by colon_colon_colon.liga;\012 sub colon.spacer colon' colon by colon.spacer;\012 sub colon' colon colon by colon.spacer;\012} colon_colon_colon;\012\012lookup colon_colon_equal {\012 ignore sub colon colon' colon equal;\012 ignore sub colon' colon equal equal;\012 ignore sub parenleft question colon' colon equal;\012 sub colon.spacer colon.spacer equal' by colon_colon_equal.liga;\012 sub colon.spacer colon' equal by colon.spacer;\012 sub colon' colon equal by colon.spacer;\012} colon_colon_equal;\012\012lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 ignore sub parenleft question equal' equal equal;\012 ignore sub parenleft question less equal' equal equal;\012 ignore sub less question equal' equal equal;\012 ignore sub bracketleft equal' equal equal;\012 ignore sub equal' equal equal bracketright;\012 ignore sub equal [colon exclam] equal' equal equal;\012 ignore sub [less greater bar slash] equal' equal equal;\012 ignore sub equal' equal equal [less greater bar slash];\012 ignore sub equal' equal equal [colon exclam] equal;\012 sub equal.spacer equal.spacer equal' by equal_equal_equal.liga;\012 sub equal.spacer equal' equal by equal.spacer;\012 sub equal' equal equal by equal.spacer;\012} equal_equal_equal;\012\012lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 ignore sub parenleft question exclam' equal equal;\012 ignore sub parenleft question less exclam' equal equal;\012 ignore sub equal exclam' equal equal;\012 sub exclam.spacer equal.spacer equal' by exclam_equal_equal.liga;\012 sub exclam.spacer equal' equal by equal.spacer;\012 sub exclam' equal equal by exclam.spacer;\012} exclam_equal_equal;\012\012lookup exclam_exclam_period {\012 ignore sub exclam exclam' exclam period;\012 ignore sub exclam' exclam period period;\012 ignore sub parenleft question exclam' exclam period;\012 ignore sub parenleft question less exclam' exclam period;\012 sub exclam.spacer exclam.spacer period' by exclam_exclam_period.liga;\012 sub exclam.spacer exclam' period by exclam.spacer;\012 sub exclam' exclam period by exclam.spacer;\012} exclam_exclam_period;\012\012lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub less.spacer asciitilde.spacer asciitilde' by less_asciitilde_asciitilde.liga;\012 sub less.spacer asciitilde' asciitilde by asciitilde.spacer;\012 sub less' asciitilde asciitilde by less.spacer;\012} less_asciitilde_asciitilde;\012\012lookup less_asciitilde_greater {\012 ignore sub less less' asciitilde greater;\012 ignore sub less' asciitilde greater greater;\012 sub less.spacer asciitilde.spacer greater' by less_asciitilde_greater.liga;\012 sub less.spacer asciitilde' greater by asciitilde.spacer;\012 sub less' asciitilde greater by less.spacer;\012} less_asciitilde_greater;\012\012lookup less_asterisk_greater {\012 sub less.spacer asterisk.spacer greater' by less_asterisk_greater.liga;\012 sub less.spacer asterisk' greater by asterisk.spacer;\012 sub less' asterisk greater by less.spacer;\012} less_asterisk_greater;\012\012lookup less_dollar_greater {\012 sub less.spacer dollar.spacer greater' by less_dollar_greater.liga;\012 sub less.spacer dollar' greater by dollar.spacer;\012 sub less' dollar greater by less.spacer;\012} less_dollar_greater;\012\012lookup less_plus_greater {\012 sub less.spacer plus.spacer greater' by less_plus_greater.liga;\012 sub less.spacer plus' greater by plus.spacer;\012 sub less' plus greater by less.spacer;\012} less_plus_greater;\012\012lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub less.spacer slash.spacer greater' by less_slash_greater.liga;\012 sub less.spacer slash' greater by slash.spacer;\012 sub less' slash greater by less.spacer;\012} less_slash_greater;\012\012lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub numbersign.spacer underscore.spacer parenleft' by numbersign_underscore_parenleft.liga;\012 sub numbersign.spacer underscore' parenleft by underscore.spacer;\012 sub numbersign' underscore parenleft by numbersign.spacer;\012} numbersign_underscore_parenleft;\012\012lookup period_period_equal {\012 ignore sub period period' period equal;\012 ignore sub period' period equal equal;\012 sub period.spacer period.spacer equal' by period_period_equal.liga;\012 sub period.spacer period' equal by period.spacer;\012 sub period' period equal by period.spacer;\012} period_period_equal;\012\012lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub period.spacer period.spacer less' by period_period_less.liga;\012 sub period.spacer period' less by period.spacer;\012 sub period' period less by period.spacer;\012} period_period_less;\012\012lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub period.spacer period.spacer period' by period_period_period.liga;\012 sub period.spacer period' period by period.spacer;\012 sub period' period period by period.spacer;\012} period_period_period;\012\012lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub plus.spacer plus.spacer plus' by plus_plus_plus.liga;\012 sub plus.spacer plus' plus by plus.spacer;\012 sub plus' plus plus by plus.spacer;\012} plus_plus_plus;\012\012lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub slash.spacer slash.spacer slash' by slash_slash_slash.liga;\012 sub slash.spacer slash' slash by slash.spacer;\012 sub slash' slash slash by slash.spacer;\012} slash_slash_slash;\012\012lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub w.spacer w.spacer w' by w_w_w.liga;\012 sub w.spacer w' w by w.spacer;\012 sub w' w w by w.spacer;\012} w_w_w;\012\012lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub ampersand.spacer ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by ampersand.spacer;\012} ampersand_ampersand;\012\012lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub asciicircum.spacer equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by asciicircum.spacer;\012} asciicircum_equal;\012\012lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub asciitilde.spacer asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by asciitilde.spacer;\012} asciitilde_asciitilde;\012\012lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub asciitilde.spacer at' by asciitilde_at.liga;\012 sub asciitilde' at by asciitilde.spacer;\012} asciitilde_at;\012\012lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub asciitilde.spacer greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by asciitilde.spacer;\012} asciitilde_greater;\012\012lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub asciitilde.spacer hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by asciitilde.spacer;\012} asciitilde_hyphen;\012\012lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 ignore sub slash asterisk' asterisk;\012 ignore sub asterisk' asterisk slash;\012 sub asterisk.spacer asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by asterisk.spacer;\012} asterisk_asterisk;\012\012lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub asterisk.spacer greater' by asterisk_greater.liga;\012 sub asterisk' greater by asterisk.spacer;\012} asterisk_greater;\012\012lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 ignore sub slash asterisk' slash;\012 ignore sub asterisk' slash asterisk;\012 sub asterisk.spacer slash' by asterisk_slash.liga;\012 sub asterisk' slash by asterisk.spacer;\012} asterisk_slash;\012\012lookup bar_braceright {\012 ignore sub bar bar' braceright;\012 ignore sub bar' braceright braceright;\012 ignore sub braceleft bar' braceright;\012 sub bar.spacer braceright' by bar_braceright.liga;\012 sub bar' braceright by bar.spacer;\012} bar_braceright;\012\012lookup bar_bracketright {\012 ignore sub bar bar' bracketright;\012 ignore sub bar' bracketright bracketright;\012 ignore sub bracketleft bar' bracketright;\012 sub bar.spacer bracketright' by bar_bracketright.liga;\012 sub bar' bracketright by bar.spacer;\012} bar_bracketright;\012\012lookup braceleft_bar {\012 ignore sub braceleft braceleft' bar;\012 ignore sub braceleft' bar bar;\012 ignore sub braceleft' bar braceright;\012 sub braceleft.spacer bar' by braceleft_bar.liga;\012 sub braceleft' bar by braceleft.spacer;\012} braceleft_bar;\012\012lookup bracketleft_bar {\012 ignore sub bracketleft bracketleft' bar;\012 ignore sub bracketleft' bar bar;\012 ignore sub bracketleft' bar bracketright;\012 sub bracketleft.spacer bar' by bracketleft_bar.liga;\012 sub bracketleft' bar by bracketleft.spacer;\012} bracketleft_bar;\012\012lookup bracketright_numbersign {\012 ignore sub bracketright bracketright' numbersign;\012 ignore sub bracketright' numbersign numbersign;\012 sub bracketright.spacer numbersign' by bracketright_numbersign.liga;\012 sub bracketright' numbersign by bracketright.spacer;\012} bracketright_numbersign;\012\012lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 ignore sub parenleft question colon' colon;\012 ignore sub colon' colon [less greater];\012 ignore sub [less greater] colon' colon;\012 sub colon.spacer colon' by colon_colon.liga;\012 sub colon' colon by colon.spacer;\012} colon_colon;\012\012lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 ignore sub parenleft question colon' equal;\012 ignore sub equal colon' equal;\012 sub colon.spacer equal' by colon_equal.liga;\012 sub colon' equal by colon.spacer;\012} colon_equal;\012\012lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub dollar.spacer greater' by dollar_greater.liga;\012 sub dollar' greater by dollar.spacer;\012} dollar_greater;\012\012lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 ignore sub parenleft question equal' equal;\012 ignore sub parenleft question less equal' equal;\012 ignore sub less question equal' equal;\012 ignore sub bracketleft equal' equal;\012 ignore sub equal' equal bracketright;\012 ignore sub equal [colon exclam] equal' equal;\012 ignore sub [less greater bar slash] equal' equal;\012 ignore sub equal' equal [less greater bar slash] ;\012 ignore sub equal' equal [colon exclam] equal;\012 sub equal.spacer equal' by equal_equal.liga;\012 sub equal' equal by equal.spacer;\012} equal_equal;\012\012lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 ignore sub parenleft question exclam' equal;\012 ignore sub parenleft question less exclam' equal;\012 ignore sub equal exclam' equal;\012 sub exclam.spacer equal' by exclam_equal.liga;\012 sub exclam' equal by exclam.spacer;\012} exclam_equal;\012\012lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 ignore sub parenleft question exclam' exclam;\012 ignore sub parenleft question less exclam' exclam;\012 sub exclam.spacer exclam' by exclam_exclam.liga;\012 sub exclam' exclam by exclam.spacer;\012} exclam_exclam;\012\012lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 ignore sub equal greater' equal;\012 ignore sub greater' equal [less greater bar colon exclam slash];\012 sub greater.spacer equal' by greater_equal.liga;\012 sub greater' equal by greater.spacer;\012} greater_equal;\012\012lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub hyphen.spacer asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by hyphen.spacer;\012} hyphen_asciitilde;\012\012lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 ignore sub [less greater bar] hyphen' hyphen;\012 ignore sub hyphen' hyphen [less greater bar];\012 sub hyphen.spacer hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by hyphen.spacer;\012} hyphen_hyphen;\012\012lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub less.spacer asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by less.spacer;\012} less_asciitilde;\012\012lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub less.spacer asterisk' by less_asterisk.liga;\012 sub less' asterisk by less.spacer;\012} less_asterisk;\012\012lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub less.spacer dollar' by less_dollar.liga;\012 sub less' dollar by less.spacer;\012} less_dollar;\012\012lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 ignore sub parenleft question less' equal;\012 ignore sub equal less' equal;\012 ignore sub less' equal [less greater bar colon exclam slash];\012 sub less.spacer equal' by less_equal.liga;\012 sub less' equal by less.spacer;\012} less_equal;\012\012lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub less.spacer greater' by less_greater.liga;\012 sub less' greater by less.spacer;\012} less_greater;\012\012lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub less.spacer plus' by less_plus.liga;\012 sub less' plus by less.spacer;\012} less_plus;\012\012lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub less.spacer slash' by less_slash.liga;\012 sub less' slash by less.spacer;\012} less_slash;\012\012lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub numbersign.spacer braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by numbersign.spacer;\012} numbersign_braceleft;\012\012lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub numbersign.spacer bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by numbersign.spacer;\012} numbersign_bracketleft;\012\012lookup numbersign_colon {\012 ignore sub numbersign numbersign' colon;\012 ignore sub numbersign' colon colon;\012 sub numbersign.spacer colon' by numbersign_colon.liga;\012 sub numbersign' colon by numbersign.spacer;\012} numbersign_colon;\012\012lookup numbersign_equal {\012 ignore sub numbersign numbersign' equal;\012 ignore sub numbersign' equal equal;\012 sub numbersign.spacer equal' by numbersign_equal.liga;\012 sub numbersign' equal by numbersign.spacer;\012} numbersign_equal;\012\012lookup numbersign_exclam {\012 ignore sub numbersign numbersign' exclam;\012 ignore sub numbersign' exclam exclam;\012 sub numbersign.spacer exclam' by numbersign_exclam.liga;\012 sub numbersign' exclam by numbersign.spacer;\012} numbersign_exclam;\012\012lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub numbersign.spacer parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by numbersign.spacer;\012} numbersign_parenleft;\012\012lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub numbersign.spacer question' by numbersign_question.liga;\012 sub numbersign' question by numbersign.spacer;\012} numbersign_question;\012\012lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub numbersign.spacer underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by numbersign.spacer;\012} numbersign_underscore;\012\012lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub percent.spacer percent' by percent_percent.liga;\012 sub percent' percent by percent.spacer;\012} percent_percent;\012\012lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub period.spacer period' by period_period.liga;\012 sub period' period by period.spacer;\012} period_period;\012\012lookup period_question {\012 ignore sub period period' question;\012 ignore sub period' question question;\012 sub period.spacer question' by period_question.liga;\012 sub period' question by period.spacer;\012} period_question;\012\012lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub plus.spacer greater' by plus_greater.liga;\012 sub plus' greater by plus.spacer;\012} plus_greater;\012\012lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub plus.spacer plus' by plus_plus.liga;\012 sub plus' plus by plus.spacer;\012} plus_plus;\012\012lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 ignore sub parenleft question' equal;\012 ignore sub less question' equal;\012 sub question.spacer equal' by question_equal.liga;\012 sub question' equal by question.spacer;\012} question_equal;\012\012lookup question_period {\012 ignore sub question question' period;\012 ignore sub question' period period;\012 sub question.spacer period' by question_period.liga;\012 sub question' period by question.spacer;\012} question_period;\012\012lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub question.spacer question' by question_question.liga;\012 sub question' question by question.spacer;\012} question_question;\012\012lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub semicolon.spacer semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by semicolon.spacer;\012} semicolon_semicolon;\012\012lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 ignore sub slash' asterisk slash;\012 ignore sub asterisk slash' asterisk;\012 sub slash.spacer asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by slash.spacer;\012} slash_asterisk;\012\012lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub slash.spacer greater' by slash_greater.liga;\012 sub slash' greater by slash.spacer;\012} slash_greater;\012\012lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 ignore sub equal slash' slash;\012 ignore sub slash' slash equal;\012 sub slash.spacer slash' by slash_slash.liga;\012 sub slash' slash by slash.spacer;\012} slash_slash;\012\012### Vertical-align colon/greater/less\012\012# :> :< >: <:\012# :>: :<:\012# <:> >:< <:< >:>\012# <::> <::< >::< >::>\012# <:::> <:::< >:::< >:::>\012# <::::> <::::< >::::< >::::>\012\012lookup center {\012 #574 :>= :<=\012 ignore sub colon' [less greater] [equal hyphen];\012\012 #1145 ::< ::> <:: >::\012 ignore sub colon colon' [less greater];\012 ignore sub [less greater]' colon colon;\012\012 # middles & ends\012 sub [less.center greater.center colon.center] colon' by colon.center;\012 sub colon.center [less greater]' by [less.center greater.center];\012\012 # starts\012 sub [less greater]' colon by [less.center greater.center];\012 sub colon' [less greater] by colon.center;\012} center;\012\012### Logical conjunction/disjunction #738\012\012lookup slash_backslash {\012 ignore sub @NotSpace slash' backslash;\012 ignore sub slash' backslash @NotSpace;\012 sub slash.spacer backslash' by slash_backslash.liga;\012 sub slash' backslash by slash.spacer;\012} slash_backslash;\012\012lookup backslash_slash {\012 ignore sub @NotSpace backslash' slash;\012 ignore sub backslash' slash @NotSpace;\012 sub backslash.spacer slash' by backslash_slash.liga;\012 sub backslash' slash by backslash.spacer;\012} backslash_slash;\012\012lookup hexadecimal_x {\012 ### 0xFF\012 sub [zero zero.zero] x' [@Digit @HexDigit] by x.multiply;\012 sub [zero.tosf zero.zero.tosf zero.tosf.zero] x' [@DigitTosf @HexDigit] by x.multiply.tosf;\012\012 ### 800x600\012 sub @Digit x' @Digit by x.multiply; \012 sub @DigitTosf x' @DigitTosf by x.multiply.tosf;\012} hexadecimal_x;\012\012### Long dashes\012\012sub twoemdash by hyphen_start.seq hyphen_end.seq;\012sub threeemdash by hyphen_start.seq hyphen_middle.seq hyphen_end.seq;\012\012lookup equal_arrows {\012 # Disable |||\012 ignore sub bar bar' bar equal;\012 ignore sub bar bar' equal;\012 ignore sub [equal_start.seq equal_middle.seq] bar' bar bar;\012\012 # equal middle & end\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' [equal less greater bar slash colon exclam] by equal_middle.seq;\012\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' by equal_end.seq;\012\012 # double middles\012 sub [equal_start.seq equal_middle.seq] less.spacer less' equal by less_less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] less' less equal by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' equal by greater_greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater equal by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' equal by bar_bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar equal by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' equal by slash_slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash equal by slash.spacer;\012\012 # single middles\012 sub [equal_start.seq equal_middle.seq] less' equal by less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' equal by greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' equal by bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' equal by slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] colon' equal by colon_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] exclam' equal by exclam_equal_middle.seq;\012\012 # double ends\012 sub [equal_start.seq equal_middle.seq] less.spacer less' by less_less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] less' less by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' by greater_greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' by bar_bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' by slash_slash_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash by slash.spacer;\012\012 # single ends\012 sub [equal_start.seq equal_middle.seq] less' by less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' by greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' by bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' by slash_equal_end.seq;\012\012 # double beginnings\012 sub less.spacer less' equal by less_less_equal_start.seq;\012 sub less' less equal by less.spacer;\012 sub greater.spacer greater' equal by greater_greater_equal_start.seq;\012 sub greater' greater equal by greater.spacer;\012 sub bar.spacer bar' equal by bar_bar_equal_start.seq;\012 sub bar' bar equal by bar.spacer;\012 sub slash.spacer slash' equal by slash_slash_equal_start.seq;\012 sub slash' slash equal by slash.spacer;\012\012 # Disable >=< #548\012 sub greater' equal less [equal less] by greater_equal_start.seq;\012 ignore sub greater' equal less;\012 \012 # Disable =< #479 #468 #424 #406 #355 #305\012 sub equal' less [equal less] by equal_start.seq;\012\012 # Disable =/ #1056\012 sub equal' slash [equal slash] by equal_start.seq; \012\012 # single beginnings\012 sub less' equal by less_equal_start.seq;\012 sub greater' equal by greater_equal_start.seq;\012 sub bar' equal [equal less greater bar colon exclam slash] by bar_equal_start.seq; # disable |= \012 sub slash' equal by slash_equal_start.seq;\012 sub equal' [equal greater bar colon exclam] by equal_start.seq;\012\012} equal_arrows;\012\012### fi/fl #795\012\012sub [f i.salt_low j.salt_low] [i j]' by [i.salt_low j.salt_low];\012sub [F T I l.salt_low] l' by l.salt_low;\012\012### Greek\012\012lookup caltGreekUCdiph {\012 sub @GreekUCdiphIOTA Iota' by Iotadieresis;\012 sub @GreekUCdiphUPSILON Upsilon' by Upsilondieresis;\012} caltGreekUCdiph;\012\012lookup caltGreekUC {\012 sub @GreekUCAcc' @GreekUC by @GreekUCcalt;\012 sub @GreekUC @GreekUCAcc' by @GreekUCcalt;\012 sub @GreekUCAcc' space @GreekUC by @GreekUCcalt;\012 sub @GreekUC space @GreekUCAcc' by @GreekUCcalt;\012} caltGreekUC;\012\012### Arbitrary-length arrows #346\012\012lookup hyphen_arrows {\012 # Disable |||\012 ignore sub bar bar' bar hyphen;\012 ignore sub bar bar' hyphen;\012 ignore sub [hyphen_start.seq hyphen_middle.seq] bar' bar bar;\012\012 # hyphen middle & end\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' [hyphen less greater bar] by hyphen_middle.seq;\012\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' by hyphen_end.seq;\012\012 # double middles\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' hyphen by less_less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less hyphen by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' hyphen by greater_greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater hyphen by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' hyphen by bar_bar_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar hyphen by bar.spacer;\012\012 # single middles\012 sub [hyphen_start.seq hyphen_middle.seq] less' hyphen by less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' hyphen by greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' hyphen by bar_hyphen_middle.seq;\012\012 # double ends\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' by less_less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' by greater_greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' by bar_bar_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar by bar.spacer;\012\012 # single ends\012 sub [hyphen_start.seq hyphen_middle.seq] less' by less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' by greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' by bar_hyphen_end.seq;\012\012 # double beginnings\012 sub less.spacer less' hyphen by less_less_hyphen_start.seq;\012 sub less' less hyphen by less.spacer;\012 sub greater.spacer greater' hyphen by greater_greater_hyphen_start.seq;\012 sub greater' greater hyphen by greater.spacer;\012 sub bar.spacer bar' hyphen by bar_bar_hyphen_start.seq;\012 sub bar' bar hyphen by bar.spacer;\012\012 # single beginnings\012 sub less' hyphen by less_hyphen_start.seq;\012 sub greater' hyphen by greater_hyphen_start.seq;\012 sub bar' hyphen by bar_hyphen_start.seq;\012 sub hyphen' [hyphen less greater bar] by hyphen_start.seq;\012} hyphen_arrows;\012\012### Lowercase/uppercase operators\012\012# Must go after hyphen_arrows.fea\012\012lookup lowercase_hyphen {\012 ignore sub @Tall \\hyphen' @Lowercase;\012 ignore sub @Lowercase \\hyphen' @Tall; \012 sub \\hyphen' @Lowercase by \\hyphen.lc;\012 sub @Lowercase \\hyphen' by \\hyphen.lc;\012} lowercase_hyphen;\012\012lookup lowercase_plus {\012 ignore sub @Tall \\plus' @Lowercase;\012 ignore sub @Lowercase \\plus' @Tall;\012 sub \\plus' @Lowercase by \\plus.lc;\012 sub @Lowercase \\plus' by \\plus.lc;\012} lowercase_plus;\012\012lookup lowercase_asterisk {\012 ignore sub @Tall \\asterisk' @Lowercase;\012 ignore sub @Lowercase \\asterisk' @Tall;\012 sub \\asterisk' @Lowercase by \\asterisk.lc;\012 sub @Lowercase \\asterisk' by \\asterisk.lc;\012} lowercase_asterisk;\012\012lookup lowercase_asteriskmath {\012 ignore sub @Tall \\asteriskmath' @Lowercase;\012 ignore sub @Lowercase \\asteriskmath' @Tall;\012 sub \\asteriskmath' @Lowercase by \\asteriskmath.lc;\012 sub @Lowercase \\asteriskmath' by \\asteriskmath.lc;\012} lowercase_asteriskmath;\012\012lookup uppercase_colon {\012 ignore sub @Tall \\colon' @Lowercase;\012 ignore sub @Lowercase \\colon' @Tall;\012 sub @Tall \\colon' by \\colon.uc;\012 sub \\colon' @Tall by \\colon.uc;\012# pos @Tall \\colon' <0 160 0 0>;\012# pos \\colon' @Tall <0 160 0 0>;\012} uppercase_colon;\012\012lookup numbersigns {\012 # middle parts\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' numbersign by numbersign_middle.seq;\012\012 # ends\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' by numbersign_end.seq;\012 \012 # beginnings\012 sub numbersign' numbersign by numbersign_start.seq; \012} numbersigns;\012\012lookup underscores {\012 # ignore\012 ignore sub [bracketleft comma] nbspace [underscore_start.seq underscore_middle.seq] bar' underscore; \012\012 ignore sub [bracketleft comma] [underscore_start.seq underscore_middle.seq] bar' underscore; \012 # middle parts\012 sub [underscore_start.seq underscore_middle.seq] bar' underscore by bar_underscore_middle.seq;\012 \012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' bar underscore by underscore_middle.seq;\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' underscore by underscore_middle.seq;\012\012 # ends\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' by underscore_end.seq;\012 \012 # beginnings\012 sub underscore' bar underscore by underscore_start.seq; \012 sub underscore' underscore by underscore_start.seq; \012} underscores;"; name = calt; }, { diff --git a/features/calt/underscores.fea b/features/calt/underscores.fea index 907ae0ddcf..fdccec2131 100644 --- a/features/calt/underscores.fea +++ b/features/calt/underscores.fea @@ -1,4 +1,8 @@ lookup underscores { + # ignore + ignore sub [bracketleft comma] nbspace [underscore_start.seq underscore_middle.seq] bar' underscore; + ignore sub [bracketleft comma] [underscore_start.seq underscore_middle.seq] bar' underscore; + # middle parts sub [underscore_start.seq underscore_middle.seq] bar' underscore by bar_underscore_middle.seq; From ee8aa237ade74d6cf0eea83407a0329df1c1c07a Mon Sep 17 00:00:00 2001 From: m-2k <6705016+m-2k@users.noreply.github.com> Date: Wed, 30 Oct 2024 18:43:28 +0300 Subject: [PATCH 2/2] Fix. Exclude ligatures for [_|_] [_,_|_] from underscores lookup --- FiraCode.glyphs | 2 +- features/calt/underscores.fea | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/FiraCode.glyphs b/FiraCode.glyphs index 37efda56bd..fcec05fd60 100644 --- a/FiraCode.glyphs +++ b/FiraCode.glyphs @@ -205,7 +205,7 @@ name = zero; notes = "Zero with a dot inside"; }, { -code = "lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub less.spacer bar.spacer greater' by less_bar_greater.liga;\012 sub less.spacer bar' greater by bar.spacer;\012 sub less' bar greater by less.spacer;\012} less_bar_greater;\012\012lookup bar_bar_bar_greater {\012 ignore sub bar bar' bar bar greater;\012 ignore sub bar' bar bar greater greater;\012 sub bar.spacer bar.spacer bar.spacer greater' by bar_bar_bar_greater.liga;\012 sub bar.spacer bar.spacer bar' greater by bar.spacer;\012 sub bar.spacer bar' bar greater by bar.spacer;\012 sub bar' bar bar greater by bar.spacer;\012} bar_bar_bar_greater;\012\012lookup less_bar_bar_bar {\012 ignore sub less less' bar bar bar;\012 ignore sub less' bar bar bar bar;\012 sub less.spacer bar.spacer bar.spacer bar' by less_bar_bar_bar.liga;\012 sub less.spacer bar.spacer bar' bar by bar.spacer;\012 sub less.spacer bar' bar bar by bar.spacer;\012 sub less' bar bar bar by less.spacer;\012} less_bar_bar_bar;\012\012lookup bar_bar_greater {\012 ignore sub bar bar' bar greater;\012 ignore sub bar' bar greater greater;\012 ignore sub less bar' bar greater;\012 sub bar.spacer bar.spacer greater' by bar_bar_greater.liga;\012 sub bar.spacer bar' greater by bar.spacer;\012 sub bar' bar greater by bar.spacer;\012} bar_bar_greater;\012\012lookup less_bar_bar {\012 ignore sub less less' bar bar;\012 ignore sub less' bar bar bar;\012 ignore sub less' bar bar greater;\012 sub less.spacer bar.spacer bar' by less_bar_bar.liga;\012 sub less.spacer bar' bar by bar.spacer;\012 sub less' bar bar by less.spacer;\012} less_bar_bar;\012\012lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub bar.spacer greater' by bar_greater.liga;\012 sub bar' greater by bar.spacer;\012} bar_greater;\012\012lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub less.spacer bar' by less_bar.liga;\012 sub less' bar by less.spacer;\012} less_bar;\012\012lookup bar_bar_bar {\012 ignore sub bar bar' bar bar;\012 ignore sub bar' bar bar bar;\012 sub bar.spacer bar.spacer bar' by bar_bar_bar.liga;\012 sub bar.spacer bar' bar by bar.spacer;\012 sub bar' bar bar by bar.spacer;\012} bar_bar_bar;\012\012lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 ignore sub [asterisk plus dollar] greater' greater greater;\012 sub greater.spacer greater.spacer greater' by greater_greater_greater.liga;\012 sub greater.spacer greater' greater by greater.spacer;\012 sub greater' greater greater by greater.spacer;\012} greater_greater_greater;\012\012lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 ignore sub less' less less [asterisk plus dollar];\012 sub less.spacer less.spacer less' by less_less_less.liga;\012 sub less.spacer less' less by less.spacer;\012 sub less' less less by less.spacer;\012} less_less_less;\012\012lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 ignore sub [hyphen equal] bar' bar;\012 ignore sub bar' bar hyphen;\012 ignore sub bar' bar equal [equal less greater bar colon exclam slash];\012 sub bar.spacer bar' by bar_bar.liga;\012 sub bar' bar by bar.spacer;\012} bar_bar;\012\012lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 ignore sub [asterisk plus dollar] greater' greater;\012 ignore sub [hyphen equal] greater' greater;\012 ignore sub greater' greater hyphen;\012 ignore sub greater' greater equal [equal less greater bar colon exclam slash];\012 sub greater.spacer greater' by greater_greater.liga;\012 sub greater' greater by greater.spacer;\012} greater_greater;\012\012lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 ignore sub less' less [asterisk plus dollar];\012 ignore sub [hyphen equal] less' less;\012 ignore sub less' less hyphen;\012 ignore sub less' less equal [equal less greater bar colon exclam slash];\012 sub less.spacer less' by less_less.liga;\012 sub less' less by less.spacer;\012} less_less;\012\012lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 ignore sub parenleft question less' exclam hyphen hyphen;\012 sub less.spacer exclam.spacer hyphen.spacer hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub less.spacer exclam.spacer hyphen' hyphen by hyphen.spacer;\012 sub less.spacer exclam' hyphen hyphen by exclam.spacer;\012 sub less' exclam hyphen hyphen by less.spacer;\012} less_exclam_hyphen_hyphen;\012\012lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub asciitilde.spacer asciitilde.spacer greater' by asciitilde_asciitilde_greater.liga;\012 sub asciitilde.spacer asciitilde' greater by asciitilde.spacer;\012 sub asciitilde' asciitilde greater by asciitilde.spacer;\012} asciitilde_asciitilde_greater;\012\012lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 ignore sub slash asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk slash;\012 sub asterisk.spacer asterisk.spacer asterisk' by asterisk_asterisk_asterisk.liga;\012 sub asterisk.spacer asterisk' asterisk by asterisk.spacer;\012 sub asterisk' asterisk asterisk by asterisk.spacer;\012} asterisk_asterisk_asterisk;\012\012lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 ignore sub parenleft question colon' colon colon;\012 ignore sub colon' colon colon [less greater];\012 ignore sub [less greater] colon' colon colon;\012 sub colon.spacer colon.spacer colon' by colon_colon_colon.liga;\012 sub colon.spacer colon' colon by colon.spacer;\012 sub colon' colon colon by colon.spacer;\012} colon_colon_colon;\012\012lookup colon_colon_equal {\012 ignore sub colon colon' colon equal;\012 ignore sub colon' colon equal equal;\012 ignore sub parenleft question colon' colon equal;\012 sub colon.spacer colon.spacer equal' by colon_colon_equal.liga;\012 sub colon.spacer colon' equal by colon.spacer;\012 sub colon' colon equal by colon.spacer;\012} colon_colon_equal;\012\012lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 ignore sub parenleft question equal' equal equal;\012 ignore sub parenleft question less equal' equal equal;\012 ignore sub less question equal' equal equal;\012 ignore sub bracketleft equal' equal equal;\012 ignore sub equal' equal equal bracketright;\012 ignore sub equal [colon exclam] equal' equal equal;\012 ignore sub [less greater bar slash] equal' equal equal;\012 ignore sub equal' equal equal [less greater bar slash];\012 ignore sub equal' equal equal [colon exclam] equal;\012 sub equal.spacer equal.spacer equal' by equal_equal_equal.liga;\012 sub equal.spacer equal' equal by equal.spacer;\012 sub equal' equal equal by equal.spacer;\012} equal_equal_equal;\012\012lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 ignore sub parenleft question exclam' equal equal;\012 ignore sub parenleft question less exclam' equal equal;\012 ignore sub equal exclam' equal equal;\012 sub exclam.spacer equal.spacer equal' by exclam_equal_equal.liga;\012 sub exclam.spacer equal' equal by equal.spacer;\012 sub exclam' equal equal by exclam.spacer;\012} exclam_equal_equal;\012\012lookup exclam_exclam_period {\012 ignore sub exclam exclam' exclam period;\012 ignore sub exclam' exclam period period;\012 ignore sub parenleft question exclam' exclam period;\012 ignore sub parenleft question less exclam' exclam period;\012 sub exclam.spacer exclam.spacer period' by exclam_exclam_period.liga;\012 sub exclam.spacer exclam' period by exclam.spacer;\012 sub exclam' exclam period by exclam.spacer;\012} exclam_exclam_period;\012\012lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub less.spacer asciitilde.spacer asciitilde' by less_asciitilde_asciitilde.liga;\012 sub less.spacer asciitilde' asciitilde by asciitilde.spacer;\012 sub less' asciitilde asciitilde by less.spacer;\012} less_asciitilde_asciitilde;\012\012lookup less_asciitilde_greater {\012 ignore sub less less' asciitilde greater;\012 ignore sub less' asciitilde greater greater;\012 sub less.spacer asciitilde.spacer greater' by less_asciitilde_greater.liga;\012 sub less.spacer asciitilde' greater by asciitilde.spacer;\012 sub less' asciitilde greater by less.spacer;\012} less_asciitilde_greater;\012\012lookup less_asterisk_greater {\012 sub less.spacer asterisk.spacer greater' by less_asterisk_greater.liga;\012 sub less.spacer asterisk' greater by asterisk.spacer;\012 sub less' asterisk greater by less.spacer;\012} less_asterisk_greater;\012\012lookup less_dollar_greater {\012 sub less.spacer dollar.spacer greater' by less_dollar_greater.liga;\012 sub less.spacer dollar' greater by dollar.spacer;\012 sub less' dollar greater by less.spacer;\012} less_dollar_greater;\012\012lookup less_plus_greater {\012 sub less.spacer plus.spacer greater' by less_plus_greater.liga;\012 sub less.spacer plus' greater by plus.spacer;\012 sub less' plus greater by less.spacer;\012} less_plus_greater;\012\012lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub less.spacer slash.spacer greater' by less_slash_greater.liga;\012 sub less.spacer slash' greater by slash.spacer;\012 sub less' slash greater by less.spacer;\012} less_slash_greater;\012\012lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub numbersign.spacer underscore.spacer parenleft' by numbersign_underscore_parenleft.liga;\012 sub numbersign.spacer underscore' parenleft by underscore.spacer;\012 sub numbersign' underscore parenleft by numbersign.spacer;\012} numbersign_underscore_parenleft;\012\012lookup period_period_equal {\012 ignore sub period period' period equal;\012 ignore sub period' period equal equal;\012 sub period.spacer period.spacer equal' by period_period_equal.liga;\012 sub period.spacer period' equal by period.spacer;\012 sub period' period equal by period.spacer;\012} period_period_equal;\012\012lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub period.spacer period.spacer less' by period_period_less.liga;\012 sub period.spacer period' less by period.spacer;\012 sub period' period less by period.spacer;\012} period_period_less;\012\012lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub period.spacer period.spacer period' by period_period_period.liga;\012 sub period.spacer period' period by period.spacer;\012 sub period' period period by period.spacer;\012} period_period_period;\012\012lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub plus.spacer plus.spacer plus' by plus_plus_plus.liga;\012 sub plus.spacer plus' plus by plus.spacer;\012 sub plus' plus plus by plus.spacer;\012} plus_plus_plus;\012\012lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub slash.spacer slash.spacer slash' by slash_slash_slash.liga;\012 sub slash.spacer slash' slash by slash.spacer;\012 sub slash' slash slash by slash.spacer;\012} slash_slash_slash;\012\012lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub w.spacer w.spacer w' by w_w_w.liga;\012 sub w.spacer w' w by w.spacer;\012 sub w' w w by w.spacer;\012} w_w_w;\012\012lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub ampersand.spacer ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by ampersand.spacer;\012} ampersand_ampersand;\012\012lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub asciicircum.spacer equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by asciicircum.spacer;\012} asciicircum_equal;\012\012lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub asciitilde.spacer asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by asciitilde.spacer;\012} asciitilde_asciitilde;\012\012lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub asciitilde.spacer at' by asciitilde_at.liga;\012 sub asciitilde' at by asciitilde.spacer;\012} asciitilde_at;\012\012lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub asciitilde.spacer greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by asciitilde.spacer;\012} asciitilde_greater;\012\012lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub asciitilde.spacer hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by asciitilde.spacer;\012} asciitilde_hyphen;\012\012lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 ignore sub slash asterisk' asterisk;\012 ignore sub asterisk' asterisk slash;\012 sub asterisk.spacer asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by asterisk.spacer;\012} asterisk_asterisk;\012\012lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub asterisk.spacer greater' by asterisk_greater.liga;\012 sub asterisk' greater by asterisk.spacer;\012} asterisk_greater;\012\012lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 ignore sub slash asterisk' slash;\012 ignore sub asterisk' slash asterisk;\012 sub asterisk.spacer slash' by asterisk_slash.liga;\012 sub asterisk' slash by asterisk.spacer;\012} asterisk_slash;\012\012lookup bar_braceright {\012 ignore sub bar bar' braceright;\012 ignore sub bar' braceright braceright;\012 ignore sub braceleft bar' braceright;\012 sub bar.spacer braceright' by bar_braceright.liga;\012 sub bar' braceright by bar.spacer;\012} bar_braceright;\012\012lookup bar_bracketright {\012 ignore sub bar bar' bracketright;\012 ignore sub bar' bracketright bracketright;\012 ignore sub bracketleft bar' bracketright;\012 sub bar.spacer bracketright' by bar_bracketright.liga;\012 sub bar' bracketright by bar.spacer;\012} bar_bracketright;\012\012lookup braceleft_bar {\012 ignore sub braceleft braceleft' bar;\012 ignore sub braceleft' bar bar;\012 ignore sub braceleft' bar braceright;\012 sub braceleft.spacer bar' by braceleft_bar.liga;\012 sub braceleft' bar by braceleft.spacer;\012} braceleft_bar;\012\012lookup bracketleft_bar {\012 ignore sub bracketleft bracketleft' bar;\012 ignore sub bracketleft' bar bar;\012 ignore sub bracketleft' bar bracketright;\012 sub bracketleft.spacer bar' by bracketleft_bar.liga;\012 sub bracketleft' bar by bracketleft.spacer;\012} bracketleft_bar;\012\012lookup bracketright_numbersign {\012 ignore sub bracketright bracketright' numbersign;\012 ignore sub bracketright' numbersign numbersign;\012 sub bracketright.spacer numbersign' by bracketright_numbersign.liga;\012 sub bracketright' numbersign by bracketright.spacer;\012} bracketright_numbersign;\012\012lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 ignore sub parenleft question colon' colon;\012 ignore sub colon' colon [less greater];\012 ignore sub [less greater] colon' colon;\012 sub colon.spacer colon' by colon_colon.liga;\012 sub colon' colon by colon.spacer;\012} colon_colon;\012\012lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 ignore sub parenleft question colon' equal;\012 ignore sub equal colon' equal;\012 sub colon.spacer equal' by colon_equal.liga;\012 sub colon' equal by colon.spacer;\012} colon_equal;\012\012lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub dollar.spacer greater' by dollar_greater.liga;\012 sub dollar' greater by dollar.spacer;\012} dollar_greater;\012\012lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 ignore sub parenleft question equal' equal;\012 ignore sub parenleft question less equal' equal;\012 ignore sub less question equal' equal;\012 ignore sub bracketleft equal' equal;\012 ignore sub equal' equal bracketright;\012 ignore sub equal [colon exclam] equal' equal;\012 ignore sub [less greater bar slash] equal' equal;\012 ignore sub equal' equal [less greater bar slash] ;\012 ignore sub equal' equal [colon exclam] equal;\012 sub equal.spacer equal' by equal_equal.liga;\012 sub equal' equal by equal.spacer;\012} equal_equal;\012\012lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 ignore sub parenleft question exclam' equal;\012 ignore sub parenleft question less exclam' equal;\012 ignore sub equal exclam' equal;\012 sub exclam.spacer equal' by exclam_equal.liga;\012 sub exclam' equal by exclam.spacer;\012} exclam_equal;\012\012lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 ignore sub parenleft question exclam' exclam;\012 ignore sub parenleft question less exclam' exclam;\012 sub exclam.spacer exclam' by exclam_exclam.liga;\012 sub exclam' exclam by exclam.spacer;\012} exclam_exclam;\012\012lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 ignore sub equal greater' equal;\012 ignore sub greater' equal [less greater bar colon exclam slash];\012 sub greater.spacer equal' by greater_equal.liga;\012 sub greater' equal by greater.spacer;\012} greater_equal;\012\012lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub hyphen.spacer asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by hyphen.spacer;\012} hyphen_asciitilde;\012\012lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 ignore sub [less greater bar] hyphen' hyphen;\012 ignore sub hyphen' hyphen [less greater bar];\012 sub hyphen.spacer hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by hyphen.spacer;\012} hyphen_hyphen;\012\012lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub less.spacer asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by less.spacer;\012} less_asciitilde;\012\012lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub less.spacer asterisk' by less_asterisk.liga;\012 sub less' asterisk by less.spacer;\012} less_asterisk;\012\012lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub less.spacer dollar' by less_dollar.liga;\012 sub less' dollar by less.spacer;\012} less_dollar;\012\012lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 ignore sub parenleft question less' equal;\012 ignore sub equal less' equal;\012 ignore sub less' equal [less greater bar colon exclam slash];\012 sub less.spacer equal' by less_equal.liga;\012 sub less' equal by less.spacer;\012} less_equal;\012\012lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub less.spacer greater' by less_greater.liga;\012 sub less' greater by less.spacer;\012} less_greater;\012\012lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub less.spacer plus' by less_plus.liga;\012 sub less' plus by less.spacer;\012} less_plus;\012\012lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub less.spacer slash' by less_slash.liga;\012 sub less' slash by less.spacer;\012} less_slash;\012\012lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub numbersign.spacer braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by numbersign.spacer;\012} numbersign_braceleft;\012\012lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub numbersign.spacer bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by numbersign.spacer;\012} numbersign_bracketleft;\012\012lookup numbersign_colon {\012 ignore sub numbersign numbersign' colon;\012 ignore sub numbersign' colon colon;\012 sub numbersign.spacer colon' by numbersign_colon.liga;\012 sub numbersign' colon by numbersign.spacer;\012} numbersign_colon;\012\012lookup numbersign_equal {\012 ignore sub numbersign numbersign' equal;\012 ignore sub numbersign' equal equal;\012 sub numbersign.spacer equal' by numbersign_equal.liga;\012 sub numbersign' equal by numbersign.spacer;\012} numbersign_equal;\012\012lookup numbersign_exclam {\012 ignore sub numbersign numbersign' exclam;\012 ignore sub numbersign' exclam exclam;\012 sub numbersign.spacer exclam' by numbersign_exclam.liga;\012 sub numbersign' exclam by numbersign.spacer;\012} numbersign_exclam;\012\012lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub numbersign.spacer parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by numbersign.spacer;\012} numbersign_parenleft;\012\012lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub numbersign.spacer question' by numbersign_question.liga;\012 sub numbersign' question by numbersign.spacer;\012} numbersign_question;\012\012lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub numbersign.spacer underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by numbersign.spacer;\012} numbersign_underscore;\012\012lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub percent.spacer percent' by percent_percent.liga;\012 sub percent' percent by percent.spacer;\012} percent_percent;\012\012lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub period.spacer period' by period_period.liga;\012 sub period' period by period.spacer;\012} period_period;\012\012lookup period_question {\012 ignore sub period period' question;\012 ignore sub period' question question;\012 sub period.spacer question' by period_question.liga;\012 sub period' question by period.spacer;\012} period_question;\012\012lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub plus.spacer greater' by plus_greater.liga;\012 sub plus' greater by plus.spacer;\012} plus_greater;\012\012lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub plus.spacer plus' by plus_plus.liga;\012 sub plus' plus by plus.spacer;\012} plus_plus;\012\012lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 ignore sub parenleft question' equal;\012 ignore sub less question' equal;\012 sub question.spacer equal' by question_equal.liga;\012 sub question' equal by question.spacer;\012} question_equal;\012\012lookup question_period {\012 ignore sub question question' period;\012 ignore sub question' period period;\012 sub question.spacer period' by question_period.liga;\012 sub question' period by question.spacer;\012} question_period;\012\012lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub question.spacer question' by question_question.liga;\012 sub question' question by question.spacer;\012} question_question;\012\012lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub semicolon.spacer semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by semicolon.spacer;\012} semicolon_semicolon;\012\012lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 ignore sub slash' asterisk slash;\012 ignore sub asterisk slash' asterisk;\012 sub slash.spacer asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by slash.spacer;\012} slash_asterisk;\012\012lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub slash.spacer greater' by slash_greater.liga;\012 sub slash' greater by slash.spacer;\012} slash_greater;\012\012lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 ignore sub equal slash' slash;\012 ignore sub slash' slash equal;\012 sub slash.spacer slash' by slash_slash.liga;\012 sub slash' slash by slash.spacer;\012} slash_slash;\012\012### Vertical-align colon/greater/less\012\012# :> :< >: <:\012# :>: :<:\012# <:> >:< <:< >:>\012# <::> <::< >::< >::>\012# <:::> <:::< >:::< >:::>\012# <::::> <::::< >::::< >::::>\012\012lookup center {\012 #574 :>= :<=\012 ignore sub colon' [less greater] [equal hyphen];\012\012 #1145 ::< ::> <:: >::\012 ignore sub colon colon' [less greater];\012 ignore sub [less greater]' colon colon;\012\012 # middles & ends\012 sub [less.center greater.center colon.center] colon' by colon.center;\012 sub colon.center [less greater]' by [less.center greater.center];\012\012 # starts\012 sub [less greater]' colon by [less.center greater.center];\012 sub colon' [less greater] by colon.center;\012} center;\012\012### Logical conjunction/disjunction #738\012\012lookup slash_backslash {\012 ignore sub @NotSpace slash' backslash;\012 ignore sub slash' backslash @NotSpace;\012 sub slash.spacer backslash' by slash_backslash.liga;\012 sub slash' backslash by slash.spacer;\012} slash_backslash;\012\012lookup backslash_slash {\012 ignore sub @NotSpace backslash' slash;\012 ignore sub backslash' slash @NotSpace;\012 sub backslash.spacer slash' by backslash_slash.liga;\012 sub backslash' slash by backslash.spacer;\012} backslash_slash;\012\012lookup hexadecimal_x {\012 ### 0xFF\012 sub [zero zero.zero] x' [@Digit @HexDigit] by x.multiply;\012 sub [zero.tosf zero.zero.tosf zero.tosf.zero] x' [@DigitTosf @HexDigit] by x.multiply.tosf;\012\012 ### 800x600\012 sub @Digit x' @Digit by x.multiply; \012 sub @DigitTosf x' @DigitTosf by x.multiply.tosf;\012} hexadecimal_x;\012\012### Long dashes\012\012sub twoemdash by hyphen_start.seq hyphen_end.seq;\012sub threeemdash by hyphen_start.seq hyphen_middle.seq hyphen_end.seq;\012\012lookup equal_arrows {\012 # Disable |||\012 ignore sub bar bar' bar equal;\012 ignore sub bar bar' equal;\012 ignore sub [equal_start.seq equal_middle.seq] bar' bar bar;\012\012 # equal middle & end\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' [equal less greater bar slash colon exclam] by equal_middle.seq;\012\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' by equal_end.seq;\012\012 # double middles\012 sub [equal_start.seq equal_middle.seq] less.spacer less' equal by less_less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] less' less equal by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' equal by greater_greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater equal by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' equal by bar_bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar equal by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' equal by slash_slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash equal by slash.spacer;\012\012 # single middles\012 sub [equal_start.seq equal_middle.seq] less' equal by less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' equal by greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' equal by bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' equal by slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] colon' equal by colon_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] exclam' equal by exclam_equal_middle.seq;\012\012 # double ends\012 sub [equal_start.seq equal_middle.seq] less.spacer less' by less_less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] less' less by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' by greater_greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' by bar_bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' by slash_slash_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash by slash.spacer;\012\012 # single ends\012 sub [equal_start.seq equal_middle.seq] less' by less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' by greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' by bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' by slash_equal_end.seq;\012\012 # double beginnings\012 sub less.spacer less' equal by less_less_equal_start.seq;\012 sub less' less equal by less.spacer;\012 sub greater.spacer greater' equal by greater_greater_equal_start.seq;\012 sub greater' greater equal by greater.spacer;\012 sub bar.spacer bar' equal by bar_bar_equal_start.seq;\012 sub bar' bar equal by bar.spacer;\012 sub slash.spacer slash' equal by slash_slash_equal_start.seq;\012 sub slash' slash equal by slash.spacer;\012\012 # Disable >=< #548\012 sub greater' equal less [equal less] by greater_equal_start.seq;\012 ignore sub greater' equal less;\012 \012 # Disable =< #479 #468 #424 #406 #355 #305\012 sub equal' less [equal less] by equal_start.seq;\012\012 # Disable =/ #1056\012 sub equal' slash [equal slash] by equal_start.seq; \012\012 # single beginnings\012 sub less' equal by less_equal_start.seq;\012 sub greater' equal by greater_equal_start.seq;\012 sub bar' equal [equal less greater bar colon exclam slash] by bar_equal_start.seq; # disable |= \012 sub slash' equal by slash_equal_start.seq;\012 sub equal' [equal greater bar colon exclam] by equal_start.seq;\012\012} equal_arrows;\012\012### fi/fl #795\012\012sub [f i.salt_low j.salt_low] [i j]' by [i.salt_low j.salt_low];\012sub [F T I l.salt_low] l' by l.salt_low;\012\012### Greek\012\012lookup caltGreekUCdiph {\012 sub @GreekUCdiphIOTA Iota' by Iotadieresis;\012 sub @GreekUCdiphUPSILON Upsilon' by Upsilondieresis;\012} caltGreekUCdiph;\012\012lookup caltGreekUC {\012 sub @GreekUCAcc' @GreekUC by @GreekUCcalt;\012 sub @GreekUC @GreekUCAcc' by @GreekUCcalt;\012 sub @GreekUCAcc' space @GreekUC by @GreekUCcalt;\012 sub @GreekUC space @GreekUCAcc' by @GreekUCcalt;\012} caltGreekUC;\012\012### Arbitrary-length arrows #346\012\012lookup hyphen_arrows {\012 # Disable |||\012 ignore sub bar bar' bar hyphen;\012 ignore sub bar bar' hyphen;\012 ignore sub [hyphen_start.seq hyphen_middle.seq] bar' bar bar;\012\012 # hyphen middle & end\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' [hyphen less greater bar] by hyphen_middle.seq;\012\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' by hyphen_end.seq;\012\012 # double middles\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' hyphen by less_less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less hyphen by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' hyphen by greater_greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater hyphen by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' hyphen by bar_bar_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar hyphen by bar.spacer;\012\012 # single middles\012 sub [hyphen_start.seq hyphen_middle.seq] less' hyphen by less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' hyphen by greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' hyphen by bar_hyphen_middle.seq;\012\012 # double ends\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' by less_less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' by greater_greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' by bar_bar_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar by bar.spacer;\012\012 # single ends\012 sub [hyphen_start.seq hyphen_middle.seq] less' by less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' by greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' by bar_hyphen_end.seq;\012\012 # double beginnings\012 sub less.spacer less' hyphen by less_less_hyphen_start.seq;\012 sub less' less hyphen by less.spacer;\012 sub greater.spacer greater' hyphen by greater_greater_hyphen_start.seq;\012 sub greater' greater hyphen by greater.spacer;\012 sub bar.spacer bar' hyphen by bar_bar_hyphen_start.seq;\012 sub bar' bar hyphen by bar.spacer;\012\012 # single beginnings\012 sub less' hyphen by less_hyphen_start.seq;\012 sub greater' hyphen by greater_hyphen_start.seq;\012 sub bar' hyphen by bar_hyphen_start.seq;\012 sub hyphen' [hyphen less greater bar] by hyphen_start.seq;\012} hyphen_arrows;\012\012### Lowercase/uppercase operators\012\012# Must go after hyphen_arrows.fea\012\012lookup lowercase_hyphen {\012 ignore sub @Tall \\hyphen' @Lowercase;\012 ignore sub @Lowercase \\hyphen' @Tall; \012 sub \\hyphen' @Lowercase by \\hyphen.lc;\012 sub @Lowercase \\hyphen' by \\hyphen.lc;\012} lowercase_hyphen;\012\012lookup lowercase_plus {\012 ignore sub @Tall \\plus' @Lowercase;\012 ignore sub @Lowercase \\plus' @Tall;\012 sub \\plus' @Lowercase by \\plus.lc;\012 sub @Lowercase \\plus' by \\plus.lc;\012} lowercase_plus;\012\012lookup lowercase_asterisk {\012 ignore sub @Tall \\asterisk' @Lowercase;\012 ignore sub @Lowercase \\asterisk' @Tall;\012 sub \\asterisk' @Lowercase by \\asterisk.lc;\012 sub @Lowercase \\asterisk' by \\asterisk.lc;\012} lowercase_asterisk;\012\012lookup lowercase_asteriskmath {\012 ignore sub @Tall \\asteriskmath' @Lowercase;\012 ignore sub @Lowercase \\asteriskmath' @Tall;\012 sub \\asteriskmath' @Lowercase by \\asteriskmath.lc;\012 sub @Lowercase \\asteriskmath' by \\asteriskmath.lc;\012} lowercase_asteriskmath;\012\012lookup uppercase_colon {\012 ignore sub @Tall \\colon' @Lowercase;\012 ignore sub @Lowercase \\colon' @Tall;\012 sub @Tall \\colon' by \\colon.uc;\012 sub \\colon' @Tall by \\colon.uc;\012# pos @Tall \\colon' <0 160 0 0>;\012# pos \\colon' @Tall <0 160 0 0>;\012} uppercase_colon;\012\012lookup numbersigns {\012 # middle parts\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' numbersign by numbersign_middle.seq;\012\012 # ends\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' by numbersign_end.seq;\012 \012 # beginnings\012 sub numbersign' numbersign by numbersign_start.seq; \012} numbersigns;\012\012lookup underscores {\012 # ignore\012 ignore sub [bracketleft comma] nbspace [underscore_start.seq underscore_middle.seq] bar' underscore; \012\012 ignore sub [bracketleft comma] [underscore_start.seq underscore_middle.seq] bar' underscore; \012 # middle parts\012 sub [underscore_start.seq underscore_middle.seq] bar' underscore by bar_underscore_middle.seq;\012 \012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' bar underscore by underscore_middle.seq;\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' underscore by underscore_middle.seq;\012\012 # ends\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' by underscore_end.seq;\012 \012 # beginnings\012 sub underscore' bar underscore by underscore_start.seq; \012 sub underscore' underscore by underscore_start.seq; \012} underscores;"; +code = "lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub less.spacer bar.spacer greater' by less_bar_greater.liga;\012 sub less.spacer bar' greater by bar.spacer;\012 sub less' bar greater by less.spacer;\012} less_bar_greater;\012\012lookup bar_bar_bar_greater {\012 ignore sub bar bar' bar bar greater;\012 ignore sub bar' bar bar greater greater;\012 sub bar.spacer bar.spacer bar.spacer greater' by bar_bar_bar_greater.liga;\012 sub bar.spacer bar.spacer bar' greater by bar.spacer;\012 sub bar.spacer bar' bar greater by bar.spacer;\012 sub bar' bar bar greater by bar.spacer;\012} bar_bar_bar_greater;\012\012lookup less_bar_bar_bar {\012 ignore sub less less' bar bar bar;\012 ignore sub less' bar bar bar bar;\012 sub less.spacer bar.spacer bar.spacer bar' by less_bar_bar_bar.liga;\012 sub less.spacer bar.spacer bar' bar by bar.spacer;\012 sub less.spacer bar' bar bar by bar.spacer;\012 sub less' bar bar bar by less.spacer;\012} less_bar_bar_bar;\012\012lookup bar_bar_greater {\012 ignore sub bar bar' bar greater;\012 ignore sub bar' bar greater greater;\012 ignore sub less bar' bar greater;\012 sub bar.spacer bar.spacer greater' by bar_bar_greater.liga;\012 sub bar.spacer bar' greater by bar.spacer;\012 sub bar' bar greater by bar.spacer;\012} bar_bar_greater;\012\012lookup less_bar_bar {\012 ignore sub less less' bar bar;\012 ignore sub less' bar bar bar;\012 ignore sub less' bar bar greater;\012 sub less.spacer bar.spacer bar' by less_bar_bar.liga;\012 sub less.spacer bar' bar by bar.spacer;\012 sub less' bar bar by less.spacer;\012} less_bar_bar;\012\012lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub bar.spacer greater' by bar_greater.liga;\012 sub bar' greater by bar.spacer;\012} bar_greater;\012\012lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub less.spacer bar' by less_bar.liga;\012 sub less' bar by less.spacer;\012} less_bar;\012\012lookup bar_bar_bar {\012 ignore sub bar bar' bar bar;\012 ignore sub bar' bar bar bar;\012 sub bar.spacer bar.spacer bar' by bar_bar_bar.liga;\012 sub bar.spacer bar' bar by bar.spacer;\012 sub bar' bar bar by bar.spacer;\012} bar_bar_bar;\012\012lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 ignore sub [asterisk plus dollar] greater' greater greater;\012 sub greater.spacer greater.spacer greater' by greater_greater_greater.liga;\012 sub greater.spacer greater' greater by greater.spacer;\012 sub greater' greater greater by greater.spacer;\012} greater_greater_greater;\012\012lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 ignore sub less' less less [asterisk plus dollar];\012 sub less.spacer less.spacer less' by less_less_less.liga;\012 sub less.spacer less' less by less.spacer;\012 sub less' less less by less.spacer;\012} less_less_less;\012\012lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 ignore sub [hyphen equal] bar' bar;\012 ignore sub bar' bar hyphen;\012 ignore sub bar' bar equal [equal less greater bar colon exclam slash];\012 sub bar.spacer bar' by bar_bar.liga;\012 sub bar' bar by bar.spacer;\012} bar_bar;\012\012lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 ignore sub [asterisk plus dollar] greater' greater;\012 ignore sub [hyphen equal] greater' greater;\012 ignore sub greater' greater hyphen;\012 ignore sub greater' greater equal [equal less greater bar colon exclam slash];\012 sub greater.spacer greater' by greater_greater.liga;\012 sub greater' greater by greater.spacer;\012} greater_greater;\012\012lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 ignore sub less' less [asterisk plus dollar];\012 ignore sub [hyphen equal] less' less;\012 ignore sub less' less hyphen;\012 ignore sub less' less equal [equal less greater bar colon exclam slash];\012 sub less.spacer less' by less_less.liga;\012 sub less' less by less.spacer;\012} less_less;\012\012lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 ignore sub parenleft question less' exclam hyphen hyphen;\012 sub less.spacer exclam.spacer hyphen.spacer hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub less.spacer exclam.spacer hyphen' hyphen by hyphen.spacer;\012 sub less.spacer exclam' hyphen hyphen by exclam.spacer;\012 sub less' exclam hyphen hyphen by less.spacer;\012} less_exclam_hyphen_hyphen;\012\012lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub asciitilde.spacer asciitilde.spacer greater' by asciitilde_asciitilde_greater.liga;\012 sub asciitilde.spacer asciitilde' greater by asciitilde.spacer;\012 sub asciitilde' asciitilde greater by asciitilde.spacer;\012} asciitilde_asciitilde_greater;\012\012lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 ignore sub slash asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk slash;\012 sub asterisk.spacer asterisk.spacer asterisk' by asterisk_asterisk_asterisk.liga;\012 sub asterisk.spacer asterisk' asterisk by asterisk.spacer;\012 sub asterisk' asterisk asterisk by asterisk.spacer;\012} asterisk_asterisk_asterisk;\012\012lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 ignore sub parenleft question colon' colon colon;\012 ignore sub colon' colon colon [less greater];\012 ignore sub [less greater] colon' colon colon;\012 sub colon.spacer colon.spacer colon' by colon_colon_colon.liga;\012 sub colon.spacer colon' colon by colon.spacer;\012 sub colon' colon colon by colon.spacer;\012} colon_colon_colon;\012\012lookup colon_colon_equal {\012 ignore sub colon colon' colon equal;\012 ignore sub colon' colon equal equal;\012 ignore sub parenleft question colon' colon equal;\012 sub colon.spacer colon.spacer equal' by colon_colon_equal.liga;\012 sub colon.spacer colon' equal by colon.spacer;\012 sub colon' colon equal by colon.spacer;\012} colon_colon_equal;\012\012lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 ignore sub parenleft question equal' equal equal;\012 ignore sub parenleft question less equal' equal equal;\012 ignore sub less question equal' equal equal;\012 ignore sub bracketleft equal' equal equal;\012 ignore sub equal' equal equal bracketright;\012 ignore sub equal [colon exclam] equal' equal equal;\012 ignore sub [less greater bar slash] equal' equal equal;\012 ignore sub equal' equal equal [less greater bar slash];\012 ignore sub equal' equal equal [colon exclam] equal;\012 sub equal.spacer equal.spacer equal' by equal_equal_equal.liga;\012 sub equal.spacer equal' equal by equal.spacer;\012 sub equal' equal equal by equal.spacer;\012} equal_equal_equal;\012\012lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 ignore sub parenleft question exclam' equal equal;\012 ignore sub parenleft question less exclam' equal equal;\012 ignore sub equal exclam' equal equal;\012 sub exclam.spacer equal.spacer equal' by exclam_equal_equal.liga;\012 sub exclam.spacer equal' equal by equal.spacer;\012 sub exclam' equal equal by exclam.spacer;\012} exclam_equal_equal;\012\012lookup exclam_exclam_period {\012 ignore sub exclam exclam' exclam period;\012 ignore sub exclam' exclam period period;\012 ignore sub parenleft question exclam' exclam period;\012 ignore sub parenleft question less exclam' exclam period;\012 sub exclam.spacer exclam.spacer period' by exclam_exclam_period.liga;\012 sub exclam.spacer exclam' period by exclam.spacer;\012 sub exclam' exclam period by exclam.spacer;\012} exclam_exclam_period;\012\012lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub less.spacer asciitilde.spacer asciitilde' by less_asciitilde_asciitilde.liga;\012 sub less.spacer asciitilde' asciitilde by asciitilde.spacer;\012 sub less' asciitilde asciitilde by less.spacer;\012} less_asciitilde_asciitilde;\012\012lookup less_asciitilde_greater {\012 ignore sub less less' asciitilde greater;\012 ignore sub less' asciitilde greater greater;\012 sub less.spacer asciitilde.spacer greater' by less_asciitilde_greater.liga;\012 sub less.spacer asciitilde' greater by asciitilde.spacer;\012 sub less' asciitilde greater by less.spacer;\012} less_asciitilde_greater;\012\012lookup less_asterisk_greater {\012 sub less.spacer asterisk.spacer greater' by less_asterisk_greater.liga;\012 sub less.spacer asterisk' greater by asterisk.spacer;\012 sub less' asterisk greater by less.spacer;\012} less_asterisk_greater;\012\012lookup less_dollar_greater {\012 sub less.spacer dollar.spacer greater' by less_dollar_greater.liga;\012 sub less.spacer dollar' greater by dollar.spacer;\012 sub less' dollar greater by less.spacer;\012} less_dollar_greater;\012\012lookup less_plus_greater {\012 sub less.spacer plus.spacer greater' by less_plus_greater.liga;\012 sub less.spacer plus' greater by plus.spacer;\012 sub less' plus greater by less.spacer;\012} less_plus_greater;\012\012lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub less.spacer slash.spacer greater' by less_slash_greater.liga;\012 sub less.spacer slash' greater by slash.spacer;\012 sub less' slash greater by less.spacer;\012} less_slash_greater;\012\012lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub numbersign.spacer underscore.spacer parenleft' by numbersign_underscore_parenleft.liga;\012 sub numbersign.spacer underscore' parenleft by underscore.spacer;\012 sub numbersign' underscore parenleft by numbersign.spacer;\012} numbersign_underscore_parenleft;\012\012lookup period_period_equal {\012 ignore sub period period' period equal;\012 ignore sub period' period equal equal;\012 sub period.spacer period.spacer equal' by period_period_equal.liga;\012 sub period.spacer period' equal by period.spacer;\012 sub period' period equal by period.spacer;\012} period_period_equal;\012\012lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub period.spacer period.spacer less' by period_period_less.liga;\012 sub period.spacer period' less by period.spacer;\012 sub period' period less by period.spacer;\012} period_period_less;\012\012lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub period.spacer period.spacer period' by period_period_period.liga;\012 sub period.spacer period' period by period.spacer;\012 sub period' period period by period.spacer;\012} period_period_period;\012\012lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub plus.spacer plus.spacer plus' by plus_plus_plus.liga;\012 sub plus.spacer plus' plus by plus.spacer;\012 sub plus' plus plus by plus.spacer;\012} plus_plus_plus;\012\012lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub slash.spacer slash.spacer slash' by slash_slash_slash.liga;\012 sub slash.spacer slash' slash by slash.spacer;\012 sub slash' slash slash by slash.spacer;\012} slash_slash_slash;\012\012lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub w.spacer w.spacer w' by w_w_w.liga;\012 sub w.spacer w' w by w.spacer;\012 sub w' w w by w.spacer;\012} w_w_w;\012\012lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub ampersand.spacer ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by ampersand.spacer;\012} ampersand_ampersand;\012\012lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub asciicircum.spacer equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by asciicircum.spacer;\012} asciicircum_equal;\012\012lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub asciitilde.spacer asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by asciitilde.spacer;\012} asciitilde_asciitilde;\012\012lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub asciitilde.spacer at' by asciitilde_at.liga;\012 sub asciitilde' at by asciitilde.spacer;\012} asciitilde_at;\012\012lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub asciitilde.spacer greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by asciitilde.spacer;\012} asciitilde_greater;\012\012lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub asciitilde.spacer hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by asciitilde.spacer;\012} asciitilde_hyphen;\012\012lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 ignore sub slash asterisk' asterisk;\012 ignore sub asterisk' asterisk slash;\012 sub asterisk.spacer asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by asterisk.spacer;\012} asterisk_asterisk;\012\012lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub asterisk.spacer greater' by asterisk_greater.liga;\012 sub asterisk' greater by asterisk.spacer;\012} asterisk_greater;\012\012lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 ignore sub slash asterisk' slash;\012 ignore sub asterisk' slash asterisk;\012 sub asterisk.spacer slash' by asterisk_slash.liga;\012 sub asterisk' slash by asterisk.spacer;\012} asterisk_slash;\012\012lookup bar_braceright {\012 ignore sub bar bar' braceright;\012 ignore sub bar' braceright braceright;\012 ignore sub braceleft bar' braceright;\012 sub bar.spacer braceright' by bar_braceright.liga;\012 sub bar' braceright by bar.spacer;\012} bar_braceright;\012\012lookup bar_bracketright {\012 ignore sub bar bar' bracketright;\012 ignore sub bar' bracketright bracketright;\012 ignore sub bracketleft bar' bracketright;\012 sub bar.spacer bracketright' by bar_bracketright.liga;\012 sub bar' bracketright by bar.spacer;\012} bar_bracketright;\012\012lookup braceleft_bar {\012 ignore sub braceleft braceleft' bar;\012 ignore sub braceleft' bar bar;\012 ignore sub braceleft' bar braceright;\012 sub braceleft.spacer bar' by braceleft_bar.liga;\012 sub braceleft' bar by braceleft.spacer;\012} braceleft_bar;\012\012lookup bracketleft_bar {\012 ignore sub bracketleft bracketleft' bar;\012 ignore sub bracketleft' bar bar;\012 ignore sub bracketleft' bar bracketright;\012 sub bracketleft.spacer bar' by bracketleft_bar.liga;\012 sub bracketleft' bar by bracketleft.spacer;\012} bracketleft_bar;\012\012lookup bracketright_numbersign {\012 ignore sub bracketright bracketright' numbersign;\012 ignore sub bracketright' numbersign numbersign;\012 sub bracketright.spacer numbersign' by bracketright_numbersign.liga;\012 sub bracketright' numbersign by bracketright.spacer;\012} bracketright_numbersign;\012\012lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 ignore sub parenleft question colon' colon;\012 ignore sub colon' colon [less greater];\012 ignore sub [less greater] colon' colon;\012 sub colon.spacer colon' by colon_colon.liga;\012 sub colon' colon by colon.spacer;\012} colon_colon;\012\012lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 ignore sub parenleft question colon' equal;\012 ignore sub equal colon' equal;\012 sub colon.spacer equal' by colon_equal.liga;\012 sub colon' equal by colon.spacer;\012} colon_equal;\012\012lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub dollar.spacer greater' by dollar_greater.liga;\012 sub dollar' greater by dollar.spacer;\012} dollar_greater;\012\012lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 ignore sub parenleft question equal' equal;\012 ignore sub parenleft question less equal' equal;\012 ignore sub less question equal' equal;\012 ignore sub bracketleft equal' equal;\012 ignore sub equal' equal bracketright;\012 ignore sub equal [colon exclam] equal' equal;\012 ignore sub [less greater bar slash] equal' equal;\012 ignore sub equal' equal [less greater bar slash] ;\012 ignore sub equal' equal [colon exclam] equal;\012 sub equal.spacer equal' by equal_equal.liga;\012 sub equal' equal by equal.spacer;\012} equal_equal;\012\012lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 ignore sub parenleft question exclam' equal;\012 ignore sub parenleft question less exclam' equal;\012 ignore sub equal exclam' equal;\012 sub exclam.spacer equal' by exclam_equal.liga;\012 sub exclam' equal by exclam.spacer;\012} exclam_equal;\012\012lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 ignore sub parenleft question exclam' exclam;\012 ignore sub parenleft question less exclam' exclam;\012 sub exclam.spacer exclam' by exclam_exclam.liga;\012 sub exclam' exclam by exclam.spacer;\012} exclam_exclam;\012\012lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 ignore sub equal greater' equal;\012 ignore sub greater' equal [less greater bar colon exclam slash];\012 sub greater.spacer equal' by greater_equal.liga;\012 sub greater' equal by greater.spacer;\012} greater_equal;\012\012lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub hyphen.spacer asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by hyphen.spacer;\012} hyphen_asciitilde;\012\012lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 ignore sub [less greater bar] hyphen' hyphen;\012 ignore sub hyphen' hyphen [less greater bar];\012 sub hyphen.spacer hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by hyphen.spacer;\012} hyphen_hyphen;\012\012lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub less.spacer asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by less.spacer;\012} less_asciitilde;\012\012lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub less.spacer asterisk' by less_asterisk.liga;\012 sub less' asterisk by less.spacer;\012} less_asterisk;\012\012lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub less.spacer dollar' by less_dollar.liga;\012 sub less' dollar by less.spacer;\012} less_dollar;\012\012lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 ignore sub parenleft question less' equal;\012 ignore sub equal less' equal;\012 ignore sub less' equal [less greater bar colon exclam slash];\012 sub less.spacer equal' by less_equal.liga;\012 sub less' equal by less.spacer;\012} less_equal;\012\012lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub less.spacer greater' by less_greater.liga;\012 sub less' greater by less.spacer;\012} less_greater;\012\012lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub less.spacer plus' by less_plus.liga;\012 sub less' plus by less.spacer;\012} less_plus;\012\012lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub less.spacer slash' by less_slash.liga;\012 sub less' slash by less.spacer;\012} less_slash;\012\012lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub numbersign.spacer braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by numbersign.spacer;\012} numbersign_braceleft;\012\012lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub numbersign.spacer bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by numbersign.spacer;\012} numbersign_bracketleft;\012\012lookup numbersign_colon {\012 ignore sub numbersign numbersign' colon;\012 ignore sub numbersign' colon colon;\012 sub numbersign.spacer colon' by numbersign_colon.liga;\012 sub numbersign' colon by numbersign.spacer;\012} numbersign_colon;\012\012lookup numbersign_equal {\012 ignore sub numbersign numbersign' equal;\012 ignore sub numbersign' equal equal;\012 sub numbersign.spacer equal' by numbersign_equal.liga;\012 sub numbersign' equal by numbersign.spacer;\012} numbersign_equal;\012\012lookup numbersign_exclam {\012 ignore sub numbersign numbersign' exclam;\012 ignore sub numbersign' exclam exclam;\012 sub numbersign.spacer exclam' by numbersign_exclam.liga;\012 sub numbersign' exclam by numbersign.spacer;\012} numbersign_exclam;\012\012lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub numbersign.spacer parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by numbersign.spacer;\012} numbersign_parenleft;\012\012lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub numbersign.spacer question' by numbersign_question.liga;\012 sub numbersign' question by numbersign.spacer;\012} numbersign_question;\012\012lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub numbersign.spacer underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by numbersign.spacer;\012} numbersign_underscore;\012\012lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub percent.spacer percent' by percent_percent.liga;\012 sub percent' percent by percent.spacer;\012} percent_percent;\012\012lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub period.spacer period' by period_period.liga;\012 sub period' period by period.spacer;\012} period_period;\012\012lookup period_question {\012 ignore sub period period' question;\012 ignore sub period' question question;\012 sub period.spacer question' by period_question.liga;\012 sub period' question by period.spacer;\012} period_question;\012\012lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub plus.spacer greater' by plus_greater.liga;\012 sub plus' greater by plus.spacer;\012} plus_greater;\012\012lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub plus.spacer plus' by plus_plus.liga;\012 sub plus' plus by plus.spacer;\012} plus_plus;\012\012lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 ignore sub parenleft question' equal;\012 ignore sub less question' equal;\012 sub question.spacer equal' by question_equal.liga;\012 sub question' equal by question.spacer;\012} question_equal;\012\012lookup question_period {\012 ignore sub question question' period;\012 ignore sub question' period period;\012 sub question.spacer period' by question_period.liga;\012 sub question' period by question.spacer;\012} question_period;\012\012lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub question.spacer question' by question_question.liga;\012 sub question' question by question.spacer;\012} question_question;\012\012lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub semicolon.spacer semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by semicolon.spacer;\012} semicolon_semicolon;\012\012lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 ignore sub slash' asterisk slash;\012 ignore sub asterisk slash' asterisk;\012 sub slash.spacer asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by slash.spacer;\012} slash_asterisk;\012\012lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub slash.spacer greater' by slash_greater.liga;\012 sub slash' greater by slash.spacer;\012} slash_greater;\012\012lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 ignore sub equal slash' slash;\012 ignore sub slash' slash equal;\012 sub slash.spacer slash' by slash_slash.liga;\012 sub slash' slash by slash.spacer;\012} slash_slash;\012\012### Vertical-align colon/greater/less\012\012# :> :< >: <:\012# :>: :<:\012# <:> >:< <:< >:>\012# <::> <::< >::< >::>\012# <:::> <:::< >:::< >:::>\012# <::::> <::::< >::::< >::::>\012\012lookup center {\012 #574 :>= :<=\012 ignore sub colon' [less greater] [equal hyphen];\012\012 #1145 ::< ::> <:: >::\012 ignore sub colon colon' [less greater];\012 ignore sub [less greater]' colon colon;\012\012 # middles & ends\012 sub [less.center greater.center colon.center] colon' by colon.center;\012 sub colon.center [less greater]' by [less.center greater.center];\012\012 # starts\012 sub [less greater]' colon by [less.center greater.center];\012 sub colon' [less greater] by colon.center;\012} center;\012\012### Logical conjunction/disjunction #738\012\012lookup slash_backslash {\012 ignore sub @NotSpace slash' backslash;\012 ignore sub slash' backslash @NotSpace;\012 sub slash.spacer backslash' by slash_backslash.liga;\012 sub slash' backslash by slash.spacer;\012} slash_backslash;\012\012lookup backslash_slash {\012 ignore sub @NotSpace backslash' slash;\012 ignore sub backslash' slash @NotSpace;\012 sub backslash.spacer slash' by backslash_slash.liga;\012 sub backslash' slash by backslash.spacer;\012} backslash_slash;\012\012lookup hexadecimal_x {\012 ### 0xFF\012 sub [zero zero.zero] x' [@Digit @HexDigit] by x.multiply;\012 sub [zero.tosf zero.zero.tosf zero.tosf.zero] x' [@DigitTosf @HexDigit] by x.multiply.tosf;\012\012 ### 800x600\012 sub @Digit x' @Digit by x.multiply; \012 sub @DigitTosf x' @DigitTosf by x.multiply.tosf;\012} hexadecimal_x;\012\012### Long dashes\012\012sub twoemdash by hyphen_start.seq hyphen_end.seq;\012sub threeemdash by hyphen_start.seq hyphen_middle.seq hyphen_end.seq;\012\012lookup equal_arrows {\012 # Disable |||\012 ignore sub bar bar' bar equal;\012 ignore sub bar bar' equal;\012 ignore sub [equal_start.seq equal_middle.seq] bar' bar bar;\012\012 # equal middle & end\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' [equal less greater bar slash colon exclam] by equal_middle.seq;\012\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' by equal_end.seq;\012\012 # double middles\012 sub [equal_start.seq equal_middle.seq] less.spacer less' equal by less_less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] less' less equal by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' equal by greater_greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater equal by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' equal by bar_bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar equal by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' equal by slash_slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash equal by slash.spacer;\012\012 # single middles\012 sub [equal_start.seq equal_middle.seq] less' equal by less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' equal by greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' equal by bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' equal by slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] colon' equal by colon_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] exclam' equal by exclam_equal_middle.seq;\012\012 # double ends\012 sub [equal_start.seq equal_middle.seq] less.spacer less' by less_less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] less' less by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' by greater_greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' by bar_bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' by slash_slash_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash by slash.spacer;\012\012 # single ends\012 sub [equal_start.seq equal_middle.seq] less' by less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' by greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' by bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' by slash_equal_end.seq;\012\012 # double beginnings\012 sub less.spacer less' equal by less_less_equal_start.seq;\012 sub less' less equal by less.spacer;\012 sub greater.spacer greater' equal by greater_greater_equal_start.seq;\012 sub greater' greater equal by greater.spacer;\012 sub bar.spacer bar' equal by bar_bar_equal_start.seq;\012 sub bar' bar equal by bar.spacer;\012 sub slash.spacer slash' equal by slash_slash_equal_start.seq;\012 sub slash' slash equal by slash.spacer;\012\012 # Disable >=< #548\012 sub greater' equal less [equal less] by greater_equal_start.seq;\012 ignore sub greater' equal less;\012 \012 # Disable =< #479 #468 #424 #406 #355 #305\012 sub equal' less [equal less] by equal_start.seq;\012\012 # Disable =/ #1056\012 sub equal' slash [equal slash] by equal_start.seq; \012\012 # single beginnings\012 sub less' equal by less_equal_start.seq;\012 sub greater' equal by greater_equal_start.seq;\012 sub bar' equal [equal less greater bar colon exclam slash] by bar_equal_start.seq; # disable |= \012 sub slash' equal by slash_equal_start.seq;\012 sub equal' [equal greater bar colon exclam] by equal_start.seq;\012\012} equal_arrows;\012\012### fi/fl #795\012\012sub [f i.salt_low j.salt_low] [i j]' by [i.salt_low j.salt_low];\012sub [F T I l.salt_low] l' by l.salt_low;\012\012### Greek\012\012lookup caltGreekUCdiph {\012 sub @GreekUCdiphIOTA Iota' by Iotadieresis;\012 sub @GreekUCdiphUPSILON Upsilon' by Upsilondieresis;\012} caltGreekUCdiph;\012\012lookup caltGreekUC {\012 sub @GreekUCAcc' @GreekUC by @GreekUCcalt;\012 sub @GreekUC @GreekUCAcc' by @GreekUCcalt;\012 sub @GreekUCAcc' space @GreekUC by @GreekUCcalt;\012 sub @GreekUC space @GreekUCAcc' by @GreekUCcalt;\012} caltGreekUC;\012\012### Arbitrary-length arrows #346\012\012lookup hyphen_arrows {\012 # Disable |||\012 ignore sub bar bar' bar hyphen;\012 ignore sub bar bar' hyphen;\012 ignore sub [hyphen_start.seq hyphen_middle.seq] bar' bar bar;\012\012 # hyphen middle & end\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' [hyphen less greater bar] by hyphen_middle.seq;\012\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' by hyphen_end.seq;\012\012 # double middles\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' hyphen by less_less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less hyphen by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' hyphen by greater_greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater hyphen by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' hyphen by bar_bar_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar hyphen by bar.spacer;\012\012 # single middles\012 sub [hyphen_start.seq hyphen_middle.seq] less' hyphen by less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' hyphen by greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' hyphen by bar_hyphen_middle.seq;\012\012 # double ends\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' by less_less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' by greater_greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' by bar_bar_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar by bar.spacer;\012\012 # single ends\012 sub [hyphen_start.seq hyphen_middle.seq] less' by less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' by greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' by bar_hyphen_end.seq;\012\012 # double beginnings\012 sub less.spacer less' hyphen by less_less_hyphen_start.seq;\012 sub less' less hyphen by less.spacer;\012 sub greater.spacer greater' hyphen by greater_greater_hyphen_start.seq;\012 sub greater' greater hyphen by greater.spacer;\012 sub bar.spacer bar' hyphen by bar_bar_hyphen_start.seq;\012 sub bar' bar hyphen by bar.spacer;\012\012 # single beginnings\012 sub less' hyphen by less_hyphen_start.seq;\012 sub greater' hyphen by greater_hyphen_start.seq;\012 sub bar' hyphen by bar_hyphen_start.seq;\012 sub hyphen' [hyphen less greater bar] by hyphen_start.seq;\012} hyphen_arrows;\012\012### Lowercase/uppercase operators\012\012# Must go after hyphen_arrows.fea\012\012lookup lowercase_hyphen {\012 ignore sub @Tall \\hyphen' @Lowercase;\012 ignore sub @Lowercase \\hyphen' @Tall; \012 sub \\hyphen' @Lowercase by \\hyphen.lc;\012 sub @Lowercase \\hyphen' by \\hyphen.lc;\012} lowercase_hyphen;\012\012lookup lowercase_plus {\012 ignore sub @Tall \\plus' @Lowercase;\012 ignore sub @Lowercase \\plus' @Tall;\012 sub \\plus' @Lowercase by \\plus.lc;\012 sub @Lowercase \\plus' by \\plus.lc;\012} lowercase_plus;\012\012lookup lowercase_asterisk {\012 ignore sub @Tall \\asterisk' @Lowercase;\012 ignore sub @Lowercase \\asterisk' @Tall;\012 sub \\asterisk' @Lowercase by \\asterisk.lc;\012 sub @Lowercase \\asterisk' by \\asterisk.lc;\012} lowercase_asterisk;\012\012lookup lowercase_asteriskmath {\012 ignore sub @Tall \\asteriskmath' @Lowercase;\012 ignore sub @Lowercase \\asteriskmath' @Tall;\012 sub \\asteriskmath' @Lowercase by \\asteriskmath.lc;\012 sub @Lowercase \\asteriskmath' by \\asteriskmath.lc;\012} lowercase_asteriskmath;\012\012lookup uppercase_colon {\012 ignore sub @Tall \\colon' @Lowercase;\012 ignore sub @Lowercase \\colon' @Tall;\012 sub @Tall \\colon' by \\colon.uc;\012 sub \\colon' @Tall by \\colon.uc;\012# pos @Tall \\colon' <0 160 0 0>;\012# pos \\colon' @Tall <0 160 0 0>;\012} uppercase_colon;\012\012lookup numbersigns {\012 # middle parts\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' numbersign by numbersign_middle.seq;\012\012 # ends\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' by numbersign_end.seq;\012 \012 # beginnings\012 sub numbersign' numbersign by numbersign_start.seq; \012} numbersigns;\012\012lookup underscores {\012 # ignore\012 ignore sub [bracketleft comma] [underscore_start.seq underscore_middle.seq] bar' underscore; \012 # middle parts\012 sub [underscore_start.seq underscore_middle.seq] bar' underscore by bar_underscore_middle.seq;\012 \012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' bar underscore by underscore_middle.seq;\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' underscore by underscore_middle.seq;\012\012 # ends\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' by underscore_end.seq;\012 \012 # beginnings\012 sub underscore' bar underscore by underscore_start.seq; \012 sub underscore' underscore by underscore_start.seq; \012} underscores;"; name = calt; }, { diff --git a/features/calt/underscores.fea b/features/calt/underscores.fea index fdccec2131..70e129733c 100644 --- a/features/calt/underscores.fea +++ b/features/calt/underscores.fea @@ -1,6 +1,5 @@ lookup underscores { # ignore - ignore sub [bracketleft comma] nbspace [underscore_start.seq underscore_middle.seq] bar' underscore; ignore sub [bracketleft comma] [underscore_start.seq underscore_middle.seq] bar' underscore; # middle parts