stdin <<< "//PARSER\n" <<< toString parseOut <<< "//PARSER\n")
= case sem (preamble parseOut) of
(Left e) = snd $ fclose (stdin <<< join "\n" (map toString e) <<< "\n") w
- (Right ast)
+ (Right (ast, gam))
# stdin = if (not args.sem) stdin (stdin
- <<< "//SEM G\n" <<< toString ast <<< "//SEMA\n")
+ <<< "//SEM AST\n" <<< toString ast <<< "//SEM AST\n"
+ <<< "//SEM GAMMA\n" <<< toString gam <<< "//SEM GAMMA\n")
= case gen ast of
(Left e) = snd $ fclose (stdin <<< e) w
(Right asm)