fixed cardinality of is statements

This commit is contained in:
Macocian Adrian Radu
2022-02-17 22:04:55 +01:00
parent 1ebc24140c
commit 8743dc0874
15 changed files with 210 additions and 100 deletions

View File

@@ -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
View 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 '*')