packages feed

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