File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11module Main where
22
33import System.IO (hSetBuffering , stdout , BufferMode (BlockBuffering ))
4- import System.Environment (getArgs )
5- import Parser (parseTerm )
4+ import Parser (parseTerm , Token (Variable ))
65import Substitution (substitute )
76import Generator (generateTerm )
87
98main :: IO ()
109main = do
1110 hSetBuffering stdout $ BlockBuffering $ Just 1
12- args <- getArgs
1311 term <- putStr " Input term: " >> getLine
1412 var <- putStr " Input variable to substitute: " >> getLine -- not using getChr intentionally
1513 if length var /= 1
1614 then error " please provide valid variable"
1715 else do
1816 let substituteVariable = head var
1917 substituteTerm <- putStr " Input substitution term: " >> getLine
20- let generatedTerm = generateTerm $ substitute (parseTerm term) substituteVariable $ parseTerm substituteTerm
21- let termToPrint = if " pretty-lambda" `elem` args then map (\ x -> if x == 'λ' then ' \\ ' else x) generatedTerm else generatedTerm
22- putStrLn termToPrint
18+ putStrLn $ generateTerm $ substitute (parseTerm term) substituteVariable (parseTerm substituteTerm)
You can’t perform that action at this time.
0 commit comments