language-dickinson 1.1.0.0 → 1.1.0.1
raw patch · 17 files changed
+1071/−25 lines, 17 filesdep +splitPVP ok
version bump matches the API change (PVP)
Dependencies added: split
API changes (from Hackage documentation)
Files
- CHANGELOG.md +7/−0
- bench/Bench.hs +1/−0
- examples/fortune.dck +3/−1
- language-dickinson.cabal +4/−3
- lib/adjectives.dck +488/−10
- lib/adverb.dck +183/−0
- lib/animal.dck +2/−0
- lib/flappend.dck +7/−0
- lib/geography.dck +40/−0
- lib/mentalIllness.dck +18/−0
- lib/noun.dck +286/−0
- man/emd.1 +4/−1
- run/Main.hs +13/−3
- run/REPL.hs +4/−3
- src/Language/Dickinson/Check/Duplicate.hs +2/−0
- src/Language/Dickinson/File.hs +1/−1
- src/Language/Dickinson/Lib.hs +8/−3
CHANGELOG.md view
@@ -1,5 +1,12 @@ # dickinson +## 1.1.0.1++ * Read `DCK_PATH` variable when searching for files.+ * Improvements to `lib/noun.dck` and `lib/adjectives.dck`+ * Add `lib/flappend.dck` and `lib/adverb.dck`+ * Add `ide` subcommand that runs lints + checks+ # 1.1.0.0 * Fix bug in `:type`
bench/Bench.hs view
@@ -65,6 +65,7 @@ ] , bgroup "fileValidate" [ benchValidate "test/examples/declension.dck"+ , bench "lib/adjectives.dck" $ nfIO (validateFile ["lib"] "lib/adjectives.dck") ] , env amalComplex $ \ ~(d, r) -> bgroup "validate"
examples/fortune.dck view
@@ -31,6 +31,7 @@ (| "Hunger is hope.") (| "Spurn your family.") (| "Salvation is finality.")+ (| "If you go outside today, you will become nauseous") (| "Knowledge begets humility.") (| "Mushrooms are made of flesh.") (| "Love animals.")@@ -38,7 +39,7 @@ (| "Drugs have no mystic content.") (| "Irony is the weakest brand of pessimism") (| "Sin rots the flesh.")- (| "Sex wastes the male body.")+ (| "Sex wastes the male body.") ; male sexuality is fundamentally weak (| "Did you remember to put apotheosis on your to-do list?") (| "Cultivate weakness.") (| "Beauty is a moral imperative.")@@ -53,6 +54,7 @@ (''' No more pennies to fill my pockets ''', "Arrow de Wilde"))+ ; (| $ quote ("God save the prom queen", "Molly Kate Kestner")) (| $ quote ("« Le beau est ce qu'on désire sans vouloir le manger. »", "Simone Weil")) (| $ quote ("\"You're more likely to get cut with a dull tool than a sharp one.\"", "Fiona Apple")) (| $ quote ("\"You forgot the difference between equanimity and passivity.\"", "Fiona Apple"))
language-dickinson.cabal view
@@ -1,13 +1,13 @@ cabal-version: 2.0 name: language-dickinson-version: 1.1.0.0+version: 1.1.0.1 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2020 Vanessa McHale maintainer: vamchale@gmail.com author: Vanessa McHale tested-with:- ghc ==8.0.2 ghc ==8.2.2 ghc ==8.4.4 ghc ==8.6.5 ghc ==8.8.3+ ghc ==8.0.2 ghc ==8.2.2 ghc ==8.4.4 ghc ==8.6.5 ghc ==8.8.4 ghc ==8.10.1 synopsis: A language for generative literature@@ -138,7 +138,8 @@ composition-prelude >=1.1.0.1, binary >=0.8.4.0, filepath -any,- directory -any+ directory -any,+ split -any if !flag(cross) build-tool-depends: alex:alex -any, happy:happy -any
lib/adjectives.dck view
@@ -1,13 +1,491 @@+; augmented version of madlang library++(:include color)+ %- (:def adjective- (:oneof- (| "sententious")- (| "poetic")- (| "plain")- (| "bromide")- (| "banal")- (| "redolent")- (| "pithy")- (| "orotund")- (| "stentorian")))+ (:flatten+ (:oneof+ (| color)+ (| "sententious")+ (| "hylic")+ (| "poetic")+ (| "limpid")+ (| "plain")+ (| "bromide")+ (| "banal")+ (| "redolent")+ (| "artful")+ (| "anabatic")+ (| "arid")+ (| "antinomian")+ (| "azure")+ (| "antipruritic")+ (| "elysian")+ (| "alveated")+ (| "audacious")+ (| "autotelic")+ (| "antediluvian")+ (| "antiscorbutic")+ (| "auspicious")+ (| "avuncular")+ (| "arrogant")+ (| "arilloid")+ (| "anisophyllous")+ (| "awesome")+ (| "apotropaic")+ (| "alluring")+ (| "altricial")+ (| "amicular")+ (| "affable")+ (| "angry")+ (| "apposite")+ (| "American")+ (| "arcurate")+ (| "akratic")+ (| "bellicose")+ (| "baleful")+ (| "bilious")+ (| "belligerent")+ (| "brainy")+ (| "bouncy")+ (| "bisexual")+ (| "blithe")+ (| "buffered")+ (| "belletristic")+ (| "bloody")+ (| "brash")+ (| "beautiful")+ (| "bold")+ (| "brawny")+ (| "better")+ (| "bawdy")+ (| "bitter")+ (| "cross")+ (| "crapulous")+ (| "confutative")+ (| "campy")+ (| "cavicorn")+ (| "cinematic")+ (| "concupiscent")+ (| "calm")+ (| "comely")+ (| "cranky")+ (| "Canadian")+ (| "clever")+ (| "cosmic")+ (| "cosmopolitan")+ (| "cymotrichous")+ (| "chthonic")+ (| "cherished")+ (| "chalybeate")+ (| "criminal")+ (| "charismatic")+ (| "clean")+ (| "copacetic")+ (| "craven")+ (| "crooked")+ (| "coked-out")+ (| "chrysanthemum")+ (| "caring")+ (| "cerulean")+ (| "catabatic")+ (| "cavernous")+ (| "christian")+ (| "cretinous")+ (| "cute")+ (| "curule")+ (| "charming")+ (| "cheerful")+ (| "common")+ (| "doxastic")+ (| "demonifugic")+ (| "dolorous")+ (| "dainty")+ (| "dulcet")+ (| "devoted")+ (| "dramatic")+ (| "demented")+ (| "dark")+ (| "drained")+ (| "deep")+ (| "deranged")+ (| "decorated")+ (| "daunting")+ (| "dysopneal")+ (| "diplomatic")+ (| "daring")+ (| "dangerous")+ (| "eloquent")+ (| "exoteric")+ (| "esoteric")+ (| "endogenous")+ (| "emic")+ (| "execrable")+ (| "exterior")+ (| "effusive")+ (| "everyday")+ (| "escharotic")+ (| "ebullient")+ (| "ecstatic")+ (| "ersatz")+ (| "emotional")+ (| "egregious")+ (| "extra")+ (| "elegant")+ (| "elitist")+ (| "euphoric")+ (| "euphonic")+ (| "emaciated")+ (| "elusive")+ (| "epizoan")+ (| "endogamous")+ (| "frazzled")+ (| "ferruginous")+ (| "frumpy")+ (| "flexible")+ (| "fun")+ (| "frenetic")+ (| "fringed")+ (| "fulgent")+ (| "formal")+ (| "flippant")+ (| "fragrant")+ (| "funny")+ (| "flaccid")+ (| "fastidious")+ (| "fulsome")+ (| "foundational")+ (| "frank")+ (| "fancy")+ (| "geriatric")+ (| "generous")+ (| "grateful")+ (| "gallant")+ (| "golden")+ (| "gassy")+ (| "glitzy")+ (| "gilt")+ (| "grandiose")+ (| "gargantuan")+ (| "graminivorous")+ (| "gaudy")+ (| "galactopoietic")+ (| "gaunt")+ (| "gross")+ (| "grand")+ (| "honest")+ (| "houseproud")+ (| "haemodynamic")+ (| "hinky")+ (| "healthy")+ (| "humorous")+ (| "heterosexual")+ (| "high")+ (| "heteroscedastic")+ (| "horny")+ (| "homely")+ (| "hangry")+ (| "hale")+ (| "hairy")+ (| "hard")+ (| "haughty")+ (| "histrionic")+ (| "hellish")+ (| "helpful")+ (| "irrefragable")+ (| "idiorrhythmic")+ (| "irritable")+ (| "interior")+ (| "itchy")+ (| "imperious")+ (| "ingratiating")+ (| "irrational")+ (| "illecebrous")+ (| "irate")+ (| "indigo")+ (| "impure")+ (| "iridescent")+ (| "isochoric")+ (| "iatrogenic")+ (| "idolatrous")+ (| "illusive")+ (| "imparipinnate")+ (| "intransigent")+ (| "iliac")+ (| "intercrural")+ (| "jocose")+ (| "jocular")+ (| "jaunty")+ (| "jocund")+ (| "jerkwater")+ (| "kafkaesque")+ (| "kinky")+ (| "kind")+ (| "katharobic")+ (| "scrobiculate")+ (| "stroppy")+ (| "salubrious")+ (| "sordid")+ (| "supercilious")+ (| "sexual")+ (| "superficial")+ (| "sanguine")+ (| "saturnine")+ (| "strong")+ (| "sneaky")+ (| "sesquipedalian")+ (| "sulking")+ (| "synoptistic")+ (| "skulking")+ (| "skinny")+ (| "slim")+ (| "sybaritic")+ (| "shrewd")+ (| "soft")+ (| "strident")+ (| "shallow")+ (| "sartorial")+ (| "smooth")+ (| "social")+ (| "suave")+ (| "skanky")+ (| "short")+ (| "simple")+ (| "sweaty")+ (| "synthetic")+ (| "silly")+ (| "sleepy")+ (| "sage")+ (| "somnolent")+ (| "smug")+ (| "silky")+ (| "slovenly")+ (| "spicy")+ (| "scientific")+ (| "skilled")+ (| "salacious")+ (| "sacerdotal")+ (| "narrow")+ (| "narcoleptic")+ (| "nude")+ (| "noctilucent")+ (| "nocturnal")+ (| "noetic")+ (| "noxious")+ (| "nosy")+ (| "nodding")+ (| "nervine")+ (| "noble")+ (| "nice")+ (| "nimble")+ (| "nocent")+ (| "nitid")+ (| "nisi")+ (| "nidicolous")+ (| "nidifugous")+ (| "numinous")+ (| "navicular")+ (| "ostentatious")+ (| "orexigenic")+ (| "onerous")+ (| "obtuse")+ (| "oblong")+ (| "organic")+ (| "opulent")+ (| "oneiric")+ (| "ornate")+ (| "orthostatic")+ (| "obnoxious")+ (| "old")+ (| "operose")+ (| "otiose")+ (| "ornery")+ (| "ophiolatrous")+ (| "opalescent")+ (| "obreptitious")+ (| "oleaginous")+ (| "obstreperous")+ (| "otic")+ (| "opprobious")+ (| "peripatetic")+ (| "punctual")+ (| "polythetic")+ (| "pruritic")+ (| "peckish")+ (| "petulant")+ (| "periphrastic")+ (| "paronomastic")+ (| "prim")+ (| "perturbed")+ (| "pallid")+ (| "praemunire")+ (| "practical")+ (| "politic")+ (| "perspicacious")+ (| "pleasant")+ (| "pedestrian")+ (| "poignant")+ (| "perspicuous")+ (| "precocious")+ (| "plump")+ (| "puisne")+ (| "pretentious")+ (| "pure")+ (| "pensive")+ (| "powerful")+ (| "portly")+ (| "paunchy")+ (| "playful")+ (| "pampered")+ (| "psychedelic")+ (| "psychotomimetic")+ (| "phyllotactic")+ (| "phallic")+ (| "pompous")+ (| "pale")+ (| "pathognomonic")+ (| "lachrymose")+ (| "ludic")+ (| "lenient")+ (| "leery")+ (| "liminal")+ (| "lily-livered")+ (| "lusty")+ (| "lithe")+ (| "lush")+ (| "loving")+ (| "licentious")+ (| "laughing")+ (| "lugubrious")+ (| "laodicean")+ (| "lazy")+ (| "quiscient")+ (| "quaggy")+ (| "queasy")+ (| "quirky")+ (| "quondam")+ (| "quarrelsome")+ (| "quixotic")+ (| "querulous")+ (| "queer")+ (| "rotund")+ (| "ribald")+ (| "relictual")+ (| "racy")+ (| "rosy")+ (| "recondite")+ (| "rapt")+ (| "rosicrucian")+ (| "ruthless")+ (| "ruttish")+ (| "ruby")+ (| "ravenous")+ (| "retro")+ (| "radical")+ (| "rustic")+ (| "rational")+ (| "rich")+ (| "riotous")+ (| "risible")+ (| "ritzy")+ (| "ratchet")+ (| "refractory")+ (| "tony")+ (| "teleological")+ (| "tepid")+ (| "truculent")+ (| "tantric")+ (| "turgid")+ (| "turbulent")+ (| "tawdry")+ (| "trite")+ (| "tired")+ (| "tendentious")+ (| "titillating")+ (| "trendy")+ (| "true")+ (| "tangy")+ (| "thenar")+ (| "uncouth")+ (| "ultrasonic")+ (| "umber")+ (| "upbeat")+ (| "unblemished")+ (| "unpretentious")+ (| "unperturbed")+ (| "unrecognizable")+ (| "unwelcome")+ (| "uptight")+ (| "urban")+ (| "ursine")+ (| "unshaven")+ (| "uneven")+ (| "urbane")+ (| "utopian")+ (| "unclean")+ (| "uxorial")+ (| "unctuous")+ (| "unwholesome")+ (| "ugly")+ (| "unadorned")+ (| "vain")+ (| "votive")+ (| "voluptuous")+ (| "vainglorious")+ (| "vaunted")+ (| "vacillating")+ (| "vacant")+ (| "vast")+ (| "vatic")+ (| "verrucose")+ (| "vulgar")+ (| "voluble")+ (| "vermilion")+ (| "voracious")+ (| "verticillate")+ (| "venerable")+ (| "verdant")+ (| "verbose")+ (| "venal")+ (| "velvet")+ (| "vesicant")+ (| "verse")+ (| "venose")+ (| "wan")+ (| "waxing")+ (| "weird")+ (| "weepy")+ (| "wholesome")+ (| "wrinkly")+ (| "wroth")+ (| "wretched")+ (| "wiry")+ (| "withering")+ (| "wizened")+ (| "warmhearted")+ (| "winsome")+ (| "worldly")+ (| "witty")+ (| "wise")+ (| "wilted")+ (| "wily")+ (| "xanthous")+ (| "xenophobic")+ (| "xeric")+ (| "xenodochial")+ (| "yonic")+ (| "yellow")+ (| "yankee")+ (| "young")+ (| "zippy")+ (| "zaftig")+ (| "zygodactyl")+ (| "zaddy")+ (| "zetetic")+ (| "zealous")+ (| "zesty")+ (| "pithy")+ (| "orotund")+ (| "stentorian"))))
+ lib/adverb.dck view
@@ -0,0 +1,183 @@+; ported from madlang++%-++(:def adverb+ (:oneof+ (| "shockingly")+ (| "depressingly")+ (| "lugubriously")+ (| "warmly")+ (| "openly")+ (| "laughably")+ (| "sleepily")+ (| "miserably")+ (| "exceedingly")+ (| "very")+ (| "lawfully")+ (| "purposefully")+ (| "largely")+ (| "meekly")+ (| "smartly")+ (| "questionably")+ (| "particularly")+ (| "woefully")+ (| "excitedly")+ (| "soothingly")+ (| "coldly")+ (| "thrillingly")+ (| "immorally")+ (| "askance")+ (| "smoothly")+ (| "blissfully")+ (| "joyfully")+ (| "persistently")+ (| "graciously")+ (| "thankfully")+ (| "sorrowfully")+ (| "sordidly")+ (| "adorably")+ (| "appaz")+ (| "comfortably")+ (| "candidly")+ (| "frankly")+ (| "honestly")+ (| "bluntly")+ (| "salubriously")+ (| "flamoyantly")+ (| "dangerously")+ (| "auspiciously")+ (| "inauspiciously")+ (| "subtly")+ (| "beautifully")+ (| "gracefully")+ (| "lithely")+ (| "maliciously")+ (| "stunningly")+ (| "aggressively")+ (| "pugnaciously")+ (| "belligerently")+ (| "vigorously")+ (| "animatedly")+ (| "suddenly")+ (| "inconsistently")+ (| "salaciously")+ (| "licentiously")+ (| "loftily")+ (| "superciliously")+ (| "arrogantly")+ (| "consciously")+ (| "conscientiously")+ (| "bitterly")+ (| "slowly")+ (| "quickly")+ (| "ponderously")+ (| "hellishly")+ (| "unfortunately")+ (| "fortunately")+ (| "slavishly")+ (| "hungrily")+ (| "hoarsely")+ (| "inaudibly")+ (| "audibly")+ (| "unconscionably")+ (| "clumsily")+ (| "deftly")+ (| "unabashedly")+ (| "shamefully")+ (| "gainfully")+ (| "uselessly")+ (| "malevolently")+ (| "sneakily")+ (| "solidly")+ (| "turgidly")+ (| "transparently")+ (| "strategically")+ (| "sharply")+ (| "tactically")+ (| "fairly")+ (| "unfairly")+ (| "happily")+ (| "sadly")+ (| "snugly")+ (| "visibly")+ (| "bawdily")+ (| "wearily")+ (| "calmly")+ (| "frantically")+ (| "energetically")+ (| "emphatically")+ (| "persuasively")+ (| "convincingly")+ (| "unconvincingly")+ (| "politically")+ (| "pornographically")+ (| "graphically")+ (| "explicitly")+ (| "implicitly")+ (| "widely")+ (| "narrowly")+ (| "locally")+ (| "globally")+ (| "continuously")+ (| "naturally")+ (| "canonically")+ (| "unnaturally")+ (| "differentiably")+ (| "topologically")+ (| "logically")+ (| "consistently")+ (| "blazingly")+ (| "coolly")+ (| "suavely")+ (| "seductively")+ (| "completely")+ (| "adroitly")+ (| "viciously")+ (| "shrewdly")+ (| "vindictively")+ (| "weakly")+ (| "strongly")+ (| "vanishingly")+ (| "trivially")+ (| "obviously")+ (| "demonstrably")+ (| "provably")+ (| "compactly")+ (| "sparsely")+ (| "sparingly")+ (| "densely")+ (| "abstractly")+ (| "equally")+ (| "equivalently")+ (| "economically")+ (| "intellectually")+ (| "roughly")+ (| "violently")+ (| "dramatically")+ (| "frighteningly")+ (| "brazenly")+ (| "boldly")+ (| "cowardly")+ (| "acerbically")+ (| "basically")+ (| "urbanely")+ (| "voraciously")+ (| "callously")+ (| "inhumanely")+ (| "intuitively")+ (| "constructively")+ (| "destructively")+ (| "restoratively")+ (| "festively")+ (| "angrily")+ (| "peacefully")+ (| "gently")+ (| "tenderly")+ (| "softly")+ (| "laconically")+ (| "verbosely")+ (| "loquaciously")+ (| "mutely")+ (| "silently")+ (| "actively")))
lib/animal.dck view
@@ -38,6 +38,8 @@ (| "lynx") (| "beaver") (| "sable")+ (| "cow")+ (| "cod") (| "weasel") (| "stoat") (| "ermine")
+ lib/flappend.dck view
@@ -0,0 +1,7 @@+%-++; use if you want to supplement e.g. the standard library's colors with your own+(:def flappend+ (:lambda x text+ (:lambda y text+ (:flatten (:oneof (|x) (|y))))))
+ lib/geography.dck view
@@ -0,0 +1,40 @@+%-++(:def building+ (:oneof+ (| "the Pentagon")+ (| "the Sistine Chapel")))++(:def bigCity+ (:oneof+ (| "Istanbul")+ (| "Paris")+ (| "Milan")+ (| "Saigon")+ (| "Naples")+ (| "New York")+ (| "LA")+ (| "Cairo")+ (| "Budapest")+ (| "Edinburgh")+ (| "London")+ (| "Berlin")+ (| "Hong Kong")+ (| "Macau")+ (| "Tokyo")+ (| "Seoul")+ (| "Lima")+ (| "Madrid")+ (| "Barcelona")+ (| "Krakow")+ (| "Moscow")+ (| "St. Petersburg")+ (| "San Fransisco")+ (| "Manila")+ (| "Kuala Lumpur")+ (| "Kyoto")+ (| "Kolkata")+ (| "New Delhi")+ (| "Lhasa")+ (| "Delhi")+ (| "São Paolo")))
+ lib/mentalIllness.dck view
@@ -0,0 +1,18 @@+%-++(:def mentalIllness+ (:oneof+ (| "depression")+ (| "bipolar disorder")+ (| "borderline personality disorder")+ (| "PTSD")+ (| "anorexia")+ (| "agoraphobia")+ (| "schizophrenia")+ (| "OCD")+ (| "trichotillomania")+ (| "dermatillomania")+ (| "hypochondria")+ (| "kleptomania")+ (| "pica")+ (| "Tourette's")))
lib/noun.dck view
@@ -1,3 +1,5 @@+; ported and expanded from madlang noun library+ %- (:def rhetoricalDevice@@ -10,15 +12,299 @@ (| "synecdoche") (| "metonymy"))) +(:def nounPhrase+ (:oneof+ (| "sheela na gig")+ (| "roach clip")))++(:def subjectDiscipline+ (:oneof+ (| "balneology")+ (| "soteriology")+ (| "dietetics")))++; ogee (:def noun (:flatten (:oneof (| rhetoricalDevice)+ (| subjectDiscipline) (| "valetudinarian")+ (| "car")+ (| "head")+ (| "tail")+ (| "joke")+ (| "autocracy")+ (| "autonomous")+ (| "pseudonym") (| "heliophagy") (| "valedictorian") (| "apothegm")+ (| "satori")+ (| "ardor")+ (| "theogeny")+ (| "curio")+ (| "tonsure")+ (| "gofer")+ (| "chignon")+ (| "henosis")+ (| "rhotacism")+ (| "doyenne")+ (| "theurgy")+ (| "ulzzang")+ (| "locum")+ (| "morganite")+ (| "ghapama")+ (| "peregrination")+ (| "ogre")+ (| "stadiometer")+ (| "fruit")+ (| "praemunire")+ (| "onanism")+ (| "sphygmomanometer")+ (| "colophon")+ (| "belvedere")+ (| "dilatation")+ (| "clyster")+ (| "apocarteresis")+ (| "kyphosis")+ (| "kyphoscoliosis")+ (| "ossicle")+ (| "apocope")+ (| "aphaeresis")+ (| "cwm")+ (| "moraine")+ (| "cirque")+ (| "tarn")+ (| "laxative")+ (| "emetic")+ (| "sialagouge")+ (| "polydipsia")+ (| "acyrologia")+ (| "sedevacantism")+ (| "catchment")+ (| "cacozelia")+ (| "codicil")+ (| "bolus")+ (| "bole")+ (| "calomel")+ (| "polysemy")+ (| "aliquot")+ (| "soraismus")+ (| "acoria")+ (| "comity")+ (| "colliquation")+ (| "lacuna")+ (| "apiary")+ (| "anastrophe")+ (| "catachresis")+ (| "acoloutha")+ (| "anacoloutha")+ (| "bilocation")+ (| "apricity")+ (| "ambo")+ (| "frisson")+ (| "prosody")+ (| "limner")+ (| "kenjataimu")+ (| "perspicuity")+ (| "wisteria")+ (| "cephalophore")+ (| "recalcitrant")+ (| "aposematism")+ (| "muskeg")+ (| "prodrome")+ (| "rounce")+ (| "eaves")+ (| "expiation")+ (| "abeyance")+ (| "parenthesis")+ (| "diacope")+ (| "philatelist")+ (| "panegyric")+ (| "nosocomial")+ (| "tmesis")+ (| "skete")+ (| "prig")+ (| "lavra")+ (| "epeolatry")+ (| "nosogenesis")+ (| "onychophagy")+ (| "parsimony")+ (| "cenobite")+ (| "hermit")+ (| "anosognosia")+ (| "radula")+ (| "pathography")+ (| "catamnesis")+ (| "bier")+ (| "etiology")+ (| "axiology")+ (| "wether")+ (| "lathyrism")+ (| "aspic")+ (| "cachexia")+ (| "thaumaturge")+ (| "epicaricacy")+ (| "schorl")+ (| "velleity")+ (| "syncope")+ (| "enuresis")+ (| "saccade")+ (| "yardstick")+ (| "epistates")+ (| "moxibustion")+ (| "yam")+ (| "tenter")+ (| "brumation")+ (| "yayo")+ (| "factotum")+ (| "nosology")+ (| "scrofula")+ (| "potato")+ (| "gamin")+ (| "sylph")+ (| "ecdysiast")+ (| "ecdysis")+ (| "synestia")+ (| "boffo")+ (| "tomato")+ (| "vegetable")+ (| "zeugma")+ (| "xylophory")+ (| "inedia")+ (| "ithe")+ (| "bookmobile")+ (| "ruck")+ (| "alexithymia")+ (| "orthorexia")+ (| "furphy")+ (| "legume")+ (| "taro")+ (| "lagomorph")+ (| "chrysanthemum")+ (| "ogonek")+ (| "ramekin")+ (| "infelicity")+ (| "hoplophile")+ (| "gloaming")+ (| "lexer")+ (| "parser")+ (| "generator")+ (| "scheme")+ (| "diapir")+ (| "ochlocracy")+ (| "scuttlebutt")+ (| "cankle")+ (| "cardiomegaly")+ (| "baculum")+ (| "skeuomorphism")+ (| "epitaph")+ (| "tensor")+ (| "hypotaxis")+ (| "parataxis")+ (| "syntaxis")+ (| "sacroiliac")+ (| "xenogogue")+ (| "sachem")+ (| "quib")+ (| "geognosy")+ (| "exuviation")+ (| "gallimaufry")+ (| "spoonerism")+ (| "cuckoo")+ (| "analglyph")+ (| "rime")+ (| "murmuration")+ (| "Lagrangian")+ (| "Hamiltonian")+ (| "aneurysm")+ (| "gleet")+ (| "synagogue")+ (| "abessive")+ (| "whit")+ (| "caritive")+ (| "privative")+ (| "meeting")+ (| "paronomasia")+ (| "mosque")+ (| "church")+ (| "cantillation")+ (| "aniconism")+ (| "milk")+ (| "peroration")+ (| "bogan")+ (| "coda")+ (| "brain")+ (| "somnambulism")+ (| "colubrid")+ (| "laccolith")+ (| "fecalith")+ (| "batholith")+ (| "kakistocracy")+ (| "keyboard")+ (| "ostranenie")+ (| "key")+ (| "piano")+ (| "roke")+ (| "shebang")+ (| "sheet")+ (| "cornice")+ (| "chancroid")+ (| "music")+ (| "commando")+ (| "commander")+ (| "egregore")+ (| "cretin")+ (| "calumny")+ (| "vermeil")+ (| "xoanon")+ (| "rancor")+ (| "tritium")+ (| "ophiomancy")+ (| "bothy")+ (| "stratocracy")+ (| "pyorrhea")+ (| "cataphyll")+ (| "catamite")+ (| "ephemeris")+ (| "kinnui")+ (| "xylopolist")+ (| "lenition")+ (| "plasma")+ (| "hydrogen")+ (| "gas")+ (| "fart")+ (| "exegesis")+ (| "caltrop")+ (| "calque")+ (| "diet")+ (| "ether")+ (| "xylem")+ (| "obreptition")+ (| "phlogiston")+ (| "poop")+ (| "turd")+ (| "cod")+ (| "xesturgy")+ (| "salmon")+ (| "crappie")+ (| "exhibitionist")+ (| "fetish")+ (| "fetishist")+ (| "cult")+ (| "religion")+ (| "cad")+ (| "cock")+ (| "confluence")+ (| "bed")+ (| "leather")+ (| "vinyl")+ (| "latex")+ (| "jeremiad")+ (| "sitiogonic") (| "apotheosis") (| "aphelion")+ (| "bevel") (| "perihelion") (| "folderol"))))
man/emd.1 view
@@ -1,4 +1,4 @@-.\" Automatically generated by Pandoc 2.10+.\" Automatically generated by Pandoc 2.10.1 .\" .TH "emd (1)" "" "" "" "" .hy@@ -70,6 +70,9 @@ .TP \f[B]-I\f[R] \f[B]--include\f[R] Directory to search for libraries+.SH INFLUENTIAL ENVIRONMENT VARIABLES+.PP+\f[C]DCK_PATH\f[R] - a colon-separated list of directories to search .SH EDITOR INTEGRATION .PP A vim plugin is available; see
run/Main.hs view
@@ -19,6 +19,7 @@ | Lint ![FilePath] | Format !FilePath Bool | Man+ | Ide !FilePath ![FilePath] main :: IO () main = run =<< execParser wrapper@@ -31,6 +32,7 @@ <> command "lint" (info lintP (progDesc "Examine a file for common errors.")) <> command "fmt" (info formatP (progDesc "Format Dickinson code")) <> command "man" (info (pure Man) (progDesc "Dump path to manpages"))+ <> command "ide" (info ide (progDesc "Run all checks and lints")) ) <|> runP formatP :: Parser Act@@ -44,6 +46,9 @@ runP :: Parser Act runP = Run <$> dckFile <*> includes +ide :: Parser Act+ide = Ide <$> dckFile <*> includes+ checkP :: Parser Act checkP = Check <$> some dckFile <*> includes @@ -78,11 +83,16 @@ versionMod :: Parser (a -> a) versionMod = infoOption dickinsonVersionString (short 'V' <> long "version" <> help "Show version") +modIs :: [FilePath] -> IO [FilePath]+modIs is =+ defaultLibPath <*> ((++) <$> dckPath <*> pure is)+ run :: Act -> IO ()-run (Run fp is) = do { pGo <- defaultLibPath ; TIO.putStrLn =<< pipeline (pGo is) fp }-run (REPL _) = dickinsonRepl-run (Check fs i) = do { pathMod <- defaultLibPath ; traverse_ (validateFile (pathMod i)) fs }+run (Run fp is) = do { is' <- modIs is ; TIO.putStrLn =<< pipeline is' fp }+run (REPL fps) = dickinsonRepl fps+run (Check fs i) = do { is' <- modIs i ; traverse_ (validateFile is') fs } run (Lint fs) = traverse_ warnFile fs run (Format fp False) = fmtFile fp run (Format fp True) = fmtInplace fp run Man = putStrLn . (</> "emd.1") . (</> "man") =<< getDataDir+run (Ide fp is) = do { is' <- modIs is ; validateFile is' fp ; warnFile fp }
run/REPL.hs view
@@ -44,8 +44,8 @@ import System.FilePath ((</>)) import System.Random (newStdGen, randoms) -dickinsonRepl :: IO ()-dickinsonRepl = runRepl loop+dickinsonRepl :: [FilePath] -> IO ()+dickinsonRepl fps = runRepl (traverse_ loadFile fps *> loop) type Repl a = InputT (StateT (EvalSt a) IO) @@ -218,8 +218,9 @@ loadFile :: FilePath -> Repl AlexPosn () loadFile fp = do pathMod <- liftIO defaultLibPath+ dp <- liftIO dckPath mErr <- lift $ runExceptT $ do- d <- amalgamateRenameM (pathMod ["."]) fp+ d <- amalgamateRenameM (pathMod (".":dp)) fp maybeThrow $ checkScope d tyTraverse d loadDickinson d
src/Language/Dickinson/Check/Duplicate.hs view
@@ -11,6 +11,8 @@ import Language.Dickinson.Error import Language.Dickinson.Type +-- TODO: duplicate check better? hm+ checkNames :: [(a, T.Text)] -> Maybe (DickinsonWarning a) checkNames ns = foldMapAlternative announce (groupBy ((==) `on` snd) $ sortBy (compare `on` snd) ns) where announce (_:(l, y):_) = Just $ DuplicateStr l y
src/Language/Dickinson/File.hs view
@@ -88,7 +88,7 @@ -- | Run some lints warnFile :: FilePath -> IO ()-warnFile = maybeThrowIO . (\x -> checkDuplicates x <|> checkMultiple x) . (\(Dickinson _ d) -> d)+warnFile = maybeThrowIO . (\x -> checkDuplicates x <|> checkMultiple x) . modDefs <=< eitherThrowIO . parse <=< BSL.readFile
src/Language/Dickinson/Lib.hs view
@@ -1,12 +1,17 @@ module Language.Dickinson.Lib ( defaultLibPath- , libPath+ , dckPath ) where +import Data.List.Split (splitWhen) import Paths_language_dickinson (getDataDir)+import System.Environment (lookupEnv) import System.FilePath ((</>)) -libPath :: IO [FilePath]-libPath = defaultLibPath <*> pure []+dckPath :: IO [FilePath]+dckPath = maybe [] splitEnv <$> lookupEnv "DCK_PATH"++splitEnv :: String -> [FilePath]+splitEnv = splitWhen (== ':') defaultLibPath :: IO ([FilePath] -> [FilePath]) defaultLibPath = do