packages feed

tramaj-hs-0.3.0.0: tramaj-hs.cabal

cabal-version:      3.4
name:               tramaj-hs
version:            0.3.0.0
synopsis:           Haskell parser/AST/evaluator for the tramaj language
description:
  Parser, AST and evaluator for the tramaj language specified in
  @specs\/reference.md@ at the root of this repository -- a small
  HAML-like template language with a bindings prelude, closures, and
  @map@\/@filter@\/@scan@, designed to be written by humans and LLMs and
  rendered against a JSON context.
  .
  This is an independent Haskell port of the PureScript implementation
  under @..\/tramaj@, built on megaparsec + aeson rather than shared
  via FFI, so a host can evaluate a template server-side and not only in
  the browser. Both implementations target the same grammar and are kept
  in agreement by hand-ported test fixtures; see the repository README for
  the caveats that come with that.
homepage:           https://github.com/lucasdicioccio/templating-lang
bug-reports:        https://github.com/lucasdicioccio/templating-lang/issues
license:            MIT
license-file:       LICENSE
author:             Lucas DiCioccio
maintainer:         lucas.dicioccio@gmail.com
category:           Text
build-type:         Simple
extra-doc-files:    CHANGELOG.md

source-repository head
  type:     git
  location: https://github.com/lucasdicioccio/templating-lang.git
  subdir:   tramaj-hs

common defaults
  default-language:   GHC2021
  default-extensions:
    DeriveAnyClass
    DerivingStrategies
    LambdaCase
    OverloadedStrings
  ghc-options:        -Wall -Wno-name-shadowing

library
  import:           defaults
  hs-source-dirs:   src
  exposed-modules:
    Tramaj.Analysis
    Tramaj.Ast
    Tramaj.Eval
    Tramaj.Node
    Tramaj.Parser
    Tramaj.Types
  build-depends:
    , base            >=4.19  && <4.22
    , aeson           >=2.1   && <2.4
    , containers      >=0.6   && <0.9
    , megaparsec      >=9.5   && <9.9
    , scientific      >=0.3   && <0.4
    , text            >=2.0   && <2.2
    , vector          >=0.13  && <0.14

test-suite unit
  import:           defaults
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test/unit
  main-is:          Main.hs
  other-modules:
    Tramaj.AnalysisSpec
    Tramaj.CorpusSpec
    Tramaj.EvalSpec
    Tramaj.NodeJsonSpec
    Tramaj.ParserSpec
    Tramaj.TypesSpec
  build-depends:
    , base
    , aeson
    , bytestring
    , containers
    , directory
    , filepath
    , hspec        >=2.11
    , tramaj-hs
    , text
    , vector
  build-tool-depends: hspec-discover:hspec-discover