kmonad-0.4.2: Advanced keyboard remapping utility
Copyright(c) David Janssen 2019
LicenseMIT
Maintainerjanssen.dhj@gmail.com
Stabilityexperimental
Portabilitynon-portable (MPTC with FD, FFI to Linux-only c-code)
Safe HaskellSafe-Inferred
LanguageHaskell2010

KMonad.Args.Parser

Description

We perform configuration parsing in 2 steps: - 1. We turn the text-file into a token representation - 2. We check the tokens and turn them into an AppCfg

This module covers step 1.

Synopsis

Parsing KExprs

parseTokens :: Text -> Either ParseError [KExpr] Source #

Try to parse a list of KExpr from Text

loadTokens :: FilePath -> RIO e [KExpr] Source #

Load a set of tokens from file, throw an error on parse-fail

Building Parsers

symbol :: Text -> Parser () Source #

Consume 1 symbol

numP :: Parser Int Source #

Parse an integer

Parsers for Tokens and Buttons

otokens :: [(Text, Parser OToken)] Source #

Output tokens to parse; the format is (keyword, how to parse the token)

itokens :: [(Text, Parser IToken)] Source #

Input tokens to parse; the format is (keyword, how to parse the token)

keywordButtons :: [(Text, Parser DefButton)] Source #

Parsers for buttons that have a keyword at the start; the format is (keyword, how to parse the token)

noKeywordButtons :: [Parser DefButton] Source #

Parsers for buttons that do not have a keyword at the start