mirror of
https://github.com/macocianradu/RosettaHaskellCompiler.git
synced 2026-03-18 21:10:07 +00:00
fixed cardinality of is statements
This commit is contained in:
@@ -57,6 +57,9 @@ allowedChars = letterChar <|> digitChar <|> char '_'
|
||||
-- |List of restricted names used by Rosetta
|
||||
restrictedNames :: [String]
|
||||
restrictedNames = [
|
||||
"if",
|
||||
"then",
|
||||
"else",
|
||||
"displayName",
|
||||
"enum",
|
||||
"func",
|
||||
|
||||
27
src/Parser/Header.hs
Normal file
27
src/Parser/Header.hs
Normal file
@@ -0,0 +1,27 @@
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
|
||||
module Parser.Header where
|
||||
|
||||
import Model.Header
|
||||
import Parser.General
|
||||
import Text.Megaparsec
|
||||
import Text.Megaparsec.Char
|
||||
import Text.ParserCombinators.ReadP (many1)
|
||||
|
||||
headerParser :: Parser Header
|
||||
headerParser = do
|
||||
_ <- lexeme $ string "namespace"
|
||||
name <- namespaceParser
|
||||
desc <- optional descriptionParser
|
||||
_ <- lexeme $ string "version"
|
||||
vers <- between (char '\"') (char '\"') (many (letterChar <|> char '.' <|> char '$' <|> digitChar))
|
||||
imports <- many importParser
|
||||
return $ MakeHeader name desc vers imports
|
||||
|
||||
importParser :: Parser String
|
||||
importParser = do
|
||||
_ <- lexeme $ string "import"
|
||||
namespaceParser
|
||||
|
||||
namespaceParser :: Parser String
|
||||
namespaceParser = many (letterChar <|> digitChar <|> char '.' <|> char '*')
|
||||
Reference in New Issue
Block a user