Closed master-q closed 5 years ago
ATS language
$ cat ~/tmp/ats/idiomaticca/main.dats
#include "share/atspre_staload.hats"
implement main () = let
var input : int = 1
var ret : int
val () = ret := input + 2
in
ret - 3
end
$ stack run dumpats ~/tmp/ats/idiomaticca/main.dats
ATS {unATS = [Include "\"share/atspre_staload.hats\"",Impl {implArgs = Nothing, _impl = Implement {pos = AlexPn 56 3 19, preUniversalsI = [], implicits = [], universalsI = [], nameI = Unqualified "main", iArgs = Just [], _iExpression = Right (Let (AlexPn 58 3 21) (ATS {unATS = [Var {varT = Just (Named (Unqualified "int")), varPat = UniversalPattern (AlexPn 70 4 9) "input" [] Nothing, _varExpr1 = Just (IntLit 1), _varExpr2 = Nothing},Var {varT = Just (Named (Unqualified "int")), varPat = UniversalPattern (AlexPn 94 5 9) "ret" [] Nothing, _varExpr1 = Nothing, _varExpr2 = Nothing},Val {add = None, valT = Nothing, valPat = Just (PLiteral (VoidLiteral (AlexPn 112 6 9))), _valExpression = Just (Binary Mutate (NamedVal (Unqualified "ret")) (BinList {_op = Add, _exprs = [NamedVal (Unqualified "input"),IntLit 2]}))}]}) (Just (Binary Sub (NamedVal (Unqualified "ret")) (IntLit 3))))}}]}
C language: