Use the transformation pretty printer.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Mon, 27 Jul 2009 11:38:04 +0000 (13:38 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Mon, 27 Jul 2009 11:38:04 +0000 (13:38 +0200)
This changes two transformations to use the new pretty printer, the rest
still needs to be converted.

Core2Core.tex
SConstruct

index b404a03a74ea3e538f1d15b6f79fbc381b8608bb..5df24873befeb7b28d0cf018dfb0924cc3efd85a 100644 (file)
@@ -60,6 +60,9 @@
 \definetyping[lambda][option=LAM,style=sans]
 \definetype[lam][option=LAM,style=sans]
 
+\installprettytype [TRANS] [TRANS]
+\definetyping[trans][option=TRANS,style=normal,before=,after=]
+
 % An (invisible) frame to hold a lambda expression
 \define[1]\lamframe{
         % Put a frame around lambda expressions, so they can have multiple
@@ -269,20 +272,12 @@ expression are named, by introducing lambda expressions. When combined with
 β-reduction and function inlining below, all function-typed expressions should
 be lambda abstractions or global identifiers.
 
-\transform{η-abstraction}
-{
-\lam{E :: * -> *}
-
-\lam{E} is not the first argument of an application.
-
-\lam{E} is not a lambda abstraction.
-
-\lam{x} is a variable that does not occur free in E.
-
-\conclusion
-
-\trans{E}{λx.E x}
-}
+\starttrans
+E                 \lam{E :: * -> *}
+--------------    \lam{E} is not the first argument of an application.
+λx.E x            \lam{E} is not a lambda abstraction.
+                  \lam{x} is a variable that does not occur free in \lam{E}.
+\stoptrans
 
 \startbuffer[from]
 foo = λa -> case a of 
@@ -579,6 +574,17 @@ Definition: A builtin function is a function for which a builtin
 hardware translation is available, because its actual definition is not
 translatable. A user-defined function is any other function.
 
+\starttrans
+x = E
+~
+x Y0 ... Yi ... Yn                               \lam{Y_i} is not of a runtime representable type
+---------------------------------------------    \lam{Y_i} is not a local variable reference
+x' = λy0 ... yi-1 f0 ... fm yi+1 ... yn .        \lam{f0 ... fm} = free local vars of \lam{Y_i}
+      E y0 ... yi-1 Yi yi+1 ... yn   
+~
+x' y0 ... yi-1 f0 ...  fm Yi+1 ... Yn
+\stoptrans
+
 \transform{Argument propagation}
 {
 \lam{x} is a global variable, bound to a user-defined function
index d805605554ae3ea790f99ff007a462348ec45887..4e2e3e5efdf6ba68dd9418f8dbe1614b344f7100 100644 (file)
@@ -67,6 +67,7 @@ env['ENV']['SSH_AUTH_SOCK'] = os.environ['SSH_AUTH_SOCK']
 ## Context PDF build
 pdfOutput = env.Context(LATEX_PROJECT)
 Depends(pdfOutput, 'pret-lam.lua')
+Depends(pdfOutput, 'pret-trans.lua')
 env.Alias('pdf', LATEX_PROJECT + '.pdf')
 
 # Keep below code happy