From 32c2ab2383d956731455d0745907c9cb20cdd3b4 Mon Sep 17 00:00:00 2001 From: gheber Date: Sun, 12 Jul 2015 13:46:15 -0500 Subject: [PATCH] Added a simple abbreviation resolver. Use the WHAT-IS function to expand a Kenzo abbreviation. The abbreviation can be a KEYWORD, STRING or SYMBOL, e.g., (what-is 'chcm) or (what-is "chcm") or (what-is :chcm) all return "CHain CoMplex" . --- kenzo.asd | 1 + package.lisp | 5 ++ src/abbreviations.lisp | 118 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+) create mode 100644 src/abbreviations.lisp diff --git a/kenzo.asd b/kenzo.asd index 4a6b792..c7a9c58 100644 --- a/kenzo.asd +++ b/kenzo.asd @@ -18,6 +18,7 @@ (:module "src" :components ((:file "kenzo") + (:file "abbreviations") (:file "macros") (:file "various") (:file "classes") diff --git a/package.lisp b/package.lisp index 4e95a26..f724741 100644 --- a/package.lisp +++ b/package.lisp @@ -21,6 +21,11 @@ *TDD* *TNPR-WITH-DEGREES* + ;; abbreviations.lisp + + +ABBREVIATIONS+ + WHAT-IS + ;; bar.lisp ABAR diff --git a/src/abbreviations.lisp b/src/abbreviations.lisp new file mode 100644 index 0000000..8d0e9a1 --- /dev/null +++ b/src/abbreviations.lisp @@ -0,0 +1,118 @@ + +(IN-PACKAGE #:cat) + +(PROVIDE "abbreviations") + +(DEFINE-CONSTANT +ABBREVIATIONS+ + '( + ;; A + :ABAR "Algebraic-BAR" + :ABSM "ABstract SiMplex" + :ALLP "ALgebraic-LooP" + :APOWR "Abstract POWeR" + + ;; B + :BCC "Bottom Chain Complex" + :BICN "BI-CoNe" + :BNDR "BouNDaRy" + :BRGN "BaR-GeNerator" + :BSGN "BaSe GeNerator" + + ;; C + :CBGN "CoBar-GeNerator" + :CFFC "CoeFFiCient" + :CHCM "CHain-CoMplex" + :CLNM "CaL NuMber" + :CMBN "CoMBiNation" + :CMPR "CoMPaRison" + :CMPRF "CoMPaRison Function" + :CMPS "CoMPoSition" + :CPRD "CoPRoDuct" + :CRPR "CaRtesian-PRoduct" + + ;; D + :DEGR "DEGRee" + :DFFR "DiFFeRential" + :DGOP "DeGeneracy OPerator" + :DLOP "DeL OPerator" + :DGNL "DiaGoNaL" + :DMNS "DiMeNSion" + + ;; E + :EFHM "EFfective HoMology" + :EXPN "EXPoNent" + + ;; G + :GBAR "Geometrical BAR" + :GMSM "GeoMetric SiMplex" + :GNRT "GeNeRaTor" + :GRIN "" + :GRMD "GRound MoDule" + + ;; H + :HMEQ "HoMtopy-EQuivalence" + :HMTP "HoMoToPy" + :HRZN "HoRiZoNtal" + + ;; I + :IABSM "Internal ABstract SiMplex" + :IALLP "Internal-ALgebraic LooP" + :ICMBN "Internal-CoMBiNation" + :IDNM "IDentification NuMber" + :ILOOP "Internal LOOP" + :INTR "INTeRnal-" + + ;; L + :LF "Left F" + :LG "Left G" + :LH "Left H" + :LRDCT "Left ReDuCTion" + + ;; M + :MRPH "MoRPHism" + + ;; O + :OPPS "OPPoSite" + :ORGN "ORiGiN" + + ;; P + :POWR "POWeR" + :PRDC "PRoDuCt" + + ;; R + :RBCC "Bottom Right Chain Complex" + :RDCT "ReDuCTion" + :RF "Right F" + :RG "Right G" + :RH "Right H" + :RNTM "RuNTiMe" + :RRDCT "Right ReDuCTion" + :RSLTS "ReSuLTs" + + ;; S + :SBTR "SuBTRact" + :SMGR "SiMplicial-GRoup" + :SMMR "SiMplicial-MorPhism" + :SMST "SiMplicial-SeT" + :SORC "SOuRCe" + :STRT "STRaTegy" + + ;;T + :TCC "Top Chain Complex" + :TNPR "TeNsorPRoduct" + :TNSR "TeNSoR" + :TRGT "TaRGeT" + + ;; V + :VRTC "VeRTiCal" + )) + + +(DEFUN what-is (kwd) + (declare (type (or keyword string symbol) kwd)) + "WHAT-IS returns the full word or term for an abbreviation provided as a keyword +string, or symbol. It returns NIL for unknown abbreviations." + (getf +ABBREVIATIONS+ + (cond ((keywordp kwd) kwd) + ((stringp kwd) (intern (string-upcase kwd) 'keyword)) + ((symbolp kwd) (intern (symbol-name kwd) 'keyword)))))