proto3-suite-0.7.0: A higher-level API to the proto3-wire library
Safe HaskellNone
LanguageHaskell2010

Proto3.Suite.DotProto.Parsing

Description

This module contains a near-direct translation of the proto3 grammar It uses String for easier compatibility with DotProto.Generator, which needs it for not very good reasons

Synopsis

Documentation

data ProtoParser a Source #

Wrapper around Text.Parsec.String.Parser, overriding whitespace lexing.

Instances

Instances details
Monad ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

Functor ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

Methods

fmap :: (a -> b) -> ProtoParser a -> ProtoParser b Source #

(<$) :: a -> ProtoParser b -> ProtoParser a Source #

MonadFail ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

Methods

fail :: String -> ProtoParser a Source #

Applicative ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

Alternative ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

MonadPlus ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

TokenParsing ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

LookAheadParsing ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

CharParsing ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

Parsing ProtoParser Source # 
Instance details

Defined in Proto3.Suite.DotProto.Parsing

parseProto :: Path -> String -> Either ParseError DotProto Source #

parseProto mp inp attempts to parse inp as a DotProto. mp is the module path to be injected into the AST as part of DotProtoMeta metadata on a successful parse.

parseProtoFile :: MonadIO m => Path -> FilePath -> m (Either ParseError DotProto) Source #

parseProtoFile mp fp reads and parses the .proto file found at fp. mp is used downstream during code generation when we need to generate names which are a function of the source .proto file's filename and its path relative to some --includeDir.

Option Parsers

pOptionStmt :: ProtoParser DotProtoOption Source #

Parses a protobuf option that could appear in a service, RPC, message, enumeration, or at the top-level.

Since: 0.5.2

pFieldOptions :: ProtoParser [DotProtoOption] Source #

Parses zero or more message field options enclosed in square braces.

Since: 0.5.2

pFieldOptionStmt :: ProtoParser DotProtoOption Source #

Parses a protobuf option in the context of a message field's options.

Since: 0.5.2

pOptionId :: ProtoParser DotProtoIdentifier Source #

Parses a (qualified) identifier for a protobuf option.

Since: 0.5.2

pOptionKw :: ProtoParser () Source #

Parses a single keyword token "option".

Since: 0.5.2

Extension Parsers

pExtendKw :: ProtoParser () Source #

Parses a single keyword token "extend".

Since: 0.5.2