Current section
Files
Jump to
Current section
Files
lib/parser/type_converter.ex
defmodule FinTex.Parser.TypeConverter do
@moduledoc false
alias FinTex.Parser.TypeMatcher
alias FinTex.Parser.Lexer
require TypeMatcher
def string_to_type(segments) do
segments
|> Enum.map(fn
[[name, pos, v, ref | t1] | t2] ->
[[name, Lexer.to_number(pos), Lexer.to_number(v), Lexer.to_number(ref) | t1] | t2]
[[name, pos, v | t1] | t2] ->
[[name, Lexer.to_number(pos), Lexer.to_number(v) | t1] | t2]
end)
|> Enum.map fn s -> TypeMatcher.handle(s, :string_to_type) end
end
def type_to_string(segments, version) when is_binary(version) do
segments
|> Enum.map fn s -> TypeMatcher.handle(s, :type_to_string, version) end
end
end