Skip to content

Commit

Permalink
Refs: #171; Typespecs for Earmark.Helpers.YeccHelpers
Browse files Browse the repository at this point in the history
  • Loading branch information
RobertDober committed Apr 4, 2018
1 parent 05efb42 commit a587ae9
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
4 changes: 4 additions & 0 deletions lib/earmark/helpers/link_parser.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ defmodule Earmark.Helpers.LinkParser do
import Earmark.Helpers.YeccHelpers, only: [parse!: 2]
import Earmark.Helpers.StringHelpers, only: [behead: 2]

@typep beheader_t :: String.t | pair( non_neg_integer )

# Hopfully this will go away in v1.3
# **********************************
#
Expand Down Expand Up @@ -106,8 +108,10 @@ defmodule Earmark.Helpers.LinkParser do
end

defp add({parsed_text, url_text, nil}, text), do: {[text|parsed_text], [text|url_text], nil}

defp add_title({parsed_text, url_text, _}, {parsed,inner,messages}), do: {[parsed|parsed_text], url_text, inner, messages}

@spec list_to_text( list ) :: String.t
defp list_to_text(lst), do: lst |> Enum.reverse() |> Enum.join("")
end

Expand Down
5 changes: 4 additions & 1 deletion lib/earmark/helpers/yecc_helpers.ex
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
defmodule Earmark.Helpers.YeccHelpers do

import Earmark.Helpers.LeexHelpers, only: [lex: 2]

@spec parse!( String.t, Keyword.t(atom) ) :: tuple
def parse!( text, lexer: lexer, parser: parser ) do
case parse(text, lexer: lexer, parser: parser) do
{:ok, ast} -> ast
{:ok, ast} -> ast
{:error, _} -> nil
end
end

@spec parse( String.t, Keyword.t(atom) ) :: {:ok, tuple} | {:error, any}
def parse( text, lexer: lexer, parser: parser ) do
with tokens <- lex(text, with: lexer) do
parser.parse(tokens)
Expand Down

0 comments on commit a587ae9

Please sign in to comment.