slightly clean up parser

This commit is contained in:
darkf 2013-10-19 01:38:25 -07:00
parent ded743f2b1
commit 0db6e26070
1 changed files with 3 additions and 11 deletions

View File

@ -13,7 +13,7 @@ languageDef = emptyDef {T.commentStart="{-",
T.nestedComments=True, T.nestedComments=True,
T.identStart = letter <|> char '_', T.identStart = letter <|> char '_',
T.identLetter = alphaNum <|> char '_', T.identLetter = alphaNum <|> char '_',
T.reservedNames = ["do", "end", "(", ")", ";", "."], T.reservedNames = ["do", "end"],
T.reservedOpNames = ["+", "*"]} T.reservedOpNames = ["+", "*"]}
lexer = T.makeTokenParser languageDef lexer = T.makeTokenParser languageDef
@ -31,11 +31,7 @@ semi = T.semi lexer -- parses a semicolon
whiteSpace = T.whiteSpace lexer -- parses whitespace whiteSpace = T.whiteSpace lexer -- parses whitespace
symbol = T.symbol lexer symbol = T.symbol lexer
statement = statement = exprparser
do
e <- exprparser
-- char ';'
return e
block = do block = do
reserved "do" reserved "do"
@ -74,11 +70,7 @@ term = try block
<|> fmap Var identifier <|> fmap Var identifier
<|> fmap IntConst integer <|> fmap IntConst integer
manyExpr = many1 exprparser seqStmt = sepBy1 statement semi
seqStmt = do
lst <- sepBy1 statement semi
return lst
program = program =
many1 $ do many1 $ do