cabal-version: 3.0

name: oplang
version: 0.5.0.0
x-revision: 1
synopsis: Stack-based esoteric programming language
description: Please see the README on GitHub at <https://github.com/aionescu/oplang#readme>
homepage: https://github.com/aionescu/oplang#readme
bug-reports: https://github.com/aionescu/oplang/issues
license: GPL-3.0-only
license-file: LICENSE.txt
author: Alex Ionescu
maintainer: aaionescu@pm.me
copyright: Copyright (C) 2019-2024 Alex Ionescu
category: Compilers/Interpreters, Language
build-type: Simple

tested-with: GHC == { 9.2.8, 9.4.8, 9.6.3, 9.8.2 }

extra-doc-files:
  CHANGELOG.md
  README.md
  examples/**/*.bf
  examples/**/*.op

source-repository head
  type: git
  location: https://github.com/aionescu/oplang

executable oplang
  default-language: GHC2021
  default-extensions:
    BlockArguments
    DerivingStrategies
    LambdaCase
    LexicalNegation
    NegativeLiterals
    NoFieldSelectors
    OverloadedRecordDot
    OverloadedStrings
    RecordWildCards
    ViewPatterns

  other-extensions:
    StrictData

  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wmissing-deriving-strategies
    -Wno-name-shadowing
    -Wpartial-fields
    -Wprepositive-qualified-module
    -Wredundant-constraints
    -Wunused-packages

  hs-source-dirs: src
  main-is: Main.hs
  autogen-modules: Paths_oplang

  other-modules:
    Language.OpLang.Codegen
    Language.OpLang.Optimizer
    Language.OpLang.Parser
    Language.OpLang.Syntax
    Language.OpLang.Validation
    Opts
    Paths_oplang

  build-depends:
    base >=4.16 && <5
    , containers ^>= 0.7
    , directory ^>= 1.3.8
    , filepath ^>= 1.4.100
    , megaparsec ^>= 9.6.1
    , monad-chronicle ^>= 1.0.1
    , mtl ^>= 2.3
    , optparse-applicative ^>= 0.17
    , process ^>= 1.6.17
    , text >=2 && <2.2
    , text-builder-linear ^>= 0.1