From 9704650782b09751ea8f473572a8e930c50e5483 Mon Sep 17 00:00:00 2001 From: Nikita Prokopov Date: Tue, 30 Aug 2016 16:31:28 +0700 Subject: [PATCH] Removed `/**` `**/` and disabled ligatures for `/*/` `*/*` sequences (closes #219, closes #238) --- FiraCode.glyphs | 143 ++++++++++++++++++++++++------------------------ README.md | 1 + gen_calt.clj | 24 ++++++++ 3 files changed, 95 insertions(+), 73 deletions(-) diff --git a/FiraCode.glyphs b/FiraCode.glyphs index de4986e..163d3bb 100644 --- a/FiraCode.glyphs +++ b/FiraCode.glyphs @@ -1,8 +1,5 @@ { .appVersion = "895"; -DisplayStrings = ( -"//**\012 *\012**//" -); classes = ( { automatic = 1; @@ -179,7 +176,7 @@ code = "pos @Uppercase <5 0 10 0>;\012"; name = cpsp; }, { -code = "### start of generated calt\012\012 lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 sub CR CR CR hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub CR CR hyphen' hyphen by CR;\012 sub CR exclam' hyphen hyphen by CR;\012 sub less' exclam hyphen hyphen by CR;\012 } less_exclam_hyphen_hyphen;\012\012 lookup numbersign_numbersign_numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign numbersign numbersign;\012 ignore sub numbersign' numbersign numbersign numbersign numbersign;\012 sub CR CR CR numbersign' by numbersign_numbersign_numbersign_numbersign.liga;\012 sub CR CR numbersign' numbersign by CR;\012 sub CR numbersign' numbersign numbersign by CR;\012 sub numbersign' numbersign numbersign numbersign by CR;\012 } numbersign_numbersign_numbersign_numbersign;\012\012 lookup less_plus_greater {\012 ignore sub less less' plus greater;\012 ignore sub less' plus greater greater;\012 sub CR CR greater' by less_plus_greater.liga;\012 sub CR plus' greater by CR;\012 sub less' plus greater by CR;\012 } less_plus_greater;\012\012 lookup less_dollar_greater {\012 ignore sub less less' dollar greater;\012 ignore sub less' dollar greater greater;\012 sub CR CR greater' by less_dollar_greater.liga;\012 sub CR dollar' greater by CR;\012 sub less' dollar greater by CR;\012 } less_dollar_greater;\012\012 lookup bar_bar_equal {\012 ignore sub bar bar' bar equal;\012 ignore sub bar' bar equal equal;\012 sub CR CR equal' by bar_bar_equal.liga;\012 sub CR bar' equal by CR;\012 sub bar' bar equal by CR;\012 } bar_bar_equal;\012\012 lookup less_hyphen_greater {\012 ignore sub less less' hyphen greater;\012 ignore sub less' hyphen greater greater;\012 sub CR CR greater' by less_hyphen_greater.liga;\012 sub CR hyphen' greater by CR;\012 sub less' hyphen greater by CR;\012 } less_hyphen_greater;\012\012 lookup greater_greater_hyphen {\012 ignore sub greater greater' greater hyphen;\012 ignore sub greater' greater hyphen hyphen;\012 sub CR CR hyphen' by greater_greater_hyphen.liga;\012 sub CR greater' hyphen by CR;\012 sub greater' greater hyphen by CR;\012 } greater_greater_hyphen;\012\012 lookup equal_less_less {\012 ignore sub equal equal' less less;\012 ignore sub equal' less less less;\012 sub CR CR less' by equal_less_less.liga;\012 sub CR less' less by CR;\012 sub equal' less less by CR;\012 } equal_less_less;\012\012 lookup less_equal_less {\012 ignore sub less less' equal less;\012 ignore sub less' equal less less;\012 sub CR CR less' by less_equal_less.liga;\012 sub CR equal' less by CR;\012 sub less' equal less by CR;\012 } less_equal_less;\012\012 lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub CR CR greater' by asciitilde_asciitilde_greater.liga;\012 sub CR asciitilde' greater by CR;\012 sub asciitilde' asciitilde greater by CR;\012 } asciitilde_asciitilde_greater;\012\012 lookup numbersign_numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign numbersign;\012 ignore sub numbersign' numbersign numbersign numbersign;\012 sub CR CR numbersign' by numbersign_numbersign_numbersign.liga;\012 sub CR numbersign' numbersign by CR;\012 sub numbersign' numbersign numbersign by CR;\012 } numbersign_numbersign_numbersign;\012\012 lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 sub CR CR asterisk' by asterisk_asterisk_asterisk.liga;\012 sub CR asterisk' asterisk by CR;\012 sub asterisk' asterisk asterisk by CR;\012 } asterisk_asterisk_asterisk;\012\012 lookup backslash_backslash_backslash {\012 ignore sub backslash backslash' backslash backslash;\012 ignore sub backslash' backslash backslash backslash;\012 sub CR CR backslash' by backslash_backslash_backslash.liga;\012 sub CR backslash' backslash by CR;\012 sub backslash' backslash backslash by CR;\012 } backslash_backslash_backslash;\012\012 lookup less_less_equal {\012 ignore sub less less' less equal;\012 ignore sub less' less equal equal;\012 sub CR CR equal' by less_less_equal.liga;\012 sub CR less' equal by CR;\012 sub less' less equal by CR;\012 } less_less_equal;\012\012 lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub CR CR greater' by less_bar_greater.liga;\012 sub CR bar' greater by CR;\012 sub less' bar greater by CR;\012 } less_bar_greater;\012\012 lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub CR CR w' by w_w_w.liga;\012 sub CR w' w by CR;\012 sub w' w w by CR;\012 } w_w_w;\012\012 lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub CR CR slash' by slash_slash_slash.liga;\012 sub CR slash' slash by CR;\012 sub slash' slash slash by CR;\012 } slash_slash_slash;\012\012 lookup slash_equal_equal {\012 ignore sub slash slash' equal equal;\012 ignore sub slash' equal equal equal;\012 sub CR CR equal' by slash_equal_equal.liga;\012 sub CR equal' equal by CR;\012 sub slash' equal equal by CR;\012 } slash_equal_equal;\012\012 lookup less_hyphen_hyphen {\012 ignore sub less less' hyphen hyphen;\012 ignore sub less' hyphen hyphen hyphen;\012 sub CR CR hyphen' by less_hyphen_hyphen.liga;\012 sub CR hyphen' hyphen by CR;\012 sub less' hyphen hyphen by CR;\012 } less_hyphen_hyphen;\012\012 lookup equal_greater_greater {\012 ignore sub equal equal' greater greater;\012 ignore sub equal' greater greater greater;\012 sub CR CR greater' by equal_greater_greater.liga;\012 sub CR greater' greater by CR;\012 sub equal' greater greater by CR;\012 } equal_greater_greater;\012\012 lookup slash_asterisk_asterisk {\012 ignore sub slash slash' asterisk asterisk;\012 ignore sub slash' asterisk asterisk asterisk;\012 sub CR CR asterisk' by slash_asterisk_asterisk.liga;\012 sub CR asterisk' asterisk by CR;\012 sub slash' asterisk asterisk by CR;\012 } slash_asterisk_asterisk;\012\012 lookup less_less_hyphen {\012 ignore sub less less' less hyphen;\012 ignore sub less' less hyphen hyphen;\012 sub CR CR hyphen' by less_less_hyphen.liga;\012 sub CR less' hyphen by CR;\012 sub less' less hyphen by CR;\012 } less_less_hyphen;\012\012 lookup hyphen_hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen hyphen;\012 sub CR CR hyphen' by hyphen_hyphen_hyphen.liga;\012 sub CR hyphen' hyphen by CR;\012 sub hyphen' hyphen hyphen by CR;\012 } hyphen_hyphen_hyphen;\012\012 lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub CR CR greater' by less_slash_greater.liga;\012 sub CR slash' greater by CR;\012 sub less' slash greater by CR;\012 } less_slash_greater;\012\012 lookup hyphen_greater_greater {\012 ignore sub hyphen hyphen' greater greater;\012 ignore sub hyphen' greater greater greater;\012 sub CR CR greater' by hyphen_greater_greater.liga;\012 sub CR greater' greater by CR;\012 sub hyphen' greater greater by CR;\012 } hyphen_greater_greater;\012\012 lookup hyphen_less_less {\012 ignore sub hyphen hyphen' less less;\012 ignore sub hyphen' less less less;\012 sub CR CR less' by hyphen_less_less.liga;\012 sub CR less' less by CR;\012 sub hyphen' less less by CR;\012 } hyphen_less_less;\012\012 lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 sub CR CR less' by less_less_less.liga;\012 sub CR less' less by CR;\012 sub less' less less by CR;\012 } less_less_less;\012\012 lookup equal_equal_greater {\012 ignore sub equal equal' equal greater;\012 ignore sub equal' equal greater greater;\012 sub CR CR greater' by equal_equal_greater.liga;\012 sub CR equal' greater by CR;\012 sub equal' equal greater by CR;\012 } equal_equal_greater;\012\012 lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub CR CR period' by period_period_period.liga;\012 sub CR period' period by CR;\012 sub period' period period by CR;\012 } period_period_period;\012\012 lookup less_equal_equal {\012 ignore sub less less' equal equal;\012 ignore sub less' equal equal equal;\012 sub CR CR equal' by less_equal_equal.liga;\012 sub CR equal' equal by CR;\012 sub less' equal equal by CR;\012 } less_equal_equal;\012\012 lookup greater_equal_greater {\012 ignore sub greater greater' equal greater;\012 ignore sub greater' equal greater greater;\012 sub CR CR greater' by greater_equal_greater.liga;\012 sub CR equal' greater by CR;\012 sub greater' equal greater by CR;\012 } greater_equal_greater;\012\012 lookup less_asterisk_greater {\012 ignore sub less less' asterisk greater;\012 ignore sub less' asterisk greater greater;\012 sub CR CR greater' by less_asterisk_greater.liga;\012 sub CR asterisk' greater by CR;\012 sub less' asterisk greater by CR;\012 } less_asterisk_greater;\012\012 lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub CR CR parenleft' by numbersign_underscore_parenleft.liga;\012 sub CR underscore' parenleft by CR;\012 sub numbersign' underscore parenleft by CR;\012 } numbersign_underscore_parenleft;\012\012 lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub CR CR plus' by plus_plus_plus.liga;\012 sub CR plus' plus by CR;\012 sub plus' plus plus by CR;\012 } plus_plus_plus;\012\012 lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub CR CR asciitilde' by less_asciitilde_asciitilde.liga;\012 sub CR asciitilde' asciitilde by CR;\012 sub less' asciitilde asciitilde by CR;\012 } less_asciitilde_asciitilde;\012\012 lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 sub CR CR equal' by exclam_equal_equal.liga;\012 sub CR equal' equal by CR;\012 sub exclam' equal equal by CR;\012 } exclam_equal_equal;\012\012 lookup hyphen_hyphen_greater {\012 ignore sub hyphen hyphen' hyphen greater;\012 ignore sub hyphen' hyphen greater greater;\012 sub CR CR greater' by hyphen_hyphen_greater.liga;\012 sub CR hyphen' greater by CR;\012 sub hyphen' hyphen greater by CR;\012 } hyphen_hyphen_greater;\012\012 lookup equal_slash_equal {\012 ignore sub equal equal' slash equal;\012 ignore sub equal' slash equal equal;\012 sub CR CR equal' by equal_slash_equal.liga;\012 sub CR slash' equal by CR;\012 sub equal' slash equal by CR;\012 } equal_slash_equal;\012\012 lookup asterisk_asterisk_slash {\012 ignore sub asterisk asterisk' asterisk slash;\012 ignore sub asterisk' asterisk slash slash;\012 sub CR CR slash' by asterisk_asterisk_slash.liga;\012 sub CR asterisk' slash by CR;\012 sub asterisk' asterisk slash by CR;\012 } asterisk_asterisk_slash;\012\012 lookup less_equal_greater {\012 ignore sub less less' equal greater;\012 ignore sub less' equal greater greater;\012 sub CR CR greater' by less_equal_greater.liga;\012 sub CR equal' greater by CR;\012 sub less' equal greater by CR;\012 } less_equal_greater;\012\012 lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 sub CR CR greater' by greater_greater_greater.liga;\012 sub CR greater' greater by CR;\012 sub greater' greater greater by CR;\012 } greater_greater_greater;\012\012 lookup greater_greater_equal {\012 ignore sub greater greater' greater equal;\012 ignore sub greater' greater equal equal;\012 sub CR CR equal' by greater_greater_equal.liga;\012 sub CR greater' equal by CR;\012 sub greater' greater equal by CR;\012 } greater_greater_equal;\012\012 lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub CR CR less' by period_period_less.liga;\012 sub CR period' less by CR;\012 sub period' period less by CR;\012 } period_period_less;\012\012 lookup equal_colon_equal {\012 ignore sub equal equal' colon equal;\012 ignore sub equal' colon equal equal;\012 sub CR CR equal' by equal_colon_equal.liga;\012 sub CR colon' equal by CR;\012 sub equal' colon equal by CR;\012 } equal_colon_equal;\012\012 lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 sub CR CR equal' by equal_equal_equal.liga;\012 sub CR equal' equal by CR;\012 sub equal' equal equal by CR;\012 } equal_equal_equal;\012\012 lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 sub CR CR colon' by colon_colon_colon.liga;\012 sub CR colon' colon by CR;\012 sub colon' colon colon by CR;\012 } colon_colon_colon;\012\012 lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub CR dollar' by less_dollar.liga;\012 sub less' dollar by CR;\012 } less_dollar;\012\012 lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub CR question' by question_question.liga;\012 sub question' question by CR;\012 } question_question;\012\012 lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub CR asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by CR;\012 } asciitilde_asciitilde;\012\012 lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 sub CR asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by CR;\012 } asterisk_asterisk;\012\012 lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 sub CR greater' by greater_greater.liga;\012 sub greater' greater by CR;\012 } greater_greater;\012\012 lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 sub CR slash' by slash_slash.liga;\012 sub slash' slash by CR;\012 } slash_slash;\012\012 lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 sub CR equal' by colon_equal.liga;\012 sub colon' equal by CR;\012 } colon_equal;\012\012 lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub CR greater' by less_greater.liga;\012 sub less' greater by CR;\012 } less_greater;\012\012 lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 sub CR exclam' by exclam_exclam.liga;\012 sub exclam' exclam by CR;\012 } exclam_exclam;\012\012 lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub CR greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by CR;\012 } asciitilde_greater;\012\012 lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub CR greater' by bar_greater.liga;\012 sub bar' greater by CR;\012 } bar_greater;\012\012 lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 sub CR less' by less_less.liga;\012 sub less' less by CR;\012 } less_less;\012\012 lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 sub CR hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by CR;\012 } hyphen_hyphen;\012\012 lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub CR ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by CR;\012 } ampersand_ampersand;\012\012 lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 sub CR equal' by question_equal.liga;\012 sub question' equal by CR;\012 } question_equal;\012\012 lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub CR greater' by plus_greater.liga;\012 sub plus' greater by CR;\012 } plus_greater;\012\012 lookup asciitilde_equal {\012 ignore sub asciitilde asciitilde' equal;\012 ignore sub asciitilde' equal equal;\012 sub CR equal' by asciitilde_equal.liga;\012 sub asciitilde' equal by CR;\012 } asciitilde_equal;\012\012 lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub CR equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by CR;\012 } asciicircum_equal;\012\012 lookup bar_equal {\012 ignore sub bar bar' equal;\012 ignore sub bar' equal equal;\012 sub CR equal' by bar_equal.liga;\012 sub bar' equal by CR;\012 } bar_equal;\012\012 lookup backslash_backslash {\012 ignore sub backslash backslash' backslash;\012 ignore sub backslash' backslash backslash;\012 sub CR backslash' by backslash_backslash.liga;\012 sub backslash' backslash by CR;\012 } backslash_backslash;\012\012 lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub CR question' by numbersign_question.liga;\012 sub numbersign' question by CR;\012 } numbersign_question;\012\012 lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub CR slash' by less_slash.liga;\012 sub less' slash by CR;\012 } less_slash;\012\012 lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 sub CR bar' by bar_bar.liga;\012 sub bar' bar by CR;\012 } bar_bar;\012\012 lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub CR plus' by less_plus.liga;\012 sub less' plus by CR;\012 } less_plus;\012\012 lookup numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign;\012 ignore sub numbersign' numbersign numbersign;\012 sub CR numbersign' by numbersign_numbersign.liga;\012 sub numbersign' numbersign by CR;\012 } numbersign_numbersign;\012\012 lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub CR parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by CR;\012 } numbersign_parenleft;\012\012 lookup greater_hyphen {\012 ignore sub greater greater' hyphen;\012 ignore sub greater' hyphen hyphen;\012 sub CR hyphen' by greater_hyphen.liga;\012 sub greater' hyphen by CR;\012 } greater_hyphen;\012\012 lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 sub CR equal' by greater_equal.liga;\012 sub greater' equal by CR;\012 } greater_equal;\012\012 lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub CR percent' by percent_percent.liga;\012 sub percent' percent by CR;\012 } percent_percent;\012\012 lookup equal_greater {\012 ignore sub equal equal' greater;\012 ignore sub equal' greater greater;\012 sub CR greater' by equal_greater.liga;\012 sub equal' greater by CR;\012 } equal_greater;\012\012 lookup hyphen_less {\012 ignore sub hyphen hyphen' less;\012 ignore sub hyphen' less less;\012 sub CR less' by hyphen_less.liga;\012 sub hyphen' less by CR;\012 } hyphen_less;\012\012 lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub CR hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by CR;\012 } asciitilde_hyphen;\012\012 lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 sub CR equal' by equal_equal.liga;\012 sub equal' equal by CR;\012 } equal_equal;\012\012 lookup period_equal {\012 ignore sub period period' equal;\012 ignore sub period' equal equal;\012 sub CR equal' by period_equal.liga;\012 sub period' equal by CR;\012 } period_equal;\012\012 lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub CR underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by CR;\012 } numbersign_underscore;\012\012 lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub CR bar' by less_bar.liga;\012 sub less' bar by CR;\012 } less_bar;\012\012 lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub CR asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by CR;\012 } hyphen_asciitilde;\012\012 lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub CR greater' by asterisk_greater.liga;\012 sub asterisk' greater by CR;\012 } asterisk_greater;\012\012 lookup period_hyphen {\012 ignore sub period period' hyphen;\012 ignore sub period' hyphen hyphen;\012 sub CR hyphen' by period_hyphen.liga;\012 sub period' hyphen by CR;\012 } period_hyphen;\012\012 lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub CR plus' by plus_plus.liga;\012 sub plus' plus by CR;\012 } plus_plus;\012\012 lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub CR bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by CR;\012 } numbersign_bracketleft;\012\012 lookup equal_less {\012 ignore sub equal equal' less;\012 ignore sub equal' less less;\012 sub CR less' by equal_less.liga;\012 sub equal' less by CR;\012 } equal_less;\012\012 lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 sub CR equal' by less_equal.liga;\012 sub less' equal by CR;\012 } less_equal;\012\012 lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub CR period' by period_period.liga;\012 sub period' period by CR;\012 } period_period;\012\012 lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub CR asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by CR;\012 } less_asciitilde;\012\012 lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub CR semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by CR;\012 } semicolon_semicolon;\012\012 lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub CR greater' by dollar_greater.liga;\012 sub dollar' greater by CR;\012 } dollar_greater;\012\012 lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub CR greater' by slash_greater.liga;\012 sub slash' greater by CR;\012 } slash_greater;\012\012 lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 sub CR asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by CR;\012 } slash_asterisk;\012\012 lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub CR asterisk' by less_asterisk.liga;\012 sub less' asterisk by CR;\012 } less_asterisk;\012\012 lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 sub CR equal' by exclam_equal.liga;\012 sub exclam' equal by CR;\012 } exclam_equal;\012\012 lookup slash_equal {\012 ignore sub slash slash' equal;\012 ignore sub slash' equal equal;\012 sub CR equal' by slash_equal.liga;\012 sub slash' equal by CR;\012 } slash_equal;\012\012 lookup hyphen_greater {\012 ignore sub hyphen hyphen' greater;\012 ignore sub hyphen' greater greater;\012 sub CR greater' by hyphen_greater.liga;\012 sub hyphen' greater by CR;\012 } hyphen_greater;\012\012 lookup less_hyphen {\012 ignore sub less less' hyphen;\012 ignore sub less' hyphen hyphen;\012 sub CR hyphen' by less_hyphen.liga;\012 sub less' hyphen by CR;\012 } less_hyphen;\012\012 lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 sub CR colon' by colon_colon.liga;\012 sub colon' colon by CR;\012 } colon_colon;\012\012 lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub CR braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by CR;\012 } numbersign_braceleft;\012\012 lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 sub CR slash' by asterisk_slash.liga;\012 sub asterisk' slash by CR;\012 } asterisk_slash;\012\012 lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub CR at' by asciitilde_at.liga;\012 sub asciitilde' at by CR;\012 } asciitilde_at;\012\012### end of generated calt\012\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 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} uppercase_colon;\012\012sub \\zero \\x' @HexDigit by \\x.multiply;\012sub @Digit \\x' @Digit by \\x.multiply;\012\012###\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"; +code = "### start of generated calt\012\012 lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 sub CR CR CR hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub CR CR hyphen' hyphen by CR;\012 sub CR exclam' hyphen hyphen by CR;\012 sub less' exclam hyphen hyphen by CR;\012 } less_exclam_hyphen_hyphen;\012\012 lookup numbersign_numbersign_numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign numbersign numbersign;\012 ignore sub numbersign' numbersign numbersign numbersign numbersign;\012 sub CR CR CR numbersign' by numbersign_numbersign_numbersign_numbersign.liga;\012 sub CR CR numbersign' numbersign by CR;\012 sub CR numbersign' numbersign numbersign by CR;\012 sub numbersign' numbersign numbersign numbersign by CR;\012 } numbersign_numbersign_numbersign_numbersign;\012\012 lookup less_plus_greater {\012 ignore sub less less' plus greater;\012 ignore sub less' plus greater greater;\012 sub CR CR greater' by less_plus_greater.liga;\012 sub CR plus' greater by CR;\012 sub less' plus greater by CR;\012 } less_plus_greater;\012\012 lookup less_dollar_greater {\012 ignore sub less less' dollar greater;\012 ignore sub less' dollar greater greater;\012 sub CR CR greater' by less_dollar_greater.liga;\012 sub CR dollar' greater by CR;\012 sub less' dollar greater by CR;\012 } less_dollar_greater;\012\012 lookup bar_bar_equal {\012 ignore sub bar bar' bar equal;\012 ignore sub bar' bar equal equal;\012 sub CR CR equal' by bar_bar_equal.liga;\012 sub CR bar' equal by CR;\012 sub bar' bar equal by CR;\012 } bar_bar_equal;\012\012 lookup less_hyphen_greater {\012 ignore sub less less' hyphen greater;\012 ignore sub less' hyphen greater greater;\012 sub CR CR greater' by less_hyphen_greater.liga;\012 sub CR hyphen' greater by CR;\012 sub less' hyphen greater by CR;\012 } less_hyphen_greater;\012\012 lookup greater_greater_hyphen {\012 ignore sub greater greater' greater hyphen;\012 ignore sub greater' greater hyphen hyphen;\012 sub CR CR hyphen' by greater_greater_hyphen.liga;\012 sub CR greater' hyphen by CR;\012 sub greater' greater hyphen by CR;\012 } greater_greater_hyphen;\012\012 lookup equal_less_less {\012 ignore sub equal equal' less less;\012 ignore sub equal' less less less;\012 sub CR CR less' by equal_less_less.liga;\012 sub CR less' less by CR;\012 sub equal' less less by CR;\012 } equal_less_less;\012\012 lookup less_equal_less {\012 ignore sub less less' equal less;\012 ignore sub less' equal less less;\012 sub CR CR less' by less_equal_less.liga;\012 sub CR equal' less by CR;\012 sub less' equal less by CR;\012 } less_equal_less;\012\012 lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub CR CR greater' by asciitilde_asciitilde_greater.liga;\012 sub CR asciitilde' greater by CR;\012 sub asciitilde' asciitilde greater by CR;\012 } asciitilde_asciitilde_greater;\012\012 lookup numbersign_numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign numbersign;\012 ignore sub numbersign' numbersign numbersign numbersign;\012 sub CR CR numbersign' by numbersign_numbersign_numbersign.liga;\012 sub CR numbersign' numbersign by CR;\012 sub numbersign' numbersign numbersign by CR;\012 } numbersign_numbersign_numbersign;\012\012 lookup 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 CR CR asterisk' by asterisk_asterisk_asterisk.liga;\012 sub CR asterisk' asterisk by CR;\012 sub asterisk' asterisk asterisk by CR;\012 } asterisk_asterisk_asterisk;\012\012 lookup backslash_backslash_backslash {\012 ignore sub backslash backslash' backslash backslash;\012 ignore sub backslash' backslash backslash backslash;\012 sub CR CR backslash' by backslash_backslash_backslash.liga;\012 sub CR backslash' backslash by CR;\012 sub backslash' backslash backslash by CR;\012 } backslash_backslash_backslash;\012\012 lookup less_less_equal {\012 ignore sub less less' less equal;\012 ignore sub less' less equal equal;\012 sub CR CR equal' by less_less_equal.liga;\012 sub CR less' equal by CR;\012 sub less' less equal by CR;\012 } less_less_equal;\012\012 lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub CR CR greater' by less_bar_greater.liga;\012 sub CR bar' greater by CR;\012 sub less' bar greater by CR;\012 } less_bar_greater;\012\012 lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub CR CR w' by w_w_w.liga;\012 sub CR w' w by CR;\012 sub w' w w by CR;\012 } w_w_w;\012\012 lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub CR CR slash' by slash_slash_slash.liga;\012 sub CR slash' slash by CR;\012 sub slash' slash slash by CR;\012 } slash_slash_slash;\012\012 lookup slash_equal_equal {\012 ignore sub slash slash' equal equal;\012 ignore sub slash' equal equal equal;\012 sub CR CR equal' by slash_equal_equal.liga;\012 sub CR equal' equal by CR;\012 sub slash' equal equal by CR;\012 } slash_equal_equal;\012\012 lookup less_hyphen_hyphen {\012 ignore sub less less' hyphen hyphen;\012 ignore sub less' hyphen hyphen hyphen;\012 sub CR CR hyphen' by less_hyphen_hyphen.liga;\012 sub CR hyphen' hyphen by CR;\012 sub less' hyphen hyphen by CR;\012 } less_hyphen_hyphen;\012\012 lookup equal_greater_greater {\012 ignore sub equal equal' greater greater;\012 ignore sub equal' greater greater greater;\012 sub CR CR greater' by equal_greater_greater.liga;\012 sub CR greater' greater by CR;\012 sub equal' greater greater by CR;\012 } equal_greater_greater;\012\012 lookup less_less_hyphen {\012 ignore sub less less' less hyphen;\012 ignore sub less' less hyphen hyphen;\012 sub CR CR hyphen' by less_less_hyphen.liga;\012 sub CR less' hyphen by CR;\012 sub less' less hyphen by CR;\012 } less_less_hyphen;\012\012 lookup hyphen_hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen hyphen;\012 sub CR CR hyphen' by hyphen_hyphen_hyphen.liga;\012 sub CR hyphen' hyphen by CR;\012 sub hyphen' hyphen hyphen by CR;\012 } hyphen_hyphen_hyphen;\012\012 lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub CR CR greater' by less_slash_greater.liga;\012 sub CR slash' greater by CR;\012 sub less' slash greater by CR;\012 } less_slash_greater;\012\012 lookup hyphen_greater_greater {\012 ignore sub hyphen hyphen' greater greater;\012 ignore sub hyphen' greater greater greater;\012 sub CR CR greater' by hyphen_greater_greater.liga;\012 sub CR greater' greater by CR;\012 sub hyphen' greater greater by CR;\012 } hyphen_greater_greater;\012\012 lookup hyphen_less_less {\012 ignore sub hyphen hyphen' less less;\012 ignore sub hyphen' less less less;\012 sub CR CR less' by hyphen_less_less.liga;\012 sub CR less' less by CR;\012 sub hyphen' less less by CR;\012 } hyphen_less_less;\012\012 lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 sub CR CR less' by less_less_less.liga;\012 sub CR less' less by CR;\012 sub less' less less by CR;\012 } less_less_less;\012\012 lookup equal_equal_greater {\012 ignore sub equal equal' equal greater;\012 ignore sub equal' equal greater greater;\012 sub CR CR greater' by equal_equal_greater.liga;\012 sub CR equal' greater by CR;\012 sub equal' equal greater by CR;\012 } equal_equal_greater;\012\012 lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub CR CR period' by period_period_period.liga;\012 sub CR period' period by CR;\012 sub period' period period by CR;\012 } period_period_period;\012\012 lookup less_equal_equal {\012 ignore sub less less' equal equal;\012 ignore sub less' equal equal equal;\012 sub CR CR equal' by less_equal_equal.liga;\012 sub CR equal' equal by CR;\012 sub less' equal equal by CR;\012 } less_equal_equal;\012\012 lookup greater_equal_greater {\012 ignore sub greater greater' equal greater;\012 ignore sub greater' equal greater greater;\012 sub CR CR greater' by greater_equal_greater.liga;\012 sub CR equal' greater by CR;\012 sub greater' equal greater by CR;\012 } greater_equal_greater;\012\012 lookup less_asterisk_greater {\012 ignore sub less less' asterisk greater;\012 ignore sub less' asterisk greater greater;\012 sub CR CR greater' by less_asterisk_greater.liga;\012 sub CR asterisk' greater by CR;\012 sub less' asterisk greater by CR;\012 } less_asterisk_greater;\012\012 lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub CR CR parenleft' by numbersign_underscore_parenleft.liga;\012 sub CR underscore' parenleft by CR;\012 sub numbersign' underscore parenleft by CR;\012 } numbersign_underscore_parenleft;\012\012 lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub CR CR plus' by plus_plus_plus.liga;\012 sub CR plus' plus by CR;\012 sub plus' plus plus by CR;\012 } plus_plus_plus;\012\012 lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub CR CR asciitilde' by less_asciitilde_asciitilde.liga;\012 sub CR asciitilde' asciitilde by CR;\012 sub less' asciitilde asciitilde by CR;\012 } less_asciitilde_asciitilde;\012\012 lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 sub CR CR equal' by exclam_equal_equal.liga;\012 sub CR equal' equal by CR;\012 sub exclam' equal equal by CR;\012 } exclam_equal_equal;\012\012 lookup hyphen_hyphen_greater {\012 ignore sub hyphen hyphen' hyphen greater;\012 ignore sub hyphen' hyphen greater greater;\012 sub CR CR greater' by hyphen_hyphen_greater.liga;\012 sub CR hyphen' greater by CR;\012 sub hyphen' hyphen greater by CR;\012 } hyphen_hyphen_greater;\012\012 lookup equal_slash_equal {\012 ignore sub equal equal' slash equal;\012 ignore sub equal' slash equal equal;\012 sub CR CR equal' by equal_slash_equal.liga;\012 sub CR slash' equal by CR;\012 sub equal' slash equal by CR;\012 } equal_slash_equal;\012\012 lookup less_equal_greater {\012 ignore sub less less' equal greater;\012 ignore sub less' equal greater greater;\012 sub CR CR greater' by less_equal_greater.liga;\012 sub CR equal' greater by CR;\012 sub less' equal greater by CR;\012 } less_equal_greater;\012\012 lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 sub CR CR greater' by greater_greater_greater.liga;\012 sub CR greater' greater by CR;\012 sub greater' greater greater by CR;\012 } greater_greater_greater;\012\012 lookup greater_greater_equal {\012 ignore sub greater greater' greater equal;\012 ignore sub greater' greater equal equal;\012 sub CR CR equal' by greater_greater_equal.liga;\012 sub CR greater' equal by CR;\012 sub greater' greater equal by CR;\012 } greater_greater_equal;\012\012 lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub CR CR less' by period_period_less.liga;\012 sub CR period' less by CR;\012 sub period' period less by CR;\012 } period_period_less;\012\012 lookup equal_colon_equal {\012 ignore sub equal equal' colon equal;\012 ignore sub equal' colon equal equal;\012 sub CR CR equal' by equal_colon_equal.liga;\012 sub CR colon' equal by CR;\012 sub equal' colon equal by CR;\012 } equal_colon_equal;\012\012 lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 sub CR CR equal' by equal_equal_equal.liga;\012 sub CR equal' equal by CR;\012 sub equal' equal equal by CR;\012 } equal_equal_equal;\012\012 lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 sub CR CR colon' by colon_colon_colon.liga;\012 sub CR colon' colon by CR;\012 sub colon' colon colon by CR;\012 } colon_colon_colon;\012\012 lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub CR dollar' by less_dollar.liga;\012 sub less' dollar by CR;\012 } less_dollar;\012\012 lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub CR question' by question_question.liga;\012 sub question' question by CR;\012 } question_question;\012\012 lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub CR asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by CR;\012 } asciitilde_asciitilde;\012\012 lookup 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 CR asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by CR;\012 } asterisk_asterisk;\012\012 lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 sub CR greater' by greater_greater.liga;\012 sub greater' greater by CR;\012 } greater_greater;\012\012 lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 sub CR slash' by slash_slash.liga;\012 sub slash' slash by CR;\012 } slash_slash;\012\012 lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 sub CR equal' by colon_equal.liga;\012 sub colon' equal by CR;\012 } colon_equal;\012\012 lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub CR greater' by less_greater.liga;\012 sub less' greater by CR;\012 } less_greater;\012\012 lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 sub CR exclam' by exclam_exclam.liga;\012 sub exclam' exclam by CR;\012 } exclam_exclam;\012\012 lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub CR greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by CR;\012 } asciitilde_greater;\012\012 lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub CR greater' by bar_greater.liga;\012 sub bar' greater by CR;\012 } bar_greater;\012\012 lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 sub CR less' by less_less.liga;\012 sub less' less by CR;\012 } less_less;\012\012 lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 sub CR hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by CR;\012 } hyphen_hyphen;\012\012 lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub CR ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by CR;\012 } ampersand_ampersand;\012\012 lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 sub CR equal' by question_equal.liga;\012 sub question' equal by CR;\012 } question_equal;\012\012 lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub CR greater' by plus_greater.liga;\012 sub plus' greater by CR;\012 } plus_greater;\012\012 lookup asciitilde_equal {\012 ignore sub asciitilde asciitilde' equal;\012 ignore sub asciitilde' equal equal;\012 sub CR equal' by asciitilde_equal.liga;\012 sub asciitilde' equal by CR;\012 } asciitilde_equal;\012\012 lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub CR equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by CR;\012 } asciicircum_equal;\012\012 lookup bar_equal {\012 ignore sub bar bar' equal;\012 ignore sub bar' equal equal;\012 sub CR equal' by bar_equal.liga;\012 sub bar' equal by CR;\012 } bar_equal;\012\012 lookup backslash_backslash {\012 ignore sub backslash backslash' backslash;\012 ignore sub backslash' backslash backslash;\012 sub CR backslash' by backslash_backslash.liga;\012 sub backslash' backslash by CR;\012 } backslash_backslash;\012\012 lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub CR question' by numbersign_question.liga;\012 sub numbersign' question by CR;\012 } numbersign_question;\012\012 lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub CR slash' by less_slash.liga;\012 sub less' slash by CR;\012 } less_slash;\012\012 lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 sub CR bar' by bar_bar.liga;\012 sub bar' bar by CR;\012 } bar_bar;\012\012 lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub CR plus' by less_plus.liga;\012 sub less' plus by CR;\012 } less_plus;\012\012 lookup numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign;\012 ignore sub numbersign' numbersign numbersign;\012 sub CR numbersign' by numbersign_numbersign.liga;\012 sub numbersign' numbersign by CR;\012 } numbersign_numbersign;\012\012 lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub CR parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by CR;\012 } numbersign_parenleft;\012\012 lookup greater_hyphen {\012 ignore sub greater greater' hyphen;\012 ignore sub greater' hyphen hyphen;\012 sub CR hyphen' by greater_hyphen.liga;\012 sub greater' hyphen by CR;\012 } greater_hyphen;\012\012 lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 sub CR equal' by greater_equal.liga;\012 sub greater' equal by CR;\012 } greater_equal;\012\012 lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub CR percent' by percent_percent.liga;\012 sub percent' percent by CR;\012 } percent_percent;\012\012 lookup equal_greater {\012 ignore sub equal equal' greater;\012 ignore sub equal' greater greater;\012 sub CR greater' by equal_greater.liga;\012 sub equal' greater by CR;\012 } equal_greater;\012\012 lookup hyphen_less {\012 ignore sub hyphen hyphen' less;\012 ignore sub hyphen' less less;\012 sub CR less' by hyphen_less.liga;\012 sub hyphen' less by CR;\012 } hyphen_less;\012\012 lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub CR hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by CR;\012 } asciitilde_hyphen;\012\012 lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 sub CR equal' by equal_equal.liga;\012 sub equal' equal by CR;\012 } equal_equal;\012\012 lookup period_equal {\012 ignore sub period period' equal;\012 ignore sub period' equal equal;\012 sub CR equal' by period_equal.liga;\012 sub period' equal by CR;\012 } period_equal;\012\012 lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub CR underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by CR;\012 } numbersign_underscore;\012\012 lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub CR bar' by less_bar.liga;\012 sub less' bar by CR;\012 } less_bar;\012\012 lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub CR asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by CR;\012 } hyphen_asciitilde;\012\012 lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub CR greater' by asterisk_greater.liga;\012 sub asterisk' greater by CR;\012 } asterisk_greater;\012\012 lookup period_hyphen {\012 ignore sub period period' hyphen;\012 ignore sub period' hyphen hyphen;\012 sub CR hyphen' by period_hyphen.liga;\012 sub period' hyphen by CR;\012 } period_hyphen;\012\012 lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub CR plus' by plus_plus.liga;\012 sub plus' plus by CR;\012 } plus_plus;\012\012 lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub CR bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by CR;\012 } numbersign_bracketleft;\012\012 lookup equal_less {\012 ignore sub equal equal' less;\012 ignore sub equal' less less;\012 sub CR less' by equal_less.liga;\012 sub equal' less by CR;\012 } equal_less;\012\012 lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 sub CR equal' by less_equal.liga;\012 sub less' equal by CR;\012 } less_equal;\012\012 lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub CR period' by period_period.liga;\012 sub period' period by CR;\012 } period_period;\012\012 lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub CR asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by CR;\012 } less_asciitilde;\012\012 lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub CR semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by CR;\012 } semicolon_semicolon;\012\012 lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub CR greater' by dollar_greater.liga;\012 sub dollar' greater by CR;\012 } dollar_greater;\012\012 lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub CR greater' by slash_greater.liga;\012 sub slash' greater by CR;\012 } slash_greater;\012\012 lookup 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 CR asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by CR;\012 } slash_asterisk;\012\012 lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub CR asterisk' by less_asterisk.liga;\012 sub less' asterisk by CR;\012 } less_asterisk;\012\012 lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 sub CR equal' by exclam_equal.liga;\012 sub exclam' equal by CR;\012 } exclam_equal;\012\012 lookup slash_equal {\012 ignore sub slash slash' equal;\012 ignore sub slash' equal equal;\012 sub CR equal' by slash_equal.liga;\012 sub slash' equal by CR;\012 } slash_equal;\012\012 lookup hyphen_greater {\012 ignore sub hyphen hyphen' greater;\012 ignore sub hyphen' greater greater;\012 sub CR greater' by hyphen_greater.liga;\012 sub hyphen' greater by CR;\012 } hyphen_greater;\012\012 lookup less_hyphen {\012 ignore sub less less' hyphen;\012 ignore sub less' hyphen hyphen;\012 sub CR hyphen' by less_hyphen.liga;\012 sub less' hyphen by CR;\012 } less_hyphen;\012\012 lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 sub CR colon' by colon_colon.liga;\012 sub colon' colon by CR;\012 } colon_colon;\012\012 lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub CR braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by CR;\012 } numbersign_braceleft;\012\012 lookup 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 CR slash' by asterisk_slash.liga;\012 sub asterisk' slash by CR;\012 } asterisk_slash;\012\012 lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub CR at' by asciitilde_at.liga;\012 sub asciitilde' at by CR;\012 } asciitilde_at;\012\012### end of generated calt\012\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 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} uppercase_colon;\012\012sub \\zero \\x' @HexDigit by \\x.multiply;\012sub @Digit \\x' @Digit by \\x.multiply;\012\012###\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"; name = calt; } ); @@ -72504,40 +72501,6 @@ width = 600; ); }, { -color = 6; -glyphname = asterisk_asterisk_slash.liga; -lastChange = "2016-08-30 09:12:28 +0000"; -layers = ( -{ -components = ( -{ -name = asterisk; -transform = "{1, 0, 0, 1, -1140, 24}"; -}, -{ -name = asterisk_slash.liga; -transform = "{1, 0, 0, 1, -40, 0}"; -} -); -layerId = UUID0; -width = 600; -}, -{ -components = ( -{ -name = asterisk; -transform = "{1, 0, 0, 1, -1100, 0}"; -}, -{ -name = asterisk_slash.liga; -} -); -layerId = "BF448B58-7A35-489E-A1C9-12628F60690C"; -width = 600; -} -); -}, -{ color = 3; glyphname = asterisk_greater.liga; lastChange = "2016-07-16 13:20:04 +0000"; @@ -75044,41 +75007,6 @@ width = 600; ); }, { -color = 6; -glyphname = slash_asterisk_asterisk.liga; -lastChange = "2016-08-30 09:10:11 +0000"; -layers = ( -{ -components = ( -{ -name = slash_asterisk.liga; -transform = "{1, 0, 0, 1, -540, 0}"; -}, -{ -name = asterisk; -transform = "{1, 0, 0, 1, -40, 24}"; -} -); -layerId = UUID0; -width = 600; -}, -{ -components = ( -{ -name = slash_asterisk.liga; -transform = "{1, 0, 0, 1, -600, 0}"; -}, -{ -name = asterisk; -transform = "{1, 0, 0, 1, -100, 24}"; -} -); -layerId = "BF448B58-7A35-489E-A1C9-12628F60690C"; -width = 600; -} -); -}, -{ color = 3; glyphname = slash_equal.liga; lastChange = "2016-07-16 13:20:04 +0000"; @@ -75346,6 +75274,75 @@ width = 600; ); }, { +color = 6; +glyphname = asterisk_asterisk_slash.rem; +lastChange = "2016-08-30 09:22:31 +0000"; +layers = ( +{ +components = ( +{ +name = asterisk; +transform = "{1, 0, 0, 1, -1140, 24}"; +}, +{ +name = asterisk_slash.liga; +transform = "{1, 0, 0, 1, -40, 0}"; +} +); +layerId = UUID0; +width = 600; +}, +{ +components = ( +{ +name = asterisk; +transform = "{1, 0, 0, 1, -1100, 0}"; +}, +{ +name = asterisk_slash.liga; +} +); +layerId = "BF448B58-7A35-489E-A1C9-12628F60690C"; +width = 600; +} +); +}, +{ +color = 6; +glyphname = slash_asterisk_asterisk.rem; +lastChange = "2016-08-30 09:22:27 +0000"; +layers = ( +{ +components = ( +{ +name = slash_asterisk.liga; +transform = "{1, 0, 0, 1, -540, 0}"; +}, +{ +name = asterisk; +transform = "{1, 0, 0, 1, -40, 24}"; +} +); +layerId = UUID0; +width = 600; +}, +{ +components = ( +{ +name = slash_asterisk.liga; +transform = "{1, 0, 0, 1, -600, 0}"; +}, +{ +name = asterisk; +transform = "{1, 0, 0, 1, -100, 24}"; +} +); +layerId = "BF448B58-7A35-489E-A1C9-12628F60690C"; +width = 600; +} +); +}, +{ export = 0; glyphname = asterisk_large.rem; lastChange = "2016-07-18 15:00:26 +0000"; diff --git a/README.md b/README.md index 31bb96e..a68d5b3 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,7 @@ Other monospaced fonts with ligatures: #### 1.201 (August 30, 2016) - Removed `[]` (#92) `{-` `-}` (#248) +- Removed `/**` `**/` and disabled ligatures for `/*/` `*/*` sequences (#219 #238) #### 1.200 (July 18, 2016) diff --git a/gen_calt.clj b/gen_calt.clj index fa5bc34..d416656 100755 --- a/gen_calt.clj +++ b/gen_calt.clj @@ -30,6 +30,27 @@ ; ["asterisk" "asterisk"] ; ["asterisk" "asterisk" "asterisk"]]) +(def ignores + { ["slash" "asterisk"] + (str + " ignore sub slash' asterisk slash;\n" + " ignore sub asterisk slash' asterisk;\n") + + ["asterisk" "slash"] + (str + " ignore sub slash asterisk' slash;\n" + " ignore sub asterisk' slash asterisk;\n") + + ["asterisk" "asterisk"] + (str + " ignore sub slash asterisk' asterisk;\n" + " ignore sub asterisk' asterisk slash;\n") + + ["asterisk" "asterisk" "asterisk"] + (str + " ignore sub slash asterisk' asterisk asterisk;\n" + " ignore sub asterisk' asterisk asterisk slash;\n") + }) (defn liga->rule "[f f i] => { [CR CR i] f_f_i.liga @@ -42,6 +63,7 @@ (str " lookup 1_2 {\n" " ignore sub 1 1' 2;\n" " ignore sub 1' 2 2;\n" + (get ignores liga) " sub CR 2' by 1_2.liga;\n" " sub 1' 2 by CR;\n" " } 1_2;") @@ -51,6 +73,7 @@ (str " lookup 1_2_3 {\n" " ignore sub 1 1' 2 3;\n" " ignore sub 1' 2 3 3;\n" + (get ignores liga) " sub CR CR 3' by 1_2_3.liga;\n" " sub CR 2' 3 by CR;\n" " sub 1' 2 3 by CR;\n" @@ -61,6 +84,7 @@ (str " lookup 1_2_3_4 {\n" " ignore sub 1 1' 2 3 4;\n" " ignore sub 1' 2 3 4 4;\n" + (get ignores liga) " sub CR CR CR 4' by 1_2_3_4.liga;\n" " sub CR CR 3' 4 by CR;\n" " sub CR 2' 3 4 by CR;\n"