yapb-0.1.1: app/syntaxcompletion/Main.hs
module Main where
import CommonParserUtil
import Lexer
import Terminal
import Parser
import System.IO
-- for syntax completion
import Token
import Expr
import EmacsServer
import SynCompInterface
import Control.Exception
main :: IO ()
main = do
emacsServer computeCand
computeCand :: String -> Bool -> IO [EmacsDataItem]
computeCand programTextUptoCursor isSimpleMode = ((do
terminalList <- lexing lexerSpec programTextUptoCursor
ast <- parsing parserSpec terminalList
successfullyParsed)
`catch` \e -> case e :: LexError of _ -> handleLexError)
`catch` \e -> case e :: ParseError Token AST of _ -> handleParseError isSimpleMode e