ats-format 0.1.0.7 → 0.1.0.8
raw patch · 5 files changed
+12/−6 lines, 5 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ Language.ATS: LambdaAt :: PreFunction -> Expression
+ Language.ATS: Unnamed :: AlexPosn -> Name
Files
- ats-format.cabal +1/−1
- src/Language/ATS/Lexer.x +4/−3
- src/Language/ATS/Parser.y +2/−1
- src/Language/ATS/PrettyPrint.hs +3/−1
- src/Language/ATS/Types.hs +2/−0
ats-format.cabal view
@@ -1,5 +1,5 @@ name: ats-format-version: 0.1.0.7+version: 0.1.0.8 synopsis: A source-code formatter for ATS description: An opinionated source-code formatter for ATS (http://www.ats-lang.org/). homepage: https://hub.darcs.net/vmchale/ats-format#readme
src/Language/ATS/Lexer.x view
@@ -30,14 +30,15 @@ -- Digits $digit = 0-9+$octal = 0-7 -- Characters $special = [\+\-\&\|\[\]\{\}\(\)\_\=\!\%\^\$\@\;\~\,\.\\\#] $alpha = [a-zA-Z] $terminal = $printable # $white $esc_char = \27-@escape_ch = \\ [nt\'\\]-@escape_str = \\ [nt\"\\]+@escape_ch = \\ ([nt\'\\] | $octal+)+@escape_str = \\ ([nt\"\\] | $octal+) @char = ($terminal # [\\\']) | " " | @escape_ch | $esc_char @char_lit = \' @char \' @@ -55,7 +56,7 @@ @float = @decimals \. @decimals -- Strings-@string = \" ($printable # [\"] | @escape_str | $esc_char | \n)* \"+@string = \" ($printable # [\"\\] | @escape_str | $esc_char | \n)* \" -- Identifiers @identifier = $alpha ($alpha | $digit | _ | ! | ')*
src/Language/ATS/Parser.y view
@@ -153,7 +153,7 @@ atbrace { Operator $$ "@{" } mod { Keyword $$ KwMod } fixAt { Keyword $$ KwFixAt }- lamAt { Keyword $$ KwLambdaAt }+ lambdaAt { Keyword $$ KwLambdaAt } %% @@ -524,6 +524,7 @@ | var Pattern eq PreExpression { Var Nothing $2 (Just $4) Nothing } | var Pattern signature Type { Var (Just $4) $2 Nothing Nothing } | var Pattern eq fixAt identifier openParen Args closeParen signature Type plainArrow Expression { Var Nothing $2 (Just $ FixAt (PreF (Unqualified $5) $9 [] [] $7 $10 Nothing (Just $12))) Nothing }+ | var Pattern eq lambdaAt openParen Args closeParen signature Type plainArrow Expression { Var Nothing $2 (Just $ LambdaAt (PreF (Unnamed $4) $8 [] [] $6 $9 Nothing (Just $11))) Nothing } | prval Pattern eq PreExpression { PrVal $2 $4 } | praxi PreFunction { Func $1 (Praxi $2) } | primplmnt Implementation { ProofImpl $2 }
src/Language/ATS/PrettyPrint.hs view
@@ -79,6 +79,7 @@ pretty (Qualified _ i n) = "$" <> string n <> "." <> string i pretty (SpecialName _ s) = "$" <> string s pretty (Functorial s s') = string s <> "$" <> string s'+ pretty Unnamed{} = mempty instance Pretty LambdaType where pretty Plain{} = "=>"@@ -135,7 +136,7 @@ a (LinearLambdaF _ lt p e) = "llam" <+> pretty p <+> pretty lt <+> e a (FloatLitF f) = pretty f a (StringLitF s) = string s- a (BinListF op@Add es) = prettyBinary (pretty op) es+ a (BinListF op@Add es) = prettyBinary (pretty op) es a (BinaryF op e e') | splits op = e </> pretty op <+> e' | otherwise = e <+> pretty op <+> e'@@ -180,6 +181,7 @@ | not (startsParens e) = linebreak <> indent 2 ("begin" <$> indent 2 e <$> "end") | otherwise = e a (FixAtF (PreF n s [] [] as t Nothing (Just e))) = "fix@" <+> pretty n <+> prettyArgs as <+> pretty s <> ":" <+> pretty t <+> "=>" </> pretty e+ a (LambdaAtF (PreF Unnamed{} s [] [] as t Nothing (Just e))) = "lam@" <+> prettyArgs as <+> pretty s <> ":" <+> pretty t <+> "=>" </> pretty e a _ = "FIXME" prettyCases [] = mempty prettyCases [(s, t)] = "|" <+> pretty s <+> "=>" <+> t
src/Language/ATS/Types.hs view
@@ -133,6 +133,7 @@ | Qualified AlexPosn String String | SpecialName AlexPosn String | Functorial String String+ | Unnamed AlexPosn deriving (Show, Eq, Generic, NFData) -- | A data type for patterns.@@ -242,6 +243,7 @@ | BinList { _op :: BinOp, _exprs :: [Expression] } | PrecedeList { _exprs :: [Expression] } | FixAt PreFunction+ | LambdaAt PreFunction deriving (Show, Eq, Generic, NFData) -- | An 'implement' declaration