diff -r 32f5982604f4 -r bf51bc7e2808 tools/pas2c/PascalParser.hs --- a/tools/pas2c/PascalParser.hs Sun Jan 05 00:46:26 2014 +0400 +++ b/tools/pas2c/PascalParser.hs Sun Jan 05 10:54:03 2014 +0400 @@ -579,7 +579,7 @@ term = comments >> choice [ liftM (uncurry BuiltInFunction) $ builtInFunction initExpression , try $ brackets pas (commaSep pas $ initExpression) >>= return . InitSet - , try $ parens pas (commaSep pas $ initExpression) >>= \ia -> when (null $ tail ia) mzero >> return (InitArray ia) + , try $ parens pas (commaSep pas $ initExpression) >>= \ia -> when ((notRecord $ head ia) && (null $ tail ia)) mzero >> return (InitArray ia) , try $ parens pas (sepEndBy recField (char ';' >> comments)) >>= return . InitRecord , parens pas initExpression , try $ integer pas >>= \i -> notFollowedBy (char '.') >> (return . InitNumber . show) i @@ -594,6 +594,9 @@ , iD >>= return . InitReference ] + notRecord (InitRecord _) = False + notRecord _ = True + recField = do i <- iD spaces