packages feed

morley-1.17.0: src/Morley/Michelson/Parser/Common.hs

-- SPDX-FileCopyrightText: 2021 Oxhead Alpha
-- SPDX-License-Identifier: LicenseRef-MIT-OA

module Morley.Michelson.Parser.Common
  ( viewName_
  ) where

import Text.Megaparsec (anySingle, customFailure, manyTill)
import Text.Megaparsec.Char (string)

import Morley.Michelson.Parser.Error
import Morley.Michelson.Parser.Lexer
import Morley.Michelson.Parser.Types
import Morley.Michelson.Untyped

viewName_ :: Parser ViewName
viewName_ = lexeme do
  string "\""
  str <- manyTill anySingle (string "\"")
  mkViewName (toText str)
    & either (customFailure . ViewNameException) pure